@chekinapp/ui 0.0.104 → 0.0.106

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
@@ -2691,7 +2691,7 @@ function useIsMounted() {
2691
2691
  }
2692
2692
 
2693
2693
  // src/hooks/use-load-more.ts
2694
- import { useEffect as useEffect8, useRef as useRef5 } from "react";
2694
+ import { useCallback as useCallback5, useEffect as useEffect8, useRef as useRef5 } from "react";
2695
2695
  function useLoadMore({
2696
2696
  hasNextPage,
2697
2697
  loading,
@@ -2700,39 +2700,56 @@ function useLoadMore({
2700
2700
  threshold = 0.1,
2701
2701
  rootMargin
2702
2702
  }) {
2703
- const loadMoreRef = useRef5(null);
2703
+ const elementRef = useRef5(null);
2704
+ const observerRef = useRef5(null);
2705
+ const handleLoadMore = useEvent(onLoadMore);
2706
+ const cleanupObserver = useCallback5(() => {
2707
+ observerRef.current?.disconnect();
2708
+ observerRef.current = null;
2709
+ }, []);
2710
+ const observeElement = useCallback5(
2711
+ (element) => {
2712
+ cleanupObserver();
2713
+ if (!element || typeof IntersectionObserver === "undefined") return;
2714
+ const observer = new IntersectionObserver(
2715
+ (entries) => {
2716
+ const entry = entries[0];
2717
+ if (!entry?.isIntersecting || !hasNextPage || loading || disabled) return;
2718
+ handleLoadMore();
2719
+ },
2720
+ { threshold, rootMargin }
2721
+ );
2722
+ observer.observe(element);
2723
+ observerRef.current = observer;
2724
+ },
2725
+ [cleanupObserver, disabled, handleLoadMore, hasNextPage, loading, rootMargin, threshold]
2726
+ );
2727
+ const loadMoreRef = useCallback5(
2728
+ (element) => {
2729
+ elementRef.current = element;
2730
+ observeElement(element);
2731
+ },
2732
+ [observeElement]
2733
+ );
2704
2734
  useEffect8(() => {
2705
- const element = loadMoreRef.current;
2706
- if (!element) return;
2707
- const observer = new IntersectionObserver(
2708
- (entries) => {
2709
- if (entries[0].isIntersecting && hasNextPage && !loading && !disabled) {
2710
- onLoadMore();
2711
- }
2712
- },
2713
- { threshold, rootMargin }
2714
- );
2715
- observer.observe(element);
2716
- return () => {
2717
- observer.disconnect();
2718
- };
2719
- }, [hasNextPage, loading, disabled, onLoadMore, threshold, rootMargin]);
2735
+ return cleanupObserver;
2736
+ }, [cleanupObserver]);
2720
2737
  return [loadMoreRef];
2721
2738
  }
2722
2739
 
2723
2740
  // src/hooks/use-modal-controls.ts
2724
- import { useCallback as useCallback5, useState as useState7 } from "react";
2741
+ import { useCallback as useCallback6, useState as useState7 } from "react";
2725
2742
  function useModalControls(initState = false, { disabled } = {}) {
2726
2743
  const [isOpen, setIsOpen] = useState7(initState);
2727
- const openModal = useCallback5(() => {
2744
+ const openModal = useCallback6(() => {
2728
2745
  if (disabled) return;
2729
2746
  setIsOpen(true);
2730
2747
  }, [disabled]);
2731
- const closeModal = useCallback5(() => {
2748
+ const closeModal = useCallback6(() => {
2732
2749
  if (disabled) return;
2733
2750
  setIsOpen(false);
2734
2751
  }, [disabled]);
2735
- const toggleModal = useCallback5(() => {
2752
+ const toggleModal = useCallback6(() => {
2736
2753
  if (disabled) return;
2737
2754
  setIsOpen((value) => !value);
2738
2755
  }, [disabled]);
@@ -2746,13 +2763,13 @@ function useModalControls(initState = false, { disabled } = {}) {
2746
2763
  }
2747
2764
 
2748
2765
  // src/hooks/use-modal-with-history-controls.ts
2749
- import { useCallback as useCallback7, useEffect as useEffect10, useRef as useRef7, useState as useState8 } from "react";
2766
+ import { useCallback as useCallback8, useEffect as useEffect10, useRef as useRef7, useState as useState8 } from "react";
2750
2767
 
2751
2768
  // src/hooks/use-timeout-ref.ts
2752
- import { useCallback as useCallback6, useEffect as useEffect9, useRef as useRef6 } from "react";
2769
+ import { useCallback as useCallback7, useEffect as useEffect9, useRef as useRef6 } from "react";
2753
2770
  function useTimeoutRef() {
2754
2771
  const timeoutIdRef = useRef6();
2755
- const resetTimeout = useCallback6(() => {
2772
+ const resetTimeout = useCallback7(() => {
2756
2773
  if (timeoutIdRef.current) {
2757
2774
  clearTimeout(timeoutIdRef.current);
2758
2775
  }
@@ -2784,7 +2801,7 @@ function useModalWithHistoryControls({
2784
2801
  const scrollRef = useRef7(0);
2785
2802
  const resetDelayRef = useRef7(false);
2786
2803
  const resetDelayTimeoutRef = useTimeoutRef();
2787
- const addHash = useCallback7(() => {
2804
+ const addHash = useCallback8(() => {
2788
2805
  const targetWindow = getWindow();
2789
2806
  const historyState = targetWindow.history.state;
2790
2807
  if (enabled && historyState?.popupKey !== key) {
@@ -2801,11 +2818,11 @@ function useModalWithHistoryControls({
2801
2818
  targetWindow.scrollTo(0, scrollRef.current);
2802
2819
  }
2803
2820
  }, [enabled, key]);
2804
- const openModal = useCallback7(() => {
2821
+ const openModal = useCallback8(() => {
2805
2822
  setIsOpen(true);
2806
2823
  addHash();
2807
2824
  }, [addHash]);
2808
- const resetHash = useCallback7(() => {
2825
+ const resetHash = useCallback8(() => {
2809
2826
  const targetWindow = getWindow();
2810
2827
  const historyState = targetWindow.history.state;
2811
2828
  if (enabled && historyState?.popupKey === key && !resetDelayRef.current) {
@@ -2816,11 +2833,11 @@ function useModalWithHistoryControls({
2816
2833
  }, 300);
2817
2834
  }
2818
2835
  }, [enabled, key, resetDelayTimeoutRef]);
2819
- const closeModal = useCallback7(() => {
2836
+ const closeModal = useCallback8(() => {
2820
2837
  setIsOpen(false);
2821
2838
  resetHash();
2822
2839
  }, [resetHash]);
2823
- const toggleModal = useCallback7(() => {
2840
+ const toggleModal = useCallback8(() => {
2824
2841
  setIsOpen(!isOpen);
2825
2842
  if (isOpen) {
2826
2843
  resetHash();
@@ -2860,7 +2877,7 @@ function useModalWithHistoryControls({
2860
2877
  }
2861
2878
 
2862
2879
  // src/hooks/use-outside-click.ts
2863
- import { useCallback as useCallback8, useEffect as useEffect11, useRef as useRef8 } from "react";
2880
+ import { useCallback as useCallback9, useEffect as useEffect11, useRef as useRef8 } from "react";
2864
2881
  function useOutsideClick({
2865
2882
  elementRef,
2866
2883
  onOutsideClick,
@@ -2870,7 +2887,7 @@ function useOutsideClick({
2870
2887
  }) {
2871
2888
  const handleOutsideClick = useRef8(onOutsideClick);
2872
2889
  handleOutsideClick.current = onOutsideClick;
2873
- const checkNestedElements = useCallback8(
2890
+ const checkNestedElements = useCallback9(
2874
2891
  (event, ownerDocument) => {
2875
2892
  const checkIsElementClickedBySelector = (selector) => {
2876
2893
  const nestedElement = ownerDocument.querySelector(selector);
@@ -2962,12 +2979,12 @@ function useScreenResize(maxWidth, matchString) {
2962
2979
  }
2963
2980
 
2964
2981
  // src/hooks/use-lock-body-scroll.ts
2965
- import { useCallback as useCallback9, useLayoutEffect as useLayoutEffect2 } from "react";
2982
+ import { useCallback as useCallback10, useLayoutEffect as useLayoutEffect2 } from "react";
2966
2983
  function useLockBodyScroll(needLock) {
2967
- const lockScroll = useCallback9(() => {
2984
+ const lockScroll = useCallback10(() => {
2968
2985
  getDocument().getElementsByTagName("body")[0].style.overflow = "hidden";
2969
2986
  }, []);
2970
- const resetScroll = useCallback9(() => {
2987
+ const resetScroll = useCallback10(() => {
2971
2988
  getDocument().getElementsByTagName("body")[0].style.overflow = "auto";
2972
2989
  }, []);
2973
2990
  useLayoutEffect2(() => {
@@ -3083,12 +3100,12 @@ function useDebounce(value, delayMs = 1e3, handleChange) {
3083
3100
  }
3084
3101
 
3085
3102
  // src/hooks/use-debounced-function.ts
3086
- import { useCallback as useCallback10, useRef as useRef10 } from "react";
3103
+ import { useCallback as useCallback11, useRef as useRef10 } from "react";
3087
3104
  function useDebouncedFunction(callback, delay) {
3088
3105
  const timerRef = useRef10();
3089
3106
  const immediateCalling = useRef10(false);
3090
3107
  const callbackFn = useEvent(callback);
3091
- const throttled = useCallback10(
3108
+ const throttled = useCallback11(
3092
3109
  (...args) => {
3093
3110
  clearTimeout(timerRef.current);
3094
3111
  if (immediateCalling.current) {
@@ -3103,7 +3120,7 @@ function useDebouncedFunction(callback, delay) {
3103
3120
  },
3104
3121
  [callbackFn, delay]
3105
3122
  );
3106
- const immediate = useCallback10(() => {
3123
+ const immediate = useCallback11(() => {
3107
3124
  immediateCalling.current = true;
3108
3125
  }, []);
3109
3126
  return { throttled, immediate };
@@ -3120,7 +3137,7 @@ function usePrevious(value, defaultValue) {
3120
3137
  }
3121
3138
 
3122
3139
  // src/hooks/use-pagination.ts
3123
- import { useCallback as useCallback11, useEffect as useEffect16, useMemo, useState as useState11 } from "react";
3140
+ import { useCallback as useCallback12, useEffect as useEffect16, useMemo, useState as useState11 } from "react";
3124
3141
 
3125
3142
  // src/storage/AbstractStorage.ts
3126
3143
  var AbstractStorage = class {
@@ -3223,14 +3240,14 @@ function usePagination(config) {
3223
3240
  return Math.min(state.page * state.pageSize, state.totalItems);
3224
3241
  }, [state.page, state.pageSize, state.totalItems]);
3225
3242
  const isEmpty = useMemo(() => state.totalItems === 0, [state.totalItems]);
3226
- const setPage = useCallback11(
3243
+ const setPage = useCallback12(
3227
3244
  (page) => {
3228
3245
  const clampedPage = Math.max(1, Math.min(page, pages || 1));
3229
3246
  setState((prev) => ({ ...prev, page: clampedPage }));
3230
3247
  },
3231
3248
  [pages]
3232
3249
  );
3233
- const setPageSize = useCallback11((pageSize) => {
3250
+ const setPageSize = useCallback12((pageSize) => {
3234
3251
  const validPageSize = Math.max(1, pageSize);
3235
3252
  setState((prev) => {
3236
3253
  const currentFirstItem = (prev.page - 1) * prev.pageSize + 1;
@@ -3242,7 +3259,7 @@ function usePagination(config) {
3242
3259
  };
3243
3260
  });
3244
3261
  }, []);
3245
- const setTotalItems = useCallback11((totalItems) => {
3262
+ const setTotalItems = useCallback12((totalItems) => {
3246
3263
  const validTotalItems = Math.max(0, totalItems);
3247
3264
  setState((prev) => {
3248
3265
  const newPages = validTotalItems > 0 ? Math.ceil(validTotalItems / prev.pageSize) : 0;
@@ -3254,19 +3271,19 @@ function usePagination(config) {
3254
3271
  };
3255
3272
  });
3256
3273
  }, []);
3257
- const nextPage = useCallback11(() => {
3274
+ const nextPage = useCallback12(() => {
3258
3275
  setPage(state.page + 1);
3259
3276
  }, [setPage, state.page]);
3260
- const previousPage = useCallback11(() => {
3277
+ const previousPage = useCallback12(() => {
3261
3278
  setPage(state.page - 1);
3262
3279
  }, [setPage, state.page]);
3263
- const goToFirstPage = useCallback11(() => {
3280
+ const goToFirstPage = useCallback12(() => {
3264
3281
  setPage(1);
3265
3282
  }, [setPage]);
3266
- const goToLastPage = useCallback11(() => {
3283
+ const goToLastPage = useCallback12(() => {
3267
3284
  setPage(pages);
3268
3285
  }, [setPage, pages]);
3269
- const reset = useCallback11(() => {
3286
+ const reset = useCallback12(() => {
3270
3287
  setState({
3271
3288
  page: defaultPage,
3272
3289
  pageSize: defaultPageSize,
@@ -3295,11 +3312,11 @@ function usePagination(config) {
3295
3312
  }
3296
3313
 
3297
3314
  // src/hooks/use-search-input.ts
3298
- import { useCallback as useCallback12, useState as useState12 } from "react";
3315
+ import { useCallback as useCallback13, useState as useState12 } from "react";
3299
3316
  function useSearchInput({ value, onChange }) {
3300
3317
  const [innerValue, setInnerValue] = useState12(value || "");
3301
3318
  const [, setDebouncedValue] = useDebounce(innerValue, 600, onChange);
3302
- const handleChange = useCallback12(
3319
+ const handleChange = useCallback13(
3303
3320
  (event) => {
3304
3321
  if (event.target.value === "") {
3305
3322
  setDebouncedValue("");
@@ -3349,7 +3366,7 @@ function useStickyStuck(ref) {
3349
3366
  }
3350
3367
 
3351
3368
  // src/hooks/use-switch-section-active.ts
3352
- import { useCallback as useCallback13, useEffect as useEffect18, useLayoutEffect as useLayoutEffect3, useState as useState14 } from "react";
3369
+ import { useCallback as useCallback14, useEffect as useEffect18, useLayoutEffect as useLayoutEffect3, useState as useState14 } from "react";
3353
3370
  function useSwitchSectionActive(preloadedSectionActive, { canToggle, onToggle, onSectionActiveChange, onTouched } = {}) {
3354
3371
  const [isSectionActive, setIsSectionActive] = useState14(false);
3355
3372
  const [preloadedIsSendingEnabled, setPreloadedIsSendingEnabled] = useState14(null);
@@ -3367,7 +3384,7 @@ function useSwitchSectionActive(preloadedSectionActive, { canToggle, onToggle, o
3367
3384
  },
3368
3385
  [preloadedSectionActive]
3369
3386
  );
3370
- const toggleIsSectionActive = useCallback13(() => {
3387
+ const toggleIsSectionActive = useCallback14(() => {
3371
3388
  const isTogglingDisabled = canToggle && !canToggle(isSectionActive);
3372
3389
  if (isTogglingDisabled) {
3373
3390
  return;
@@ -3468,13 +3485,13 @@ function useTimeout(callback, ms = 0) {
3468
3485
  }
3469
3486
 
3470
3487
  // src/hooks/use-hover.ts
3471
- import { useCallback as useCallback14, useState as useState16 } from "react";
3488
+ import { useCallback as useCallback15, useState as useState16 } from "react";
3472
3489
  function useHover() {
3473
3490
  const [isHovering, setIsHovering] = useState16(false);
3474
- const handleMouseEnter = useCallback14(() => {
3491
+ const handleMouseEnter = useCallback15(() => {
3475
3492
  setIsHovering(true);
3476
3493
  }, []);
3477
- const handleMouseLeave = useCallback14(() => {
3494
+ const handleMouseLeave = useCallback15(() => {
3478
3495
  setIsHovering(false);
3479
3496
  }, []);
3480
3497
  return {
@@ -3485,7 +3502,7 @@ function useHover() {
3485
3502
  }
3486
3503
 
3487
3504
  // src/hooks/use-key-down.ts
3488
- import { useCallback as useCallback15, useEffect as useEffect21 } from "react";
3505
+ import { useCallback as useCallback16, useEffect as useEffect21 } from "react";
3489
3506
  function useKeyDown({
3490
3507
  key,
3491
3508
  cb,
@@ -3499,7 +3516,7 @@ function useKeyDown({
3499
3516
  altKey = false
3500
3517
  } = options ?? {};
3501
3518
  const handleCallback = useEvent(cb);
3502
- const handleKeyDown = useCallback15(
3519
+ const handleKeyDown = useCallback16(
3503
3520
  (event) => {
3504
3521
  const keys = Array.isArray(key) ? key : [key];
3505
3522
  const isKeyMatch = keys.includes(event.key);
@@ -4553,7 +4570,7 @@ ExternalLink.displayName = "ExternalLink";
4553
4570
 
4554
4571
  // src/expandable-content/ExpandableContent.tsx
4555
4572
  import {
4556
- useCallback as useCallback17,
4573
+ useCallback as useCallback18,
4557
4574
  useEffect as useEffect24,
4558
4575
  useRef as useRef16,
4559
4576
  useState as useState19
@@ -4590,7 +4607,7 @@ function ExpandableContent({
4590
4607
  const [internalOpen, setInternalOpen] = useState19(defaultOpen);
4591
4608
  const isOpen = open ?? internalOpen;
4592
4609
  const isOverflowing = contentHeight > heightLimit;
4593
- const measureContent = useCallback17(() => {
4610
+ const measureContent = useCallback18(() => {
4594
4611
  const nextHeight = contentRef.current?.getBoundingClientRect().height ?? 0;
4595
4612
  setContentHeight(nextHeight);
4596
4613
  }, []);
@@ -4649,7 +4666,7 @@ function ExpandableContent({
4649
4666
  // src/file-input-button/FileInputButton.tsx
4650
4667
  import {
4651
4668
  forwardRef as forwardRef24,
4652
- useCallback as useCallback18
4669
+ useCallback as useCallback19
4653
4670
  } from "react";
4654
4671
  import { Upload } from "lucide-react";
4655
4672
  import { jsx as jsx54, jsxs as jsxs37 } from "react/jsx-runtime";
@@ -4665,7 +4682,7 @@ var FileInputButton = forwardRef24(
4665
4682
  size = "default",
4666
4683
  ...props
4667
4684
  }, ref) => {
4668
- const handleChange = useCallback18(
4685
+ const handleChange = useCallback19(
4669
4686
  (event) => {
4670
4687
  onChange?.(event);
4671
4688
  event.target.value = "";
@@ -5084,7 +5101,7 @@ function extractDigits(str) {
5084
5101
  }
5085
5102
 
5086
5103
  // src/input-otp/useInputOTP.ts
5087
- import { useCallback as useCallback19, useEffect as useEffect25, useMemo as useMemo3, useRef as useRef17, useState as useState22 } from "react";
5104
+ import { useCallback as useCallback20, useEffect as useEffect25, useMemo as useMemo3, useRef as useRef17, useState as useState22 } from "react";
5088
5105
  function useInputOTP({
5089
5106
  maxLength,
5090
5107
  value,
@@ -5109,7 +5126,7 @@ function useInputOTP({
5109
5126
  return nextSlots;
5110
5127
  }, [value, maxLength]);
5111
5128
  slotsRef.current = slots;
5112
- const emitValue = useCallback19(
5129
+ const emitValue = useCallback20(
5113
5130
  (newSlots) => {
5114
5131
  let lastFilledIndex = -1;
5115
5132
  for (let index = newSlots.length - 1; index >= 0; index -= 1) {
@@ -5135,7 +5152,7 @@ function useInputOTP({
5135
5152
  inputRefs.current[0].focus();
5136
5153
  }
5137
5154
  }, [autoFocus]);
5138
- const handleContainerFocusIn = useCallback19((event) => {
5155
+ const handleContainerFocusIn = useCallback20((event) => {
5139
5156
  clearTimeout(blurTimeoutRef.current);
5140
5157
  const target = event.target;
5141
5158
  const slotIndex = inputRefs.current.indexOf(target);
@@ -5143,7 +5160,7 @@ function useInputOTP({
5143
5160
  setActiveIndex(slotIndex);
5144
5161
  }
5145
5162
  }, []);
5146
- const handleContainerFocusOut = useCallback19(() => {
5163
+ const handleContainerFocusOut = useCallback20(() => {
5147
5164
  clearTimeout(blurTimeoutRef.current);
5148
5165
  blurTimeoutRef.current = setTimeout(() => {
5149
5166
  if (!containerRef.current?.contains(document.activeElement)) {
@@ -5152,7 +5169,7 @@ function useInputOTP({
5152
5169
  }, 0);
5153
5170
  }, []);
5154
5171
  useEffect25(() => () => clearTimeout(blurTimeoutRef.current), []);
5155
- const handleDigitInput = useCallback19(
5172
+ const handleDigitInput = useCallback20(
5156
5173
  (index, digit) => {
5157
5174
  if (!DIGIT_REGEX.test(digit)) return;
5158
5175
  const newSlots = [...slotsRef.current];
@@ -5166,7 +5183,7 @@ function useInputOTP({
5166
5183
  },
5167
5184
  [maxLength, emitValue]
5168
5185
  );
5169
- const handleDelete = useCallback19(
5186
+ const handleDelete = useCallback20(
5170
5187
  (index) => {
5171
5188
  const newSlots = [...slotsRef.current];
5172
5189
  if (newSlots[index]) {
@@ -5181,7 +5198,7 @@ function useInputOTP({
5181
5198
  },
5182
5199
  [emitValue]
5183
5200
  );
5184
- const handlePaste = useCallback19(
5201
+ const handlePaste = useCallback20(
5185
5202
  (text) => {
5186
5203
  const digits = extractDigits(text).slice(0, maxLength);
5187
5204
  if (digits.length > 0) {
@@ -5231,7 +5248,7 @@ function useInputOTP({
5231
5248
 
5232
5249
  // src/input-otp/useInputOTPSlot.ts
5233
5250
  import {
5234
- useCallback as useCallback20
5251
+ useCallback as useCallback21
5235
5252
  } from "react";
5236
5253
  function useInputOTPSlot(index) {
5237
5254
  const {
@@ -5302,13 +5319,13 @@ function useInputOTPSlot(index) {
5302
5319
  event.preventDefault();
5303
5320
  handlePaste(event.clipboardData.getData("text/plain"));
5304
5321
  };
5305
- const setInputRef = useCallback20(
5322
+ const setInputRef = useCallback21(
5306
5323
  (element) => {
5307
5324
  inputRefs.current[index] = element;
5308
5325
  },
5309
5326
  [index, inputRefs]
5310
5327
  );
5311
- const focusSlot = useCallback20(() => {
5328
+ const focusSlot = useCallback21(() => {
5312
5329
  inputRefs.current[index]?.focus();
5313
5330
  }, [index, inputRefs]);
5314
5331
  return {
@@ -6778,7 +6795,7 @@ var LegacyMultiSelect = forwardRef33(LegacyMultiSelectInner);
6778
6795
 
6779
6796
  // src/legacy-fields/select/InfinitySelect.tsx
6780
6797
  import { useVirtualizer } from "@tanstack/react-virtual";
6781
- import { useCallback as useCallback21, useEffect as useEffect26, useId as useId7, useRef as useRef19, useState as useState27 } from "react";
6798
+ import { useCallback as useCallback22, useEffect as useEffect26, useId as useId7, useRef as useRef19, useState as useState27 } from "react";
6782
6799
  import { jsx as jsx79, jsxs as jsxs50 } from "react/jsx-runtime";
6783
6800
  function LegacyInfinitySelect({
6784
6801
  label,
@@ -6802,7 +6819,7 @@ function LegacyInfinitySelect({
6802
6819
  estimateSize: () => itemHeight,
6803
6820
  overscan: 5
6804
6821
  });
6805
- const loadMore = useCallback21(() => {
6822
+ const loadMore = useCallback22(() => {
6806
6823
  if (hasNextPage && !isFetchingNextPage) {
6807
6824
  fetchNextPage();
6808
6825
  }
@@ -7172,7 +7189,7 @@ var RadioGroupItem = React25.forwardRef(({ className, size = "default", ...props
7172
7189
  RadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;
7173
7190
 
7174
7191
  // src/radio/useRadioOptions.ts
7175
- import { useCallback as useCallback22, useEffect as useEffect27, useState as useState28 } from "react";
7192
+ import { useCallback as useCallback23, useEffect as useEffect27, useState as useState28 } from "react";
7176
7193
  function getSelectedValue(options, defaultValue) {
7177
7194
  return (typeof defaultValue === "string" ? options.find((option) => option.value === defaultValue) : defaultValue) || "";
7178
7195
  }
@@ -7183,7 +7200,7 @@ function useRadioOptions({ options, defaultValue, onChange }) {
7183
7200
  useEffect27(() => {
7184
7201
  setSelectedValue(getSelectedValue(options, defaultValue));
7185
7202
  }, [defaultValue, options]);
7186
- const handleValueChange = useCallback22(
7203
+ const handleValueChange = useCallback23(
7187
7204
  (value) => {
7188
7205
  setSelectedValue(value);
7189
7206
  const selectedOption = options.find((option) => option.value === value) || "";
@@ -8848,7 +8865,7 @@ import {
8848
8865
  useEffect as useEffect30,
8849
8866
  useRef as useRef21,
8850
8867
  useState as useState32,
8851
- useCallback as useCallback24,
8868
+ useCallback as useCallback25,
8852
8869
  useImperativeHandle,
8853
8870
  useLayoutEffect as useLayoutEffect4
8854
8871
  } from "react";
@@ -8864,7 +8881,13 @@ var SIGNATURE_PROPS = {
8864
8881
  throttle: 16
8865
8882
  };
8866
8883
  var ASPECT_RATIO = 330 / 190;
8867
- function getTrimmedCanvasData(canvas, padding = 10) {
8884
+ function getCanvasPixelPadding(canvas, padding) {
8885
+ if (!Number.isFinite(padding) || padding <= 0) return 0;
8886
+ const cssWidth = canvas.getBoundingClientRect().width;
8887
+ const scale = cssWidth > 0 ? canvas.width / cssWidth : 1;
8888
+ return Math.round(padding * scale);
8889
+ }
8890
+ function getTrimmedCanvas(canvas, padding = 10) {
8868
8891
  const ctx = canvas.getContext("2d");
8869
8892
  if (!ctx) return null;
8870
8893
  const { width, height } = canvas;
@@ -8880,18 +8903,19 @@ function getTrimmedCanvasData(canvas, padding = 10) {
8880
8903
  const alpha = data[(y * width + x) * 4 + 3];
8881
8904
  if (alpha > 0) {
8882
8905
  hasContent = true;
8883
- minX = Math.min(minX, x);
8884
- minY = Math.min(minY, y);
8885
- maxX = Math.max(maxX, x);
8886
- maxY = Math.max(maxY, y);
8906
+ if (x < minX) minX = x;
8907
+ if (y < minY) minY = y;
8908
+ if (x > maxX) maxX = x;
8909
+ if (y > maxY) maxY = y;
8887
8910
  }
8888
8911
  }
8889
8912
  }
8890
8913
  if (!hasContent) return null;
8891
- minX = Math.max(0, minX - padding);
8892
- minY = Math.max(0, minY - padding);
8893
- maxX = Math.min(width - 1, maxX + padding);
8894
- maxY = Math.min(height - 1, maxY + padding);
8914
+ const pixelPadding = getCanvasPixelPadding(canvas, padding);
8915
+ minX = Math.max(0, minX - pixelPadding);
8916
+ minY = Math.max(0, minY - pixelPadding);
8917
+ maxX = Math.min(width - 1, maxX + pixelPadding);
8918
+ maxY = Math.min(height - 1, maxY + pixelPadding);
8895
8919
  const trimmedWidth = maxX - minX + 1;
8896
8920
  const trimmedHeight = maxY - minY + 1;
8897
8921
  const trimmedCanvas = document.createElement("canvas");
@@ -8910,10 +8934,7 @@ function getTrimmedCanvasData(canvas, padding = 10) {
8910
8934
  trimmedWidth,
8911
8935
  trimmedHeight
8912
8936
  );
8913
- return {
8914
- canvas: trimmedCanvas,
8915
- bounds: { x: minX, y: minY, width: trimmedWidth, height: trimmedHeight }
8916
- };
8937
+ return trimmedCanvas;
8917
8938
  }
8918
8939
  var SignatureCanvas = forwardRef41(
8919
8940
  ({ onClear, onEnd, onEnable, className, enabled }, ref) => {
@@ -8923,7 +8944,7 @@ var SignatureCanvas = forwardRef41(
8923
8944
  const containerRef = useRef21(null);
8924
8945
  const [size, setSize] = useState32({ width: 330, height: 190 });
8925
8946
  const [hasSignature, setHasSignature] = useState32(false);
8926
- const calculateSize = useCallback24((containerWidth) => {
8947
+ const calculateSize = useCallback25((containerWidth) => {
8927
8948
  const width = Math.floor(Math.min(containerWidth, 646));
8928
8949
  const height = Math.floor(width / ASPECT_RATIO);
8929
8950
  setSize((prev) => {
@@ -8957,12 +8978,12 @@ var SignatureCanvas = forwardRef41(
8957
8978
  canvas.style.width = `${size.width}px`;
8958
8979
  canvas.style.height = `${size.height}px`;
8959
8980
  }, [size, enabled]);
8960
- const handleEnd = useCallback24(() => {
8981
+ const handleEnd = useCallback25(() => {
8961
8982
  const isEmpty = canvasRef.current?.isEmpty() ?? true;
8962
8983
  setHasSignature(!isEmpty);
8963
8984
  onEnd?.();
8964
8985
  }, [onEnd]);
8965
- const handleClear = useCallback24(() => {
8986
+ const handleClear = useCallback25(() => {
8966
8987
  canvasRef.current?.clear();
8967
8988
  setHasSignature(false);
8968
8989
  onClear?.();
@@ -8978,9 +8999,9 @@ var SignatureCanvas = forwardRef41(
8978
8999
  toTrimmedDataURL: (type = "image/png", encoderOptions, padding = 10) => {
8979
9000
  const canvas = canvasRef.current?.getCanvas();
8980
9001
  if (!canvas) return "";
8981
- const trimmed = getTrimmedCanvasData(canvas, padding);
9002
+ const trimmed = getTrimmedCanvas(canvas, padding);
8982
9003
  if (!trimmed) return "";
8983
- return trimmed.canvas.toDataURL(type, encoderOptions);
9004
+ return trimmed.toDataURL(type, encoderOptions);
8984
9005
  },
8985
9006
  getCanvas: (...args) => canvasRef.current?.getCanvas(...args)
8986
9007
  }));
@@ -10085,11 +10106,11 @@ function TimelineDescription({ className, asChild, ...props }) {
10085
10106
  import { Toaster, toast as toast2 } from "sonner";
10086
10107
 
10087
10108
  // src/toaster/useUpdateToast.ts
10088
- import { useCallback as useCallback26, useRef as useRef22 } from "react";
10109
+ import { useCallback as useCallback27, useRef as useRef22 } from "react";
10089
10110
  import { toast } from "sonner";
10090
10111
  function useUpdateToast({ id }) {
10091
10112
  const toastIdRef = useRef22("");
10092
- const getToastOptions = useCallback26(
10113
+ const getToastOptions = useCallback27(
10093
10114
  (options) => ({
10094
10115
  id: toastIdRef.current,
10095
10116
  dismissible: false,
@@ -10924,7 +10945,7 @@ function VideoPlayer({
10924
10945
  import {
10925
10946
  forwardRef as forwardRef54,
10926
10947
  memo as memo7,
10927
- useCallback as useCallback28,
10948
+ useCallback as useCallback29,
10928
10949
  useImperativeHandle as useImperativeHandle2,
10929
10950
  useMemo as useMemo7,
10930
10951
  useRef as useRef25,
@@ -10983,7 +11004,7 @@ async function compressImage(image) {
10983
11004
  }
10984
11005
 
10985
11006
  // src/webcam/useErrorHandler.ts
10986
- import { useCallback as useCallback27 } from "react";
11007
+ import { useCallback as useCallback28 } from "react";
10987
11008
  import { useTranslation as useTranslation23 } from "react-i18next";
10988
11009
  import { isSafari as isSafari2 } from "react-device-detect";
10989
11010
 
@@ -11149,7 +11170,7 @@ var GET_USER_MEDIA_ERROR = "getUserMedia is not implemented in this browser";
11149
11170
  function useErrorHandler({ onError }) {
11150
11171
  const { t } = useTranslation23();
11151
11172
  const handleError = useEvent(onError);
11152
- const handleUserMediaError = useCallback27(
11173
+ const handleUserMediaError = useCallback28(
11153
11174
  (error) => {
11154
11175
  console.error(error);
11155
11176
  let errorText = "";
@@ -11279,7 +11300,7 @@ var Webcam = memo7(
11279
11300
  onError(errorDetails);
11280
11301
  }
11281
11302
  });
11282
- const handleUserMediaErrorWithFallback = useCallback28(
11303
+ const handleUserMediaErrorWithFallback = useCallback29(
11283
11304
  (error) => {
11284
11305
  if (error instanceof DOMException && error.name === "OverconstrainedError" && !useReducedConstraints && !videoConstraints) {
11285
11306
  console.warn("Camera constraints failed, trying reduced constraints:", error);
@@ -11329,7 +11350,7 @@ var Webcam = memo7(
11329
11350
  ...webcamRef.current
11330
11351
  })
11331
11352
  );
11332
- const handleUserMediaSuccess = useCallback28(
11353
+ const handleUserMediaSuccess = useCallback29(
11333
11354
  (stream) => {
11334
11355
  if (!isMobile2) {
11335
11356
  const track = stream.getVideoTracks()[0];
@@ -11420,17 +11441,17 @@ Webcam.displayName = "Webcam";
11420
11441
 
11421
11442
  // src/mobile-webcam/MobileWebcam.tsx
11422
11443
  import { Camera, ChevronLeft as ChevronLeft4 } from "lucide-react";
11423
- import { forwardRef as forwardRef55, useCallback as useCallback30 } from "react";
11444
+ import { forwardRef as forwardRef55, useCallback as useCallback31 } from "react";
11424
11445
  import { createPortal } from "react-dom";
11425
11446
  import { useTranslation as useTranslation25 } from "react-i18next";
11426
11447
 
11427
11448
  // src/mobile-webcam/DeviceCamera/DeviceCamera.tsx
11428
- import { useCallback as useCallback29 } from "react";
11449
+ import { useCallback as useCallback30 } from "react";
11429
11450
  import { useTranslation as useTranslation24 } from "react-i18next";
11430
11451
  import { jsx as jsx136, jsxs as jsxs84 } from "react/jsx-runtime";
11431
11452
  function DeviceCamera({ onChange, facingMode, className }) {
11432
11453
  const { t } = useTranslation24();
11433
- const handleNativeScreenshot = useCallback29(
11454
+ const handleNativeScreenshot = useCallback30(
11434
11455
  (event) => {
11435
11456
  const file = event.target.files?.[0];
11436
11457
  onChange(file ? compressImage(file) : void 0);
@@ -11478,7 +11499,7 @@ var MobileWebcam = forwardRef55(
11478
11499
  ({ onScreenshot, onBack, title, text, disabled, className, ...props }, ref) => {
11479
11500
  const rootElement = getDocument()?.body;
11480
11501
  const { t } = useTranslation25();
11481
- const handleNativeScreenshot = useCallback30(
11502
+ const handleNativeScreenshot = useCallback31(
11482
11503
  (photo) => onScreenshot({ isNative: true, photo }),
11483
11504
  [onScreenshot]
11484
11505
  );
@@ -12145,7 +12166,7 @@ var DashboardInput = React43.forwardRef(
12145
12166
  "div",
12146
12167
  {
12147
12168
  className: cn(
12148
- "relative block w-full min-h-[68px] max-w-[var(--dashboard-input-max-width,none)]",
12169
+ "relative block w-full max-w-[var(--field-max-width,296px)] min-h-[68px]",
12149
12170
  disabled && "cursor-not-allowed opacity-50",
12150
12171
  loading && "cursor-progress opacity-50",
12151
12172
  wrapperClassName,
@@ -12345,7 +12366,7 @@ function SelectFieldShell({
12345
12366
  ref: containerRef,
12346
12367
  onBlur,
12347
12368
  className: cn(
12348
- "relative w-full max-w-[var(--max-field-width)]",
12369
+ "relative w-full max-w-[var(--field-max-width,296px)]",
12349
12370
  disabled && "cursor-not-allowed opacity-50",
12350
12371
  loading && "cursor-progress",
12351
12372
  className
@@ -12560,7 +12581,8 @@ function SelectMenuPanel({
12560
12581
  }
12561
12582
 
12562
12583
  // src/dashboard/_select-internals/SelectSearchInput.tsx
12563
- import { jsx as jsx147 } from "react/jsx-runtime";
12584
+ import { Search as Search3 } from "lucide-react";
12585
+ import { jsx as jsx147, jsxs as jsxs94 } from "react/jsx-runtime";
12564
12586
  function SelectSearchInput({
12565
12587
  inputRef,
12566
12588
  value,
@@ -12570,26 +12592,35 @@ function SelectSearchInput({
12570
12592
  onChange,
12571
12593
  onKeyDown
12572
12594
  }) {
12573
- return /* @__PURE__ */ jsx147("div", { className: "border-b border-[#f2f4f8] px-4 pb-2 pt-3", children: /* @__PURE__ */ jsx147(
12574
- "input",
12575
- {
12576
- ref: inputRef,
12577
- type: "text",
12578
- value,
12579
- placeholder,
12580
- onChange,
12581
- onKeyDown,
12582
- autoComplete: "off",
12583
- "aria-controls": listboxId,
12584
- "aria-activedescendant": activeOptionId,
12585
- className: "m-0 box-border h-9 w-full rounded-md border border-[var(--chekin-color-gray-3)] bg-white px-3 text-[16px] font-medium text-[var(--chekin-color-brand-navy)] outline-none transition-colors placeholder:text-[var(--chekin-color-gray-1)] focus:border-[var(--chekin-color-brand-blue)]"
12586
- }
12587
- ) });
12595
+ return /* @__PURE__ */ jsx147("div", { className: "border-b border-[#f2f4f8] px-4 pb-2 pt-3", children: /* @__PURE__ */ jsxs94("div", { className: "relative", children: [
12596
+ /* @__PURE__ */ jsx147(
12597
+ Search3,
12598
+ {
12599
+ "aria-hidden": "true",
12600
+ className: "pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-[var(--chekin-color-gray-2)]"
12601
+ }
12602
+ ),
12603
+ /* @__PURE__ */ jsx147(
12604
+ "input",
12605
+ {
12606
+ ref: inputRef,
12607
+ type: "text",
12608
+ value,
12609
+ placeholder,
12610
+ onChange,
12611
+ onKeyDown,
12612
+ autoComplete: "off",
12613
+ "aria-controls": listboxId,
12614
+ "aria-activedescendant": activeOptionId,
12615
+ className: "m-0 box-border h-9 w-full rounded-md border border-[var(--chekin-color-gray-3)] bg-white px-9 text-[16px] font-medium text-[var(--chekin-color-brand-navy)] outline-none transition-colors placeholder:text-[var(--chekin-color-gray-1)] focus:border-[var(--chekin-color-brand-blue)]"
12616
+ }
12617
+ )
12618
+ ] }) });
12588
12619
  }
12589
12620
 
12590
12621
  // src/dashboard/_select-internals/SelectTrigger.tsx
12591
12622
  import { ChevronDown as ChevronDown2 } from "lucide-react";
12592
- import { jsx as jsx148, jsxs as jsxs94 } from "react/jsx-runtime";
12623
+ import { jsx as jsx148, jsxs as jsxs95 } from "react/jsx-runtime";
12593
12624
  function SelectTrigger({
12594
12625
  triggerRef,
12595
12626
  triggerId,
@@ -12610,7 +12641,7 @@ function SelectTrigger({
12610
12641
  onBlur
12611
12642
  }) {
12612
12643
  const isEmpty = !hasValue;
12613
- return /* @__PURE__ */ jsxs94(
12644
+ return /* @__PURE__ */ jsxs95(
12614
12645
  "button",
12615
12646
  {
12616
12647
  id: triggerId,
@@ -12635,7 +12666,7 @@ function SelectTrigger({
12635
12666
  ),
12636
12667
  children: [
12637
12668
  /* @__PURE__ */ jsx148("span", { id: valueId, className: "block min-w-0 flex-1 truncate text-left", children: valueLabel ?? (isOpen ? placeholder : null) }),
12638
- /* @__PURE__ */ jsxs94("span", { className: "pointer-events-none flex items-center gap-2 text-[var(--chekin-color-gray-2)]", children: [
12669
+ /* @__PURE__ */ jsxs95("span", { className: "pointer-events-none flex items-center gap-2 text-[var(--chekin-color-gray-2)]", children: [
12639
12670
  loading && /* @__PURE__ */ jsx148(ThreeDotsLoader, { height: 18, width: 18 }),
12640
12671
  /* @__PURE__ */ jsx148(
12641
12672
  ChevronDown2,
@@ -12738,7 +12769,7 @@ function useSelectSearch({
12738
12769
  }
12739
12770
 
12740
12771
  // src/dashboard/select/Select.tsx
12741
- import { jsx as jsx149, jsxs as jsxs95 } from "react/jsx-runtime";
12772
+ import { jsx as jsx149, jsxs as jsxs96 } from "react/jsx-runtime";
12742
12773
  function DashboardSelectInternal({
12743
12774
  options = [],
12744
12775
  value,
@@ -12862,7 +12893,7 @@ function DashboardSelectInternal({
12862
12893
  setIsOpen(false);
12863
12894
  }
12864
12895
  };
12865
- return /* @__PURE__ */ jsxs95(
12896
+ return /* @__PURE__ */ jsxs96(
12866
12897
  SelectFieldShell,
12867
12898
  {
12868
12899
  containerRef,
@@ -12919,7 +12950,7 @@ function DashboardSelectInternal({
12919
12950
  onClick: !isBlocked ? toggleMenu : void 0
12920
12951
  }
12921
12952
  ),
12922
- /* @__PURE__ */ jsxs95(
12953
+ /* @__PURE__ */ jsxs96(
12923
12954
  SelectMenuPanel,
12924
12955
  {
12925
12956
  isOpen,
@@ -12975,13 +13006,13 @@ var DashboardSelect = React47.forwardRef(
12975
13006
 
12976
13007
  // src/dashboard/multi-select/MultiSelect.tsx
12977
13008
  import * as React48 from "react";
12978
- import { SquareX as SquareX3 } from "lucide-react";
13009
+ import { Search as Search4, SquareX as SquareX3 } from "lucide-react";
12979
13010
  import { useTranslation as useTranslation32 } from "react-i18next";
12980
13011
 
12981
13012
  // src/dashboard/multi-select/MultiSelectChip.tsx
12982
13013
  import { SquareX as SquareX2 } from "lucide-react";
12983
13014
  import { useTranslation as useTranslation31 } from "react-i18next";
12984
- import { jsx as jsx150, jsxs as jsxs96 } from "react/jsx-runtime";
13015
+ import { jsx as jsx150, jsxs as jsxs97 } from "react/jsx-runtime";
12985
13016
  function MultiSelectChip({
12986
13017
  option,
12987
13018
  readOnly,
@@ -12989,7 +13020,7 @@ function MultiSelectChip({
12989
13020
  }) {
12990
13021
  const { t } = useTranslation31();
12991
13022
  const labelText = typeof option.label === "string" ? option.label : String(option.value);
12992
- return /* @__PURE__ */ jsxs96("span", { className: "inline-flex items-center gap-2 rounded-[4px] border border-[#acacd5] bg-[#f0f0f8] py-[2px] pl-[10px] pr-1 text-[12px] font-medium text-[var(--chekin-color-brand-navy)]", children: [
13023
+ return /* @__PURE__ */ jsxs97("span", { className: "inline-flex items-center gap-2 rounded-[4px] border border-[#acacd5] bg-[#f0f0f8] py-[2px] pl-[10px] pr-1 text-[12px] font-medium text-[var(--chekin-color-brand-navy)]", children: [
12993
13024
  /* @__PURE__ */ jsx150("span", { className: "whitespace-nowrap", children: option.label }),
12994
13025
  !readOnly && /* @__PURE__ */ jsx150(
12995
13026
  "button",
@@ -13008,7 +13039,7 @@ function MultiSelectChip({
13008
13039
  }
13009
13040
 
13010
13041
  // src/dashboard/multi-select/MultiSelect.tsx
13011
- import { jsx as jsx151, jsxs as jsxs97 } from "react/jsx-runtime";
13042
+ import { jsx as jsx151, jsxs as jsxs98 } from "react/jsx-runtime";
13012
13043
  var isValueSelected = (selected, option) => selected.some((item) => item.value === option.value);
13013
13044
  function DashboardMultiSelectInternal({
13014
13045
  options = [],
@@ -13203,7 +13234,7 @@ function DashboardMultiSelectInternal({
13203
13234
  setIsFocused(false);
13204
13235
  onBlur?.(event);
13205
13236
  };
13206
- return /* @__PURE__ */ jsxs97(
13237
+ return /* @__PURE__ */ jsxs98(
13207
13238
  SelectFieldShell,
13208
13239
  {
13209
13240
  containerRef,
@@ -13222,7 +13253,7 @@ function DashboardMultiSelectInternal({
13222
13253
  hiddenValue: selectedValues.map((item) => String(item.value)).join(","),
13223
13254
  onBlur: handleInputBlur,
13224
13255
  children: [
13225
- /* @__PURE__ */ jsxs97(
13256
+ /* @__PURE__ */ jsxs98(
13226
13257
  "div",
13227
13258
  {
13228
13259
  id: triggerId,
@@ -13255,6 +13286,13 @@ function DashboardMultiSelectInternal({
13255
13286
  String(option.value)
13256
13287
  )
13257
13288
  ),
13289
+ /* @__PURE__ */ jsx151(
13290
+ Search4,
13291
+ {
13292
+ "aria-hidden": "true",
13293
+ className: "h-4 w-4 shrink-0 text-[var(--chekin-color-gray-2)]"
13294
+ }
13295
+ ),
13258
13296
  /* @__PURE__ */ jsx151(
13259
13297
  "input",
13260
13298
  {
@@ -13284,7 +13322,7 @@ function DashboardMultiSelectInternal({
13284
13322
  "aria-activedescendant": isOpen && highlightedIndex >= 0 ? getOptionId2(highlightedIndex) : void 0
13285
13323
  }
13286
13324
  ),
13287
- /* @__PURE__ */ jsxs97("span", { className: "ml-auto flex items-center gap-2 pl-2 text-[var(--chekin-color-gray-2)]", children: [
13325
+ /* @__PURE__ */ jsxs98("span", { className: "ml-auto flex items-center gap-2 pl-2 text-[var(--chekin-color-gray-2)]", children: [
13288
13326
  loading && /* @__PURE__ */ jsx151(ThreeDotsLoader, { height: 18, width: 18 }),
13289
13327
  hasValue && !readOnly && /* @__PURE__ */ jsx151(
13290
13328
  "button",
@@ -13330,7 +13368,7 @@ function DashboardMultiSelectInternal({
13330
13368
  onClick: handleContainerClick
13331
13369
  }
13332
13370
  ),
13333
- /* @__PURE__ */ jsxs97(
13371
+ /* @__PURE__ */ jsxs98(
13334
13372
  SelectMenuPanel,
13335
13373
  {
13336
13374
  isOpen,
@@ -13343,21 +13381,30 @@ function DashboardMultiSelectInternal({
13343
13381
  className: dropdownClassName,
13344
13382
  drawerClassName,
13345
13383
  children: [
13346
- isMobile3 && /* @__PURE__ */ jsx151("div", { className: "border-b border-[#f2f4f8] px-4 pb-2 pt-3", children: /* @__PURE__ */ jsx151(
13347
- "input",
13348
- {
13349
- ref: mobileSearchInputRef,
13350
- type: "text",
13351
- value: searchValue,
13352
- placeholder: placeholder ?? "",
13353
- onChange: (event) => setSearchValue(event.target.value),
13354
- onKeyDown: handleInputKeyDown,
13355
- autoComplete: "off",
13356
- "aria-controls": listboxId,
13357
- "aria-activedescendant": highlightedIndex >= 0 ? getOptionId2(highlightedIndex) : void 0,
13358
- className: "m-0 box-border h-9 w-full rounded-md border border-[var(--chekin-color-gray-3)] bg-white px-3 text-[16px] font-medium text-[var(--chekin-color-brand-navy)] outline-none transition-colors placeholder:text-[var(--chekin-color-gray-1)] focus:border-[var(--chekin-color-brand-blue)]"
13359
- }
13360
- ) }),
13384
+ isMobile3 && /* @__PURE__ */ jsx151("div", { className: "border-b border-[#f2f4f8] px-4 pb-2 pt-3", children: /* @__PURE__ */ jsxs98("div", { className: "relative", children: [
13385
+ /* @__PURE__ */ jsx151(
13386
+ Search4,
13387
+ {
13388
+ "aria-hidden": "true",
13389
+ className: "pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-[var(--chekin-color-gray-2)]"
13390
+ }
13391
+ ),
13392
+ /* @__PURE__ */ jsx151(
13393
+ "input",
13394
+ {
13395
+ ref: mobileSearchInputRef,
13396
+ type: "text",
13397
+ value: searchValue,
13398
+ placeholder: placeholder ?? "",
13399
+ onChange: (event) => setSearchValue(event.target.value),
13400
+ onKeyDown: handleInputKeyDown,
13401
+ autoComplete: "off",
13402
+ "aria-controls": listboxId,
13403
+ "aria-activedescendant": highlightedIndex >= 0 ? getOptionId2(highlightedIndex) : void 0,
13404
+ className: "m-0 box-border h-9 w-full rounded-md border border-[var(--chekin-color-gray-3)] bg-white px-9 text-[16px] font-medium text-[var(--chekin-color-brand-navy)] outline-none transition-colors placeholder:text-[var(--chekin-color-gray-1)] focus:border-[var(--chekin-color-brand-blue)]"
13405
+ }
13406
+ )
13407
+ ] }) }),
13361
13408
  /* @__PURE__ */ jsx151(
13362
13409
  SelectMenu,
13363
13410
  {
@@ -13415,7 +13462,7 @@ import { useVirtualizer as useVirtualizer2 } from "@tanstack/react-virtual";
13415
13462
  import { useTranslation as useTranslation33 } from "react-i18next";
13416
13463
 
13417
13464
  // src/dashboard/infinite-scroll-select/InfiniteScrollList.tsx
13418
- import { jsx as jsx153, jsxs as jsxs98 } from "react/jsx-runtime";
13465
+ import { jsx as jsx153, jsxs as jsxs99 } from "react/jsx-runtime";
13419
13466
  function InfiniteScrollList({
13420
13467
  scrollRef,
13421
13468
  listboxId,
@@ -13468,10 +13515,10 @@ function InfiniteScrollList({
13468
13515
  height: `${virtualItem.size}px`,
13469
13516
  transform: `translateY(${virtualItem.start}px)`
13470
13517
  },
13471
- children: isLoaderRow ? /* @__PURE__ */ jsxs98("div", { className: "flex h-full items-center justify-center gap-2 px-4 text-[14px] font-medium text-[var(--chekin-color-gray-1)]", children: [
13518
+ children: isLoaderRow ? /* @__PURE__ */ jsxs99("div", { className: "flex h-full items-center justify-center gap-2 px-4 text-[14px] font-medium text-[var(--chekin-color-gray-1)]", children: [
13472
13519
  /* @__PURE__ */ jsx153(ThreeDotsLoader, { height: 36, width: 36 }),
13473
13520
  /* @__PURE__ */ jsx153("span", { children: loadingMoreText })
13474
- ] }) : /* @__PURE__ */ jsxs98(
13521
+ ] }) : /* @__PURE__ */ jsxs99(
13475
13522
  "button",
13476
13523
  {
13477
13524
  id: getOptionId2(virtualItem.index),
@@ -13506,7 +13553,7 @@ function InfiniteScrollList({
13506
13553
  }
13507
13554
 
13508
13555
  // src/dashboard/infinite-scroll-select/InfiniteScrollSelect.tsx
13509
- import { jsx as jsx154, jsxs as jsxs99 } from "react/jsx-runtime";
13556
+ import { jsx as jsx154, jsxs as jsxs100 } from "react/jsx-runtime";
13510
13557
  var DEFAULT_ITEM_HEIGHT = 60;
13511
13558
  var DEFAULT_LIST_HEIGHT = 322;
13512
13559
  var DEFAULT_OVERSCAN = 5;
@@ -13679,7 +13726,7 @@ function DashboardInfiniteScrollSelectInternal({
13679
13726
  const totalSize = virtualizer.getTotalSize();
13680
13727
  const measuredListHeight = Math.min(listHeight, Math.max(totalSize, itemHeight));
13681
13728
  const activeOptionId = highlightedIndex >= 0 ? getOptionId2(highlightedIndex) : void 0;
13682
- return /* @__PURE__ */ jsxs99(
13729
+ return /* @__PURE__ */ jsxs100(
13683
13730
  SelectFieldShell,
13684
13731
  {
13685
13732
  containerRef,
@@ -13736,7 +13783,7 @@ function DashboardInfiniteScrollSelectInternal({
13736
13783
  onClick: !isBlocked ? toggleMenu : void 0
13737
13784
  }
13738
13785
  ),
13739
- /* @__PURE__ */ jsxs99(
13786
+ /* @__PURE__ */ jsxs100(
13740
13787
  SelectMenuPanel,
13741
13788
  {
13742
13789
  isOpen,
@@ -13758,7 +13805,7 @@ function DashboardInfiniteScrollSelectInternal({
13758
13805
  onKeyDown: handleSearchKeyDown
13759
13806
  }
13760
13807
  ),
13761
- filteredOptions.length === 0 && isLoadingMore ? /* @__PURE__ */ jsxs99("div", { className: "flex items-center justify-center gap-2 px-4 py-[20px] text-[14px] font-medium text-[var(--chekin-color-gray-1)]", children: [
13808
+ filteredOptions.length === 0 && isLoadingMore ? /* @__PURE__ */ jsxs100("div", { className: "flex items-center justify-center gap-2 px-4 py-[20px] text-[14px] font-medium text-[var(--chekin-color-gray-1)]", children: [
13762
13809
  /* @__PURE__ */ jsx154(ThreeDotsLoader, { height: 18, width: 18 }),
13763
13810
  /* @__PURE__ */ jsx154("span", { children: resolvedLoadingMoreText })
13764
13811
  ] }) : filteredOptions.length === 0 ? /* @__PURE__ */ jsx154("div", { className: "px-4 py-[20px] text-left text-[16px] text-[var(--chekin-color-brand-navy)]", children: emptyMessage ?? t("no_options") }) : /* @__PURE__ */ jsx154(
@@ -13797,7 +13844,7 @@ var DashboardInfiniteScrollSelect = React50.forwardRef(
13797
13844
  // src/dashboard/textarea/Textarea.tsx
13798
13845
  import * as React51 from "react";
13799
13846
  import { useTranslation as useTranslation34 } from "react-i18next";
13800
- import { jsx as jsx155, jsxs as jsxs100 } from "react/jsx-runtime";
13847
+ import { jsx as jsx155, jsxs as jsxs101 } from "react/jsx-runtime";
13801
13848
  var LINE_HEIGHT = 20;
13802
13849
  var VERTICAL_PADDING = 32;
13803
13850
  function getEmptyState(empty, value, defaultValue) {
@@ -13854,17 +13901,17 @@ var DashboardTextarea = React51.forwardRef(
13854
13901
  resize();
13855
13902
  onInput?.(event);
13856
13903
  };
13857
- return /* @__PURE__ */ jsxs100(
13904
+ return /* @__PURE__ */ jsxs101(
13858
13905
  "div",
13859
13906
  {
13860
13907
  className: cn(
13861
- "relative block min-h-[88px] w-full",
13908
+ "relative block min-h-[88px] w-full max-w-[var(--field-max-width,296px)]",
13862
13909
  isBlocked && "cursor-not-allowed opacity-50",
13863
13910
  loading && "cursor-progress opacity-50",
13864
13911
  className
13865
13912
  ),
13866
13913
  children: [
13867
- label && /* @__PURE__ */ jsxs100(
13914
+ label && /* @__PURE__ */ jsxs101(
13868
13915
  "label",
13869
13916
  {
13870
13917
  htmlFor: textareaId,
@@ -14347,7 +14394,7 @@ function useDatePickerWheel({
14347
14394
  }
14348
14395
 
14349
14396
  // src/airbnb-fields/datepicker/DatePickerWheelColumn.tsx
14350
- import { jsx as jsx156, jsxs as jsxs101 } from "react/jsx-runtime";
14397
+ import { jsx as jsx156, jsxs as jsxs102 } from "react/jsx-runtime";
14351
14398
  var spacerHeight = DATE_PICKER_OPTION_HEIGHT * DATE_PICKER_WHEEL_BUFFER_OPTIONS;
14352
14399
  function AirbnbDatePickerWheelColumn({
14353
14400
  id,
@@ -14361,7 +14408,7 @@ function AirbnbDatePickerWheelColumn({
14361
14408
  onOptionSelect,
14362
14409
  column
14363
14410
  }) {
14364
- return /* @__PURE__ */ jsx156("div", { className: "relative z-10 min-w-0", children: /* @__PURE__ */ jsxs101(
14411
+ return /* @__PURE__ */ jsx156("div", { className: "relative z-10 min-w-0", children: /* @__PURE__ */ jsxs102(
14365
14412
  "div",
14366
14413
  {
14367
14414
  id,
@@ -14408,7 +14455,7 @@ function AirbnbDatePickerWheelColumn({
14408
14455
  }
14409
14456
 
14410
14457
  // src/airbnb-fields/datepicker/DatePickerContent.tsx
14411
- import { jsx as jsx157, jsxs as jsxs102 } from "react/jsx-runtime";
14458
+ import { jsx as jsx157, jsxs as jsxs103 } from "react/jsx-runtime";
14412
14459
  function AirbnbDatePickerBody({
14413
14460
  baseId,
14414
14461
  label,
@@ -14430,8 +14477,8 @@ function AirbnbDatePickerBody({
14430
14477
  onOptionSelect,
14431
14478
  onDone
14432
14479
  }) {
14433
- return /* @__PURE__ */ jsxs102("div", { className: "px-6 pb-4 pt-1 bg-white", children: [
14434
- /* @__PURE__ */ jsxs102("div", { className: "relative overflow-hidden rounded-[24px]", children: [
14480
+ return /* @__PURE__ */ jsxs103("div", { className: "px-6 pb-4 pt-1 bg-white", children: [
14481
+ /* @__PURE__ */ jsxs103("div", { className: "relative overflow-hidden rounded-[24px]", children: [
14435
14482
  /* @__PURE__ */ jsx157("div", { className: "pointer-events-none absolute inset-x-0 top-0 z-20 h-16 bg-gradient-to-b from-white via-white/80 to-transparent" }),
14436
14483
  /* @__PURE__ */ jsx157("div", { className: "pointer-events-none absolute inset-x-0 bottom-0 z-20 h-16 bg-gradient-to-t from-white via-white/80 to-transparent" }),
14437
14484
  /* @__PURE__ */ jsx157(
@@ -14441,7 +14488,7 @@ function AirbnbDatePickerBody({
14441
14488
  className: "pointer-events-none absolute inset-x-0 top-1/2 z-0 h-8 -translate-y-1/2 rounded-[12px] bg-black/[0.04]"
14442
14489
  }
14443
14490
  ),
14444
- /* @__PURE__ */ jsxs102("div", { className: "relative grid grid-cols-[1.35fr_0.7fr_1fr] gap-1", children: [
14491
+ /* @__PURE__ */ jsxs103("div", { className: "relative grid grid-cols-[1.35fr_0.7fr_1fr] gap-1", children: [
14445
14492
  /* @__PURE__ */ jsx157(
14446
14493
  AirbnbDatePickerWheelColumn,
14447
14494
  {
@@ -14542,7 +14589,7 @@ function AirbnbDatePickerContent({
14542
14589
  }
14543
14590
  );
14544
14591
  if (isMobile3) {
14545
- return /* @__PURE__ */ jsx157(Drawer, { open, onOpenChange, children: /* @__PURE__ */ jsxs102(
14592
+ return /* @__PURE__ */ jsx157(Drawer, { open, onOpenChange, children: /* @__PURE__ */ jsxs103(
14546
14593
  DrawerContent,
14547
14594
  {
14548
14595
  onClose: () => onOpenChange(false),
@@ -14555,7 +14602,7 @@ function AirbnbDatePickerContent({
14555
14602
  }
14556
14603
  ) });
14557
14604
  }
14558
- return /* @__PURE__ */ jsx157(Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxs102(
14605
+ return /* @__PURE__ */ jsx157(Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxs103(
14559
14606
  DialogContent,
14560
14607
  {
14561
14608
  className: "max-w-[520px] rounded-[28px] border-0 p-0 shadow-xl",
@@ -14570,7 +14617,7 @@ function AirbnbDatePickerContent({
14570
14617
  }
14571
14618
 
14572
14619
  // src/dashboard/datepicker/Datepicker.tsx
14573
- import { jsx as jsx158, jsxs as jsxs103 } from "react/jsx-runtime";
14620
+ import { jsx as jsx158, jsxs as jsxs104 } from "react/jsx-runtime";
14574
14621
  var MONTHS_IN_YEAR2 = 12;
14575
14622
  function getMonthLabels2(locale) {
14576
14623
  const formatter = new Intl.DateTimeFormat(locale, { month: "long" });
@@ -14896,15 +14943,15 @@ var DashboardDatepicker = React53.forwardRef(
14896
14943
  {
14897
14944
  ref: containerRef,
14898
14945
  className: cn(
14899
- "relative w-full max-w-[var(--max-field-width)]",
14946
+ "relative w-full max-w-[var(--field-max-width,296px)]",
14900
14947
  disabled && "cursor-not-allowed opacity-50",
14901
14948
  loading && "cursor-progress",
14902
14949
  className
14903
14950
  ),
14904
14951
  style: wrapperWidth ? { width: wrapperWidth } : void 0,
14905
- children: /* @__PURE__ */ jsxs103("div", { className: "relative min-h-[68px] w-full", children: [
14906
- /* @__PURE__ */ jsxs103("div", { className: "relative w-full", children: [
14907
- isMobile3 ? /* @__PURE__ */ jsxs103(
14952
+ children: /* @__PURE__ */ jsxs104("div", { className: "relative min-h-[68px] w-full", children: [
14953
+ /* @__PURE__ */ jsxs104("div", { className: "relative w-full", children: [
14954
+ isMobile3 ? /* @__PURE__ */ jsxs104(
14908
14955
  "button",
14909
14956
  {
14910
14957
  ref: mobileTriggerRef,
@@ -14924,7 +14971,7 @@ var DashboardDatepicker = React53.forwardRef(
14924
14971
  ),
14925
14972
  children: [
14926
14973
  /* @__PURE__ */ jsx158("span", { className: "block min-w-0 flex-1 truncate text-left", children: triggerText ?? (isWheelOpen ? mobilePlaceholder : null) }),
14927
- /* @__PURE__ */ jsxs103("span", { className: "pointer-events-none flex items-center gap-2 text-[var(--chekin-color-gray-2)]", children: [
14974
+ /* @__PURE__ */ jsxs104("span", { className: "pointer-events-none flex items-center gap-2 text-[var(--chekin-color-gray-2)]", children: [
14928
14975
  loading && /* @__PURE__ */ jsx158(ThreeDotsLoader, { height: 18, width: 18 }),
14929
14976
  /* @__PURE__ */ jsx158(
14930
14977
  ChevronDown3,
@@ -14939,7 +14986,7 @@ var DashboardDatepicker = React53.forwardRef(
14939
14986
  ] })
14940
14987
  ]
14941
14988
  }
14942
- ) : /* @__PURE__ */ jsxs103(
14989
+ ) : /* @__PURE__ */ jsxs104(
14943
14990
  "div",
14944
14991
  {
14945
14992
  className: cn(
@@ -14968,7 +15015,7 @@ var DashboardDatepicker = React53.forwardRef(
14968
15015
  className: subInputClass
14969
15016
  }
14970
15017
  ) }),
14971
- /* @__PURE__ */ jsxs103("div", { className: "relative flex h-full min-w-0 items-center gap-1 border-x border-[var(--chekin-color-gray-3)] px-2 sm:px-3", children: [
15018
+ /* @__PURE__ */ jsxs104("div", { className: "relative flex h-full min-w-0 items-center gap-1 border-x border-[var(--chekin-color-gray-3)] px-2 sm:px-3", children: [
14972
15019
  /* @__PURE__ */ jsx158(
14973
15020
  "input",
14974
15021
  {
@@ -15029,7 +15076,7 @@ var DashboardDatepicker = React53.forwardRef(
15029
15076
  }
15030
15077
  )
15031
15078
  ] }),
15032
- /* @__PURE__ */ jsxs103("div", { className: "flex h-full min-w-0 items-center px-2 sm:px-4", children: [
15079
+ /* @__PURE__ */ jsxs104("div", { className: "flex h-full min-w-0 items-center px-2 sm:px-4", children: [
15033
15080
  /* @__PURE__ */ jsx158(
15034
15081
  "input",
15035
15082
  {
@@ -15349,7 +15396,7 @@ function resolveRangeSelection({
15349
15396
 
15350
15397
  // src/dashboard/date-range-picker/components/DateRangeInputs.tsx
15351
15398
  import { CalendarDays, SquareX as SquareX4 } from "lucide-react";
15352
- import { jsx as jsx159, jsxs as jsxs104 } from "react/jsx-runtime";
15399
+ import { jsx as jsx159, jsxs as jsxs105 } from "react/jsx-runtime";
15353
15400
  var DEFAULT_PLACEHOLDER = "00-00-0000";
15354
15401
  var inputBaseClass = "m-0 box-border h-full w-full min-w-0 border-0 bg-transparent text-[16px] font-medium leading-5 text-[var(--chekin-color-brand-navy)] outline-none placeholder:text-[var(--chekin-color-gray-1)]";
15355
15402
  var iconButtonClass = "flex h-5 w-5 items-center justify-center rounded-[3px] border-0 bg-transparent p-0 text-[#9696b9] outline-none hover:shadow-[0_3px_3px_#0f477734] disabled:cursor-not-allowed";
@@ -15391,7 +15438,7 @@ function DateRangeInputs({
15391
15438
  isBlocked && "cursor-not-allowed",
15392
15439
  loading && "cursor-progress"
15393
15440
  );
15394
- return /* @__PURE__ */ jsxs104(
15441
+ return /* @__PURE__ */ jsxs105(
15395
15442
  "div",
15396
15443
  {
15397
15444
  className: cn(
@@ -15459,7 +15506,7 @@ function DateRangeInputs({
15459
15506
  )
15460
15507
  }
15461
15508
  ),
15462
- /* @__PURE__ */ jsxs104("span", { className: "ml-auto flex shrink-0 items-center gap-2 pl-2 text-[var(--chekin-color-gray-2)]", children: [
15509
+ /* @__PURE__ */ jsxs105("span", { className: "ml-auto flex shrink-0 items-center gap-2 pl-2 text-[var(--chekin-color-gray-2)]", children: [
15463
15510
  loading && /* @__PURE__ */ jsx159(ThreeDotsLoader, { height: 18, width: 18 }),
15464
15511
  !readOnly && !hideClearDates && !isEmpty && /* @__PURE__ */ jsx159(
15465
15512
  "button",
@@ -15533,7 +15580,7 @@ function DateRangeCalendar({
15533
15580
  }
15534
15581
 
15535
15582
  // src/dashboard/date-range-picker/components/DateRangePopover.tsx
15536
- import { jsx as jsx161, jsxs as jsxs105 } from "react/jsx-runtime";
15583
+ import { jsx as jsx161, jsxs as jsxs106 } from "react/jsx-runtime";
15537
15584
  function DateRangePopover({
15538
15585
  isOpen,
15539
15586
  isMobile: isMobile3,
@@ -15552,7 +15599,7 @@ function DateRangePopover({
15552
15599
  onOpenChange: (next) => {
15553
15600
  if (!next) onClose();
15554
15601
  },
15555
- children: /* @__PURE__ */ jsxs105(
15602
+ children: /* @__PURE__ */ jsxs106(
15556
15603
  DrawerContent,
15557
15604
  {
15558
15605
  onClose,
@@ -15581,7 +15628,7 @@ function DateRangePopover({
15581
15628
  }
15582
15629
 
15583
15630
  // src/dashboard/date-range-picker/DateRangePicker.tsx
15584
- import { jsx as jsx162, jsxs as jsxs106 } from "react/jsx-runtime";
15631
+ import { jsx as jsx162, jsxs as jsxs107 } from "react/jsx-runtime";
15585
15632
  var DashboardDateRangePicker = React57.forwardRef(function DashboardDateRangePicker2({
15586
15633
  label,
15587
15634
  value: externalValue,
@@ -15747,14 +15794,14 @@ var DashboardDateRangePicker = React57.forwardRef(function DashboardDateRangePic
15747
15794
  {
15748
15795
  ref: containerRef,
15749
15796
  className: cn(
15750
- "relative w-full max-w-[var(--max-field-width)]",
15797
+ "relative w-full max-w-[var(--field-max-width,296px)]",
15751
15798
  disabled && "cursor-not-allowed opacity-50",
15752
15799
  loading && "cursor-progress",
15753
15800
  className
15754
15801
  ),
15755
15802
  style: wrapperWidth ? { width: wrapperWidth } : void 0,
15756
- children: /* @__PURE__ */ jsxs106("div", { className: "relative min-h-[68px] w-full", children: [
15757
- /* @__PURE__ */ jsxs106("div", { className: "relative w-full", children: [
15803
+ children: /* @__PURE__ */ jsxs107("div", { className: "relative min-h-[68px] w-full", children: [
15804
+ /* @__PURE__ */ jsxs107("div", { className: "relative w-full", children: [
15758
15805
  /* @__PURE__ */ jsx162(
15759
15806
  DateRangeInputs,
15760
15807
  {
@@ -16037,7 +16084,7 @@ var DashboardTimePicker = React59.forwardRef(
16037
16084
  import * as React60 from "react";
16038
16085
  import { Download, Paperclip, SquareX as SquareX5 } from "lucide-react";
16039
16086
  import { useTranslation as useTranslation38 } from "react-i18next";
16040
- import { jsx as jsx164, jsxs as jsxs107 } from "react/jsx-runtime";
16087
+ import { jsx as jsx164, jsxs as jsxs108 } from "react/jsx-runtime";
16041
16088
  function defaultDownload(url) {
16042
16089
  window.open(url, "_blank", "noopener,noreferrer");
16043
16090
  }
@@ -16095,12 +16142,12 @@ var DashboardFileInput = React60.forwardRef(
16095
16142
  event.stopPropagation();
16096
16143
  if (isUrl) onDownload(value);
16097
16144
  };
16098
- return /* @__PURE__ */ jsxs107(
16145
+ return /* @__PURE__ */ jsxs108(
16099
16146
  "label",
16100
16147
  {
16101
16148
  htmlFor: inputId,
16102
16149
  className: cn(
16103
- "relative block w-full max-w-[var(--max-field-width)] cursor-pointer text-left",
16150
+ "relative block w-full max-w-[var(--field-max-width,296px)] cursor-pointer text-left",
16104
16151
  (disabled || readOnly) && "cursor-not-allowed",
16105
16152
  loading && "cursor-progress",
16106
16153
  disabled && "opacity-50",
@@ -16124,9 +16171,9 @@ var DashboardFileInput = React60.forwardRef(
16124
16171
  "aria-invalid": isInvalid
16125
16172
  }
16126
16173
  ),
16127
- /* @__PURE__ */ jsxs107("div", { className: "relative min-h-[68px] w-full", children: [
16128
- /* @__PURE__ */ jsxs107("div", { className: "relative w-full", children: [
16129
- /* @__PURE__ */ jsxs107(
16174
+ /* @__PURE__ */ jsxs108("div", { className: "relative min-h-[68px] w-full", children: [
16175
+ /* @__PURE__ */ jsxs108("div", { className: "relative w-full", children: [
16176
+ /* @__PURE__ */ jsxs108(
16130
16177
  "div",
16131
16178
  {
16132
16179
  className: cn(
@@ -16134,13 +16181,13 @@ var DashboardFileInput = React60.forwardRef(
16134
16181
  isEmpty && "bg-[var(--chekin-color-surface-input-empty)]"
16135
16182
  ),
16136
16183
  children: [
16137
- hasFileChip ? /* @__PURE__ */ jsxs107(
16184
+ hasFileChip ? /* @__PURE__ */ jsxs108(
16138
16185
  "div",
16139
16186
  {
16140
16187
  className: "inline-flex h-6 max-w-[85%] items-center rounded-[4px] border border-[#acacd5] bg-[#f0f0f8] pl-[10px] pr-1",
16141
16188
  onClick: (event) => event.preventDefault(),
16142
16189
  children: [
16143
- isUrl ? /* @__PURE__ */ jsxs107(
16190
+ isUrl ? /* @__PURE__ */ jsxs108(
16144
16191
  "button",
16145
16192
  {
16146
16193
  type: "button",
@@ -16166,7 +16213,7 @@ var DashboardFileInput = React60.forwardRef(
16166
16213
  ]
16167
16214
  }
16168
16215
  ) : /* @__PURE__ */ jsx164("span", { className: "block min-w-0 flex-1 truncate text-left text-[var(--chekin-color-gray-1)]", children: placeholder ?? "" }),
16169
- /* @__PURE__ */ jsxs107("span", { className: "ml-auto flex items-center gap-2 text-[var(--chekin-color-gray-2)]", children: [
16216
+ /* @__PURE__ */ jsxs108("span", { className: "ml-auto flex items-center gap-2 text-[var(--chekin-color-gray-2)]", children: [
16170
16217
  loading && /* @__PURE__ */ jsx164(ThreeDotsLoader, { height: 18, width: 18 }),
16171
16218
  /* @__PURE__ */ jsx164(Paperclip, { size: 20 })
16172
16219
  ] })
@@ -16210,7 +16257,7 @@ var DashboardFileInput = React60.forwardRef(
16210
16257
 
16211
16258
  // src/dashboard/select-icons-box/SelectIconsBox.tsx
16212
16259
  import * as React61 from "react";
16213
- import { jsx as jsx165, jsxs as jsxs108 } from "react/jsx-runtime";
16260
+ import { jsx as jsx165, jsxs as jsxs109 } from "react/jsx-runtime";
16214
16261
  function DashboardSelectIconsBox({
16215
16262
  children,
16216
16263
  icons,
@@ -16246,7 +16293,7 @@ function DashboardSelectIconsBox({
16246
16293
  onSelect(iconName);
16247
16294
  setOpen(false);
16248
16295
  };
16249
- return /* @__PURE__ */ jsxs108(
16296
+ return /* @__PURE__ */ jsxs109(
16250
16297
  "div",
16251
16298
  {
16252
16299
  ref: containerRef,
@@ -16346,13 +16393,13 @@ function getErrorMessage(error) {
16346
16393
 
16347
16394
  // src/lib/toastResponseError.tsx
16348
16395
  import i18next from "i18next";
16349
- import { jsx as jsx166, jsxs as jsxs109 } from "react/jsx-runtime";
16396
+ import { jsx as jsx166, jsxs as jsxs110 } from "react/jsx-runtime";
16350
16397
  function addSupportEmailToMessage(message, prefixText) {
16351
16398
  if (typeof message !== "string") {
16352
16399
  return message;
16353
16400
  }
16354
16401
  const builtMessage = `${prefixText ? `${prefixText} ` : ""}${message}`;
16355
- return /* @__PURE__ */ jsxs109("div", { children: [
16402
+ return /* @__PURE__ */ jsxs110("div", { children: [
16356
16403
  /* @__PURE__ */ jsx166("div", { children: builtMessage }),
16357
16404
  i18next.t("reach_us_at_email")
16358
16405
  ] });
@@ -16369,11 +16416,11 @@ function toastResponseError(error, options = {}) {
16369
16416
 
16370
16417
  // src/legacy-fields/textarea/Textarea.tsx
16371
16418
  import { forwardRef as forwardRef68, useId as useId15 } from "react";
16372
- import { jsx as jsx167, jsxs as jsxs110 } from "react/jsx-runtime";
16419
+ import { jsx as jsx167, jsxs as jsxs111 } from "react/jsx-runtime";
16373
16420
  var LegacyTextarea = forwardRef68(
16374
16421
  ({ className, textareaClassName, label, disabled, name, invalid, ...textareaProps }, ref) => {
16375
16422
  const inputId = useId15();
16376
- return /* @__PURE__ */ jsxs110("div", { className: cn("relative", className), children: [
16423
+ return /* @__PURE__ */ jsxs111("div", { className: cn("relative", className), children: [
16377
16424
  /* @__PURE__ */ jsx167(
16378
16425
  "textarea",
16379
16426
  {
@@ -16415,7 +16462,7 @@ import { Calendar as Calendar2 } from "lucide-react";
16415
16462
  import * as React62 from "react";
16416
16463
  import { Loader2 as Loader24 } from "lucide-react";
16417
16464
  import { useTranslation as useTranslation39 } from "react-i18next";
16418
- import { Fragment as Fragment17, jsx as jsx168, jsxs as jsxs111 } from "react/jsx-runtime";
16465
+ import { Fragment as Fragment17, jsx as jsx168, jsxs as jsxs112 } from "react/jsx-runtime";
16419
16466
  var AirbnbFieldTrigger = React62.forwardRef(
16420
16467
  ({
16421
16468
  as = "button",
@@ -16453,9 +16500,9 @@ var AirbnbFieldTrigger = React62.forwardRef(
16453
16500
  const optionalLabel = optional ? typeof optional === "string" ? optional : t("optional") : void 0;
16454
16501
  const visibleLabelText = labelText ?? label;
16455
16502
  const hasLabelMeta = Boolean(optionalLabel) || Boolean(tooltip);
16456
- const resolvedLabelText = visibleLabelText && hasLabelMeta ? /* @__PURE__ */ jsxs111("span", { className: "inline-flex max-w-full items-center gap-1.5 align-middle", children: [
16503
+ const resolvedLabelText = visibleLabelText && hasLabelMeta ? /* @__PURE__ */ jsxs112("span", { className: "inline-flex max-w-full items-center gap-1.5 align-middle", children: [
16457
16504
  /* @__PURE__ */ jsx168("span", { className: "min-w-0 truncate", children: visibleLabelText }),
16458
- optionalLabel && /* @__PURE__ */ jsxs111("span", { className: "shrink-0 text-[12px] relative top-[1px] font-normal leading-4 text-current opacity-70", children: [
16505
+ optionalLabel && /* @__PURE__ */ jsxs112("span", { className: "shrink-0 text-[12px] relative top-[1px] font-normal leading-4 text-current opacity-70", children: [
16459
16506
  "(",
16460
16507
  optionalLabel,
16461
16508
  ")"
@@ -16476,7 +16523,7 @@ var AirbnbFieldTrigger = React62.forwardRef(
16476
16523
  const hasInvalidState = Boolean(error);
16477
16524
  const errorMessage = typeof error === "string" ? error : void 0;
16478
16525
  const isBlocked = Boolean(disabled) || Boolean(loading);
16479
- const resolvedTrailingAdornment = loading || trailingAdornment ? /* @__PURE__ */ jsxs111("span", { className: "flex items-center gap-2", children: [
16526
+ const resolvedTrailingAdornment = loading || trailingAdornment ? /* @__PURE__ */ jsxs112("span", { className: "flex items-center gap-2", children: [
16480
16527
  trailingAdornment,
16481
16528
  loading && /* @__PURE__ */ jsx168(
16482
16529
  Loader24,
@@ -16494,8 +16541,8 @@ var AirbnbFieldTrigger = React62.forwardRef(
16494
16541
  disabled ? "cursor-not-allowed opacity-50" : loading ? "cursor-progress" : isAirbnbVariant ? "cursor-pointer" : "cursor-text",
16495
16542
  className
16496
16543
  );
16497
- const sharedContent = /* @__PURE__ */ jsxs111(Fragment17, { children: [
16498
- /* @__PURE__ */ jsxs111(
16544
+ const sharedContent = /* @__PURE__ */ jsxs112(Fragment17, { children: [
16545
+ /* @__PURE__ */ jsxs112(
16499
16546
  "span",
16500
16547
  {
16501
16548
  className: cn(
@@ -16544,7 +16591,7 @@ var AirbnbFieldTrigger = React62.forwardRef(
16544
16591
  }
16545
16592
  )
16546
16593
  ] });
16547
- return /* @__PURE__ */ jsxs111("div", { className: "w-full", children: [
16594
+ return /* @__PURE__ */ jsxs112("div", { className: "w-full", children: [
16548
16595
  topLabel && /* @__PURE__ */ jsx168("p", { className: "mb-3 text-[16px] font-semibold leading-5 text-[#222222]", children: topLabel }),
16549
16596
  as === "button" ? /* @__PURE__ */ jsx168(
16550
16597
  "button",
@@ -16587,7 +16634,7 @@ var AirbnbFieldTrigger = React62.forwardRef(
16587
16634
  AirbnbFieldTrigger.displayName = "AirbnbFieldTrigger";
16588
16635
 
16589
16636
  // src/airbnb-fields/datepicker/DatePicker.tsx
16590
- import { jsx as jsx169, jsxs as jsxs112 } from "react/jsx-runtime";
16637
+ import { jsx as jsx169, jsxs as jsxs113 } from "react/jsx-runtime";
16591
16638
  var DEFAULT_MIN_DATE = new Date(1920, 0, 1);
16592
16639
  var AirbnbDatePicker = React63.forwardRef(
16593
16640
  ({
@@ -16704,7 +16751,7 @@ var AirbnbDatePicker = React63.forwardRef(
16704
16751
  setIsOpen(false);
16705
16752
  }
16706
16753
  }, [isBlocked]);
16707
- return /* @__PURE__ */ jsxs112("div", { className: cn("relative w-full max-w-[var(--max-field-width)]", className), children: [
16754
+ return /* @__PURE__ */ jsxs113("div", { className: cn("relative w-full max-w-[var(--max-field-width)]", className), children: [
16708
16755
  name && /* @__PURE__ */ jsx169(
16709
16756
  "input",
16710
16757
  {
@@ -16936,7 +16983,7 @@ import { ChevronDown as ChevronDown5 } from "lucide-react";
16936
16983
  import * as React69 from "react";
16937
16984
 
16938
16985
  // src/airbnb-fields/select/SelectDesktopMenu.tsx
16939
- import { jsx as jsx171, jsxs as jsxs113 } from "react/jsx-runtime";
16986
+ import { jsx as jsx171, jsxs as jsxs114 } from "react/jsx-runtime";
16940
16987
  function AirbnbSelectDesktopMenu({
16941
16988
  id,
16942
16989
  options,
@@ -16955,7 +17002,7 @@ function AirbnbSelectDesktopMenu({
16955
17002
  noOptionsMessage
16956
17003
  }) {
16957
17004
  const emptyMessage = noOptionsMessage?.();
16958
- return /* @__PURE__ */ jsxs113(
17005
+ return /* @__PURE__ */ jsxs114(
16959
17006
  "div",
16960
17007
  {
16961
17008
  id,
@@ -17131,7 +17178,7 @@ function getMobileOptionStyles(index, scrollTop) {
17131
17178
  }
17132
17179
 
17133
17180
  // src/airbnb-fields/select/SelectMobileWheel.tsx
17134
- import { jsx as jsx173, jsxs as jsxs114 } from "react/jsx-runtime";
17181
+ import { jsx as jsx173, jsxs as jsxs115 } from "react/jsx-runtime";
17135
17182
  function AirbnbSelectMobileWheel({
17136
17183
  id,
17137
17184
  options,
@@ -17150,7 +17197,7 @@ function AirbnbSelectMobileWheel({
17150
17197
  }) {
17151
17198
  const spacerHeight2 = getWheelSpacerHeight();
17152
17199
  const emptyMessage = noOptionsMessage?.();
17153
- return /* @__PURE__ */ jsxs114(
17200
+ return /* @__PURE__ */ jsxs115(
17154
17201
  "div",
17155
17202
  {
17156
17203
  id,
@@ -17175,7 +17222,7 @@ function AirbnbSelectMobileWheel({
17175
17222
  )
17176
17223
  }
17177
17224
  ),
17178
- /* @__PURE__ */ jsxs114(
17225
+ /* @__PURE__ */ jsxs115(
17179
17226
  "div",
17180
17227
  {
17181
17228
  ref: listRef,
@@ -17225,7 +17272,7 @@ function AirbnbSelectMobileWheel({
17225
17272
  }
17226
17273
 
17227
17274
  // src/airbnb-fields/select/SelectMobileContent.tsx
17228
- import { jsx as jsx174, jsxs as jsxs115 } from "react/jsx-runtime";
17275
+ import { jsx as jsx174, jsxs as jsxs116 } from "react/jsx-runtime";
17229
17276
  function AirbnbSelectMobileContent({
17230
17277
  open,
17231
17278
  onOpenChange,
@@ -17249,10 +17296,10 @@ function AirbnbSelectMobileContent({
17249
17296
  getOptionId: getOptionId2,
17250
17297
  noOptionsMessage
17251
17298
  }) {
17252
- return /* @__PURE__ */ jsx174(Drawer, { open, onOpenChange, children: /* @__PURE__ */ jsxs115(DrawerContent, { onClose, lockScroll: false, children: [
17299
+ return /* @__PURE__ */ jsx174(Drawer, { open, onOpenChange, children: /* @__PURE__ */ jsxs116(DrawerContent, { onClose, lockScroll: false, children: [
17253
17300
  /* @__PURE__ */ jsx174(DrawerTitle, { className: "sr-only", children: mobileTitle ?? label }),
17254
17301
  /* @__PURE__ */ jsx174(DrawerDescription, { className: "sr-only", children: label }),
17255
- /* @__PURE__ */ jsxs115("div", { className: "px-6 pb-4 pt-1", children: [
17302
+ /* @__PURE__ */ jsxs116("div", { className: "px-6 pb-4 pt-1", children: [
17256
17303
  /* @__PURE__ */ jsx174(
17257
17304
  AirbnbSelectMobileWheel,
17258
17305
  {
@@ -17697,7 +17744,7 @@ function useSelectIds2({ name, hasValue, error, hideErrorMessage }) {
17697
17744
  }
17698
17745
 
17699
17746
  // src/airbnb-fields/select/Select.tsx
17700
- import { jsx as jsx176, jsxs as jsxs116 } from "react/jsx-runtime";
17747
+ import { jsx as jsx176, jsxs as jsxs117 } from "react/jsx-runtime";
17701
17748
  var AirbnbSelect = React69.forwardRef(function AirbnbSelect2({
17702
17749
  options = [],
17703
17750
  value,
@@ -17877,7 +17924,7 @@ var AirbnbSelect = React69.forwardRef(function AirbnbSelect2({
17877
17924
  handleMobileOpenChange(false);
17878
17925
  }
17879
17926
  };
17880
- return /* @__PURE__ */ jsxs116(
17927
+ return /* @__PURE__ */ jsxs117(
17881
17928
  "div",
17882
17929
  {
17883
17930
  ref: containerRef,
@@ -17992,7 +18039,7 @@ var AirbnbSelect = React69.forwardRef(function AirbnbSelect2({
17992
18039
  });
17993
18040
 
17994
18041
  // src/airbnb-fields/phone-field/PhoneField.tsx
17995
- import { jsx as jsx177, jsxs as jsxs117 } from "react/jsx-runtime";
18042
+ import { jsx as jsx177, jsxs as jsxs118 } from "react/jsx-runtime";
17996
18043
  function formatPhoneCodeOptionLabel(option) {
17997
18044
  const label = String(option.label);
17998
18045
  const value = String(option.value);
@@ -18039,7 +18086,7 @@ var AirbnbPhoneField = React70.forwardRef(
18039
18086
  const hasInvalidState = Boolean(error) || Boolean(invalid);
18040
18087
  const isBlocked = Boolean(disabled) || Boolean(loading);
18041
18088
  const isCodeBlocked = isBlocked || Boolean(codeReadOnly);
18042
- return /* @__PURE__ */ jsxs117("div", { className: cn("w-full max-w-[var(--max-field-width)]", className), children: [
18089
+ return /* @__PURE__ */ jsxs118("div", { className: cn("w-full max-w-[var(--max-field-width)]", className), children: [
18043
18090
  name && /* @__PURE__ */ jsx177("input", { type: "hidden", name, value: combinedValue, disabled }),
18044
18091
  codeName && /* @__PURE__ */ jsx177(
18045
18092
  "input",
@@ -18067,7 +18114,7 @@ var AirbnbPhoneField = React70.forwardRef(
18067
18114
  children: topLabel
18068
18115
  }
18069
18116
  ),
18070
- /* @__PURE__ */ jsxs117("div", { className: "flex items-stretch", children: [
18117
+ /* @__PURE__ */ jsxs118("div", { className: "flex items-stretch", children: [
18071
18118
  /* @__PURE__ */ jsx177(
18072
18119
  AirbnbSelect,
18073
18120
  {
@@ -18099,7 +18146,7 @@ var AirbnbPhoneField = React70.forwardRef(
18099
18146
  onClick,
18100
18147
  onKeyDown,
18101
18148
  valueLabel
18102
- }) => /* @__PURE__ */ jsxs117(
18149
+ }) => /* @__PURE__ */ jsxs118(
18103
18150
  "button",
18104
18151
  {
18105
18152
  id,
@@ -18174,10 +18221,10 @@ AirbnbPhoneField.displayName = "AirbnbPhoneField";
18174
18221
 
18175
18222
  // src/airbnb-fields/searchable-select/SearchableSelect.tsx
18176
18223
  import * as React71 from "react";
18177
- import { ChevronDown as ChevronDown6, Search as Search3 } from "lucide-react";
18224
+ import { ChevronDown as ChevronDown6, Search as Search5 } from "lucide-react";
18178
18225
  import { useVirtualizer as useVirtualizer3 } from "@tanstack/react-virtual";
18179
- import { useCallback as useCallback50 } from "react";
18180
- import { jsx as jsx178, jsxs as jsxs118 } from "react/jsx-runtime";
18226
+ import { useCallback as useCallback51 } from "react";
18227
+ import { jsx as jsx178, jsxs as jsxs119 } from "react/jsx-runtime";
18181
18228
  var ROW_HEIGHT = 48;
18182
18229
  var DESKTOP_LIST_HEIGHT = 280;
18183
18230
  var MOBILE_LIST_HEIGHT = 420;
@@ -18255,7 +18302,7 @@ var AirbnbSearchableSelectInternal = ({
18255
18302
  isDisabled: !open || isMobile3
18256
18303
  });
18257
18304
  const handleOnOpenChange = useEvent(onOpenChange);
18258
- const setSelectOpen = useCallback50(
18305
+ const setSelectOpen = useCallback51(
18259
18306
  (nextOpen, options2) => {
18260
18307
  setOpen(nextOpen);
18261
18308
  handleOnOpenChange?.(nextOpen);
@@ -18374,7 +18421,7 @@ var AirbnbSearchableSelectInternal = ({
18374
18421
  }
18375
18422
  );
18376
18423
  React71.useImperativeHandle(ref, () => triggerRef.current, []);
18377
- return /* @__PURE__ */ jsxs118("div", { ref: containerRef, className: cn("relative w-full max-w-[425px]", className), children: [
18424
+ return /* @__PURE__ */ jsxs119("div", { ref: containerRef, className: cn("relative w-full max-w-[425px]", className), children: [
18378
18425
  name && /* @__PURE__ */ jsx178("input", { type: "hidden", name, value: value ? String(value.value) : "" }),
18379
18426
  /* @__PURE__ */ jsx178(
18380
18427
  AirbnbFieldTrigger,
@@ -18434,7 +18481,7 @@ var AirbnbSearchableSelectInternal = ({
18434
18481
  }
18435
18482
  closeSelect();
18436
18483
  },
18437
- children: /* @__PURE__ */ jsxs118(DrawerContent, { onClose: closeSelect, lockScroll: false, children: [
18484
+ children: /* @__PURE__ */ jsxs119(DrawerContent, { onClose: closeSelect, lockScroll: false, children: [
18438
18485
  /* @__PURE__ */ jsx178(DrawerTitle, { className: "sr-only", children: mobileTitle ?? label }),
18439
18486
  /* @__PURE__ */ jsx178(DrawerDescription, { className: "sr-only", children: label }),
18440
18487
  /* @__PURE__ */ jsx178("div", { className: "px-5 pb-5 pt-1", children: content })
@@ -18507,10 +18554,10 @@ function AirbnbSearchableSelectContent({
18507
18554
  virtualizer.scrollToIndex(highlightedIndex, { align: "auto" });
18508
18555
  }
18509
18556
  }, [highlightedIndex, virtualizer]);
18510
- return /* @__PURE__ */ jsxs118("div", { className: "p-2", children: [
18511
- /* @__PURE__ */ jsxs118("div", { className: "relative mb-2", children: [
18557
+ return /* @__PURE__ */ jsxs119("div", { className: "p-2", children: [
18558
+ /* @__PURE__ */ jsxs119("div", { className: "relative mb-2", children: [
18512
18559
  /* @__PURE__ */ jsx178(
18513
- Search3,
18560
+ Search5,
18514
18561
  {
18515
18562
  "aria-hidden": "true",
18516
18563
  className: "absolute left-4 top-1/2 h-5 w-5 -translate-y-1/2 text-[#9696B9]"
@@ -18620,13 +18667,13 @@ function getNextEnabledIndex(options, startIndex, step) {
18620
18667
  // src/airbnb-fields/search-input/SearchInput.tsx
18621
18668
  import * as React72 from "react";
18622
18669
  import { useTranslation as useTranslation40 } from "react-i18next";
18623
- import { Search as Search4, X as X10 } from "lucide-react";
18624
- import { jsx as jsx179, jsxs as jsxs119 } from "react/jsx-runtime";
18670
+ import { Search as Search6, X as X10 } from "lucide-react";
18671
+ import { jsx as jsx179, jsxs as jsxs120 } from "react/jsx-runtime";
18625
18672
  var AirbnbSearchInput = React72.forwardRef(({ onReset, placeholder, wrapperClassName, ...props }, ref) => {
18626
18673
  const { t } = useTranslation40();
18627
18674
  const placeholderText = placeholder || t("search_property") + "...";
18628
- return /* @__PURE__ */ jsxs119("div", { className: cn("input-wrapper relative", wrapperClassName), children: [
18629
- /* @__PURE__ */ jsx179(Search4, { className: "absolute left-4 top-1/2 h-5 w-5 -translate-y-1/2 transform text-[#9696B9]" }),
18675
+ return /* @__PURE__ */ jsxs120("div", { className: cn("input-wrapper relative", wrapperClassName), children: [
18676
+ /* @__PURE__ */ jsx179(Search6, { className: "absolute left-4 top-1/2 h-5 w-5 -translate-y-1/2 transform text-[#9696B9]" }),
18630
18677
  /* @__PURE__ */ jsx179(
18631
18678
  "input",
18632
18679
  {