@chekinapp/ui 0.0.26 → 0.0.29
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 +256 -135
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +45 -7
- package/dist/index.d.ts +45 -7
- package/dist/index.js +188 -71
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -2613,32 +2613,46 @@ var useTimer = ({ seconds }) => {
|
|
|
2613
2613
|
};
|
|
2614
2614
|
|
|
2615
2615
|
// src/hooks/use-timeout.ts
|
|
2616
|
-
import {
|
|
2617
|
-
function useTimeout() {
|
|
2618
|
-
const
|
|
2619
|
-
const
|
|
2620
|
-
|
|
2621
|
-
|
|
2622
|
-
|
|
2623
|
-
|
|
2624
|
-
|
|
2625
|
-
|
|
2626
|
-
|
|
2627
|
-
|
|
2628
|
-
|
|
2629
|
-
|
|
2630
|
-
|
|
2631
|
-
|
|
2616
|
+
import { useEffect as useEffect15, useMemo as useMemo2, useRef as useRef9 } from "react";
|
|
2617
|
+
function useTimeout(callback, ms = 0) {
|
|
2618
|
+
const timeoutId = useRef9();
|
|
2619
|
+
const memoizedCallback = useEvent(callback);
|
|
2620
|
+
const handler = useMemo2(() => {
|
|
2621
|
+
return {
|
|
2622
|
+
start(overrideMs) {
|
|
2623
|
+
handler.stop();
|
|
2624
|
+
timeoutId.current = setTimeout(
|
|
2625
|
+
memoizedCallback,
|
|
2626
|
+
overrideMs === void 0 ? ms : overrideMs
|
|
2627
|
+
);
|
|
2628
|
+
},
|
|
2629
|
+
stop() {
|
|
2630
|
+
if (timeoutId.current) {
|
|
2631
|
+
clearTimeout(timeoutId.current);
|
|
2632
|
+
}
|
|
2633
|
+
},
|
|
2634
|
+
restart() {
|
|
2635
|
+
handler.stop();
|
|
2636
|
+
handler.start();
|
|
2637
|
+
}
|
|
2638
|
+
};
|
|
2639
|
+
}, [memoizedCallback, ms]);
|
|
2640
|
+
useEffect15(() => {
|
|
2641
|
+
return () => {
|
|
2642
|
+
handler.stop();
|
|
2643
|
+
};
|
|
2644
|
+
}, [handler]);
|
|
2645
|
+
return handler;
|
|
2632
2646
|
}
|
|
2633
2647
|
|
|
2634
2648
|
// src/hooks/use-hover.ts
|
|
2635
|
-
import { useCallback as
|
|
2649
|
+
import { useCallback as useCallback9, useState as useState12 } from "react";
|
|
2636
2650
|
function useHover() {
|
|
2637
2651
|
const [isHovering, setIsHovering] = useState12(false);
|
|
2638
|
-
const handleMouseEnter =
|
|
2652
|
+
const handleMouseEnter = useCallback9(() => {
|
|
2639
2653
|
setIsHovering(true);
|
|
2640
2654
|
}, []);
|
|
2641
|
-
const handleMouseLeave =
|
|
2655
|
+
const handleMouseLeave = useCallback9(() => {
|
|
2642
2656
|
setIsHovering(false);
|
|
2643
2657
|
}, []);
|
|
2644
2658
|
return {
|
|
@@ -2648,11 +2662,60 @@ function useHover() {
|
|
|
2648
2662
|
};
|
|
2649
2663
|
}
|
|
2650
2664
|
|
|
2665
|
+
// src/hooks/use-key-down.ts
|
|
2666
|
+
import { useCallback as useCallback10, useEffect as useEffect16 } from "react";
|
|
2667
|
+
function useKeyDown(key, cb, options) {
|
|
2668
|
+
const {
|
|
2669
|
+
enabled = true,
|
|
2670
|
+
metaKey = false,
|
|
2671
|
+
ctrlKey = false,
|
|
2672
|
+
shiftKey = false,
|
|
2673
|
+
altKey = false
|
|
2674
|
+
} = options ?? {};
|
|
2675
|
+
const handleCallback = useEvent(cb);
|
|
2676
|
+
const handleKeyDown = useCallback10(
|
|
2677
|
+
(event) => {
|
|
2678
|
+
const keys = Array.isArray(key) ? key : [key];
|
|
2679
|
+
const isKeyMatch = keys.includes(event.key);
|
|
2680
|
+
const isModifierMatch = event.metaKey === metaKey && event.ctrlKey === ctrlKey && event.shiftKey === shiftKey && event.altKey === altKey;
|
|
2681
|
+
if (isKeyMatch && isModifierMatch) {
|
|
2682
|
+
handleCallback(event);
|
|
2683
|
+
}
|
|
2684
|
+
},
|
|
2685
|
+
[key, handleCallback, metaKey, ctrlKey, shiftKey, altKey]
|
|
2686
|
+
);
|
|
2687
|
+
useEffect16(() => {
|
|
2688
|
+
if (!enabled) return;
|
|
2689
|
+
window.addEventListener("keydown", handleKeyDown);
|
|
2690
|
+
return () => {
|
|
2691
|
+
window.removeEventListener("keydown", handleKeyDown);
|
|
2692
|
+
};
|
|
2693
|
+
}, [handleKeyDown, enabled]);
|
|
2694
|
+
}
|
|
2695
|
+
|
|
2696
|
+
// src/hooks/use-reset-after-request-status.ts
|
|
2697
|
+
import { useEffect as useEffect17, useRef as useRef10 } from "react";
|
|
2698
|
+
var ResetStatusTimeoutMs = 2e3;
|
|
2699
|
+
function useResetAfterRequestStatus({ status, reset }) {
|
|
2700
|
+
const stateTimeoutRef = useRef10();
|
|
2701
|
+
const handleReset = useEvent(reset);
|
|
2702
|
+
const isNotIdle = ["success", "error"].includes(status);
|
|
2703
|
+
useEffect17(() => {
|
|
2704
|
+
if (isNotIdle) {
|
|
2705
|
+
stateTimeoutRef.current = setTimeout(handleReset, ResetStatusTimeoutMs);
|
|
2706
|
+
return () => {
|
|
2707
|
+
clearTimeout(stateTimeoutRef.current);
|
|
2708
|
+
};
|
|
2709
|
+
}
|
|
2710
|
+
}, [handleReset, isNotIdle]);
|
|
2711
|
+
return { isNotIdle };
|
|
2712
|
+
}
|
|
2713
|
+
|
|
2651
2714
|
// src/hooks/use-promised-modal-controls.ts
|
|
2652
|
-
import { useRef as
|
|
2715
|
+
import { useRef as useRef11 } from "react";
|
|
2653
2716
|
var usePromisedModalControls = () => {
|
|
2654
2717
|
const { closeModal, isOpen, openModal } = useModalControls();
|
|
2655
|
-
const resolveRef =
|
|
2718
|
+
const resolveRef = useRef11();
|
|
2656
2719
|
const openModalWithPromise = async () => {
|
|
2657
2720
|
openModal();
|
|
2658
2721
|
return new Promise((resolve) => {
|
|
@@ -2667,6 +2730,56 @@ var usePromisedModalControls = () => {
|
|
|
2667
2730
|
};
|
|
2668
2731
|
};
|
|
2669
2732
|
|
|
2733
|
+
// src/hooks/use-is-form-touched.ts
|
|
2734
|
+
import { useState as useState13 } from "react";
|
|
2735
|
+
function useIsFormTouched({
|
|
2736
|
+
watch,
|
|
2737
|
+
displayFields,
|
|
2738
|
+
debug,
|
|
2739
|
+
defaultValues
|
|
2740
|
+
}) {
|
|
2741
|
+
const [untouchedValues, setUntouchedValues] = useState13(defaultValues || {});
|
|
2742
|
+
const getIsFormTouched = () => {
|
|
2743
|
+
if (!Object.keys(untouchedValues)) {
|
|
2744
|
+
return false;
|
|
2745
|
+
}
|
|
2746
|
+
return Object.keys(untouchedValues).some((field) => {
|
|
2747
|
+
if (!displayFields[field] || watch(field) === void 0) {
|
|
2748
|
+
return false;
|
|
2749
|
+
}
|
|
2750
|
+
if (watch(field)?.value && untouchedValues[field]?.value) {
|
|
2751
|
+
if (debug) {
|
|
2752
|
+
console.log({
|
|
2753
|
+
res: untouchedValues[field]?.value !== watch(field)?.value,
|
|
2754
|
+
[field]: { form: watch(field), untouched: untouchedValues[field] }
|
|
2755
|
+
});
|
|
2756
|
+
}
|
|
2757
|
+
return untouchedValues[field]?.value !== watch(field)?.value;
|
|
2758
|
+
}
|
|
2759
|
+
if (watch(field) instanceof Array || watch(field) instanceof Object) {
|
|
2760
|
+
if (debug) {
|
|
2761
|
+
console.log({
|
|
2762
|
+
res: JSON.stringify(untouchedValues[field]) !== JSON.stringify(watch(field)),
|
|
2763
|
+
[field]: { form: watch(field), untouched: untouchedValues[field] }
|
|
2764
|
+
});
|
|
2765
|
+
}
|
|
2766
|
+
return JSON.stringify(untouchedValues[field]) !== JSON.stringify(watch(field));
|
|
2767
|
+
}
|
|
2768
|
+
if (debug) {
|
|
2769
|
+
console.log({
|
|
2770
|
+
res: untouchedValues[field] !== watch(field),
|
|
2771
|
+
[field]: { form: watch(field), untouched: untouchedValues[field] }
|
|
2772
|
+
});
|
|
2773
|
+
}
|
|
2774
|
+
return untouchedValues[field] !== watch(field);
|
|
2775
|
+
});
|
|
2776
|
+
};
|
|
2777
|
+
return {
|
|
2778
|
+
setUntouchedValues,
|
|
2779
|
+
isFormTouched: getIsFormTouched()
|
|
2780
|
+
};
|
|
2781
|
+
}
|
|
2782
|
+
|
|
2670
2783
|
// src/dialog/Dialog.tsx
|
|
2671
2784
|
import { jsx as jsx29, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
2672
2785
|
function useIframeTitleFix(titleRef) {
|
|
@@ -2902,7 +3015,7 @@ function DownloadEntryFormsButton({
|
|
|
2902
3015
|
}
|
|
2903
3016
|
|
|
2904
3017
|
// src/dropdown-button/DropdownButton.tsx
|
|
2905
|
-
import { useState as
|
|
3018
|
+
import { useState as useState14 } from "react";
|
|
2906
3019
|
|
|
2907
3020
|
// src/dropdown-menu/DropdownMenu.tsx
|
|
2908
3021
|
import * as React13 from "react";
|
|
@@ -2966,7 +3079,7 @@ function DropdownButton({
|
|
|
2966
3079
|
modal,
|
|
2967
3080
|
className
|
|
2968
3081
|
}) {
|
|
2969
|
-
const [isOpen, setIsOpen] =
|
|
3082
|
+
const [isOpen, setIsOpen] = useState14(false);
|
|
2970
3083
|
return /* @__PURE__ */ jsxs25(DropdownMenu, { onOpenChange: setIsOpen, modal, children: [
|
|
2971
3084
|
/* @__PURE__ */ jsx34(DropdownMenuTrigger, { asChild: true, children: typeof trigger === "function" ? trigger(isOpen) : trigger }),
|
|
2972
3085
|
/* @__PURE__ */ jsx34(
|
|
@@ -3304,7 +3417,7 @@ var Switch = React15.forwardRef(
|
|
|
3304
3417
|
Switch.displayName = SwitchPrimitives.Root.displayName;
|
|
3305
3418
|
|
|
3306
3419
|
// src/video-player/VideoPlayer.tsx
|
|
3307
|
-
import { useEffect as
|
|
3420
|
+
import { useEffect as useEffect19, useRef as useRef13, useState as useState15 } from "react";
|
|
3308
3421
|
import { useTranslation as useTranslation8 } from "react-i18next";
|
|
3309
3422
|
import {
|
|
3310
3423
|
Loader2,
|
|
@@ -3328,20 +3441,20 @@ function VideoPlayer({
|
|
|
3328
3441
|
autoPlay = false
|
|
3329
3442
|
}) {
|
|
3330
3443
|
const { t } = useTranslation8();
|
|
3331
|
-
const videoRef =
|
|
3332
|
-
const iframeRef =
|
|
3333
|
-
const containerRef =
|
|
3334
|
-
const [isPlaying, setIsPlaying] =
|
|
3335
|
-
const [isMuted, setIsMuted] =
|
|
3336
|
-
const [currentTime, setCurrentTime] =
|
|
3337
|
-
const [duration, setDuration] =
|
|
3338
|
-
const [isFullScreenMode, setIsFullScreenMode] =
|
|
3339
|
-
const [isLoading, setIsLoading] =
|
|
3340
|
-
const [videoSource, setVideoSource] =
|
|
3341
|
-
const [youtubeEmbedUrl, setYoutubeEmbedUrl] =
|
|
3342
|
-
const [vimeoEmbedUrl, setVimeoEmbedUrl] =
|
|
3444
|
+
const videoRef = useRef13(null);
|
|
3445
|
+
const iframeRef = useRef13(null);
|
|
3446
|
+
const containerRef = useRef13(null);
|
|
3447
|
+
const [isPlaying, setIsPlaying] = useState15(false);
|
|
3448
|
+
const [isMuted, setIsMuted] = useState15(false);
|
|
3449
|
+
const [currentTime, setCurrentTime] = useState15(0);
|
|
3450
|
+
const [duration, setDuration] = useState15(0);
|
|
3451
|
+
const [isFullScreenMode, setIsFullScreenMode] = useState15(isFullScreen);
|
|
3452
|
+
const [isLoading, setIsLoading] = useState15(true);
|
|
3453
|
+
const [videoSource, setVideoSource] = useState15("file");
|
|
3454
|
+
const [youtubeEmbedUrl, setYoutubeEmbedUrl] = useState15("");
|
|
3455
|
+
const [vimeoEmbedUrl, setVimeoEmbedUrl] = useState15("");
|
|
3343
3456
|
useClickEscape({ enabled: isFullScreenMode, onClick: onClose });
|
|
3344
|
-
|
|
3457
|
+
useEffect19(() => {
|
|
3345
3458
|
const youtubeRegex = /(?:youtube\.com\/watch\?v=|youtu\.be\/|youtube\.com\/embed\/)([a-zA-Z0-9_-]{11})/;
|
|
3346
3459
|
const vimeoRegex = /(?:vimeo\.com\/|vimeo\.com\/video\/)(\d+)/;
|
|
3347
3460
|
const youtubeMatch = src.match(youtubeRegex);
|
|
@@ -3370,7 +3483,7 @@ function VideoPlayer({
|
|
|
3370
3483
|
setYoutubeEmbedUrl("");
|
|
3371
3484
|
setVimeoEmbedUrl("");
|
|
3372
3485
|
}, [src, autoPlay]);
|
|
3373
|
-
|
|
3486
|
+
useEffect19(() => {
|
|
3374
3487
|
if (videoSource !== "file") return;
|
|
3375
3488
|
const video = videoRef.current;
|
|
3376
3489
|
if (!video) return;
|
|
@@ -3398,7 +3511,7 @@ function VideoPlayer({
|
|
|
3398
3511
|
video.removeEventListener("canplay", handleCanPlay);
|
|
3399
3512
|
};
|
|
3400
3513
|
}, [videoSource]);
|
|
3401
|
-
|
|
3514
|
+
useEffect19(() => {
|
|
3402
3515
|
if (isFullScreenMode && videoRef.current && videoSource === "file") {
|
|
3403
3516
|
void videoRef.current.play();
|
|
3404
3517
|
setIsPlaying(true);
|
|
@@ -3776,7 +3889,7 @@ var FormBox = {
|
|
|
3776
3889
|
import {
|
|
3777
3890
|
forwardRef as forwardRef20,
|
|
3778
3891
|
useId as useId4,
|
|
3779
|
-
useState as
|
|
3892
|
+
useState as useState16
|
|
3780
3893
|
} from "react";
|
|
3781
3894
|
import { useTranslation as useTranslation10 } from "react-i18next";
|
|
3782
3895
|
|
|
@@ -3808,8 +3921,8 @@ var FreeTextField = forwardRef20(
|
|
|
3808
3921
|
}, ref) => {
|
|
3809
3922
|
const { t } = useTranslation10();
|
|
3810
3923
|
const inputId = useId4();
|
|
3811
|
-
const [internalValue, setInternalValue] =
|
|
3812
|
-
const [isFocused, setIsFocused] =
|
|
3924
|
+
const [internalValue, setInternalValue] = useState16(defaultValue ?? "");
|
|
3925
|
+
const [isFocused, setIsFocused] = useState16(false);
|
|
3813
3926
|
const currentValue = value !== void 0 ? value : internalValue;
|
|
3814
3927
|
const isEmpty = !currentValue || String(currentValue).length === 0;
|
|
3815
3928
|
const hasError = Boolean(error);
|
|
@@ -4141,7 +4254,7 @@ function InfoBox({ className, children }) {
|
|
|
4141
4254
|
}
|
|
4142
4255
|
|
|
4143
4256
|
// src/image/Image.tsx
|
|
4144
|
-
import { useState as
|
|
4257
|
+
import { useState as useState17 } from "react";
|
|
4145
4258
|
import { jsx as jsx59 } from "react/jsx-runtime";
|
|
4146
4259
|
function Image2({
|
|
4147
4260
|
src,
|
|
@@ -4150,7 +4263,7 @@ function Image2({
|
|
|
4150
4263
|
fallbackSrc = "https://placehold.co/600x400?text=Image",
|
|
4151
4264
|
...props
|
|
4152
4265
|
}) {
|
|
4153
|
-
const [error, setError] =
|
|
4266
|
+
const [error, setError] = useState17(false);
|
|
4154
4267
|
return /* @__PURE__ */ jsx59(
|
|
4155
4268
|
"img",
|
|
4156
4269
|
{
|
|
@@ -4209,7 +4322,7 @@ function extractDigits(str) {
|
|
|
4209
4322
|
}
|
|
4210
4323
|
|
|
4211
4324
|
// src/input-otp/useInputOTP.ts
|
|
4212
|
-
import { useCallback as useCallback12, useEffect as
|
|
4325
|
+
import { useCallback as useCallback12, useEffect as useEffect20, useMemo as useMemo3, useRef as useRef14, useState as useState18 } from "react";
|
|
4213
4326
|
function useInputOTP({
|
|
4214
4327
|
maxLength,
|
|
4215
4328
|
value,
|
|
@@ -4218,12 +4331,12 @@ function useInputOTP({
|
|
|
4218
4331
|
autoFocus,
|
|
4219
4332
|
error
|
|
4220
4333
|
}) {
|
|
4221
|
-
const [activeIndex, setActiveIndex] =
|
|
4222
|
-
const inputRefs =
|
|
4223
|
-
const containerRef =
|
|
4224
|
-
const blurTimeoutRef =
|
|
4225
|
-
const slotsRef =
|
|
4226
|
-
const slots =
|
|
4334
|
+
const [activeIndex, setActiveIndex] = useState18(-1);
|
|
4335
|
+
const inputRefs = useRef14([]);
|
|
4336
|
+
const containerRef = useRef14(null);
|
|
4337
|
+
const blurTimeoutRef = useRef14();
|
|
4338
|
+
const slotsRef = useRef14(Array.from({ length: maxLength }, () => ""));
|
|
4339
|
+
const slots = useMemo3(() => {
|
|
4227
4340
|
const nextSlots = Array.from({ length: maxLength }, () => "");
|
|
4228
4341
|
for (let index = 0; index < Math.min(value.length, maxLength); index += 1) {
|
|
4229
4342
|
const char = value[index];
|
|
@@ -4255,7 +4368,7 @@ function useInputOTP({
|
|
|
4255
4368
|
},
|
|
4256
4369
|
[onChange]
|
|
4257
4370
|
);
|
|
4258
|
-
|
|
4371
|
+
useEffect20(() => {
|
|
4259
4372
|
if (autoFocus && inputRefs.current[0]) {
|
|
4260
4373
|
inputRefs.current[0].focus();
|
|
4261
4374
|
}
|
|
@@ -4276,7 +4389,7 @@ function useInputOTP({
|
|
|
4276
4389
|
}
|
|
4277
4390
|
}, 0);
|
|
4278
4391
|
}, []);
|
|
4279
|
-
|
|
4392
|
+
useEffect20(() => () => clearTimeout(blurTimeoutRef.current), []);
|
|
4280
4393
|
const handleDigitInput = useCallback12(
|
|
4281
4394
|
(index, digit) => {
|
|
4282
4395
|
if (!DIGIT_REGEX.test(digit)) return;
|
|
@@ -4322,7 +4435,7 @@ function useInputOTP({
|
|
|
4322
4435
|
},
|
|
4323
4436
|
[maxLength, emitValue]
|
|
4324
4437
|
);
|
|
4325
|
-
const contextValue =
|
|
4438
|
+
const contextValue = useMemo3(
|
|
4326
4439
|
() => ({
|
|
4327
4440
|
slots,
|
|
4328
4441
|
activeIndex,
|
|
@@ -4535,7 +4648,7 @@ var InputOTPSeparator = React19.forwardRef(
|
|
|
4535
4648
|
InputOTPSeparator.displayName = "InputOTPSeparator";
|
|
4536
4649
|
|
|
4537
4650
|
// src/icons-dropdown/IconsDropdown.tsx
|
|
4538
|
-
import { useState as
|
|
4651
|
+
import { useState as useState19 } from "react";
|
|
4539
4652
|
import { jsx as jsx62, jsxs as jsxs36 } from "react/jsx-runtime";
|
|
4540
4653
|
function IconsDropdown({
|
|
4541
4654
|
icons,
|
|
@@ -4547,7 +4660,7 @@ function IconsDropdown({
|
|
|
4547
4660
|
defaultOpen,
|
|
4548
4661
|
onOpenChange: onOpenChangeProp
|
|
4549
4662
|
}) {
|
|
4550
|
-
const [open, setOpen] =
|
|
4663
|
+
const [open, setOpen] = useState19(defaultOpen ?? false);
|
|
4551
4664
|
function handleOpenChange(value) {
|
|
4552
4665
|
setOpen(value);
|
|
4553
4666
|
onOpenChangeProp?.(value);
|
|
@@ -5154,14 +5267,14 @@ LinkInternal.displayName = "Link";
|
|
|
5154
5267
|
var Link = memo3(LinkInternal);
|
|
5155
5268
|
|
|
5156
5269
|
// src/image-full-screen-view/ImageFullScreenView.tsx
|
|
5157
|
-
import { useState as
|
|
5270
|
+
import { useState as useState20 } from "react";
|
|
5158
5271
|
import { RotateCw, X as X4, ZoomIn, ZoomOut } from "lucide-react";
|
|
5159
5272
|
import { useTranslation as useTranslation13 } from "react-i18next";
|
|
5160
5273
|
import { jsx as jsx67, jsxs as jsxs40 } from "react/jsx-runtime";
|
|
5161
5274
|
function ImageFullScreenView({ src, alt, onClose }) {
|
|
5162
5275
|
const { t } = useTranslation13();
|
|
5163
|
-
const [scale, setScale] =
|
|
5164
|
-
const [rotation, setRotation] =
|
|
5276
|
+
const [scale, setScale] = useState20(1);
|
|
5277
|
+
const [rotation, setRotation] = useState20(0);
|
|
5165
5278
|
useClickEscape({ onClick: onClose });
|
|
5166
5279
|
const zoomIn = () => setScale((value) => Math.min(value + 0.25, 3));
|
|
5167
5280
|
const zoomOut = () => setScale((value) => Math.max(value - 0.25, 0.5));
|
|
@@ -5359,7 +5472,7 @@ var METRIC_CARD_VARIANTS = {
|
|
|
5359
5472
|
};
|
|
5360
5473
|
|
|
5361
5474
|
// src/modal/Modal.tsx
|
|
5362
|
-
import { forwardRef as forwardRef28, useRef as
|
|
5475
|
+
import { forwardRef as forwardRef28, useRef as useRef15 } from "react";
|
|
5363
5476
|
import { X as X5 } from "lucide-react";
|
|
5364
5477
|
|
|
5365
5478
|
// src/modal/styles.module.css
|
|
@@ -5390,7 +5503,7 @@ function Modal({
|
|
|
5390
5503
|
container,
|
|
5391
5504
|
modal
|
|
5392
5505
|
}) {
|
|
5393
|
-
const contentRef =
|
|
5506
|
+
const contentRef = useRef15(null);
|
|
5394
5507
|
useScrollFrameIntoView(open, { elementRef: contentRef });
|
|
5395
5508
|
const handleClose = () => {
|
|
5396
5509
|
onOpenChange?.(false);
|
|
@@ -5871,10 +5984,10 @@ var RadioGroupItem = React22.forwardRef(({ className, ...props }, ref) => /* @__
|
|
|
5871
5984
|
RadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;
|
|
5872
5985
|
|
|
5873
5986
|
// src/radio/useRadioOptions.ts
|
|
5874
|
-
import { useCallback as useCallback14, useState as
|
|
5987
|
+
import { useCallback as useCallback14, useState as useState21 } from "react";
|
|
5875
5988
|
function useRadioOptions({ options, defaultValue, onChange }) {
|
|
5876
5989
|
const initialValue = (typeof defaultValue === "string" ? options.find((option) => option.value === defaultValue) : defaultValue) || "";
|
|
5877
|
-
const [selectedValue, setSelectedValue] =
|
|
5990
|
+
const [selectedValue, setSelectedValue] = useState21(initialValue);
|
|
5878
5991
|
const handleValueChange = useCallback14(
|
|
5879
5992
|
(value) => {
|
|
5880
5993
|
setSelectedValue(value);
|
|
@@ -6379,7 +6492,7 @@ import {
|
|
|
6379
6492
|
cloneElement as cloneElement2,
|
|
6380
6493
|
forwardRef as forwardRef34,
|
|
6381
6494
|
isValidElement as isValidElement2,
|
|
6382
|
-
useEffect as
|
|
6495
|
+
useEffect as useEffect21
|
|
6383
6496
|
} from "react";
|
|
6384
6497
|
|
|
6385
6498
|
// src/selector-button/styles.module.css
|
|
@@ -6498,7 +6611,7 @@ function SelectorsInternal({
|
|
|
6498
6611
|
}
|
|
6499
6612
|
};
|
|
6500
6613
|
const isAnyActive = getValueArray(value).length > 0;
|
|
6501
|
-
|
|
6614
|
+
useEffect21(() => {
|
|
6502
6615
|
onAnySelectorActive?.(isAnyActive);
|
|
6503
6616
|
}, [isAnyActive, onAnySelectorActive]);
|
|
6504
6617
|
return /* @__PURE__ */ jsxs56(Fragment8, { children: [
|
|
@@ -7556,7 +7669,7 @@ function SortingAction({
|
|
|
7556
7669
|
}
|
|
7557
7670
|
|
|
7558
7671
|
// src/status-button/StatusButton.tsx
|
|
7559
|
-
import { useMemo as
|
|
7672
|
+
import { useMemo as useMemo5 } from "react";
|
|
7560
7673
|
import { useTranslation as useTranslation20 } from "react-i18next";
|
|
7561
7674
|
import { AlertCircle as AlertCircle2, CheckCircle, Loader2 as Loader24 } from "lucide-react";
|
|
7562
7675
|
import { jsx as jsx98, jsxs as jsxs62 } from "react/jsx-runtime";
|
|
@@ -7574,7 +7687,7 @@ function StatusButton({
|
|
|
7574
7687
|
...props
|
|
7575
7688
|
}) {
|
|
7576
7689
|
const { t } = useTranslation20();
|
|
7577
|
-
const configMap =
|
|
7690
|
+
const configMap = useMemo5(() => {
|
|
7578
7691
|
const defaultLoadingConfig = {
|
|
7579
7692
|
text: loadingText ?? `${t("saving")}...`,
|
|
7580
7693
|
icon: /* @__PURE__ */ jsx98(Loader24, { className: "h-4 w-4 animate-spin" }),
|
|
@@ -7976,10 +8089,10 @@ var TASK_VARIANTS = {
|
|
|
7976
8089
|
import { Toaster, toast as toast2 } from "sonner";
|
|
7977
8090
|
|
|
7978
8091
|
// src/toaster/useUpdateToast.ts
|
|
7979
|
-
import { useCallback as useCallback16, useRef as
|
|
8092
|
+
import { useCallback as useCallback16, useRef as useRef17 } from "react";
|
|
7980
8093
|
import { toast } from "sonner";
|
|
7981
8094
|
function useUpdateToast({ id }) {
|
|
7982
|
-
const toastIdRef =
|
|
8095
|
+
const toastIdRef = useRef17("");
|
|
7983
8096
|
const getToastOptions = useCallback16(
|
|
7984
8097
|
(options) => ({
|
|
7985
8098
|
id: toastIdRef.current,
|
|
@@ -8095,7 +8208,7 @@ var ToggleGroupItem = React27.forwardRef(({ className, children, variant, size,
|
|
|
8095
8208
|
ToggleGroupItem.displayName = ToggleGroupPrimitive.Item.displayName;
|
|
8096
8209
|
|
|
8097
8210
|
// src/toggle-group/Toggles.tsx
|
|
8098
|
-
import { forwardRef as forwardRef40, useEffect as
|
|
8211
|
+
import { forwardRef as forwardRef40, useEffect as useEffect23 } from "react";
|
|
8099
8212
|
import { jsx as jsx108, jsxs as jsxs69 } from "react/jsx-runtime";
|
|
8100
8213
|
var getValueArray2 = (value) => {
|
|
8101
8214
|
if (value) {
|
|
@@ -8170,7 +8283,7 @@ function TogglesInternal({
|
|
|
8170
8283
|
}
|
|
8171
8284
|
};
|
|
8172
8285
|
const isAnyActive = getValueArray2(value).length > 0;
|
|
8173
|
-
|
|
8286
|
+
useEffect23(() => {
|
|
8174
8287
|
onAnySelectorActive?.(isAnyActive);
|
|
8175
8288
|
}, [isAnyActive, onAnySelectorActive]);
|
|
8176
8289
|
const currentValue = getValueArray2(value).map((item) => String(item));
|
|
@@ -12018,6 +12131,7 @@ export {
|
|
|
12018
12131
|
switchVariants,
|
|
12019
12132
|
tabsListVariants,
|
|
12020
12133
|
tabsTriggerVariants,
|
|
12134
|
+
toCssSize,
|
|
12021
12135
|
toast2 as toast,
|
|
12022
12136
|
toggleVariants,
|
|
12023
12137
|
uiKitI18nResources,
|
|
@@ -12030,14 +12144,17 @@ export {
|
|
|
12030
12144
|
useDebouncedFunction,
|
|
12031
12145
|
useEvent,
|
|
12032
12146
|
useHover,
|
|
12147
|
+
useIsFormTouched,
|
|
12033
12148
|
useIsMobile,
|
|
12034
12149
|
useIsMounted,
|
|
12150
|
+
useKeyDown,
|
|
12035
12151
|
useModalControls,
|
|
12036
12152
|
useOutsideClick,
|
|
12037
12153
|
usePagination,
|
|
12038
12154
|
usePrevious,
|
|
12039
12155
|
usePromisedModalControls,
|
|
12040
12156
|
useRadioOptions,
|
|
12157
|
+
useResetAfterRequestStatus,
|
|
12041
12158
|
useScreenResize,
|
|
12042
12159
|
useScrollFrameIntoView,
|
|
12043
12160
|
useScrollToTop,
|