@chekinapp/ui 0.0.94 → 0.0.95

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.d.cts CHANGED
@@ -3404,8 +3404,10 @@ declare function useSwitchSectionActive(preloadedSectionActive: boolean | undefi
3404
3404
 
3405
3405
  type Props$1 = {
3406
3406
  seconds: number;
3407
+ enabled?: boolean;
3408
+ onFinish?: () => void;
3407
3409
  };
3408
- declare const useTimer: ({ seconds }: Props$1) => {
3410
+ declare const useTimer: ({ seconds, enabled, onFinish }: Props$1) => {
3409
3411
  timeLeft: number;
3410
3412
  isTimerRunning: boolean;
3411
3413
  resetTimer: () => void;
package/dist/index.d.ts CHANGED
@@ -3404,8 +3404,10 @@ declare function useSwitchSectionActive(preloadedSectionActive: boolean | undefi
3404
3404
 
3405
3405
  type Props$1 = {
3406
3406
  seconds: number;
3407
+ enabled?: boolean;
3408
+ onFinish?: () => void;
3407
3409
  };
3408
- declare const useTimer: ({ seconds }: Props$1) => {
3410
+ declare const useTimer: ({ seconds, enabled, onFinish }: Props$1) => {
3409
3411
  timeLeft: number;
3410
3412
  isTimerRunning: boolean;
3411
3413
  resetTimer: () => void;
package/dist/index.js CHANGED
@@ -3392,9 +3392,14 @@ function useSwitchSectionActive(preloadedSectionActive, { canToggle, onToggle, o
3392
3392
 
3393
3393
  // src/hooks/use-timer.ts
3394
3394
  import { useEffect as useEffect19, useState as useState15 } from "react";
3395
- var useTimer = ({ seconds }) => {
3395
+ var useTimer = ({ seconds, enabled = true, onFinish }) => {
3396
3396
  const [timeLeft, setTimeLeft] = useState15(seconds);
3397
- const [isTimerRunning, setIsTimerRunning] = useState15(true);
3397
+ const [isTimerRunning, setIsTimerRunning] = useState15(enabled);
3398
+ const handleOnFinish = useEvent(onFinish);
3399
+ useEffect19(() => {
3400
+ setTimeLeft(seconds);
3401
+ setIsTimerRunning(enabled);
3402
+ }, [enabled, seconds]);
3398
3403
  useEffect19(() => {
3399
3404
  if (!isTimerRunning) return;
3400
3405
  const timer = setInterval(() => {
@@ -3409,9 +3414,14 @@ var useTimer = ({ seconds }) => {
3409
3414
  }, 1e3);
3410
3415
  return () => clearInterval(timer);
3411
3416
  }, [isTimerRunning]);
3417
+ useEffect19(() => {
3418
+ if (timeLeft <= 0) {
3419
+ handleOnFinish();
3420
+ }
3421
+ }, [timeLeft]);
3412
3422
  const resetTimer = () => {
3413
3423
  setTimeLeft(seconds);
3414
- setIsTimerRunning(true);
3424
+ setIsTimerRunning(enabled);
3415
3425
  };
3416
3426
  return {
3417
3427
  timeLeft,
@@ -3421,9 +3431,9 @@ var useTimer = ({ seconds }) => {
3421
3431
  };
3422
3432
 
3423
3433
  // src/hooks/use-timeout.ts
3424
- import { useEffect as useEffect20, useMemo as useMemo2, useRef as useRef12 } from "react";
3434
+ import { useEffect as useEffect20, useMemo as useMemo2, useRef as useRef13 } from "react";
3425
3435
  function useTimeout(callback, ms = 0) {
3426
- const timeoutId = useRef12();
3436
+ const timeoutId = useRef13();
3427
3437
  const memoizedCallback = useEvent(callback);
3428
3438
  const handler = useMemo2(() => {
3429
3439
  return {
@@ -3577,10 +3587,10 @@ function useIframeFocusTrapFallback(contentRef, onKeyDown) {
3577
3587
  }
3578
3588
 
3579
3589
  // src/hooks/use-reset-after-request-status.ts
3580
- import { useEffect as useEffect22, useRef as useRef13 } from "react";
3590
+ import { useEffect as useEffect22, useRef as useRef14 } from "react";
3581
3591
  var ResetStatusTimeoutMs = 2e3;
3582
3592
  function useResetAfterRequestStatus({ status, reset }) {
3583
- const stateTimeoutRef = useRef13();
3593
+ const stateTimeoutRef = useRef14();
3584
3594
  const handleReset = useEvent(reset);
3585
3595
  const isNotIdle = ["success", "error"].includes(status);
3586
3596
  useEffect22(() => {
@@ -3595,10 +3605,10 @@ function useResetAfterRequestStatus({ status, reset }) {
3595
3605
  }
3596
3606
 
3597
3607
  // src/hooks/use-promised-modal-controls.ts
3598
- import { useRef as useRef14 } from "react";
3608
+ import { useRef as useRef15 } from "react";
3599
3609
  var usePromisedModalControls = () => {
3600
3610
  const { closeModal, isOpen, openModal } = useModalControls();
3601
- const resolveRef = useRef14();
3611
+ const resolveRef = useRef15();
3602
3612
  const openModalWithPromise = async () => {
3603
3613
  openModal();
3604
3614
  return new Promise((resolve) => {
@@ -4541,7 +4551,7 @@ ExternalLink.displayName = "ExternalLink";
4541
4551
  import {
4542
4552
  useCallback as useCallback17,
4543
4553
  useEffect as useEffect24,
4544
- useRef as useRef16,
4554
+ useRef as useRef17,
4545
4555
  useState as useState19
4546
4556
  } from "react";
4547
4557
  import { useTranslation as useTranslation8 } from "react-i18next";
@@ -4571,7 +4581,7 @@ function ExpandableContent({
4571
4581
  ...props
4572
4582
  }) {
4573
4583
  const { t } = useTranslation8();
4574
- const contentRef = useRef16(null);
4584
+ const contentRef = useRef17(null);
4575
4585
  const [contentHeight, setContentHeight] = useState19(0);
4576
4586
  const [internalOpen, setInternalOpen] = useState19(defaultOpen);
4577
4587
  const isOpen = open ?? internalOpen;
@@ -5070,7 +5080,7 @@ function extractDigits(str) {
5070
5080
  }
5071
5081
 
5072
5082
  // src/input-otp/useInputOTP.ts
5073
- import { useCallback as useCallback19, useEffect as useEffect25, useMemo as useMemo3, useRef as useRef17, useState as useState22 } from "react";
5083
+ import { useCallback as useCallback19, useEffect as useEffect25, useMemo as useMemo3, useRef as useRef18, useState as useState22 } from "react";
5074
5084
  function useInputOTP({
5075
5085
  maxLength,
5076
5086
  value,
@@ -5080,10 +5090,10 @@ function useInputOTP({
5080
5090
  error
5081
5091
  }) {
5082
5092
  const [activeIndex, setActiveIndex] = useState22(-1);
5083
- const inputRefs = useRef17([]);
5084
- const containerRef = useRef17(null);
5085
- const blurTimeoutRef = useRef17();
5086
- const slotsRef = useRef17(Array.from({ length: maxLength }, () => ""));
5093
+ const inputRefs = useRef18([]);
5094
+ const containerRef = useRef18(null);
5095
+ const blurTimeoutRef = useRef18();
5096
+ const slotsRef = useRef18(Array.from({ length: maxLength }, () => ""));
5087
5097
  const slots = useMemo3(() => {
5088
5098
  const nextSlots = Array.from({ length: maxLength }, () => "");
5089
5099
  for (let index = 0; index < Math.min(value.length, maxLength); index += 1) {
@@ -6151,7 +6161,7 @@ function ImageFullScreenView({ src, alt, onClose }) {
6151
6161
  }
6152
6162
 
6153
6163
  // src/modal/Modal.tsx
6154
- import { forwardRef as forwardRef30, useRef as useRef18 } from "react";
6164
+ import { forwardRef as forwardRef30, useRef as useRef19 } from "react";
6155
6165
  import { X as X4 } from "lucide-react";
6156
6166
  import { jsx as jsx71, jsxs as jsxs44 } from "react/jsx-runtime";
6157
6167
  var preventDefault = (event) => {
@@ -6181,7 +6191,7 @@ function Modal({
6181
6191
  overlayClassName,
6182
6192
  size = "auto"
6183
6193
  }) {
6184
- const contentRef = useRef18(null);
6194
+ const contentRef = useRef19(null);
6185
6195
  useScrollFrameIntoView(open, { elementRef: contentRef });
6186
6196
  const handleClose = () => {
6187
6197
  onOpenChange?.(false);
@@ -6758,7 +6768,7 @@ var LegacyMultiSelect = forwardRef33(LegacyMultiSelectInner);
6758
6768
 
6759
6769
  // src/legacy-fields/select/InfinitySelect.tsx
6760
6770
  import { useVirtualizer } from "@tanstack/react-virtual";
6761
- import { useCallback as useCallback21, useEffect as useEffect26, useId as useId7, useRef as useRef19, useState as useState27 } from "react";
6771
+ import { useCallback as useCallback21, useEffect as useEffect26, useId as useId7, useRef as useRef20, useState as useState27 } from "react";
6762
6772
  import { jsx as jsx79, jsxs as jsxs50 } from "react/jsx-runtime";
6763
6773
  function LegacyInfinitySelect({
6764
6774
  label,
@@ -6774,7 +6784,7 @@ function LegacyInfinitySelect({
6774
6784
  maxHeight = 300
6775
6785
  }) {
6776
6786
  const id = useId7();
6777
- const parentRef = useRef19(null);
6787
+ const parentRef = useRef20(null);
6778
6788
  const [isOpen, setIsOpen] = useState27(false);
6779
6789
  const virtualizer = useVirtualizer({
6780
6790
  count: hasNextPage ? options.length + 1 : options.length,
@@ -7500,11 +7510,11 @@ function RatingRadioGroupList({ children }) {
7500
7510
  }
7501
7511
 
7502
7512
  // src/rating-radio-group/useRatingPreview.ts
7503
- import { useRef as useRef20, useState as useState29 } from "react";
7513
+ import { useRef as useRef21, useState as useState29 } from "react";
7504
7514
  var TOUCH_END_DELAY = 100;
7505
7515
  function useRatingPreview() {
7506
7516
  const [hoverValue, setHoverValue] = useState29(void 0);
7507
- const isTouchDevice = useRef20(false);
7517
+ const isTouchDevice = useRef21(false);
7508
7518
  const handleContainerMouseLeave = () => {
7509
7519
  setHoverValue(void 0);
7510
7520
  };
@@ -8801,7 +8811,7 @@ var VALUE_PART = 1;
8801
8811
  var getSidebarState = (stateName) => document.cookie.split("; ").find((row) => row.startsWith(`${stateName}=`))?.split("=")[VALUE_PART] === "true";
8802
8812
 
8803
8813
  // src/signature-canvas/SignatureCanvas.tsx
8804
- import { forwardRef as forwardRef41, useEffect as useEffect29, useRef as useRef21 } from "react";
8814
+ import { forwardRef as forwardRef41, useEffect as useEffect29, useRef as useRef22 } from "react";
8805
8815
  import { Trans, useTranslation as useTranslation17 } from "react-i18next";
8806
8816
  import ReactSignatureCanvas from "react-signature-pad-wrapper";
8807
8817
 
@@ -8832,7 +8842,7 @@ var SIGNATURE_PROPS = {
8832
8842
  var SignatureCanvas = forwardRef41(
8833
8843
  ({ onClear, hasSignature, onEnd, onEnable, className, enabled }, ref) => {
8834
8844
  const { t } = useTranslation17();
8835
- const internalRef = useRef21(null);
8845
+ const internalRef = useRef22(null);
8836
8846
  const combinedRef = useCombinedRef(ref, internalRef);
8837
8847
  useEffect29(() => {
8838
8848
  if (!onEnd) return;
@@ -9932,10 +9942,10 @@ function TimelineDescription({ className, asChild, ...props }) {
9932
9942
  import { Toaster, toast as toast2 } from "sonner";
9933
9943
 
9934
9944
  // src/toaster/useUpdateToast.ts
9935
- import { useCallback as useCallback25, useRef as useRef22 } from "react";
9945
+ import { useCallback as useCallback25, useRef as useRef23 } from "react";
9936
9946
  import { toast } from "sonner";
9937
9947
  function useUpdateToast({ id }) {
9938
- const toastIdRef = useRef22("");
9948
+ const toastIdRef = useRef23("");
9939
9949
  const getToastOptions = useCallback25(
9940
9950
  (options) => ({
9941
9951
  id: toastIdRef.current,
@@ -10452,7 +10462,7 @@ function VideoModal({
10452
10462
  }
10453
10463
 
10454
10464
  // src/video-player/VideoPlayer.tsx
10455
- import { useEffect as useEffect33, useRef as useRef24, useState as useState34 } from "react";
10465
+ import { useEffect as useEffect33, useRef as useRef25, useState as useState34 } from "react";
10456
10466
  import { useTranslation as useTranslation22 } from "react-i18next";
10457
10467
  import {
10458
10468
  Loader2 as Loader23,
@@ -10476,9 +10486,9 @@ function VideoPlayer({
10476
10486
  autoPlay = false
10477
10487
  }) {
10478
10488
  const { t } = useTranslation22();
10479
- const videoRef = useRef24(null);
10480
- const iframeRef = useRef24(null);
10481
- const containerRef = useRef24(null);
10489
+ const videoRef = useRef25(null);
10490
+ const iframeRef = useRef25(null);
10491
+ const containerRef = useRef25(null);
10482
10492
  const [isPlaying, setIsPlaying] = useState34(false);
10483
10493
  const [isMuted, setIsMuted] = useState34(false);
10484
10494
  const [currentTime, setCurrentTime] = useState34(0);
@@ -10774,7 +10784,7 @@ import {
10774
10784
  useCallback as useCallback27,
10775
10785
  useImperativeHandle,
10776
10786
  useMemo as useMemo7,
10777
- useRef as useRef25,
10787
+ useRef as useRef26,
10778
10788
  useState as useState35
10779
10789
  } from "react";
10780
10790
  import { isFirefox, isMobile as isMobile2 } from "react-device-detect";
@@ -11116,10 +11126,10 @@ var Webcam = memo7(
11116
11126
  videoSourceDeviceId
11117
11127
  ]);
11118
11128
  const isMirroredInCSS = mirrored === void 0 && !isMobileOrTablet();
11119
- const webcamRef = useRef25(null);
11120
- const scanAreaRef = useRef25(null);
11121
- const canvasRef = useRef25(null);
11122
- const containerRef = useRef25(null);
11129
+ const webcamRef = useRef26(null);
11130
+ const scanAreaRef = useRef26(null);
11131
+ const canvasRef = useRef26(null);
11132
+ const containerRef = useRef26(null);
11123
11133
  const { handleUserMediaError } = useErrorHandler({
11124
11134
  onError: (errorDetails) => {
11125
11135
  onDisabled?.(true);