@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.js CHANGED
@@ -2613,32 +2613,46 @@ var useTimer = ({ seconds }) => {
2613
2613
  };
2614
2614
 
2615
2615
  // src/hooks/use-timeout.ts
2616
- import { useCallback as useCallback9, useEffect as useEffect15, useRef as useRef9 } from "react";
2617
- function useTimeout() {
2618
- const timeoutRef = useRef9();
2619
- const clearTimeoutRef = useCallback9(() => {
2620
- clearTimeout(timeoutRef.current);
2621
- timeoutRef.current = void 0;
2622
- }, []);
2623
- const scheduleTimeout = useCallback9(
2624
- (callback, delay) => {
2625
- clearTimeoutRef();
2626
- timeoutRef.current = setTimeout(callback, delay);
2627
- },
2628
- [clearTimeoutRef]
2629
- );
2630
- useEffect15(() => clearTimeoutRef, [clearTimeoutRef]);
2631
- return { scheduleTimeout, clearTimeoutRef };
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 useCallback10, useState as useState12 } from "react";
2649
+ import { useCallback as useCallback9, useState as useState12 } from "react";
2636
2650
  function useHover() {
2637
2651
  const [isHovering, setIsHovering] = useState12(false);
2638
- const handleMouseEnter = useCallback10(() => {
2652
+ const handleMouseEnter = useCallback9(() => {
2639
2653
  setIsHovering(true);
2640
2654
  }, []);
2641
- const handleMouseLeave = useCallback10(() => {
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 useRef10 } from "react";
2715
+ import { useRef as useRef11 } from "react";
2653
2716
  var usePromisedModalControls = () => {
2654
2717
  const { closeModal, isOpen, openModal } = useModalControls();
2655
- const resolveRef = useRef10();
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 useState13 } from "react";
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] = useState13(false);
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 useEffect17, useRef as useRef12, useState as useState14 } from "react";
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 = useRef12(null);
3332
- const iframeRef = useRef12(null);
3333
- const containerRef = useRef12(null);
3334
- const [isPlaying, setIsPlaying] = useState14(false);
3335
- const [isMuted, setIsMuted] = useState14(false);
3336
- const [currentTime, setCurrentTime] = useState14(0);
3337
- const [duration, setDuration] = useState14(0);
3338
- const [isFullScreenMode, setIsFullScreenMode] = useState14(isFullScreen);
3339
- const [isLoading, setIsLoading] = useState14(true);
3340
- const [videoSource, setVideoSource] = useState14("file");
3341
- const [youtubeEmbedUrl, setYoutubeEmbedUrl] = useState14("");
3342
- const [vimeoEmbedUrl, setVimeoEmbedUrl] = useState14("");
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
- useEffect17(() => {
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
- useEffect17(() => {
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
- useEffect17(() => {
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 useState15
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] = useState15(defaultValue ?? "");
3812
- const [isFocused, setIsFocused] = useState15(false);
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 useState16 } from "react";
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] = useState16(false);
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 useEffect18, useMemo as useMemo2, useRef as useRef13, useState as useState17 } from "react";
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] = useState17(-1);
4222
- const inputRefs = useRef13([]);
4223
- const containerRef = useRef13(null);
4224
- const blurTimeoutRef = useRef13();
4225
- const slotsRef = useRef13(Array.from({ length: maxLength }, () => ""));
4226
- const slots = useMemo2(() => {
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
- useEffect18(() => {
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
- useEffect18(() => () => clearTimeout(blurTimeoutRef.current), []);
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 = useMemo2(
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 useState18 } from "react";
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] = useState18(defaultOpen ?? false);
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 useState19 } from "react";
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] = useState19(1);
5164
- const [rotation, setRotation] = useState19(0);
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 useRef14 } from "react";
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 = useRef14(null);
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 useState20 } from "react";
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] = useState20(initialValue);
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 useEffect19
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
- useEffect19(() => {
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 useMemo4 } from "react";
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 = useMemo4(() => {
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 useRef16 } from "react";
8092
+ import { useCallback as useCallback16, useRef as useRef17 } from "react";
7980
8093
  import { toast } from "sonner";
7981
8094
  function useUpdateToast({ id }) {
7982
- const toastIdRef = useRef16("");
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 useEffect21 } from "react";
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
- useEffect21(() => {
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,