@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.cjs +144 -97
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +285 -238
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
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
|
|
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
|
-
|
|
2706
|
-
|
|
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
|
|
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 =
|
|
2744
|
+
const openModal = useCallback6(() => {
|
|
2728
2745
|
if (disabled) return;
|
|
2729
2746
|
setIsOpen(true);
|
|
2730
2747
|
}, [disabled]);
|
|
2731
|
-
const closeModal =
|
|
2748
|
+
const closeModal = useCallback6(() => {
|
|
2732
2749
|
if (disabled) return;
|
|
2733
2750
|
setIsOpen(false);
|
|
2734
2751
|
}, [disabled]);
|
|
2735
|
-
const toggleModal =
|
|
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
|
|
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
|
|
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 =
|
|
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 =
|
|
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 =
|
|
2821
|
+
const openModal = useCallback8(() => {
|
|
2805
2822
|
setIsOpen(true);
|
|
2806
2823
|
addHash();
|
|
2807
2824
|
}, [addHash]);
|
|
2808
|
-
const resetHash =
|
|
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 =
|
|
2836
|
+
const closeModal = useCallback8(() => {
|
|
2820
2837
|
setIsOpen(false);
|
|
2821
2838
|
resetHash();
|
|
2822
2839
|
}, [resetHash]);
|
|
2823
|
-
const toggleModal =
|
|
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
|
|
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 =
|
|
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
|
|
2982
|
+
import { useCallback as useCallback10, useLayoutEffect as useLayoutEffect2 } from "react";
|
|
2966
2983
|
function useLockBodyScroll(needLock) {
|
|
2967
|
-
const lockScroll =
|
|
2984
|
+
const lockScroll = useCallback10(() => {
|
|
2968
2985
|
getDocument().getElementsByTagName("body")[0].style.overflow = "hidden";
|
|
2969
2986
|
}, []);
|
|
2970
|
-
const resetScroll =
|
|
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
|
|
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 =
|
|
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 =
|
|
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
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
3274
|
+
const nextPage = useCallback12(() => {
|
|
3258
3275
|
setPage(state.page + 1);
|
|
3259
3276
|
}, [setPage, state.page]);
|
|
3260
|
-
const previousPage =
|
|
3277
|
+
const previousPage = useCallback12(() => {
|
|
3261
3278
|
setPage(state.page - 1);
|
|
3262
3279
|
}, [setPage, state.page]);
|
|
3263
|
-
const goToFirstPage =
|
|
3280
|
+
const goToFirstPage = useCallback12(() => {
|
|
3264
3281
|
setPage(1);
|
|
3265
3282
|
}, [setPage]);
|
|
3266
|
-
const goToLastPage =
|
|
3283
|
+
const goToLastPage = useCallback12(() => {
|
|
3267
3284
|
setPage(pages);
|
|
3268
3285
|
}, [setPage, pages]);
|
|
3269
|
-
const reset =
|
|
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
|
|
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 =
|
|
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
|
|
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 =
|
|
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
|
|
3488
|
+
import { useCallback as useCallback15, useState as useState16 } from "react";
|
|
3472
3489
|
function useHover() {
|
|
3473
3490
|
const [isHovering, setIsHovering] = useState16(false);
|
|
3474
|
-
const handleMouseEnter =
|
|
3491
|
+
const handleMouseEnter = useCallback15(() => {
|
|
3475
3492
|
setIsHovering(true);
|
|
3476
3493
|
}, []);
|
|
3477
|
-
const handleMouseLeave =
|
|
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
|
|
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 =
|
|
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
|
|
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 =
|
|
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
|
|
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 =
|
|
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
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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
|
|
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 =
|
|
5322
|
+
const setInputRef = useCallback21(
|
|
5306
5323
|
(element) => {
|
|
5307
5324
|
inputRefs.current[index] = element;
|
|
5308
5325
|
},
|
|
5309
5326
|
[index, inputRefs]
|
|
5310
5327
|
);
|
|
5311
|
-
const focusSlot =
|
|
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
|
|
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 =
|
|
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
|
|
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 =
|
|
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
|
|
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
|
|
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 =
|
|
8884
|
-
minY =
|
|
8885
|
-
maxX =
|
|
8886
|
-
maxY =
|
|
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
|
-
|
|
8892
|
-
|
|
8893
|
-
|
|
8894
|
-
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
9002
|
+
const trimmed = getTrimmedCanvas(canvas, padding);
|
|
8982
9003
|
if (!trimmed) return "";
|
|
8983
|
-
return trimmed.
|
|
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
|
|
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 =
|
|
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
|
|
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
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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
|
|
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
|
|
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 =
|
|
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 =
|
|
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
|
|
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-
|
|
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 {
|
|
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__ */
|
|
12574
|
-
|
|
12575
|
-
|
|
12576
|
-
|
|
12577
|
-
|
|
12578
|
-
|
|
12579
|
-
|
|
12580
|
-
|
|
12581
|
-
|
|
12582
|
-
|
|
12583
|
-
|
|
12584
|
-
|
|
12585
|
-
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
13347
|
-
|
|
13348
|
-
|
|
13349
|
-
|
|
13350
|
-
|
|
13351
|
-
|
|
13352
|
-
|
|
13353
|
-
|
|
13354
|
-
|
|
13355
|
-
|
|
13356
|
-
|
|
13357
|
-
|
|
13358
|
-
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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
|
|
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__ */
|
|
14434
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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-
|
|
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__ */
|
|
14906
|
-
/* @__PURE__ */
|
|
14907
|
-
isMobile3 ? /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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
|
|
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-
|
|
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__ */
|
|
15757
|
-
/* @__PURE__ */
|
|
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
|
|
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__ */
|
|
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-
|
|
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__ */
|
|
16128
|
-
/* @__PURE__ */
|
|
16129
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
16498
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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
|
|
18180
|
-
import { jsx as jsx178, jsxs as
|
|
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 =
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
18511
|
-
/* @__PURE__ */
|
|
18557
|
+
return /* @__PURE__ */ jsxs119("div", { className: "p-2", children: [
|
|
18558
|
+
/* @__PURE__ */ jsxs119("div", { className: "relative mb-2", children: [
|
|
18512
18559
|
/* @__PURE__ */ jsx178(
|
|
18513
|
-
|
|
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
|
|
18624
|
-
import { jsx as jsx179, jsxs as
|
|
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__ */
|
|
18629
|
-
/* @__PURE__ */ jsx179(
|
|
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
|
{
|