@mieweb/ui 0.5.0 → 0.6.1-dev.120

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -3876,7 +3876,7 @@ var MessageBubble = React48.forwardRef(
3876
3876
  "div",
3877
3877
  {
3878
3878
  className: cn(
3879
- "flex flex-col",
3879
+ "flex min-w-0 flex-1 flex-col",
3880
3880
  isOutgoing ? "items-end" : "items-start"
3881
3881
  ),
3882
3882
  children: [
@@ -8655,11 +8655,17 @@ function CommandPalette({
8655
8655
  placeholder = "Search...",
8656
8656
  isLoading = false,
8657
8657
  onSelect,
8658
+ onQueryChange,
8659
+ pinnedItems,
8660
+ pinnedCategoryLabel = "Actions",
8661
+ recentItems,
8662
+ recentCategoryLabel = "Recent",
8658
8663
  emptyState,
8659
8664
  renderItem,
8660
8665
  footer,
8661
8666
  className,
8662
- "data-testid": testId = "command-palette"
8667
+ "data-testid": testId = "command-palette",
8668
+ serverFiltered = false
8663
8669
  }) {
8664
8670
  const {
8665
8671
  isOpen,
@@ -8676,29 +8682,47 @@ function CommandPalette({
8676
8682
  const inputRef = useRef(null);
8677
8683
  const containerRef = useRef(null);
8678
8684
  const listRef = useRef(null);
8685
+ useEffect(() => {
8686
+ if (!isOpen) return;
8687
+ onQueryChange?.(query);
8688
+ }, [query, isOpen, onQueryChange]);
8689
+ const PINNED_CATEGORY_ID = "__palette_pinned__";
8690
+ const RECENT_CATEGORY_ID = "__palette_recent__";
8679
8691
  const filteredItems = useMemo(() => {
8680
8692
  let result = items;
8681
8693
  if (activeCategory) {
8682
8694
  result = result.filter((item) => item.category === activeCategory);
8683
8695
  }
8684
- if (query.trim()) {
8696
+ if (query.trim() && !serverFiltered) {
8685
8697
  const lowerQuery = query.toLowerCase();
8686
8698
  result = result.filter(
8687
8699
  (item) => item.label.toLowerCase().includes(lowerQuery) || item.subtitle?.toLowerCase().includes(lowerQuery) || item.description?.toLowerCase().includes(lowerQuery)
8688
8700
  );
8689
8701
  }
8690
8702
  return result;
8691
- }, [items, query, activeCategory]);
8703
+ }, [items, query, activeCategory, serverFiltered]);
8704
+ const effectiveItems = useMemo(() => {
8705
+ const pinned = !activeCategory && pinnedItems?.length ? pinnedItems.map((it) => ({
8706
+ ...it,
8707
+ category: it.category ?? PINNED_CATEGORY_ID
8708
+ })) : [];
8709
+ const showRecents = !activeCategory && !query.trim() && filteredItems.length === 0 && !!recentItems?.length;
8710
+ const recents = showRecents ? recentItems.map((it) => ({
8711
+ ...it,
8712
+ category: it.category ?? RECENT_CATEGORY_ID
8713
+ })) : [];
8714
+ return [...pinned, ...filteredItems, ...recents];
8715
+ }, [pinnedItems, recentItems, filteredItems, activeCategory, query]);
8692
8716
  const groupedItems = useMemo(() => {
8693
8717
  const groups = /* @__PURE__ */ new Map();
8694
- filteredItems.forEach((item) => {
8718
+ effectiveItems.forEach((item) => {
8695
8719
  const category = item.category ?? "Other";
8696
8720
  const group = groups.get(category) ?? [];
8697
8721
  group.push(item);
8698
8722
  groups.set(category, group);
8699
8723
  });
8700
8724
  return groups;
8701
- }, [filteredItems]);
8725
+ }, [effectiveItems]);
8702
8726
  useEscapeKey(close, isOpen);
8703
8727
  useClickOutside(containerRef, close);
8704
8728
  useEffect(() => {
@@ -8707,8 +8731,8 @@ function CommandPalette({
8707
8731
  }
8708
8732
  }, [isOpen]);
8709
8733
  useEffect(() => {
8710
- setSelectedIndex(filteredItems.length > 0 ? 0 : -1);
8711
- }, [filteredItems.length, setSelectedIndex]);
8734
+ setSelectedIndex(effectiveItems.length > 0 ? 0 : -1);
8735
+ }, [effectiveItems.length, setSelectedIndex]);
8712
8736
  useEffect(() => {
8713
8737
  if (selectedIndex >= 0 && listRef.current) {
8714
8738
  const selectedElement = listRef.current.querySelector(
@@ -8723,7 +8747,7 @@ function CommandPalette({
8723
8747
  case "ArrowDown":
8724
8748
  e.preventDefault();
8725
8749
  setSelectedIndex(
8726
- Math.min(selectedIndex + 1, filteredItems.length - 1)
8750
+ Math.min(selectedIndex + 1, effectiveItems.length - 1)
8727
8751
  );
8728
8752
  break;
8729
8753
  case "ArrowUp":
@@ -8732,8 +8756,8 @@ function CommandPalette({
8732
8756
  break;
8733
8757
  case "Enter":
8734
8758
  e.preventDefault();
8735
- if (selectedIndex >= 0 && filteredItems[selectedIndex]) {
8736
- const item = filteredItems[selectedIndex];
8759
+ if (selectedIndex >= 0 && effectiveItems[selectedIndex]) {
8760
+ const item = effectiveItems[selectedIndex];
8737
8761
  if (!item.disabled) {
8738
8762
  onSelect?.(item);
8739
8763
  close();
@@ -8751,7 +8775,7 @@ function CommandPalette({
8751
8775
  }
8752
8776
  },
8753
8777
  [
8754
- filteredItems,
8778
+ effectiveItems,
8755
8779
  selectedIndex,
8756
8780
  setSelectedIndex,
8757
8781
  onSelect,
@@ -8772,9 +8796,15 @@ function CommandPalette({
8772
8796
  );
8773
8797
  const getCategoryInfo = useCallback(
8774
8798
  (categoryId) => {
8799
+ if (categoryId === PINNED_CATEGORY_ID) {
8800
+ return { id: PINNED_CATEGORY_ID, label: pinnedCategoryLabel };
8801
+ }
8802
+ if (categoryId === RECENT_CATEGORY_ID) {
8803
+ return { id: RECENT_CATEGORY_ID, label: recentCategoryLabel };
8804
+ }
8775
8805
  return categories.find((c) => c.id === categoryId);
8776
8806
  },
8777
- [categories]
8807
+ [categories, pinnedCategoryLabel, recentCategoryLabel]
8778
8808
  );
8779
8809
  if (!isOpen) return null;
8780
8810
  let globalIndex = -1;
@@ -8880,14 +8910,14 @@ function CommandPalette({
8880
8910
  ref: listRef,
8881
8911
  "data-slot": "command-palette-results",
8882
8912
  className: "max-h-[60vh] overflow-y-auto",
8883
- children: filteredItems.length === 0 ? /* @__PURE__ */ jsx(
8913
+ children: effectiveItems.length === 0 ? /* @__PURE__ */ jsx(
8884
8914
  "div",
8885
8915
  {
8886
8916
  "data-slot": "command-palette-empty",
8887
8917
  className: "text-muted-foreground p-8 text-center",
8888
8918
  children: emptyState ?? /* @__PURE__ */ jsxs(Fragment, { children: [
8889
8919
  /* @__PURE__ */ jsx("div", { className: "mx-auto mb-2 h-8 w-8 opacity-50", children: /* @__PURE__ */ jsx(SearchIcon2, {}) }),
8890
- /* @__PURE__ */ jsx("p", { className: "text-sm", children: query.trim() ? `No results for "${query}"` : "Start typing to search..." })
8920
+ /* @__PURE__ */ jsx("p", { className: "text-sm", children: isLoading && query.trim() ? `Searching for "${query}"\u2026` : query.trim() ? `No results for "${query}"` : "Start typing to search..." })
8891
8921
  ] })
8892
8922
  }
8893
8923
  ) : Array.from(groupedItems.entries()).map(
@@ -9020,7 +9050,7 @@ function CommandPalette({
9020
9050
  /* @__PURE__ */ jsx("span", { children: "close" })
9021
9051
  ] }),
9022
9052
  /* @__PURE__ */ jsxs("span", { children: [
9023
- filteredItems.length,
9053
+ effectiveItems.length,
9024
9054
  " results"
9025
9055
  ] })
9026
9056
  ]
@@ -11470,32 +11500,103 @@ function getDefaultPresets(labels = {}) {
11470
11500
  { key: "last-30-days", label: last30Days }
11471
11501
  ];
11472
11502
  }
11503
+ function getExtendedPresets(labels = {}) {
11504
+ const {
11505
+ today = "Today",
11506
+ yesterday = "Yesterday",
11507
+ thisWeek = "This Week",
11508
+ lastWeek = "Last Week",
11509
+ thisMonth = "This Month",
11510
+ lastMonth = "Last Month",
11511
+ thisQuarter = "This Quarter",
11512
+ lastQuarter = "Last Quarter",
11513
+ thisYear = "This Year",
11514
+ lastYear = "Last Year",
11515
+ last24Hours = "Last 24 Hours",
11516
+ last7Days = "Last 7 Days",
11517
+ last30Days = "Last 30 Days",
11518
+ last90Days = "Last 90 Days",
11519
+ last365Days = "Last 365 Days"
11520
+ } = labels;
11521
+ return [
11522
+ { key: "today", label: today },
11523
+ { key: "yesterday", label: yesterday },
11524
+ { key: "last-24-hours", label: last24Hours },
11525
+ { key: "this-week", label: thisWeek },
11526
+ { key: "last-week", label: lastWeek },
11527
+ { key: "last-7-days", label: last7Days },
11528
+ { key: "this-month", label: thisMonth },
11529
+ { key: "last-month", label: lastMonth },
11530
+ { key: "last-30-days", label: last30Days },
11531
+ { key: "this-quarter", label: thisQuarter },
11532
+ { key: "last-quarter", label: lastQuarter },
11533
+ { key: "last-90-days", label: last90Days },
11534
+ { key: "this-year", label: thisYear },
11535
+ { key: "last-year", label: lastYear },
11536
+ { key: "last-365-days", label: last365Days }
11537
+ ];
11538
+ }
11539
+ function endOfDay(d) {
11540
+ return new Date(d.getFullYear(), d.getMonth(), d.getDate(), 23, 59, 59, 999);
11541
+ }
11473
11542
  function calculateDateRange(presetKey) {
11474
11543
  const now = /* @__PURE__ */ new Date();
11475
11544
  const today = new Date(now.getFullYear(), now.getMonth(), now.getDate());
11476
11545
  switch (presetKey) {
11477
11546
  case "today":
11478
- return {
11479
- start: today,
11480
- end: new Date(today.getTime() + 24 * 60 * 60 * 1e3 - 1)
11481
- };
11547
+ return { start: today, end: endOfDay(today) };
11548
+ case "yesterday": {
11549
+ const yesterday = new Date(today);
11550
+ yesterday.setDate(today.getDate() - 1);
11551
+ return { start: yesterday, end: endOfDay(yesterday) };
11552
+ }
11482
11553
  case "this-week": {
11483
11554
  const dayOfWeek = today.getDay();
11484
11555
  const sunday = new Date(today);
11485
11556
  sunday.setDate(today.getDate() - dayOfWeek);
11486
11557
  const saturday = new Date(sunday);
11487
11558
  saturday.setDate(sunday.getDate() + 6);
11488
- return { start: sunday, end: saturday };
11559
+ return { start: sunday, end: endOfDay(saturday) };
11560
+ }
11561
+ case "last-week": {
11562
+ const dayOfWeek = today.getDay();
11563
+ const lastSunday = new Date(today);
11564
+ lastSunday.setDate(today.getDate() - dayOfWeek - 7);
11565
+ const lastSaturday = new Date(lastSunday);
11566
+ lastSaturday.setDate(lastSunday.getDate() + 6);
11567
+ return { start: lastSunday, end: endOfDay(lastSaturday) };
11489
11568
  }
11490
11569
  case "this-month": {
11491
11570
  const firstDay = new Date(now.getFullYear(), now.getMonth(), 1);
11492
11571
  const lastDay = new Date(now.getFullYear(), now.getMonth() + 1, 0);
11493
- return { start: firstDay, end: lastDay };
11572
+ return { start: firstDay, end: endOfDay(lastDay) };
11494
11573
  }
11495
11574
  case "last-month": {
11496
11575
  const firstDay = new Date(now.getFullYear(), now.getMonth() - 1, 1);
11497
11576
  const lastDay = new Date(now.getFullYear(), now.getMonth(), 0);
11498
- return { start: firstDay, end: lastDay };
11577
+ return { start: firstDay, end: endOfDay(lastDay) };
11578
+ }
11579
+ case "this-quarter": {
11580
+ const quarter = Math.floor(now.getMonth() / 3);
11581
+ const firstDay = new Date(now.getFullYear(), quarter * 3, 1);
11582
+ const lastDay = new Date(now.getFullYear(), quarter * 3 + 3, 0);
11583
+ return { start: firstDay, end: endOfDay(lastDay) };
11584
+ }
11585
+ case "last-quarter": {
11586
+ const quarter = Math.floor(now.getMonth() / 3);
11587
+ const firstDay = new Date(now.getFullYear(), (quarter - 1) * 3, 1);
11588
+ const lastDay = new Date(now.getFullYear(), quarter * 3, 0);
11589
+ return { start: firstDay, end: endOfDay(lastDay) };
11590
+ }
11591
+ case "this-year": {
11592
+ const firstDay = new Date(now.getFullYear(), 0, 1);
11593
+ const lastDay = new Date(now.getFullYear(), 11, 31);
11594
+ return { start: firstDay, end: endOfDay(lastDay) };
11595
+ }
11596
+ case "last-year": {
11597
+ const firstDay = new Date(now.getFullYear() - 1, 0, 1);
11598
+ const lastDay = new Date(now.getFullYear() - 1, 11, 31);
11599
+ return { start: firstDay, end: endOfDay(lastDay) };
11499
11600
  }
11500
11601
  case "last-24-hours":
11501
11602
  return {
@@ -11512,6 +11613,16 @@ function calculateDateRange(presetKey) {
11512
11613
  start: new Date(now.getTime() - 30 * 24 * 60 * 60 * 1e3),
11513
11614
  end: now
11514
11615
  };
11616
+ case "last-90-days":
11617
+ return {
11618
+ start: new Date(now.getTime() - 90 * 24 * 60 * 60 * 1e3),
11619
+ end: now
11620
+ };
11621
+ case "last-365-days":
11622
+ return {
11623
+ start: new Date(now.getTime() - 365 * 24 * 60 * 60 * 1e3),
11624
+ end: now
11625
+ };
11515
11626
  default:
11516
11627
  return { start: null, end: null };
11517
11628
  }
@@ -11538,6 +11649,7 @@ function DateRangePicker({
11538
11649
  activePreset,
11539
11650
  placeholder = "Pick a date range",
11540
11651
  className,
11652
+ align = "auto",
11541
11653
  showPresets = true,
11542
11654
  variant = "desktop",
11543
11655
  labels = {}
@@ -11560,6 +11672,9 @@ function DateRangePicker({
11560
11672
  const [hoverDate, setHoverDate] = React48.useState(null);
11561
11673
  const calendarRef = React48.useRef(null);
11562
11674
  const triggerRef = React48.useRef(null);
11675
+ const [resolvedAlign, setResolvedAlign] = React48.useState(
11676
+ align === "end" ? "end" : "start"
11677
+ );
11563
11678
  const isMobileVariant = variant === "mobile";
11564
11679
  const isResponsive = variant === "responsive";
11565
11680
  const focusTrapRef = useFocusTrap(
@@ -11598,6 +11713,22 @@ function DateRangePicker({
11598
11713
  };
11599
11714
  }
11600
11715
  }, [isMobileVariant, isCalendarOpen]);
11716
+ React48.useLayoutEffect(() => {
11717
+ if (isMobileVariant || !isCalendarOpen) return;
11718
+ if (align === "start" || align === "end") {
11719
+ setResolvedAlign(align);
11720
+ return;
11721
+ }
11722
+ if (typeof window === "undefined") return;
11723
+ const trigger = triggerRef.current;
11724
+ if (!trigger) return;
11725
+ const rect = trigger.getBoundingClientRect();
11726
+ const estimatedPopupWidth = showPresets ? 840 : 640;
11727
+ const margin = 8;
11728
+ const overflowsRight = rect.left + estimatedPopupWidth > window.innerWidth - margin;
11729
+ const fitsLeftAligned = rect.right - estimatedPopupWidth >= margin;
11730
+ setResolvedAlign(overflowsRight && fitsLeftAligned ? "end" : "start");
11731
+ }, [align, isCalendarOpen, isMobileVariant, showPresets]);
11601
11732
  const handlePresetSelect = (presetKey) => {
11602
11733
  const range = calculateDateRange(presetKey);
11603
11734
  setRangeStart(range.start);
@@ -11937,7 +12068,8 @@ function DateRangePicker({
11937
12068
  {
11938
12069
  ref: calendarRef,
11939
12070
  className: cn(
11940
- "absolute top-full left-0 z-50 mt-1",
12071
+ "absolute top-full z-50 mt-1",
12072
+ resolvedAlign === "end" ? "right-0" : "left-0",
11941
12073
  "bg-background border-border rounded-lg border shadow-lg"
11942
12074
  ),
11943
12075
  role: "dialog",
@@ -39264,6 +39396,6 @@ function WebsiteInputGroup({
39264
39396
  }
39265
39397
  WebsiteInputGroup.displayName = "WebsiteInputGroup";
39266
39398
 
39267
- export { AIChat, AIChatModal, AIChatTrigger, AILogoIcon, AIMessageDisplay, AITypingIndicator, AccessDeniedPage, ActionButton2 as ActionButton, ActionButtonsBar, ActiveFilters, AddContactModal, AddServiceCard, AdditionalFields, Address, AddressCard, AddressCompact, AddressDisplay, AddressForm, AddressInline, AppHeader, AppHeaderActions, AppHeaderBrand, AppHeaderDivider, AppHeaderIconButton, AppHeaderSearch, AppHeaderSection, AppHeaderTitle, AppHeaderUserMenu, AttachmentPicker, AttachmentPreview, AttachmentPreviewItem, AuthButtons, AuthDialog, BookAppointmentButton, BookingDialog, BusinessHours, BusinessHoursEditor, CSVColumnMapper, CSVFileUpload, CameraButton, CardSkeleton, CharacterCounter, CheckrIntegration, ChevronIcon, ClaimListingButton, ClaimProviderForm, CloseIcon, CommandPalette, CommandPaletteProvider, CommandPaletteTrigger, CompactCookieBanner, CompactFilterBar, CompactHeader, CompactHours, CompactProviderHeader, ConnectionStatusBadge, ConnectionStatusBar, ConnectionStatusOverlay, ConsentSwitch, ConversationHeader, ConversationListItem, ConversationListSkeleton, CookieConsentBanner, CopyrightText, CountBadge, CreateInvoiceModal, CreateReferralModal, DEFAULT_ERROR_CONFIGS, DEFAULT_LANGUAGES, DEFAULT_RADIUS_OPTIONS, DEFAULT_SOCIAL_PROVIDERS, DOTBadge, DashboardWidget, DashboardWidgetActions, DashboardWidgetDataCards, DashboardWidgetInfo, DashboardWidgetTable, DateRangeFilter, DateRangePicker, DateSeparator, DialogOverlay, DisclaimerText, DocumentDetectionOverlay, DocumentScanner, DragDropZone, DropZone, DropzoneOverlay, EditUserRoleModal, EmployeeForm, EmployeeProfileCard, EmployerContactCard, EmployerList, EmployerPricingCard, EmployerServiceModal, EmployerView, EmptyState, ErrorPage, FileManager, FilePreview, FloatingAIChat, FloatingInput, FooterLinkSection, SocialMediaLinks2 as FooterSocialLinks, HRISProviderSelector, HelpSupportPanel, HeroSearchBar, HoursSummary, InlineBookingForm, InventoryManager, InviteUserModal, InvoiceList, InvoicePaymentPage, InvoiceView, LanguageSelector, LanguageSelectorInline, LanguageSelectorNative, LegalLinks, LightboxModal, LoadMoreButton, LoadingBar, LoadingDots, LoadingOverlay, LoadingPage, LoadingSkeleton, MCPToolCallDisplay, MaintenancePage, MessageAvatar, MessageBubble, MessageComposer, MessageList, MessageStatusIcon, MessageThread, MessagingSplitView, MobileBackButton, MobileMenuButton, MobileMenuPanel, NavLinks, NewsletterForm, NotFoundPage, NotificationCenter, OfflinePage, OnboardingCompletion, OnboardingStepQuestion, OnboardingWizard, OpenStatusBadge, OrderCard, OrderConfirmation, OrderConfirmationWizard, OrderDetailSidebar, OrderList, OrderLookupForm, OrderSidebar, OrderSidebarTabs, PageHeader, PatientHeader, PaymentHistoryTable, PaymentMethodBank, PaymentMethodCard, PaymentMethodList, PendingClaimsTable, PermissionsEditor, ProductVersion, ProductVersionBadge, 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, ReportTimeRange, 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, StepIndicator, StripeBadge, StripeSecureBadge, SuggestedActions, TableOfContents, TimelineEventList, TimelineProgress, Toast, ToastContainer, ToastProvider, ToolStatusIcon, TypingIndicator, UpdateAvailableOverlay, UserMenu, VerifiedBadge2 as VerifiedBadge, WEBSITE_TYPES, WebChartReportViewer, WebcamModal, WebsiteInput, WebsiteInputGroup, bubbleVariants2 as bubbleVariants, countBadgeVariants, countChipVariants, create24HourSchedule, createDefaultSchedule, createWeekdaySchedule, defaultOrderTabs, formatAddressLines, formatAddressSingleLine, formatCityState, formatCityStateZip, formatDateLabel, formatFileSize2 as formatFileSize, formatLastSeen, generateAttachmentId, generateId, getConversationSubtitle, getConversationTitle, getFileType, getGoogleMapsSearchUrl, getGoogleMapsUrl, getToolIcon, groupMessagesByDate, headerVariants, isSameSenderGroup, isValidUrl, sendButtonVariants, useCamera, useCommandPalette, useConnectionStatus, useCookieConsent, useDocumentDetection, useDropzone, useFileUpload, useMessageScroll, useMessages, useReadReceipts, useSidebar, useToast, useTypingIndicator, validateFile, widgetVariants };
39399
+ export { AIChat, AIChatModal, AIChatTrigger, AILogoIcon, AIMessageDisplay, AITypingIndicator, AccessDeniedPage, ActionButton2 as ActionButton, ActionButtonsBar, ActiveFilters, AddContactModal, AddServiceCard, AdditionalFields, Address, AddressCard, AddressCompact, AddressDisplay, AddressForm, AddressInline, AppHeader, AppHeaderActions, AppHeaderBrand, AppHeaderDivider, AppHeaderIconButton, AppHeaderSearch, AppHeaderSection, AppHeaderTitle, AppHeaderUserMenu, AttachmentPicker, AttachmentPreview, AttachmentPreviewItem, AuthButtons, AuthDialog, BookAppointmentButton, BookingDialog, BusinessHours, BusinessHoursEditor, CSVColumnMapper, CSVFileUpload, CameraButton, CardSkeleton, CharacterCounter, CheckrIntegration, ChevronIcon, ClaimListingButton, ClaimProviderForm, CloseIcon, CommandPalette, CommandPaletteProvider, CommandPaletteTrigger, CompactCookieBanner, CompactFilterBar, CompactHeader, CompactHours, CompactProviderHeader, ConnectionStatusBadge, ConnectionStatusBar, ConnectionStatusOverlay, ConsentSwitch, ConversationHeader, ConversationListItem, ConversationListSkeleton, CookieConsentBanner, CopyrightText, CountBadge, CreateInvoiceModal, CreateReferralModal, DEFAULT_ERROR_CONFIGS, DEFAULT_LANGUAGES, DEFAULT_RADIUS_OPTIONS, DEFAULT_SOCIAL_PROVIDERS, DOTBadge, DashboardWidget, DashboardWidgetActions, DashboardWidgetDataCards, DashboardWidgetInfo, DashboardWidgetTable, DateRangeFilter, DateRangePicker, DateSeparator, DialogOverlay, DisclaimerText, DocumentDetectionOverlay, DocumentScanner, DragDropZone, DropZone, DropzoneOverlay, EditUserRoleModal, EmployeeForm, EmployeeProfileCard, EmployerContactCard, EmployerList, EmployerPricingCard, EmployerServiceModal, EmployerView, EmptyState, ErrorPage, FileManager, FilePreview, FloatingAIChat, FloatingInput, FooterLinkSection, SocialMediaLinks2 as FooterSocialLinks, HRISProviderSelector, HelpSupportPanel, HeroSearchBar, HoursSummary, InlineBookingForm, InventoryManager, InviteUserModal, InvoiceList, InvoicePaymentPage, InvoiceView, LanguageSelector, LanguageSelectorInline, LanguageSelectorNative, LegalLinks, LightboxModal, LoadMoreButton, LoadingBar, LoadingDots, LoadingOverlay, LoadingPage, LoadingSkeleton, MCPToolCallDisplay, MaintenancePage, MessageAvatar, MessageBubble, MessageComposer, MessageList, MessageStatusIcon, MessageThread, MessagingSplitView, MobileBackButton, MobileMenuButton, MobileMenuPanel, NavLinks, NewsletterForm, NotFoundPage, NotificationCenter, OfflinePage, OnboardingCompletion, OnboardingStepQuestion, OnboardingWizard, OpenStatusBadge, OrderCard, OrderConfirmation, OrderConfirmationWizard, OrderDetailSidebar, OrderList, OrderLookupForm, OrderSidebar, OrderSidebarTabs, PageHeader, PatientHeader, PaymentHistoryTable, PaymentMethodBank, PaymentMethodCard, PaymentMethodList, PendingClaimsTable, PermissionsEditor, ProductVersion, ProductVersionBadge, 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, ReportTimeRange, 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, StepIndicator, StripeBadge, StripeSecureBadge, SuggestedActions, TableOfContents, TimelineEventList, TimelineProgress, Toast, ToastContainer, ToastProvider, ToolStatusIcon, TypingIndicator, UpdateAvailableOverlay, UserMenu, VerifiedBadge2 as VerifiedBadge, WEBSITE_TYPES, WebChartReportViewer, WebcamModal, WebsiteInput, WebsiteInputGroup, bubbleVariants2 as bubbleVariants, calculateDateRange, countBadgeVariants, countChipVariants, create24HourSchedule, createDefaultSchedule, createWeekdaySchedule, defaultOrderTabs, formatAddressLines, formatAddressSingleLine, formatCityState, formatCityStateZip, formatDateLabel, formatFileSize2 as formatFileSize, formatLastSeen, generateAttachmentId, generateId, getConversationSubtitle, getConversationTitle, getDefaultPresets, getExtendedPresets, getFileType, getGoogleMapsSearchUrl, getGoogleMapsUrl, getToolIcon, groupMessagesByDate, headerVariants, isSameSenderGroup, isValidUrl, sendButtonVariants, useCamera, useCommandPalette, useConnectionStatus, useCookieConsent, useDocumentDetection, useDropzone, useFileUpload, useMessageScroll, useMessages, useReadReceipts, useSidebar, useToast, useTypingIndicator, validateFile, widgetVariants };
39268
39400
  //# sourceMappingURL=index.js.map
39269
39401
  //# sourceMappingURL=index.js.map