@chekinapp/ui 0.2.6 → 0.2.8
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 +940 -846
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +16 -2
- package/dist/index.d.ts +16 -2
- package/dist/index.js +1038 -945
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -7612,7 +7612,198 @@ function registerUiKitI18n(i18n, options = {}) {
|
|
|
7612
7612
|
|
|
7613
7613
|
// src/large-modal/LargeModal.tsx
|
|
7614
7614
|
import { X as X2 } from "lucide-react";
|
|
7615
|
+
|
|
7616
|
+
// src/drawer/Drawer.tsx
|
|
7617
|
+
import * as React22 from "react";
|
|
7618
|
+
import * as DialogPrimitive2 from "@radix-ui/react-dialog";
|
|
7619
|
+
import Draggable from "react-draggable";
|
|
7615
7620
|
import { jsx as jsx66, jsxs as jsxs40 } from "react/jsx-runtime";
|
|
7621
|
+
var DRAWER_CLOSE_THRESHOLD = 72;
|
|
7622
|
+
var DRAWER_MIN_OVERLAY_OPACITY = 0.1;
|
|
7623
|
+
function Drawer({ ...props }) {
|
|
7624
|
+
return /* @__PURE__ */ jsx66(DialogPrimitive2.Root, { "data-slot": "drawer", ...props });
|
|
7625
|
+
}
|
|
7626
|
+
function DrawerTrigger({ ...props }) {
|
|
7627
|
+
return /* @__PURE__ */ jsx66(DialogPrimitive2.Trigger, { "data-slot": "drawer-trigger", ...props });
|
|
7628
|
+
}
|
|
7629
|
+
function DrawerPortal({ ...props }) {
|
|
7630
|
+
return /* @__PURE__ */ jsx66(DialogPrimitive2.Portal, { "data-slot": "drawer-portal", ...props });
|
|
7631
|
+
}
|
|
7632
|
+
function DrawerClose({ ...props }) {
|
|
7633
|
+
return /* @__PURE__ */ jsx66(DialogPrimitive2.Close, { "data-slot": "drawer-close", ...props });
|
|
7634
|
+
}
|
|
7635
|
+
var DrawerOverlay = React22.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx66(
|
|
7636
|
+
DialogPrimitive2.Overlay,
|
|
7637
|
+
{
|
|
7638
|
+
ref,
|
|
7639
|
+
"data-slot": "drawer-overlay",
|
|
7640
|
+
className: cn(
|
|
7641
|
+
"fixed inset-0 z-50 bg-black/50 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=closed]:animate-out data-[state=closed]:fade-out-0",
|
|
7642
|
+
className
|
|
7643
|
+
),
|
|
7644
|
+
...props
|
|
7645
|
+
}
|
|
7646
|
+
));
|
|
7647
|
+
DrawerOverlay.displayName = DialogPrimitive2.Overlay.displayName;
|
|
7648
|
+
var DrawerOverlayClasses = "fixed inset-0 z-50 bg-black/50 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=closed]:animate-out data-[state=closed]:fade-out-0";
|
|
7649
|
+
var DrawerContent = React22.forwardRef(
|
|
7650
|
+
({
|
|
7651
|
+
className,
|
|
7652
|
+
children,
|
|
7653
|
+
container,
|
|
7654
|
+
onClose,
|
|
7655
|
+
showHandle = true,
|
|
7656
|
+
closeOnOverlayClick = true,
|
|
7657
|
+
lockScroll = true,
|
|
7658
|
+
disableDrag = false,
|
|
7659
|
+
...props
|
|
7660
|
+
}, ref) => {
|
|
7661
|
+
const finalContainer = container || getCustomContainer() || void 0;
|
|
7662
|
+
const nodeRef = React22.useRef(null);
|
|
7663
|
+
const [dragOffsetY, setDragOffsetY] = React22.useState(0);
|
|
7664
|
+
const overlayOpacity = Math.max(
|
|
7665
|
+
DRAWER_MIN_OVERLAY_OPACITY,
|
|
7666
|
+
1 - dragOffsetY / (DRAWER_CLOSE_THRESHOLD * 2)
|
|
7667
|
+
);
|
|
7668
|
+
const handleDrag = React22.useCallback(
|
|
7669
|
+
(_event, data) => {
|
|
7670
|
+
setDragOffsetY(Math.max(0, data.y));
|
|
7671
|
+
},
|
|
7672
|
+
[]
|
|
7673
|
+
);
|
|
7674
|
+
const handleStop = React22.useCallback(
|
|
7675
|
+
(_event, data) => {
|
|
7676
|
+
if (data.y > DRAWER_CLOSE_THRESHOLD) {
|
|
7677
|
+
setDragOffsetY(0);
|
|
7678
|
+
onClose?.();
|
|
7679
|
+
return;
|
|
7680
|
+
}
|
|
7681
|
+
setDragOffsetY(0);
|
|
7682
|
+
},
|
|
7683
|
+
[onClose]
|
|
7684
|
+
);
|
|
7685
|
+
return /* @__PURE__ */ jsxs40(DrawerPortal, { container: finalContainer, children: [
|
|
7686
|
+
lockScroll ? /* @__PURE__ */ jsx66(
|
|
7687
|
+
DrawerOverlay,
|
|
7688
|
+
{
|
|
7689
|
+
style: { opacity: overlayOpacity },
|
|
7690
|
+
onClick: closeOnOverlayClick ? onClose : void 0
|
|
7691
|
+
}
|
|
7692
|
+
) : /* @__PURE__ */ jsx66(
|
|
7693
|
+
"div",
|
|
7694
|
+
{
|
|
7695
|
+
className: cn(DrawerOverlayClasses),
|
|
7696
|
+
style: { opacity: overlayOpacity },
|
|
7697
|
+
onClick: closeOnOverlayClick ? onClose : void 0
|
|
7698
|
+
}
|
|
7699
|
+
),
|
|
7700
|
+
/* @__PURE__ */ jsx66(
|
|
7701
|
+
DialogPrimitive2.Content,
|
|
7702
|
+
{
|
|
7703
|
+
asChild: true,
|
|
7704
|
+
ref,
|
|
7705
|
+
onPointerDownOutside: (event) => {
|
|
7706
|
+
if (!closeOnOverlayClick) {
|
|
7707
|
+
event.preventDefault();
|
|
7708
|
+
}
|
|
7709
|
+
},
|
|
7710
|
+
onInteractOutside: (event) => {
|
|
7711
|
+
if (!closeOnOverlayClick) {
|
|
7712
|
+
event.preventDefault();
|
|
7713
|
+
}
|
|
7714
|
+
},
|
|
7715
|
+
...props,
|
|
7716
|
+
children: /* @__PURE__ */ jsx66("div", { className: "fixed inset-x-0 bottom-0 top-auto z-50 outline-none", children: /* @__PURE__ */ jsx66(
|
|
7717
|
+
Draggable,
|
|
7718
|
+
{
|
|
7719
|
+
axis: "y",
|
|
7720
|
+
bounds: { top: 0 },
|
|
7721
|
+
handle: "[data-drawer-handle]",
|
|
7722
|
+
nodeRef,
|
|
7723
|
+
disabled: disableDrag,
|
|
7724
|
+
onDrag: handleDrag,
|
|
7725
|
+
onStop: handleStop,
|
|
7726
|
+
position: { x: 0, y: dragOffsetY },
|
|
7727
|
+
children: /* @__PURE__ */ jsxs40(
|
|
7728
|
+
"div",
|
|
7729
|
+
{
|
|
7730
|
+
ref: nodeRef,
|
|
7731
|
+
className: cn(
|
|
7732
|
+
"bg-[var(--modal-background)] flex max-h-[calc(100vh-1rem)] w-full flex-col rounded-t-[32px] shadow-lg",
|
|
7733
|
+
className
|
|
7734
|
+
),
|
|
7735
|
+
children: [
|
|
7736
|
+
showHandle && /* @__PURE__ */ jsx66(
|
|
7737
|
+
"div",
|
|
7738
|
+
{
|
|
7739
|
+
"data-drawer-handle": true,
|
|
7740
|
+
className: cn(
|
|
7741
|
+
"mx-auto flex h-8 w-24 touch-none items-center justify-center",
|
|
7742
|
+
disableDrag ? "cursor-default" : "cursor-grab active:cursor-grabbing"
|
|
7743
|
+
),
|
|
7744
|
+
children: /* @__PURE__ */ jsx66("span", { className: "block h-1.5 w-12 rounded-full bg-[#D9D7D3]" })
|
|
7745
|
+
}
|
|
7746
|
+
),
|
|
7747
|
+
/* @__PURE__ */ jsx66("div", { className: "min-h-0 flex-1 overflow-y-auto", children })
|
|
7748
|
+
]
|
|
7749
|
+
}
|
|
7750
|
+
)
|
|
7751
|
+
}
|
|
7752
|
+
) })
|
|
7753
|
+
}
|
|
7754
|
+
)
|
|
7755
|
+
] });
|
|
7756
|
+
}
|
|
7757
|
+
);
|
|
7758
|
+
DrawerContent.displayName = DialogPrimitive2.Content.displayName;
|
|
7759
|
+
var DrawerHeader = ({ className, ...props }) => /* @__PURE__ */ jsx66(
|
|
7760
|
+
"div",
|
|
7761
|
+
{
|
|
7762
|
+
className: cn("flex flex-col gap-2 px-5 pt-2 text-center", className),
|
|
7763
|
+
...props
|
|
7764
|
+
}
|
|
7765
|
+
);
|
|
7766
|
+
DrawerHeader.displayName = "DrawerHeader";
|
|
7767
|
+
var DrawerFooter = ({ className, ...props }) => /* @__PURE__ */ jsx66("div", { className: cn("flex flex-col gap-2 p-5", className), ...props });
|
|
7768
|
+
DrawerFooter.displayName = "DrawerFooter";
|
|
7769
|
+
var DrawerTitle = React22.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx66(
|
|
7770
|
+
DialogPrimitive2.Title,
|
|
7771
|
+
{
|
|
7772
|
+
ref,
|
|
7773
|
+
"data-slot": "drawer-title",
|
|
7774
|
+
className: cn("text-lg font-semibold leading-none", className),
|
|
7775
|
+
...props
|
|
7776
|
+
}
|
|
7777
|
+
));
|
|
7778
|
+
DrawerTitle.displayName = DialogPrimitive2.Title.displayName;
|
|
7779
|
+
var DrawerDescription = React22.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx66(
|
|
7780
|
+
DialogPrimitive2.Description,
|
|
7781
|
+
{
|
|
7782
|
+
ref,
|
|
7783
|
+
"data-slot": "drawer-description",
|
|
7784
|
+
className: cn("text-muted-foreground text-sm", className),
|
|
7785
|
+
...props
|
|
7786
|
+
}
|
|
7787
|
+
));
|
|
7788
|
+
DrawerDescription.displayName = DialogPrimitive2.Description.displayName;
|
|
7789
|
+
|
|
7790
|
+
// src/lib/device.ts
|
|
7791
|
+
var DEVICE = {
|
|
7792
|
+
mobileS: "320px",
|
|
7793
|
+
mobileM: "375px",
|
|
7794
|
+
mobileL: "425px",
|
|
7795
|
+
mobileXL: "479px",
|
|
7796
|
+
tablet: "768px",
|
|
7797
|
+
laptop: "1025px",
|
|
7798
|
+
laptopM: "1126px",
|
|
7799
|
+
laptopML: "1300px",
|
|
7800
|
+
laptopL: "1440px",
|
|
7801
|
+
laptopXL: "1640px",
|
|
7802
|
+
desktop: "2560px"
|
|
7803
|
+
};
|
|
7804
|
+
|
|
7805
|
+
// src/large-modal/LargeModal.tsx
|
|
7806
|
+
import { jsx as jsx67, jsxs as jsxs41 } from "react/jsx-runtime";
|
|
7616
7807
|
function LargeModal({
|
|
7617
7808
|
open,
|
|
7618
7809
|
onOpenChange,
|
|
@@ -7621,15 +7812,61 @@ function LargeModal({
|
|
|
7621
7812
|
subHeader,
|
|
7622
7813
|
screenReaderText,
|
|
7623
7814
|
className,
|
|
7815
|
+
drawerClassName,
|
|
7624
7816
|
footer,
|
|
7625
7817
|
container,
|
|
7626
7818
|
withCloseButton = true,
|
|
7627
7819
|
closeOnDocumentClick = true,
|
|
7628
7820
|
closeOnEscape = true,
|
|
7629
|
-
allowContentOverflow = false
|
|
7821
|
+
allowContentOverflow = false,
|
|
7822
|
+
showDrawerHandle = true,
|
|
7823
|
+
disableDrag = false
|
|
7630
7824
|
}) {
|
|
7631
7825
|
const portalContainer = container ?? getCustomContainer();
|
|
7632
|
-
|
|
7826
|
+
const { isMatch: isMobile3 } = useScreenResize(DEVICE.tablet);
|
|
7827
|
+
const isMobileMode = isMobile3 && isMobileModalModeAvailable();
|
|
7828
|
+
if (isMobileMode) {
|
|
7829
|
+
return /* @__PURE__ */ jsx67(Drawer, { open, onOpenChange, children: /* @__PURE__ */ jsxs41(
|
|
7830
|
+
DrawerContent,
|
|
7831
|
+
{
|
|
7832
|
+
onClose: () => onOpenChange?.(false),
|
|
7833
|
+
showHandle: showDrawerHandle,
|
|
7834
|
+
closeOnOverlayClick: closeOnDocumentClick,
|
|
7835
|
+
disableDrag,
|
|
7836
|
+
container: portalContainer || void 0,
|
|
7837
|
+
lockScroll: !portalContainer,
|
|
7838
|
+
onEscapeKeyDown: (event) => {
|
|
7839
|
+
if (!closeOnEscape) {
|
|
7840
|
+
event.preventDefault();
|
|
7841
|
+
event.stopPropagation();
|
|
7842
|
+
}
|
|
7843
|
+
},
|
|
7844
|
+
className: cn("bg-[var(--chekin-color-white)]", className, drawerClassName),
|
|
7845
|
+
children: [
|
|
7846
|
+
/* @__PURE__ */ jsxs41(DrawerHeader, { className: "sticky top-0 z-10 flex-shrink-0 flex-row items-center justify-between border-b border-[var(--chekin-border-default)] bg-[var(--chekin-color-white)] px-6 pb-4 text-left", children: [
|
|
7847
|
+
/* @__PURE__ */ jsxs41("div", { children: [
|
|
7848
|
+
/* @__PURE__ */ jsx67(DrawerTitle, { className: "text-lg font-semibold text-[var(--chekin-color-brand-navy)]", children: header }),
|
|
7849
|
+
subHeader && /* @__PURE__ */ jsx67("div", { children: subHeader })
|
|
7850
|
+
] }),
|
|
7851
|
+
!showDrawerHandle && withCloseButton && /* @__PURE__ */ jsx67(
|
|
7852
|
+
"button",
|
|
7853
|
+
{
|
|
7854
|
+
type: "button",
|
|
7855
|
+
onClick: () => onOpenChange?.(false),
|
|
7856
|
+
className: "rounded-full p-1 text-[var(--chekin-color-brand-navy)] hover:bg-[var(--chekin-color-surface-input-empty)]",
|
|
7857
|
+
"aria-label": "Close",
|
|
7858
|
+
children: /* @__PURE__ */ jsx67(X2, { className: "h-5 w-5" })
|
|
7859
|
+
}
|
|
7860
|
+
),
|
|
7861
|
+
/* @__PURE__ */ jsx67(DrawerDescription, { className: "sr-only", children: screenReaderText })
|
|
7862
|
+
] }),
|
|
7863
|
+
/* @__PURE__ */ jsx67("div", { className: "min-h-0 flex-1 space-y-6 overflow-y-auto px-6 py-6", children }),
|
|
7864
|
+
footer && /* @__PURE__ */ jsx67(DrawerFooter, { className: "p-4", children: footer })
|
|
7865
|
+
]
|
|
7866
|
+
}
|
|
7867
|
+
) });
|
|
7868
|
+
}
|
|
7869
|
+
return /* @__PURE__ */ jsx67(Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxs41(
|
|
7633
7870
|
DialogContent,
|
|
7634
7871
|
{
|
|
7635
7872
|
showCloseButton: false,
|
|
@@ -7653,24 +7890,24 @@ function LargeModal({
|
|
|
7653
7890
|
}
|
|
7654
7891
|
},
|
|
7655
7892
|
children: [
|
|
7656
|
-
/* @__PURE__ */
|
|
7657
|
-
/* @__PURE__ */
|
|
7658
|
-
/* @__PURE__ */
|
|
7659
|
-
subHeader && /* @__PURE__ */
|
|
7893
|
+
/* @__PURE__ */ jsxs41(DialogHeader, { className: "flex-shrink-0 flex-row items-center justify-between rounded-t-2xl border-b border-[var(--chekin-border-default)] bg-[var(--chekin-color-white)] p-6", children: [
|
|
7894
|
+
/* @__PURE__ */ jsxs41("div", { children: [
|
|
7895
|
+
/* @__PURE__ */ jsx67(DialogTitle, { className: "text-lg font-semibold text-[var(--chekin-color-brand-navy)]", children: header }),
|
|
7896
|
+
subHeader && /* @__PURE__ */ jsx67("div", { children: subHeader })
|
|
7660
7897
|
] }),
|
|
7661
|
-
withCloseButton && /* @__PURE__ */
|
|
7898
|
+
withCloseButton && /* @__PURE__ */ jsx67(
|
|
7662
7899
|
"button",
|
|
7663
7900
|
{
|
|
7664
7901
|
type: "button",
|
|
7665
7902
|
onClick: () => onOpenChange?.(false),
|
|
7666
7903
|
className: "rounded-full p-1 text-[var(--chekin-color-brand-navy)] hover:bg-[var(--chekin-color-surface-input-empty)]",
|
|
7667
7904
|
"aria-label": "Close",
|
|
7668
|
-
children: /* @__PURE__ */
|
|
7905
|
+
children: /* @__PURE__ */ jsx67(X2, { className: "h-5 w-5" })
|
|
7669
7906
|
}
|
|
7670
7907
|
),
|
|
7671
|
-
/* @__PURE__ */
|
|
7908
|
+
/* @__PURE__ */ jsx67(DialogDescription, { className: "sr-only", children: screenReaderText })
|
|
7672
7909
|
] }),
|
|
7673
|
-
/* @__PURE__ */
|
|
7910
|
+
/* @__PURE__ */ jsx67(
|
|
7674
7911
|
"div",
|
|
7675
7912
|
{
|
|
7676
7913
|
className: cn(
|
|
@@ -7680,7 +7917,7 @@ function LargeModal({
|
|
|
7680
7917
|
children
|
|
7681
7918
|
}
|
|
7682
7919
|
),
|
|
7683
|
-
footer && /* @__PURE__ */
|
|
7920
|
+
footer && /* @__PURE__ */ jsx67(DialogFooter, { className: "p-4", children: footer })
|
|
7684
7921
|
]
|
|
7685
7922
|
}
|
|
7686
7923
|
) });
|
|
@@ -7689,20 +7926,20 @@ function LargeModal({
|
|
|
7689
7926
|
// src/learn-more-button/LearnMoreButton.tsx
|
|
7690
7927
|
import { BookOpenIcon } from "lucide-react";
|
|
7691
7928
|
import { useTranslation as useTranslation9 } from "react-i18next";
|
|
7692
|
-
import { jsx as
|
|
7929
|
+
import { jsx as jsx68, jsxs as jsxs42 } from "react/jsx-runtime";
|
|
7693
7930
|
function LearnMoreButton({ label, ...props }) {
|
|
7694
7931
|
const { t } = useTranslation9();
|
|
7695
|
-
return /* @__PURE__ */
|
|
7696
|
-
/* @__PURE__ */
|
|
7932
|
+
return /* @__PURE__ */ jsxs42(Button, { variant: "link", ...props, children: [
|
|
7933
|
+
/* @__PURE__ */ jsx68(BookOpenIcon, { className: "size-5 text-[var(--button-link-text)]" }),
|
|
7697
7934
|
label || t("learn_more")
|
|
7698
7935
|
] });
|
|
7699
7936
|
}
|
|
7700
7937
|
|
|
7701
7938
|
// src/link/Link.tsx
|
|
7702
|
-
import { forwardRef as
|
|
7703
|
-
import { jsx as
|
|
7704
|
-
var LinkInternal =
|
|
7705
|
-
({ disabled = false, className, children, ...props }, ref) => /* @__PURE__ */
|
|
7939
|
+
import { forwardRef as forwardRef29, memo as memo2 } from "react";
|
|
7940
|
+
import { jsx as jsx69 } from "react/jsx-runtime";
|
|
7941
|
+
var LinkInternal = forwardRef29(
|
|
7942
|
+
({ disabled = false, className, children, ...props }, ref) => /* @__PURE__ */ jsx69(
|
|
7706
7943
|
"a",
|
|
7707
7944
|
{
|
|
7708
7945
|
ref,
|
|
@@ -7723,21 +7960,21 @@ LinkInternal.displayName = "Link";
|
|
|
7723
7960
|
var Link = memo2(LinkInternal);
|
|
7724
7961
|
|
|
7725
7962
|
// src/image-full-screen-view/ImageFullScreenView.tsx
|
|
7726
|
-
import { useState as
|
|
7963
|
+
import { useState as useState24 } from "react";
|
|
7727
7964
|
import { RotateCw, X as X3, ZoomIn, ZoomOut } from "lucide-react";
|
|
7728
7965
|
import { useTranslation as useTranslation10 } from "react-i18next";
|
|
7729
|
-
import { jsx as
|
|
7966
|
+
import { jsx as jsx70, jsxs as jsxs43 } from "react/jsx-runtime";
|
|
7730
7967
|
function ImageFullScreenView({ src, alt, onClose }) {
|
|
7731
7968
|
const { t } = useTranslation10();
|
|
7732
|
-
const [scale, setScale] =
|
|
7733
|
-
const [rotation, setRotation] =
|
|
7969
|
+
const [scale, setScale] = useState24(1);
|
|
7970
|
+
const [rotation, setRotation] = useState24(0);
|
|
7734
7971
|
useClickEscape({ onClick: onClose });
|
|
7735
7972
|
const zoomIn = () => setScale((value) => Math.min(value + 0.25, 3));
|
|
7736
7973
|
const zoomOut = () => setScale((value) => Math.max(value - 0.25, 0.5));
|
|
7737
7974
|
const rotate = () => setRotation((value) => (value + 90) % 360);
|
|
7738
|
-
return /* @__PURE__ */
|
|
7739
|
-
/* @__PURE__ */
|
|
7740
|
-
/* @__PURE__ */
|
|
7975
|
+
return /* @__PURE__ */ jsxs43("div", { className: "fixed inset-0 z-[300] flex flex-col items-center justify-center bg-black/90", children: [
|
|
7976
|
+
/* @__PURE__ */ jsxs43("div", { className: "absolute right-4 top-4 z-[301] flex gap-2", children: [
|
|
7977
|
+
/* @__PURE__ */ jsx70(
|
|
7741
7978
|
Button,
|
|
7742
7979
|
{
|
|
7743
7980
|
variant: "ghost",
|
|
@@ -7745,10 +7982,10 @@ function ImageFullScreenView({ src, alt, onClose }) {
|
|
|
7745
7982
|
onClick: zoomIn,
|
|
7746
7983
|
className: "rounded-full text-white hover:bg-white/20",
|
|
7747
7984
|
"aria-label": t("zoom_in"),
|
|
7748
|
-
children: /* @__PURE__ */
|
|
7985
|
+
children: /* @__PURE__ */ jsx70(ZoomIn, { className: "h-6 w-6" })
|
|
7749
7986
|
}
|
|
7750
7987
|
),
|
|
7751
|
-
/* @__PURE__ */
|
|
7988
|
+
/* @__PURE__ */ jsx70(
|
|
7752
7989
|
Button,
|
|
7753
7990
|
{
|
|
7754
7991
|
variant: "ghost",
|
|
@@ -7756,10 +7993,10 @@ function ImageFullScreenView({ src, alt, onClose }) {
|
|
|
7756
7993
|
onClick: zoomOut,
|
|
7757
7994
|
className: "rounded-full text-white hover:bg-white/20",
|
|
7758
7995
|
"aria-label": t("zoom_out"),
|
|
7759
|
-
children: /* @__PURE__ */
|
|
7996
|
+
children: /* @__PURE__ */ jsx70(ZoomOut, { className: "h-6 w-6" })
|
|
7760
7997
|
}
|
|
7761
7998
|
),
|
|
7762
|
-
/* @__PURE__ */
|
|
7999
|
+
/* @__PURE__ */ jsx70(
|
|
7763
8000
|
Button,
|
|
7764
8001
|
{
|
|
7765
8002
|
variant: "ghost",
|
|
@@ -7767,10 +8004,10 @@ function ImageFullScreenView({ src, alt, onClose }) {
|
|
|
7767
8004
|
onClick: rotate,
|
|
7768
8005
|
className: "rounded-full text-white hover:bg-white/20",
|
|
7769
8006
|
"aria-label": t("rotate"),
|
|
7770
|
-
children: /* @__PURE__ */
|
|
8007
|
+
children: /* @__PURE__ */ jsx70(RotateCw, { className: "h-6 w-6" })
|
|
7771
8008
|
}
|
|
7772
8009
|
),
|
|
7773
|
-
/* @__PURE__ */
|
|
8010
|
+
/* @__PURE__ */ jsx70(
|
|
7774
8011
|
Button,
|
|
7775
8012
|
{
|
|
7776
8013
|
variant: "ghost",
|
|
@@ -7778,11 +8015,11 @@ function ImageFullScreenView({ src, alt, onClose }) {
|
|
|
7778
8015
|
onClick: onClose,
|
|
7779
8016
|
className: "rounded-full text-white hover:bg-white/20",
|
|
7780
8017
|
"aria-label": t("close"),
|
|
7781
|
-
children: /* @__PURE__ */
|
|
8018
|
+
children: /* @__PURE__ */ jsx70(X3, { className: "h-6 w-6" })
|
|
7782
8019
|
}
|
|
7783
8020
|
)
|
|
7784
8021
|
] }),
|
|
7785
|
-
/* @__PURE__ */
|
|
8022
|
+
/* @__PURE__ */ jsx70(
|
|
7786
8023
|
"div",
|
|
7787
8024
|
{
|
|
7788
8025
|
className: "flex h-full w-full cursor-move items-center justify-center overflow-hidden",
|
|
@@ -7791,7 +8028,7 @@ function ImageFullScreenView({ src, alt, onClose }) {
|
|
|
7791
8028
|
onClose();
|
|
7792
8029
|
}
|
|
7793
8030
|
},
|
|
7794
|
-
children: /* @__PURE__ */
|
|
8031
|
+
children: /* @__PURE__ */ jsx70(
|
|
7795
8032
|
"div",
|
|
7796
8033
|
{
|
|
7797
8034
|
style: {
|
|
@@ -7799,7 +8036,7 @@ function ImageFullScreenView({ src, alt, onClose }) {
|
|
|
7799
8036
|
transition: "transform 0.2s ease-in-out"
|
|
7800
8037
|
},
|
|
7801
8038
|
className: "max-h-[90%] max-w-[90%]",
|
|
7802
|
-
children: /* @__PURE__ */
|
|
8039
|
+
children: /* @__PURE__ */ jsx70(
|
|
7803
8040
|
Image2,
|
|
7804
8041
|
{
|
|
7805
8042
|
src: src || "",
|
|
@@ -7813,14 +8050,14 @@ function ImageFullScreenView({ src, alt, onClose }) {
|
|
|
7813
8050
|
)
|
|
7814
8051
|
}
|
|
7815
8052
|
),
|
|
7816
|
-
/* @__PURE__ */
|
|
8053
|
+
/* @__PURE__ */ jsx70("div", { className: "absolute bottom-4 left-0 right-0 text-center text-sm text-white/70", children: /* @__PURE__ */ jsx70("p", { children: t("esc_to_close") }) })
|
|
7817
8054
|
] });
|
|
7818
8055
|
}
|
|
7819
8056
|
|
|
7820
8057
|
// src/modal/Modal.tsx
|
|
7821
|
-
import { forwardRef as
|
|
8058
|
+
import { forwardRef as forwardRef30, useRef as useRef19 } from "react";
|
|
7822
8059
|
import { X as X4 } from "lucide-react";
|
|
7823
|
-
import { jsx as
|
|
8060
|
+
import { jsx as jsx71, jsxs as jsxs44 } from "react/jsx-runtime";
|
|
7824
8061
|
var preventDefault = (event) => {
|
|
7825
8062
|
event.preventDefault();
|
|
7826
8063
|
};
|
|
@@ -7848,13 +8085,13 @@ function Modal({
|
|
|
7848
8085
|
overlayClassName,
|
|
7849
8086
|
size = "auto"
|
|
7850
8087
|
}) {
|
|
7851
|
-
const contentRef =
|
|
8088
|
+
const contentRef = useRef19(null);
|
|
7852
8089
|
useScrollFrameIntoView(open, { elementRef: contentRef });
|
|
7853
8090
|
const handleClose = () => {
|
|
7854
8091
|
onOpenChange?.(false);
|
|
7855
8092
|
onClose?.();
|
|
7856
8093
|
};
|
|
7857
|
-
return /* @__PURE__ */
|
|
8094
|
+
return /* @__PURE__ */ jsx71(Dialog, { open, onOpenChange, modal, children: /* @__PURE__ */ jsxs44(
|
|
7858
8095
|
DialogContent,
|
|
7859
8096
|
{
|
|
7860
8097
|
ref: contentRef,
|
|
@@ -7873,7 +8110,7 @@ function Modal({
|
|
|
7873
8110
|
lockScroll,
|
|
7874
8111
|
...!text && { "aria-describedby": void 0 },
|
|
7875
8112
|
children: [
|
|
7876
|
-
withCloseButton && /* @__PURE__ */
|
|
8113
|
+
withCloseButton && /* @__PURE__ */ jsx71(
|
|
7877
8114
|
"button",
|
|
7878
8115
|
{
|
|
7879
8116
|
type: "button",
|
|
@@ -7883,14 +8120,14 @@ function Modal({
|
|
|
7883
8120
|
"absolute right-4 top-4 z-10 rounded-full p-1 text-[var(--chekin-color-brand-blue)] hover:bg-[var(--chekin-neutral-50)]"
|
|
7884
8121
|
),
|
|
7885
8122
|
"aria-label": "Close",
|
|
7886
|
-
children: /* @__PURE__ */
|
|
8123
|
+
children: /* @__PURE__ */ jsx71(X4, { className: "h-5 w-5" })
|
|
7887
8124
|
}
|
|
7888
8125
|
),
|
|
7889
|
-
(icon || iconSrc || iconProps?.src) && /* @__PURE__ */
|
|
7890
|
-
title ? /* @__PURE__ */
|
|
7891
|
-
text && /* @__PURE__ */
|
|
8126
|
+
(icon || iconSrc || iconProps?.src) && /* @__PURE__ */ jsx71("div", { className: cn("modal__icon mx-auto mt-4 select-none", iconClassName), children: icon ?? /* @__PURE__ */ jsx71("img", { src: iconSrc, alt: iconAlt ?? "", ...iconProps }) }),
|
|
8127
|
+
title ? /* @__PURE__ */ jsx71(DialogTitle, { className: cn("modal__title", "px-6 font-bold"), children: title }) : /* @__PURE__ */ jsx71(DialogVisuallyHidden, { children: /* @__PURE__ */ jsx71(DialogTitle, { children: "Dialog" }) }),
|
|
8128
|
+
text && /* @__PURE__ */ jsx71(DialogDescription, { className: cn("modal__text", "text-base"), children: text }),
|
|
7892
8129
|
children,
|
|
7893
|
-
buttons && /* @__PURE__ */
|
|
8130
|
+
buttons && /* @__PURE__ */ jsx71(
|
|
7894
8131
|
"div",
|
|
7895
8132
|
{
|
|
7896
8133
|
className: cn(
|
|
@@ -7904,8 +8141,8 @@ function Modal({
|
|
|
7904
8141
|
}
|
|
7905
8142
|
) });
|
|
7906
8143
|
}
|
|
7907
|
-
var ModalButton =
|
|
7908
|
-
({ children, size, className, ...props }, ref) => /* @__PURE__ */
|
|
8144
|
+
var ModalButton = forwardRef30(
|
|
8145
|
+
({ children, size, className, ...props }, ref) => /* @__PURE__ */ jsx71(
|
|
7909
8146
|
Button,
|
|
7910
8147
|
{
|
|
7911
8148
|
ref,
|
|
@@ -7923,8 +8160,8 @@ Modal.displayName = "Modal";
|
|
|
7923
8160
|
import { memo as memo3 } from "react";
|
|
7924
8161
|
|
|
7925
8162
|
// src/circular-loader/CircularLoader.tsx
|
|
7926
|
-
import
|
|
7927
|
-
import { jsx as
|
|
8163
|
+
import React23 from "react";
|
|
8164
|
+
import { jsx as jsx72, jsxs as jsxs45 } from "react/jsx-runtime";
|
|
7928
8165
|
var loaderSizePixels = {
|
|
7929
8166
|
sm: 16,
|
|
7930
8167
|
md: 32,
|
|
@@ -7939,7 +8176,7 @@ var labelSizeClassName = {
|
|
|
7939
8176
|
xl: "text-base",
|
|
7940
8177
|
"2xl": "text-base"
|
|
7941
8178
|
};
|
|
7942
|
-
var CircularLoader =
|
|
8179
|
+
var CircularLoader = React23.memo(
|
|
7943
8180
|
({
|
|
7944
8181
|
visible = true,
|
|
7945
8182
|
size = "md",
|
|
@@ -7950,7 +8187,7 @@ var CircularLoader = React22.memo(
|
|
|
7950
8187
|
className
|
|
7951
8188
|
}) => {
|
|
7952
8189
|
if (!visible) return null;
|
|
7953
|
-
return /* @__PURE__ */
|
|
8190
|
+
return /* @__PURE__ */ jsxs45(
|
|
7954
8191
|
"div",
|
|
7955
8192
|
{
|
|
7956
8193
|
className: cn(
|
|
@@ -7960,7 +8197,7 @@ var CircularLoader = React22.memo(
|
|
|
7960
8197
|
),
|
|
7961
8198
|
role: "progressbar",
|
|
7962
8199
|
children: [
|
|
7963
|
-
/* @__PURE__ */
|
|
8200
|
+
/* @__PURE__ */ jsxs45(
|
|
7964
8201
|
"svg",
|
|
7965
8202
|
{
|
|
7966
8203
|
viewBox: "25 25 50 50",
|
|
@@ -7970,7 +8207,7 @@ var CircularLoader = React22.memo(
|
|
|
7970
8207
|
height: toCssSize(height ?? width ?? loaderSizePixels[size])
|
|
7971
8208
|
},
|
|
7972
8209
|
children: [
|
|
7973
|
-
/* @__PURE__ */
|
|
8210
|
+
/* @__PURE__ */ jsx72(
|
|
7974
8211
|
"circle",
|
|
7975
8212
|
{
|
|
7976
8213
|
r: "20",
|
|
@@ -7980,7 +8217,7 @@ var CircularLoader = React22.memo(
|
|
|
7980
8217
|
strokeWidth: "7"
|
|
7981
8218
|
}
|
|
7982
8219
|
),
|
|
7983
|
-
/* @__PURE__ */
|
|
8220
|
+
/* @__PURE__ */ jsxs45(
|
|
7984
8221
|
"circle",
|
|
7985
8222
|
{
|
|
7986
8223
|
r: "20",
|
|
@@ -7992,7 +8229,7 @@ var CircularLoader = React22.memo(
|
|
|
7992
8229
|
strokeLinecap: "round",
|
|
7993
8230
|
strokeWidth: "7",
|
|
7994
8231
|
children: [
|
|
7995
|
-
/* @__PURE__ */
|
|
8232
|
+
/* @__PURE__ */ jsx72(
|
|
7996
8233
|
"animateTransform",
|
|
7997
8234
|
{
|
|
7998
8235
|
attributeName: "transform",
|
|
@@ -8003,7 +8240,7 @@ var CircularLoader = React22.memo(
|
|
|
8003
8240
|
type: "rotate"
|
|
8004
8241
|
}
|
|
8005
8242
|
),
|
|
8006
|
-
/* @__PURE__ */
|
|
8243
|
+
/* @__PURE__ */ jsx72(
|
|
8007
8244
|
"animate",
|
|
8008
8245
|
{
|
|
8009
8246
|
attributeName: "stroke-dasharray",
|
|
@@ -8015,7 +8252,7 @@ var CircularLoader = React22.memo(
|
|
|
8015
8252
|
values: "1 200;90 200;90 200"
|
|
8016
8253
|
}
|
|
8017
8254
|
),
|
|
8018
|
-
/* @__PURE__ */
|
|
8255
|
+
/* @__PURE__ */ jsx72(
|
|
8019
8256
|
"animate",
|
|
8020
8257
|
{
|
|
8021
8258
|
attributeName: "stroke-dashoffset",
|
|
@@ -8033,7 +8270,7 @@ var CircularLoader = React22.memo(
|
|
|
8033
8270
|
]
|
|
8034
8271
|
}
|
|
8035
8272
|
),
|
|
8036
|
-
label && /* @__PURE__ */
|
|
8273
|
+
label && /* @__PURE__ */ jsx72(
|
|
8037
8274
|
"div",
|
|
8038
8275
|
{
|
|
8039
8276
|
className: cn(
|
|
@@ -8051,8 +8288,8 @@ var CircularLoader = React22.memo(
|
|
|
8051
8288
|
CircularLoader.displayName = "CircularLoader";
|
|
8052
8289
|
|
|
8053
8290
|
// src/modal-loader/ModalLoader.tsx
|
|
8054
|
-
import { jsx as
|
|
8055
|
-
var ModalLoader = memo3(({ visible, className }) => /* @__PURE__ */
|
|
8291
|
+
import { jsx as jsx73 } from "react/jsx-runtime";
|
|
8292
|
+
var ModalLoader = memo3(({ visible, className }) => /* @__PURE__ */ jsx73(
|
|
8056
8293
|
"div",
|
|
8057
8294
|
{
|
|
8058
8295
|
className: cn(
|
|
@@ -8060,17 +8297,17 @@ var ModalLoader = memo3(({ visible, className }) => /* @__PURE__ */ jsx72(
|
|
|
8060
8297
|
visible ? "flex" : "hidden",
|
|
8061
8298
|
className
|
|
8062
8299
|
),
|
|
8063
|
-
children: /* @__PURE__ */
|
|
8300
|
+
children: /* @__PURE__ */ jsx73("div", { className: "mb-[60px]", children: /* @__PURE__ */ jsx73(CircularLoader, { size: "lg", className: "[--circular-loader-color:#475569]" }) })
|
|
8064
8301
|
}
|
|
8065
8302
|
));
|
|
8066
8303
|
ModalLoader.displayName = "ModalLoader";
|
|
8067
8304
|
|
|
8068
8305
|
// src/numbered-list/NumberedList.tsx
|
|
8069
8306
|
import { Children as Children3 } from "react";
|
|
8070
|
-
import { jsx as
|
|
8307
|
+
import { jsx as jsx74 } from "react/jsx-runtime";
|
|
8071
8308
|
var NumberedList = ({ children, className, itemClassName }) => {
|
|
8072
8309
|
const items = Array.isArray(children) ? Children3.toArray(children) : [children];
|
|
8073
|
-
return /* @__PURE__ */
|
|
8310
|
+
return /* @__PURE__ */ jsx74(
|
|
8074
8311
|
"ol",
|
|
8075
8312
|
{
|
|
8076
8313
|
className: cn(
|
|
@@ -8078,7 +8315,7 @@ var NumberedList = ({ children, className, itemClassName }) => {
|
|
|
8078
8315
|
className
|
|
8079
8316
|
),
|
|
8080
8317
|
type: "1",
|
|
8081
|
-
children: items.map((child, index) => /* @__PURE__ */
|
|
8318
|
+
children: items.map((child, index) => /* @__PURE__ */ jsx74(
|
|
8082
8319
|
"li",
|
|
8083
8320
|
{
|
|
8084
8321
|
className: cn(
|
|
@@ -8089,7 +8326,7 @@ var NumberedList = ({ children, className, itemClassName }) => {
|
|
|
8089
8326
|
before:text-[var(--numbered-list-marker-text)] before:content-[counter(item)]`,
|
|
8090
8327
|
itemClassName
|
|
8091
8328
|
),
|
|
8092
|
-
children: /* @__PURE__ */
|
|
8329
|
+
children: /* @__PURE__ */ jsx74("div", { children: child })
|
|
8093
8330
|
},
|
|
8094
8331
|
index
|
|
8095
8332
|
))
|
|
@@ -8099,7 +8336,7 @@ var NumberedList = ({ children, className, itemClassName }) => {
|
|
|
8099
8336
|
|
|
8100
8337
|
// src/overlay-loader/OverlayLoader.tsx
|
|
8101
8338
|
import { useTranslation as useTranslation11 } from "react-i18next";
|
|
8102
|
-
import { jsx as
|
|
8339
|
+
import { jsx as jsx75, jsxs as jsxs46 } from "react/jsx-runtime";
|
|
8103
8340
|
function OverlayLoader({
|
|
8104
8341
|
isLoading,
|
|
8105
8342
|
children,
|
|
@@ -8111,16 +8348,16 @@ function OverlayLoader({
|
|
|
8111
8348
|
}) {
|
|
8112
8349
|
const { t } = useTranslation11();
|
|
8113
8350
|
const resolvedLabel = label || t("loading");
|
|
8114
|
-
return /* @__PURE__ */
|
|
8351
|
+
return /* @__PURE__ */ jsxs46("div", { className: cn("relative", className), children: [
|
|
8115
8352
|
children,
|
|
8116
|
-
isLoading && /* @__PURE__ */
|
|
8353
|
+
isLoading && /* @__PURE__ */ jsx75(
|
|
8117
8354
|
"div",
|
|
8118
8355
|
{
|
|
8119
8356
|
className: cn(
|
|
8120
8357
|
"absolute inset-0 flex items-center justify-center bg-[rgb(255_255_255_/_0.6)]",
|
|
8121
8358
|
overlayClassName
|
|
8122
8359
|
),
|
|
8123
|
-
children: /* @__PURE__ */
|
|
8360
|
+
children: /* @__PURE__ */ jsx75(
|
|
8124
8361
|
CircularLoader,
|
|
8125
8362
|
{
|
|
8126
8363
|
size: loaderSize,
|
|
@@ -8138,13 +8375,13 @@ import { useTranslation as useTranslation12 } from "react-i18next";
|
|
|
8138
8375
|
import { ChevronLeft as ChevronLeft2, ChevronRight as ChevronRight4, ChevronsLeft, ChevronsRight } from "lucide-react";
|
|
8139
8376
|
|
|
8140
8377
|
// src/legacy-fields/select/Select.tsx
|
|
8141
|
-
import { forwardRef as
|
|
8378
|
+
import { forwardRef as forwardRef32, useId as useId4, useState as useState25 } from "react";
|
|
8142
8379
|
|
|
8143
8380
|
// src/legacy-fields/select/components.tsx
|
|
8144
|
-
import * as
|
|
8381
|
+
import * as React24 from "react";
|
|
8145
8382
|
import * as SelectPrimitive from "@radix-ui/react-select";
|
|
8146
8383
|
import { CheckIcon, ChevronDownIcon, ChevronUpIcon } from "lucide-react";
|
|
8147
|
-
import { jsx as
|
|
8384
|
+
import { jsx as jsx76, jsxs as jsxs47 } from "react/jsx-runtime";
|
|
8148
8385
|
var LegacySelectRoot = SelectPrimitive.Root;
|
|
8149
8386
|
var LegacySelectGroup = SelectPrimitive.Group;
|
|
8150
8387
|
var LegacySelectValue = SelectPrimitive.Value;
|
|
@@ -8153,7 +8390,7 @@ var selectSizeClassNames = {
|
|
|
8153
8390
|
sm: "text-sm",
|
|
8154
8391
|
md: "text-base"
|
|
8155
8392
|
};
|
|
8156
|
-
var LegacySelectTrigger =
|
|
8393
|
+
var LegacySelectTrigger = React24.forwardRef(({ className, children, size = "sm", ...props }, ref) => /* @__PURE__ */ jsxs47(
|
|
8157
8394
|
SelectPrimitive.Trigger,
|
|
8158
8395
|
{
|
|
8159
8396
|
ref,
|
|
@@ -8168,7 +8405,7 @@ var LegacySelectTrigger = React23.forwardRef(({ className, children, size = "sm"
|
|
|
8168
8405
|
...props,
|
|
8169
8406
|
children: [
|
|
8170
8407
|
children,
|
|
8171
|
-
/* @__PURE__ */
|
|
8408
|
+
/* @__PURE__ */ jsx76(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ jsx76(
|
|
8172
8409
|
ChevronDownIcon,
|
|
8173
8410
|
{
|
|
8174
8411
|
size: 16,
|
|
@@ -8180,27 +8417,27 @@ var LegacySelectTrigger = React23.forwardRef(({ className, children, size = "sm"
|
|
|
8180
8417
|
}
|
|
8181
8418
|
));
|
|
8182
8419
|
LegacySelectTrigger.displayName = SelectPrimitive.Trigger.displayName;
|
|
8183
|
-
var LegacySelectScrollUpButton =
|
|
8420
|
+
var LegacySelectScrollUpButton = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx76(
|
|
8184
8421
|
SelectPrimitive.ScrollUpButton,
|
|
8185
8422
|
{
|
|
8186
8423
|
ref,
|
|
8187
8424
|
className: cn("flex cursor-default items-center justify-center py-1", className),
|
|
8188
8425
|
...props,
|
|
8189
|
-
children: /* @__PURE__ */
|
|
8426
|
+
children: /* @__PURE__ */ jsx76(ChevronUpIcon, { size: 16, strokeWidth: 2 })
|
|
8190
8427
|
}
|
|
8191
8428
|
));
|
|
8192
8429
|
LegacySelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;
|
|
8193
|
-
var LegacySelectScrollDownButton =
|
|
8430
|
+
var LegacySelectScrollDownButton = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx76(
|
|
8194
8431
|
SelectPrimitive.ScrollDownButton,
|
|
8195
8432
|
{
|
|
8196
8433
|
ref,
|
|
8197
8434
|
className: cn("flex cursor-default items-center justify-center py-1", className),
|
|
8198
8435
|
...props,
|
|
8199
|
-
children: /* @__PURE__ */
|
|
8436
|
+
children: /* @__PURE__ */ jsx76(ChevronDownIcon, { size: 16, strokeWidth: 2 })
|
|
8200
8437
|
}
|
|
8201
8438
|
));
|
|
8202
8439
|
LegacySelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;
|
|
8203
|
-
var LegacySelectContent =
|
|
8440
|
+
var LegacySelectContent = React24.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */ jsx76(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs47(
|
|
8204
8441
|
SelectPrimitive.Content,
|
|
8205
8442
|
{
|
|
8206
8443
|
ref,
|
|
@@ -8218,8 +8455,8 @@ var LegacySelectContent = React23.forwardRef(({ className, children, position =
|
|
|
8218
8455
|
position,
|
|
8219
8456
|
...props,
|
|
8220
8457
|
children: [
|
|
8221
|
-
/* @__PURE__ */
|
|
8222
|
-
/* @__PURE__ */
|
|
8458
|
+
/* @__PURE__ */ jsx76(LegacySelectScrollUpButton, {}),
|
|
8459
|
+
/* @__PURE__ */ jsx76(
|
|
8223
8460
|
SelectPrimitive.Viewport,
|
|
8224
8461
|
{
|
|
8225
8462
|
className: cn(
|
|
@@ -8229,12 +8466,12 @@ var LegacySelectContent = React23.forwardRef(({ className, children, position =
|
|
|
8229
8466
|
children
|
|
8230
8467
|
}
|
|
8231
8468
|
),
|
|
8232
|
-
/* @__PURE__ */
|
|
8469
|
+
/* @__PURE__ */ jsx76(LegacySelectScrollDownButton, {})
|
|
8233
8470
|
]
|
|
8234
8471
|
}
|
|
8235
8472
|
) }));
|
|
8236
8473
|
LegacySelectContent.displayName = SelectPrimitive.Content.displayName;
|
|
8237
|
-
var LegacySelectLabel =
|
|
8474
|
+
var LegacySelectLabel = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx76(
|
|
8238
8475
|
SelectPrimitive.Label,
|
|
8239
8476
|
{
|
|
8240
8477
|
ref,
|
|
@@ -8246,7 +8483,7 @@ var LegacySelectLabel = React23.forwardRef(({ className, ...props }, ref) => /*
|
|
|
8246
8483
|
}
|
|
8247
8484
|
));
|
|
8248
8485
|
LegacySelectLabel.displayName = SelectPrimitive.Label.displayName;
|
|
8249
|
-
var LegacySelectItem =
|
|
8486
|
+
var LegacySelectItem = React24.forwardRef(({ className, children, size = "sm", ...props }, ref) => /* @__PURE__ */ jsxs47(
|
|
8250
8487
|
SelectPrimitive.Item,
|
|
8251
8488
|
{
|
|
8252
8489
|
ref,
|
|
@@ -8260,13 +8497,13 @@ var LegacySelectItem = React23.forwardRef(({ className, children, size = "sm", .
|
|
|
8260
8497
|
),
|
|
8261
8498
|
...props,
|
|
8262
8499
|
children: [
|
|
8263
|
-
/* @__PURE__ */
|
|
8264
|
-
/* @__PURE__ */
|
|
8500
|
+
/* @__PURE__ */ jsx76("span", { className: "absolute start-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx76(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx76(CheckIcon, { size: 16, strokeWidth: 2 }) }) }),
|
|
8501
|
+
/* @__PURE__ */ jsx76(SelectPrimitive.ItemText, { children })
|
|
8265
8502
|
]
|
|
8266
8503
|
}
|
|
8267
8504
|
));
|
|
8268
8505
|
LegacySelectItem.displayName = SelectPrimitive.Item.displayName;
|
|
8269
|
-
var LegacySelectSeparator =
|
|
8506
|
+
var LegacySelectSeparator = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx76(
|
|
8270
8507
|
SelectPrimitive.Separator,
|
|
8271
8508
|
{
|
|
8272
8509
|
ref,
|
|
@@ -8277,7 +8514,7 @@ var LegacySelectSeparator = React23.forwardRef(({ className, ...props }, ref) =>
|
|
|
8277
8514
|
LegacySelectSeparator.displayName = SelectPrimitive.Separator.displayName;
|
|
8278
8515
|
|
|
8279
8516
|
// src/legacy-fields/select/Select.tsx
|
|
8280
|
-
import { jsx as
|
|
8517
|
+
import { jsx as jsx77, jsxs as jsxs48 } from "react/jsx-runtime";
|
|
8281
8518
|
var LegacySelectInner = ({
|
|
8282
8519
|
placeholder,
|
|
8283
8520
|
label,
|
|
@@ -8295,7 +8532,7 @@ var LegacySelectInner = ({
|
|
|
8295
8532
|
disabled
|
|
8296
8533
|
}, ref) => {
|
|
8297
8534
|
const id = useId4();
|
|
8298
|
-
const [isOpen, setIsOpen] =
|
|
8535
|
+
const [isOpen, setIsOpen] = useState25(false);
|
|
8299
8536
|
const hasValue = Boolean(value);
|
|
8300
8537
|
const showLabel = hasValue || isOpen;
|
|
8301
8538
|
const handleValueChange = (newValue) => {
|
|
@@ -8305,8 +8542,8 @@ var LegacySelectInner = ({
|
|
|
8305
8542
|
const handleOpenChange = (open) => {
|
|
8306
8543
|
setIsOpen(open);
|
|
8307
8544
|
};
|
|
8308
|
-
return /* @__PURE__ */
|
|
8309
|
-
label && showLabel && /* @__PURE__ */
|
|
8545
|
+
return /* @__PURE__ */ jsxs48("div", { className: cn("group relative w-[300px]", className, containerClassName), children: [
|
|
8546
|
+
label && showLabel && /* @__PURE__ */ jsx77(
|
|
8310
8547
|
"label",
|
|
8311
8548
|
{
|
|
8312
8549
|
htmlFor: id,
|
|
@@ -8314,7 +8551,7 @@ var LegacySelectInner = ({
|
|
|
8314
8551
|
children: label
|
|
8315
8552
|
}
|
|
8316
8553
|
),
|
|
8317
|
-
/* @__PURE__ */
|
|
8554
|
+
/* @__PURE__ */ jsxs48(
|
|
8318
8555
|
LegacySelectRoot,
|
|
8319
8556
|
{
|
|
8320
8557
|
value,
|
|
@@ -8322,8 +8559,8 @@ var LegacySelectInner = ({
|
|
|
8322
8559
|
onOpenChange: handleOpenChange,
|
|
8323
8560
|
disabled,
|
|
8324
8561
|
children: [
|
|
8325
|
-
/* @__PURE__ */
|
|
8326
|
-
/* @__PURE__ */
|
|
8562
|
+
/* @__PURE__ */ jsx77(LegacySelectTrigger, { id, ref, size, className: triggerClassName, children: /* @__PURE__ */ jsx77(LegacySelectValue, { placeholder }) }),
|
|
8563
|
+
/* @__PURE__ */ jsx77(LegacySelectContent, { children: children ?? options?.map((option) => /* @__PURE__ */ jsx77(
|
|
8327
8564
|
LegacySelectItem,
|
|
8328
8565
|
{
|
|
8329
8566
|
value: String(option.value),
|
|
@@ -8336,21 +8573,21 @@ var LegacySelectInner = ({
|
|
|
8336
8573
|
]
|
|
8337
8574
|
}
|
|
8338
8575
|
),
|
|
8339
|
-
Boolean(supportingText || errorText) && /* @__PURE__ */
|
|
8340
|
-
supportingText && !errorText && /* @__PURE__ */
|
|
8341
|
-
errorText && /* @__PURE__ */
|
|
8576
|
+
Boolean(supportingText || errorText) && /* @__PURE__ */ jsxs48("div", { className: "flex min-h-[15px] justify-between pt-1", children: [
|
|
8577
|
+
supportingText && !errorText && /* @__PURE__ */ jsx77("span", { className: "text-xs italic leading-[15px] text-[var(--chekin-color-gray-1)]", children: supportingText }),
|
|
8578
|
+
errorText && /* @__PURE__ */ jsx77("span", { className: "ml-auto text-right text-xs font-medium leading-4 text-[var(--error-message-color)]", children: errorText })
|
|
8342
8579
|
] })
|
|
8343
8580
|
] });
|
|
8344
8581
|
};
|
|
8345
|
-
var LegacySelectForward =
|
|
8582
|
+
var LegacySelectForward = forwardRef32(LegacySelectInner);
|
|
8346
8583
|
LegacySelectForward.displayName = "LegacySelect";
|
|
8347
8584
|
var LegacySelect = LegacySelectForward;
|
|
8348
8585
|
|
|
8349
8586
|
// src/legacy-fields/select/MultiSelect.tsx
|
|
8350
8587
|
import * as SelectPrimitive2 from "@radix-ui/react-select";
|
|
8351
8588
|
import { CheckIcon as CheckIcon2 } from "lucide-react";
|
|
8352
|
-
import { forwardRef as
|
|
8353
|
-
import { jsx as
|
|
8589
|
+
import { forwardRef as forwardRef33, useId as useId5, useState as useState26 } from "react";
|
|
8590
|
+
import { jsx as jsx78, jsxs as jsxs49 } from "react/jsx-runtime";
|
|
8354
8591
|
var LegacyMultiSelectInner = ({
|
|
8355
8592
|
label,
|
|
8356
8593
|
value = [],
|
|
@@ -8361,7 +8598,7 @@ var LegacyMultiSelectInner = ({
|
|
|
8361
8598
|
disabled
|
|
8362
8599
|
}, ref) => {
|
|
8363
8600
|
const id = useId5();
|
|
8364
|
-
const [open, setOpen] =
|
|
8601
|
+
const [open, setOpen] = useState26(false);
|
|
8365
8602
|
const hasValue = value.length > 0;
|
|
8366
8603
|
const showLabel = hasValue || open;
|
|
8367
8604
|
const handleSelect = (selectedValue) => {
|
|
@@ -8377,8 +8614,8 @@ var LegacyMultiSelectInner = ({
|
|
|
8377
8614
|
return value.some((v) => String(v) === String(optionValue));
|
|
8378
8615
|
};
|
|
8379
8616
|
const displayText = value.length > 0 ? `${value.length} selected` : placeholder || "Select options";
|
|
8380
|
-
return /* @__PURE__ */
|
|
8381
|
-
label && showLabel && /* @__PURE__ */
|
|
8617
|
+
return /* @__PURE__ */ jsxs49("div", { ref, className: cn("group relative w-[300px]", className), children: [
|
|
8618
|
+
label && showLabel && /* @__PURE__ */ jsx78(
|
|
8382
8619
|
"label",
|
|
8383
8620
|
{
|
|
8384
8621
|
htmlFor: id,
|
|
@@ -8386,7 +8623,7 @@ var LegacyMultiSelectInner = ({
|
|
|
8386
8623
|
children: label
|
|
8387
8624
|
}
|
|
8388
8625
|
),
|
|
8389
|
-
/* @__PURE__ */
|
|
8626
|
+
/* @__PURE__ */ jsxs49(
|
|
8390
8627
|
SelectPrimitive2.Root,
|
|
8391
8628
|
{
|
|
8392
8629
|
open,
|
|
@@ -8394,11 +8631,11 @@ var LegacyMultiSelectInner = ({
|
|
|
8394
8631
|
value: "",
|
|
8395
8632
|
disabled,
|
|
8396
8633
|
children: [
|
|
8397
|
-
/* @__PURE__ */
|
|
8398
|
-
/* @__PURE__ */
|
|
8634
|
+
/* @__PURE__ */ jsx78(LegacySelectTrigger, { id, children: /* @__PURE__ */ jsx78("span", { className: "text-sm", children: displayText }) }),
|
|
8635
|
+
/* @__PURE__ */ jsx78(LegacySelectContent, { children: options?.map(({ value: optionValue, label: optionLabel }) => {
|
|
8399
8636
|
const stringValue = String(optionValue);
|
|
8400
8637
|
const selected = isSelected(optionValue);
|
|
8401
|
-
return /* @__PURE__ */
|
|
8638
|
+
return /* @__PURE__ */ jsxs49(
|
|
8402
8639
|
"div",
|
|
8403
8640
|
{
|
|
8404
8641
|
role: "option",
|
|
@@ -8413,8 +8650,8 @@ var LegacyMultiSelectInner = ({
|
|
|
8413
8650
|
selected && "bg-[var(--chekin-gray-50)]"
|
|
8414
8651
|
),
|
|
8415
8652
|
children: [
|
|
8416
|
-
/* @__PURE__ */
|
|
8417
|
-
/* @__PURE__ */
|
|
8653
|
+
/* @__PURE__ */ jsx78("span", { className: "absolute start-2 flex size-3.5 items-center justify-center", children: selected && /* @__PURE__ */ jsx78(CheckIcon2, { size: 16, strokeWidth: 2 }) }),
|
|
8654
|
+
/* @__PURE__ */ jsx78("span", { children: optionLabel })
|
|
8418
8655
|
]
|
|
8419
8656
|
},
|
|
8420
8657
|
stringValue
|
|
@@ -8425,12 +8662,12 @@ var LegacyMultiSelectInner = ({
|
|
|
8425
8662
|
)
|
|
8426
8663
|
] });
|
|
8427
8664
|
};
|
|
8428
|
-
var LegacyMultiSelect =
|
|
8665
|
+
var LegacyMultiSelect = forwardRef33(LegacyMultiSelectInner);
|
|
8429
8666
|
|
|
8430
8667
|
// src/legacy-fields/select/InfinitySelect.tsx
|
|
8431
8668
|
import { useVirtualizer } from "@tanstack/react-virtual";
|
|
8432
|
-
import { useCallback as
|
|
8433
|
-
import { jsx as
|
|
8669
|
+
import { useCallback as useCallback23, useEffect as useEffect26, useId as useId6, useRef as useRef20, useState as useState27 } from "react";
|
|
8670
|
+
import { jsx as jsx79, jsxs as jsxs50 } from "react/jsx-runtime";
|
|
8434
8671
|
function LegacyInfinitySelect({
|
|
8435
8672
|
label,
|
|
8436
8673
|
className,
|
|
@@ -8445,15 +8682,15 @@ function LegacyInfinitySelect({
|
|
|
8445
8682
|
maxHeight = 300
|
|
8446
8683
|
}) {
|
|
8447
8684
|
const id = useId6();
|
|
8448
|
-
const parentRef =
|
|
8449
|
-
const [isOpen, setIsOpen] =
|
|
8685
|
+
const parentRef = useRef20(null);
|
|
8686
|
+
const [isOpen, setIsOpen] = useState27(false);
|
|
8450
8687
|
const virtualizer = useVirtualizer({
|
|
8451
8688
|
count: hasNextPage ? options.length + 1 : options.length,
|
|
8452
8689
|
getScrollElement: () => parentRef.current,
|
|
8453
8690
|
estimateSize: () => itemHeight,
|
|
8454
8691
|
overscan: 5
|
|
8455
8692
|
});
|
|
8456
|
-
const loadMore =
|
|
8693
|
+
const loadMore = useCallback23(() => {
|
|
8457
8694
|
if (hasNextPage && !isFetchingNextPage) {
|
|
8458
8695
|
fetchNextPage();
|
|
8459
8696
|
}
|
|
@@ -8470,8 +8707,8 @@ function LegacyInfinitySelect({
|
|
|
8470
8707
|
onValueChange?.(selectedValue);
|
|
8471
8708
|
setIsOpen(false);
|
|
8472
8709
|
};
|
|
8473
|
-
return /* @__PURE__ */
|
|
8474
|
-
/* @__PURE__ */
|
|
8710
|
+
return /* @__PURE__ */ jsxs50("div", { className: cn("group relative min-w-[300px]", className), children: [
|
|
8711
|
+
/* @__PURE__ */ jsx79(
|
|
8475
8712
|
"label",
|
|
8476
8713
|
{
|
|
8477
8714
|
htmlFor: id,
|
|
@@ -8479,7 +8716,7 @@ function LegacyInfinitySelect({
|
|
|
8479
8716
|
children: label
|
|
8480
8717
|
}
|
|
8481
8718
|
),
|
|
8482
|
-
/* @__PURE__ */
|
|
8719
|
+
/* @__PURE__ */ jsxs50(
|
|
8483
8720
|
LegacySelectRoot,
|
|
8484
8721
|
{
|
|
8485
8722
|
value,
|
|
@@ -8487,8 +8724,8 @@ function LegacyInfinitySelect({
|
|
|
8487
8724
|
open: isOpen,
|
|
8488
8725
|
onOpenChange: setIsOpen,
|
|
8489
8726
|
children: [
|
|
8490
|
-
/* @__PURE__ */
|
|
8491
|
-
/* @__PURE__ */
|
|
8727
|
+
/* @__PURE__ */ jsx79(LegacySelectTrigger, { id, children: /* @__PURE__ */ jsx79(LegacySelectValue, { placeholder }) }),
|
|
8728
|
+
/* @__PURE__ */ jsx79(LegacySelectContent, { children: /* @__PURE__ */ jsx79(
|
|
8492
8729
|
"div",
|
|
8493
8730
|
{
|
|
8494
8731
|
ref: parentRef,
|
|
@@ -8496,7 +8733,7 @@ function LegacyInfinitySelect({
|
|
|
8496
8733
|
height: `${Math.min(maxHeight, virtualizer.getTotalSize())}px`,
|
|
8497
8734
|
overflow: "auto"
|
|
8498
8735
|
},
|
|
8499
|
-
children: /* @__PURE__ */
|
|
8736
|
+
children: /* @__PURE__ */ jsx79(
|
|
8500
8737
|
"div",
|
|
8501
8738
|
{
|
|
8502
8739
|
style: {
|
|
@@ -8507,7 +8744,7 @@ function LegacyInfinitySelect({
|
|
|
8507
8744
|
children: virtualizer.getVirtualItems().map((virtualItem) => {
|
|
8508
8745
|
const isLoading = virtualItem.index >= options.length;
|
|
8509
8746
|
const option = options[virtualItem.index];
|
|
8510
|
-
return /* @__PURE__ */
|
|
8747
|
+
return /* @__PURE__ */ jsx79(
|
|
8511
8748
|
"div",
|
|
8512
8749
|
{
|
|
8513
8750
|
style: {
|
|
@@ -8518,10 +8755,10 @@ function LegacyInfinitySelect({
|
|
|
8518
8755
|
height: `${virtualItem.size}px`,
|
|
8519
8756
|
transform: `translateY(${virtualItem.start}px)`
|
|
8520
8757
|
},
|
|
8521
|
-
children: isLoading || !option ? /* @__PURE__ */
|
|
8522
|
-
/* @__PURE__ */
|
|
8758
|
+
children: isLoading || !option ? /* @__PURE__ */ jsx79("div", { className: "flex h-full items-center justify-center", children: /* @__PURE__ */ jsxs50("div", { className: "flex items-center gap-2 text-sm text-[var(--chekin-color-gray-1)]", children: [
|
|
8759
|
+
/* @__PURE__ */ jsx79("div", { className: "h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent" }),
|
|
8523
8760
|
"Loading more..."
|
|
8524
|
-
] }) }) : /* @__PURE__ */
|
|
8761
|
+
] }) }) : /* @__PURE__ */ jsx79(
|
|
8525
8762
|
LegacySelectItem,
|
|
8526
8763
|
{
|
|
8527
8764
|
value: String(option.value),
|
|
@@ -8544,7 +8781,7 @@ function LegacyInfinitySelect({
|
|
|
8544
8781
|
}
|
|
8545
8782
|
|
|
8546
8783
|
// src/pagination/Pagination.tsx
|
|
8547
|
-
import { jsx as
|
|
8784
|
+
import { jsx as jsx80, jsxs as jsxs51 } from "react/jsx-runtime";
|
|
8548
8785
|
var pageSizeOptions = [10, 20, 25, 30, 40, 50];
|
|
8549
8786
|
function Pagination({
|
|
8550
8787
|
page,
|
|
@@ -8583,7 +8820,7 @@ function Pagination({
|
|
|
8583
8820
|
if (totalItems === 0 || !shouldShowPagination) {
|
|
8584
8821
|
return null;
|
|
8585
8822
|
}
|
|
8586
|
-
return /* @__PURE__ */
|
|
8823
|
+
return /* @__PURE__ */ jsxs51(
|
|
8587
8824
|
"div",
|
|
8588
8825
|
{
|
|
8589
8826
|
className: cn(
|
|
@@ -8591,24 +8828,24 @@ function Pagination({
|
|
|
8591
8828
|
className
|
|
8592
8829
|
),
|
|
8593
8830
|
children: [
|
|
8594
|
-
/* @__PURE__ */
|
|
8595
|
-
/* @__PURE__ */
|
|
8596
|
-
!isSimpleVariant && showPageSizeSelector && /* @__PURE__ */
|
|
8597
|
-
/* @__PURE__ */
|
|
8598
|
-
/* @__PURE__ */
|
|
8831
|
+
/* @__PURE__ */ jsx80("div", { className: "mr-auto flex-1 self-start font-medium text-[var(--chekin-color-gray-1)] sm:self-center", children: getInfoText() }),
|
|
8832
|
+
/* @__PURE__ */ jsxs51("div", { className: "ml-auto flex w-full items-center gap-8 sm:w-fit", children: [
|
|
8833
|
+
!isSimpleVariant && showPageSizeSelector && /* @__PURE__ */ jsxs51("div", { className: "hidden items-center gap-2 sm:flex", children: [
|
|
8834
|
+
/* @__PURE__ */ jsx80("p", { className: "font-medium text-[var(--chekin-color-gray-1)]", children: t("rows_per_page") }),
|
|
8835
|
+
/* @__PURE__ */ jsx80(
|
|
8599
8836
|
LegacySelect,
|
|
8600
8837
|
{
|
|
8601
8838
|
value: pageSize.toString(),
|
|
8602
8839
|
onValueChange: (value) => onPageSizeChange(parseInt(value, 10)),
|
|
8603
8840
|
triggerClassName: "h-8 w-[67px]",
|
|
8604
8841
|
containerClassName: "w-[67px] gap-0",
|
|
8605
|
-
children: pageSizeOptions.map((size) => /* @__PURE__ */
|
|
8842
|
+
children: pageSizeOptions.map((size) => /* @__PURE__ */ jsx80(LegacySelectItem, { value: size.toString(), children: size }, size))
|
|
8606
8843
|
}
|
|
8607
8844
|
)
|
|
8608
8845
|
] }),
|
|
8609
|
-
!isSimpleVariant && /* @__PURE__ */
|
|
8610
|
-
/* @__PURE__ */
|
|
8611
|
-
!isSimpleVariant && /* @__PURE__ */
|
|
8846
|
+
!isSimpleVariant && /* @__PURE__ */ jsx80("div", { className: "flex w-fit items-center justify-center font-medium", children: t("page_of_pages", { page, pages }) }),
|
|
8847
|
+
/* @__PURE__ */ jsxs51("div", { className: "ml-auto flex items-center gap-2 sm:ml-0", children: [
|
|
8848
|
+
!isSimpleVariant && /* @__PURE__ */ jsxs51(
|
|
8612
8849
|
Button,
|
|
8613
8850
|
{
|
|
8614
8851
|
variant: "outline",
|
|
@@ -8617,12 +8854,12 @@ function Pagination({
|
|
|
8617
8854
|
onClick: goToFirstPage,
|
|
8618
8855
|
disabled: !canGoPrevious,
|
|
8619
8856
|
children: [
|
|
8620
|
-
/* @__PURE__ */
|
|
8621
|
-
/* @__PURE__ */
|
|
8857
|
+
/* @__PURE__ */ jsx80("span", { className: "sr-only hidden", children: t("go_to_first_page") }),
|
|
8858
|
+
/* @__PURE__ */ jsx80(ChevronsLeft, {})
|
|
8622
8859
|
]
|
|
8623
8860
|
}
|
|
8624
8861
|
),
|
|
8625
|
-
/* @__PURE__ */
|
|
8862
|
+
/* @__PURE__ */ jsxs51(
|
|
8626
8863
|
Button,
|
|
8627
8864
|
{
|
|
8628
8865
|
variant: isSimpleVariant ? "link" : "outline",
|
|
@@ -8633,12 +8870,12 @@ function Pagination({
|
|
|
8633
8870
|
onClick: goToPreviousPage,
|
|
8634
8871
|
disabled: !canGoPrevious,
|
|
8635
8872
|
children: [
|
|
8636
|
-
/* @__PURE__ */
|
|
8637
|
-
/* @__PURE__ */
|
|
8873
|
+
/* @__PURE__ */ jsx80("span", { className: "sr-only hidden", children: t("go_to_previous_page") }),
|
|
8874
|
+
/* @__PURE__ */ jsx80(ChevronLeft2, {})
|
|
8638
8875
|
]
|
|
8639
8876
|
}
|
|
8640
8877
|
),
|
|
8641
|
-
/* @__PURE__ */
|
|
8878
|
+
/* @__PURE__ */ jsxs51(
|
|
8642
8879
|
Button,
|
|
8643
8880
|
{
|
|
8644
8881
|
variant: isSimpleVariant ? "link" : "outline",
|
|
@@ -8649,12 +8886,12 @@ function Pagination({
|
|
|
8649
8886
|
onClick: goToNextPage,
|
|
8650
8887
|
disabled: !canGoNext,
|
|
8651
8888
|
children: [
|
|
8652
|
-
/* @__PURE__ */
|
|
8653
|
-
/* @__PURE__ */
|
|
8889
|
+
/* @__PURE__ */ jsx80("span", { className: "sr-only hidden", children: t("go_to_next_page") }),
|
|
8890
|
+
/* @__PURE__ */ jsx80(ChevronRight4, {})
|
|
8654
8891
|
]
|
|
8655
8892
|
}
|
|
8656
8893
|
),
|
|
8657
|
-
!isSimpleVariant && /* @__PURE__ */
|
|
8894
|
+
!isSimpleVariant && /* @__PURE__ */ jsxs51(
|
|
8658
8895
|
Button,
|
|
8659
8896
|
{
|
|
8660
8897
|
variant: "outline",
|
|
@@ -8663,8 +8900,8 @@ function Pagination({
|
|
|
8663
8900
|
onClick: goToLastPage,
|
|
8664
8901
|
disabled: !canGoNext,
|
|
8665
8902
|
children: [
|
|
8666
|
-
/* @__PURE__ */
|
|
8667
|
-
/* @__PURE__ */
|
|
8903
|
+
/* @__PURE__ */ jsx80("span", { className: "sr-only hidden", children: t("go_to_last_page") }),
|
|
8904
|
+
/* @__PURE__ */ jsx80(ChevronsRight, {})
|
|
8668
8905
|
]
|
|
8669
8906
|
}
|
|
8670
8907
|
)
|
|
@@ -8676,15 +8913,15 @@ function Pagination({
|
|
|
8676
8913
|
}
|
|
8677
8914
|
|
|
8678
8915
|
// src/popover/Popover.tsx
|
|
8679
|
-
import * as
|
|
8916
|
+
import * as React25 from "react";
|
|
8680
8917
|
import * as RadixPopover from "@radix-ui/react-popover";
|
|
8681
|
-
import { jsx as
|
|
8918
|
+
import { jsx as jsx81 } from "react/jsx-runtime";
|
|
8682
8919
|
var Popover = RadixPopover.Root;
|
|
8683
8920
|
var PopoverTrigger = RadixPopover.Trigger;
|
|
8684
8921
|
var PopoverAnchor = RadixPopover.Anchor;
|
|
8685
8922
|
var PopoverPortal = RadixPopover.Portal;
|
|
8686
8923
|
var PopoverClose = RadixPopover.Close;
|
|
8687
|
-
var PopoverContent =
|
|
8924
|
+
var PopoverContent = React25.forwardRef(({ className, sideOffset = 4, align = "center", ...props }, ref) => /* @__PURE__ */ jsx81(RadixPopover.Portal, { children: /* @__PURE__ */ jsx81(
|
|
8688
8925
|
RadixPopover.Content,
|
|
8689
8926
|
{
|
|
8690
8927
|
ref,
|
|
@@ -8704,7 +8941,7 @@ PopoverContent.displayName = "PopoverContent";
|
|
|
8704
8941
|
// src/popover/PopoverWithTooltip.tsx
|
|
8705
8942
|
import * as PopoverPrimitive from "@radix-ui/react-popover";
|
|
8706
8943
|
import * as TooltipPrimitive2 from "@radix-ui/react-tooltip";
|
|
8707
|
-
import { jsx as
|
|
8944
|
+
import { jsx as jsx82, jsxs as jsxs52 } from "react/jsx-runtime";
|
|
8708
8945
|
function PopoverWithTooltip({
|
|
8709
8946
|
children,
|
|
8710
8947
|
popoverContent,
|
|
@@ -8714,10 +8951,10 @@ function PopoverWithTooltip({
|
|
|
8714
8951
|
popoverContentClassName,
|
|
8715
8952
|
tooltipVariant = "light"
|
|
8716
8953
|
}) {
|
|
8717
|
-
return /* @__PURE__ */
|
|
8718
|
-
/* @__PURE__ */
|
|
8719
|
-
/* @__PURE__ */
|
|
8720
|
-
/* @__PURE__ */
|
|
8954
|
+
return /* @__PURE__ */ jsx82(TooltipPrimitive2.Provider, { delayDuration: 0, children: /* @__PURE__ */ jsxs52(TooltipPrimitive2.Root, { open: open ? false : void 0, children: [
|
|
8955
|
+
/* @__PURE__ */ jsxs52(PopoverPrimitive.Root, { open, onOpenChange, children: [
|
|
8956
|
+
/* @__PURE__ */ jsx82(TooltipPrimitive2.Trigger, { asChild: true, children: /* @__PURE__ */ jsx82(PopoverPrimitive.Trigger, { asChild: true, children }) }),
|
|
8957
|
+
/* @__PURE__ */ jsx82(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx82(
|
|
8721
8958
|
PopoverPrimitive.Content,
|
|
8722
8959
|
{
|
|
8723
8960
|
align: "center",
|
|
@@ -8735,7 +8972,7 @@ function PopoverWithTooltip({
|
|
|
8735
8972
|
}
|
|
8736
8973
|
) })
|
|
8737
8974
|
] }),
|
|
8738
|
-
/* @__PURE__ */
|
|
8975
|
+
/* @__PURE__ */ jsx82(TooltipPrimitive2.Portal, { children: /* @__PURE__ */ jsxs52(
|
|
8739
8976
|
TooltipPrimitive2.Content,
|
|
8740
8977
|
{
|
|
8741
8978
|
sideOffset: 5,
|
|
@@ -8752,7 +8989,7 @@ function PopoverWithTooltip({
|
|
|
8752
8989
|
),
|
|
8753
8990
|
children: [
|
|
8754
8991
|
tooltipContent,
|
|
8755
|
-
/* @__PURE__ */
|
|
8992
|
+
/* @__PURE__ */ jsx82(
|
|
8756
8993
|
TooltipPrimitive2.Arrow,
|
|
8757
8994
|
{
|
|
8758
8995
|
className: cn(
|
|
@@ -8771,13 +9008,13 @@ function PopoverWithTooltip({
|
|
|
8771
9008
|
}
|
|
8772
9009
|
|
|
8773
9010
|
// src/radio/Radio.tsx
|
|
8774
|
-
import { forwardRef as
|
|
9011
|
+
import { forwardRef as forwardRef36 } from "react";
|
|
8775
9012
|
|
|
8776
9013
|
// src/radio-group/RadioGroup.tsx
|
|
8777
|
-
import * as
|
|
9014
|
+
import * as React26 from "react";
|
|
8778
9015
|
import * as RadioGroupPrimitive from "@radix-ui/react-radio-group";
|
|
8779
|
-
import { jsx as
|
|
8780
|
-
var RadioGroup2 =
|
|
9016
|
+
import { jsx as jsx83 } from "react/jsx-runtime";
|
|
9017
|
+
var RadioGroup2 = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx83(
|
|
8781
9018
|
RadioGroupPrimitive.Root,
|
|
8782
9019
|
{
|
|
8783
9020
|
ref,
|
|
@@ -8796,7 +9033,7 @@ var indicatorSizeClasses = {
|
|
|
8796
9033
|
m: "h-2.5 w-2.5",
|
|
8797
9034
|
l: "h-3 w-3"
|
|
8798
9035
|
};
|
|
8799
|
-
var RadioGroupItem =
|
|
9036
|
+
var RadioGroupItem = React26.forwardRef(({ className, size = "default", ...props }, ref) => /* @__PURE__ */ jsx83(
|
|
8800
9037
|
RadioGroupPrimitive.Item,
|
|
8801
9038
|
{
|
|
8802
9039
|
ref,
|
|
@@ -8809,7 +9046,7 @@ var RadioGroupItem = React25.forwardRef(({ className, size = "default", ...props
|
|
|
8809
9046
|
className
|
|
8810
9047
|
),
|
|
8811
9048
|
...props,
|
|
8812
|
-
children: /* @__PURE__ */
|
|
9049
|
+
children: /* @__PURE__ */ jsx83(
|
|
8813
9050
|
RadioGroupPrimitive.Indicator,
|
|
8814
9051
|
{
|
|
8815
9052
|
className: cn(
|
|
@@ -8823,18 +9060,18 @@ var RadioGroupItem = React25.forwardRef(({ className, size = "default", ...props
|
|
|
8823
9060
|
RadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;
|
|
8824
9061
|
|
|
8825
9062
|
// src/radio/useRadioOptions.ts
|
|
8826
|
-
import { useCallback as
|
|
9063
|
+
import { useCallback as useCallback24, useEffect as useEffect27, useState as useState28 } from "react";
|
|
8827
9064
|
function getSelectedValue(options, defaultValue) {
|
|
8828
9065
|
return (typeof defaultValue === "string" ? options.find((option) => option.value === defaultValue) : defaultValue) || "";
|
|
8829
9066
|
}
|
|
8830
9067
|
function useRadioOptions({ options, defaultValue, onChange }) {
|
|
8831
|
-
const [selectedValue, setSelectedValue] =
|
|
9068
|
+
const [selectedValue, setSelectedValue] = useState28(
|
|
8832
9069
|
() => getSelectedValue(options, defaultValue)
|
|
8833
9070
|
);
|
|
8834
9071
|
useEffect27(() => {
|
|
8835
9072
|
setSelectedValue(getSelectedValue(options, defaultValue));
|
|
8836
9073
|
}, [defaultValue, options]);
|
|
8837
|
-
const handleValueChange =
|
|
9074
|
+
const handleValueChange = useCallback24(
|
|
8838
9075
|
(value) => {
|
|
8839
9076
|
setSelectedValue(value);
|
|
8840
9077
|
const selectedOption = options.find((option) => option.value === value) || "";
|
|
@@ -8851,8 +9088,8 @@ function useRadioOptions({ options, defaultValue, onChange }) {
|
|
|
8851
9088
|
}
|
|
8852
9089
|
|
|
8853
9090
|
// src/radio/Radio.tsx
|
|
8854
|
-
import { Fragment as Fragment8, jsx as
|
|
8855
|
-
var Radio =
|
|
9091
|
+
import { Fragment as Fragment8, jsx as jsx84, jsxs as jsxs53 } from "react/jsx-runtime";
|
|
9092
|
+
var Radio = forwardRef36(
|
|
8856
9093
|
({
|
|
8857
9094
|
options,
|
|
8858
9095
|
value,
|
|
@@ -8874,8 +9111,8 @@ var Radio = forwardRef35(
|
|
|
8874
9111
|
}
|
|
8875
9112
|
return option.value === selectedValue;
|
|
8876
9113
|
};
|
|
8877
|
-
return /* @__PURE__ */
|
|
8878
|
-
/* @__PURE__ */
|
|
9114
|
+
return /* @__PURE__ */ jsxs53(Fragment8, { children: [
|
|
9115
|
+
/* @__PURE__ */ jsx84(
|
|
8879
9116
|
RadioGroup2,
|
|
8880
9117
|
{
|
|
8881
9118
|
ref,
|
|
@@ -8883,7 +9120,7 @@ var Radio = forwardRef35(
|
|
|
8883
9120
|
onValueChange: handleValueChange,
|
|
8884
9121
|
className: cn(className, "radio"),
|
|
8885
9122
|
disabled,
|
|
8886
|
-
children: options.map((option) => /* @__PURE__ */
|
|
9123
|
+
children: options.map((option) => /* @__PURE__ */ jsx84(
|
|
8887
9124
|
"label",
|
|
8888
9125
|
{
|
|
8889
9126
|
className: cn(
|
|
@@ -8891,8 +9128,8 @@ var Radio = forwardRef35(
|
|
|
8891
9128
|
"flex cursor-pointer items-center gap-2 transition-all duration-200",
|
|
8892
9129
|
(disabled || option.disabled) && "cursor-default opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
|
|
8893
9130
|
),
|
|
8894
|
-
children: renderOption ? renderOption({ option, isSelected: getIsSelected(option) }) : /* @__PURE__ */
|
|
8895
|
-
/* @__PURE__ */
|
|
9131
|
+
children: renderOption ? renderOption({ option, isSelected: getIsSelected(option) }) : /* @__PURE__ */ jsxs53(Fragment8, { children: [
|
|
9132
|
+
/* @__PURE__ */ jsx84(
|
|
8896
9133
|
RadioGroupItem,
|
|
8897
9134
|
{
|
|
8898
9135
|
value: option.value,
|
|
@@ -8902,29 +9139,29 @@ var Radio = forwardRef35(
|
|
|
8902
9139
|
className: "radio__indicator"
|
|
8903
9140
|
}
|
|
8904
9141
|
),
|
|
8905
|
-
/* @__PURE__ */
|
|
9142
|
+
/* @__PURE__ */ jsx84("p", { className: "radio_label", children: option.label })
|
|
8906
9143
|
] })
|
|
8907
9144
|
},
|
|
8908
9145
|
option.value
|
|
8909
9146
|
))
|
|
8910
9147
|
}
|
|
8911
9148
|
),
|
|
8912
|
-
error && /* @__PURE__ */
|
|
9149
|
+
error && /* @__PURE__ */ jsx84(ErrorMessage, { children: error })
|
|
8913
9150
|
] });
|
|
8914
9151
|
}
|
|
8915
9152
|
);
|
|
8916
9153
|
Radio.displayName = "Radio";
|
|
8917
9154
|
|
|
8918
9155
|
// src/radio/RadioWithBorder.tsx
|
|
8919
|
-
import { jsx as
|
|
9156
|
+
import { jsx as jsx85, jsxs as jsxs54 } from "react/jsx-runtime";
|
|
8920
9157
|
function RadioWithBorder({ size, ...props }) {
|
|
8921
|
-
return /* @__PURE__ */
|
|
9158
|
+
return /* @__PURE__ */ jsx85(
|
|
8922
9159
|
Radio,
|
|
8923
9160
|
{
|
|
8924
9161
|
...props,
|
|
8925
9162
|
renderOption: ({ option, isSelected }) => {
|
|
8926
9163
|
const data = option.data;
|
|
8927
|
-
return /* @__PURE__ */
|
|
9164
|
+
return /* @__PURE__ */ jsxs54(
|
|
8928
9165
|
"div",
|
|
8929
9166
|
{
|
|
8930
9167
|
className: cn(
|
|
@@ -8932,7 +9169,7 @@ function RadioWithBorder({ size, ...props }) {
|
|
|
8932
9169
|
isSelected && "border-[var(--chekin-color-brand-blue)] bg-[var(--chekin-color-surface-autocomplete)]"
|
|
8933
9170
|
),
|
|
8934
9171
|
children: [
|
|
8935
|
-
/* @__PURE__ */
|
|
9172
|
+
/* @__PURE__ */ jsx85(
|
|
8936
9173
|
RadioGroupItem,
|
|
8937
9174
|
{
|
|
8938
9175
|
className: "mt-1",
|
|
@@ -8942,15 +9179,15 @@ function RadioWithBorder({ size, ...props }) {
|
|
|
8942
9179
|
size
|
|
8943
9180
|
}
|
|
8944
9181
|
),
|
|
8945
|
-
/* @__PURE__ */
|
|
8946
|
-
/* @__PURE__ */
|
|
8947
|
-
/* @__PURE__ */
|
|
9182
|
+
/* @__PURE__ */ jsxs54("div", { className: "flex min-w-0 flex-1 items-start justify-between gap-3", children: [
|
|
9183
|
+
/* @__PURE__ */ jsxs54("div", { className: "min-w-0 space-y-1 leading-6", children: [
|
|
9184
|
+
/* @__PURE__ */ jsxs54("p", { className: "flex items-center gap-3 font-semibold", children: [
|
|
8948
9185
|
option.label,
|
|
8949
|
-
data?.subLabel && /* @__PURE__ */
|
|
9186
|
+
data?.subLabel && /* @__PURE__ */ jsx85("span", { className: "rounded bg-[color-mix(in_srgb,var(--chekin-color-brand-blue)_10%,transparent)] px-2 py-1 text-sm font-semibold leading-4 text-[var(--chekin-color-brand-blue)]", children: data.subLabel })
|
|
8950
9187
|
] }),
|
|
8951
|
-
data?.description && /* @__PURE__ */
|
|
9188
|
+
data?.description && /* @__PURE__ */ jsx85("p", { className: "text-sm font-medium text-[var(--chekin-color-gray-1)]", children: data.description })
|
|
8952
9189
|
] }),
|
|
8953
|
-
data?.rightContent && /* @__PURE__ */
|
|
9190
|
+
data?.rightContent && /* @__PURE__ */ jsx85("div", { className: "shrink-0", children: data.rightContent })
|
|
8954
9191
|
] })
|
|
8955
9192
|
]
|
|
8956
9193
|
}
|
|
@@ -8961,12 +9198,12 @@ function RadioWithBorder({ size, ...props }) {
|
|
|
8961
9198
|
}
|
|
8962
9199
|
|
|
8963
9200
|
// src/radio-cards-group/RadioCardsGroup.tsx
|
|
8964
|
-
import { forwardRef as
|
|
8965
|
-
import { Fragment as Fragment9, jsx as
|
|
9201
|
+
import { forwardRef as forwardRef37, memo as memo4, useEffect as useEffect28 } from "react";
|
|
9202
|
+
import { Fragment as Fragment9, jsx as jsx86, jsxs as jsxs55 } from "react/jsx-runtime";
|
|
8966
9203
|
var isValueSelectOption = (value) => {
|
|
8967
9204
|
return value?.value !== void 0;
|
|
8968
9205
|
};
|
|
8969
|
-
var RadioCardsGroup =
|
|
9206
|
+
var RadioCardsGroup = forwardRef37(
|
|
8970
9207
|
({
|
|
8971
9208
|
options,
|
|
8972
9209
|
onChange,
|
|
@@ -8994,8 +9231,8 @@ var RadioCardsGroup = forwardRef36(
|
|
|
8994
9231
|
[defaultValue, onChange, options, value]
|
|
8995
9232
|
);
|
|
8996
9233
|
const currentValue = isValueSelectOption(value) ? value.value : value;
|
|
8997
|
-
return /* @__PURE__ */
|
|
8998
|
-
/* @__PURE__ */
|
|
9234
|
+
return /* @__PURE__ */ jsxs55(Fragment9, { children: [
|
|
9235
|
+
/* @__PURE__ */ jsx86(
|
|
8999
9236
|
Radio,
|
|
9000
9237
|
{
|
|
9001
9238
|
ref,
|
|
@@ -9005,7 +9242,7 @@ var RadioCardsGroup = forwardRef36(
|
|
|
9005
9242
|
disabled,
|
|
9006
9243
|
className: cn("flex flex-wrap gap-4", className),
|
|
9007
9244
|
renderOption: ({ option, isSelected }) => {
|
|
9008
|
-
return /* @__PURE__ */
|
|
9245
|
+
return /* @__PURE__ */ jsxs55(
|
|
9009
9246
|
"div",
|
|
9010
9247
|
{
|
|
9011
9248
|
className: cn(
|
|
@@ -9020,7 +9257,7 @@ var RadioCardsGroup = forwardRef36(
|
|
|
9020
9257
|
cardClassName
|
|
9021
9258
|
),
|
|
9022
9259
|
children: [
|
|
9023
|
-
/* @__PURE__ */
|
|
9260
|
+
/* @__PURE__ */ jsx86("div", { children: /* @__PURE__ */ jsx86(
|
|
9024
9261
|
RadioGroupItem,
|
|
9025
9262
|
{
|
|
9026
9263
|
value: option.value,
|
|
@@ -9028,8 +9265,8 @@ var RadioCardsGroup = forwardRef36(
|
|
|
9028
9265
|
disabled: disabled || option.disabled
|
|
9029
9266
|
}
|
|
9030
9267
|
) }),
|
|
9031
|
-
/* @__PURE__ */
|
|
9032
|
-
/* @__PURE__ */
|
|
9268
|
+
/* @__PURE__ */ jsxs55("div", { className: "w-full cursor-pointer", children: [
|
|
9269
|
+
/* @__PURE__ */ jsx86(
|
|
9033
9270
|
"label",
|
|
9034
9271
|
{
|
|
9035
9272
|
htmlFor: `radio-${option.value}`,
|
|
@@ -9040,7 +9277,7 @@ var RadioCardsGroup = forwardRef36(
|
|
|
9040
9277
|
children: option.label
|
|
9041
9278
|
}
|
|
9042
9279
|
),
|
|
9043
|
-
option.description && /* @__PURE__ */
|
|
9280
|
+
option.description && /* @__PURE__ */ jsx86("div", { className: "radioCardDescription mt-2", children: option.description })
|
|
9044
9281
|
] })
|
|
9045
9282
|
]
|
|
9046
9283
|
}
|
|
@@ -9048,14 +9285,14 @@ var RadioCardsGroup = forwardRef36(
|
|
|
9048
9285
|
}
|
|
9049
9286
|
}
|
|
9050
9287
|
),
|
|
9051
|
-
error && /* @__PURE__ */
|
|
9288
|
+
error && /* @__PURE__ */ jsx86("div", { className: "mt-2 text-left text-sm text-[var(--chekin-red-500)]", children: error })
|
|
9052
9289
|
] });
|
|
9053
9290
|
}
|
|
9054
9291
|
);
|
|
9055
9292
|
var MemoizedRadioCardsGroup = memo4(RadioCardsGroup);
|
|
9056
9293
|
|
|
9057
9294
|
// src/rating-progress/RatingProgress.tsx
|
|
9058
|
-
import { jsx as
|
|
9295
|
+
import { jsx as jsx87, jsxs as jsxs56 } from "react/jsx-runtime";
|
|
9059
9296
|
var getRatingColor = (score, maxScore) => {
|
|
9060
9297
|
const percentage = score / maxScore * 100;
|
|
9061
9298
|
if (percentage === 0) return "var(--chekin-rating-0)";
|
|
@@ -9074,7 +9311,7 @@ function RatingProgress({
|
|
|
9074
9311
|
}) {
|
|
9075
9312
|
const percentage = Math.max(0, Math.min(100, score / maxScore * 100));
|
|
9076
9313
|
const color = getRatingColor(score, maxScore);
|
|
9077
|
-
return /* @__PURE__ */
|
|
9314
|
+
return /* @__PURE__ */ jsxs56(
|
|
9078
9315
|
"div",
|
|
9079
9316
|
{
|
|
9080
9317
|
className: cn(
|
|
@@ -9082,13 +9319,13 @@ function RatingProgress({
|
|
|
9082
9319
|
className
|
|
9083
9320
|
),
|
|
9084
9321
|
children: [
|
|
9085
|
-
/* @__PURE__ */
|
|
9086
|
-
/* @__PURE__ */
|
|
9087
|
-
/* @__PURE__ */
|
|
9322
|
+
/* @__PURE__ */ jsxs56("div", { className: "flex w-full items-start justify-between text-sm font-medium leading-6", children: [
|
|
9323
|
+
/* @__PURE__ */ jsx87("p", { className: "min-w-0 flex-1", children: label }),
|
|
9324
|
+
/* @__PURE__ */ jsx87("p", { className: "shrink-0 whitespace-pre", children: score.toFixed(1) })
|
|
9088
9325
|
] }),
|
|
9089
|
-
/* @__PURE__ */
|
|
9090
|
-
/* @__PURE__ */
|
|
9091
|
-
/* @__PURE__ */
|
|
9326
|
+
/* @__PURE__ */ jsxs56("div", { className: "relative w-full", children: [
|
|
9327
|
+
/* @__PURE__ */ jsx87("div", { className: "h-1.5 w-full rounded-[24px] bg-[var(--chekin-color-gray-3)]" }),
|
|
9328
|
+
/* @__PURE__ */ jsx87(
|
|
9092
9329
|
"div",
|
|
9093
9330
|
{
|
|
9094
9331
|
className: "absolute left-0 top-0 h-1.5 rounded-[24px] transition-all duration-300 ease-out",
|
|
@@ -9120,7 +9357,7 @@ function useRatingRadioGroupContext() {
|
|
|
9120
9357
|
|
|
9121
9358
|
// src/rating-radio-group/RatingRadioGroupItem.tsx
|
|
9122
9359
|
import { Star } from "lucide-react";
|
|
9123
|
-
import { jsx as
|
|
9360
|
+
import { jsx as jsx88, jsxs as jsxs57 } from "react/jsx-runtime";
|
|
9124
9361
|
var ratingRadioGroupStarSizes = {
|
|
9125
9362
|
default: 24,
|
|
9126
9363
|
lg: 32
|
|
@@ -9145,14 +9382,14 @@ function RatingRadioGroupItem({ option, size }) {
|
|
|
9145
9382
|
} = useRatingRadioGroupContext();
|
|
9146
9383
|
const starColor = getStarColor(option.value)(value, hoverValue);
|
|
9147
9384
|
const starSize = ratingRadioGroupStarSizes[size ?? contextSize];
|
|
9148
|
-
return /* @__PURE__ */
|
|
9385
|
+
return /* @__PURE__ */ jsxs57(
|
|
9149
9386
|
"label",
|
|
9150
9387
|
{
|
|
9151
9388
|
onMouseEnter: () => onMouseEnter(option.value),
|
|
9152
9389
|
onTouchStart: () => onTouchStart(option.value),
|
|
9153
9390
|
onTouchEnd,
|
|
9154
9391
|
children: [
|
|
9155
|
-
/* @__PURE__ */
|
|
9392
|
+
/* @__PURE__ */ jsx88(
|
|
9156
9393
|
"input",
|
|
9157
9394
|
{
|
|
9158
9395
|
className: "peer absolute h-0 w-0 opacity-0",
|
|
@@ -9163,7 +9400,7 @@ function RatingRadioGroupItem({ option, size }) {
|
|
|
9163
9400
|
onChange: () => onChange?.(option.value)
|
|
9164
9401
|
}
|
|
9165
9402
|
),
|
|
9166
|
-
/* @__PURE__ */
|
|
9403
|
+
/* @__PURE__ */ jsx88(
|
|
9167
9404
|
Star,
|
|
9168
9405
|
{
|
|
9169
9406
|
className: "cursor-pointer rounded peer-focus-visible:outline peer-focus-visible:outline-2 peer-focus-visible:outline-offset-2 peer-focus-visible:outline-[var(--rating-radio-group-star-focus-color)]",
|
|
@@ -9179,25 +9416,25 @@ function RatingRadioGroupItem({ option, size }) {
|
|
|
9179
9416
|
}
|
|
9180
9417
|
|
|
9181
9418
|
// src/rating-radio-group/RatingRadioGroupLegend.tsx
|
|
9182
|
-
import { jsx as
|
|
9419
|
+
import { jsx as jsx89 } from "react/jsx-runtime";
|
|
9183
9420
|
function RatingRadioGroupLegend({ children }) {
|
|
9184
9421
|
if (!children) return null;
|
|
9185
|
-
return /* @__PURE__ */
|
|
9422
|
+
return /* @__PURE__ */ jsx89("legend", { className: "mb-2 text-base", children });
|
|
9186
9423
|
}
|
|
9187
9424
|
|
|
9188
9425
|
// src/rating-radio-group/RatingRadioGroupList.tsx
|
|
9189
|
-
import { jsx as
|
|
9426
|
+
import { jsx as jsx90 } from "react/jsx-runtime";
|
|
9190
9427
|
function RatingRadioGroupList({ children }) {
|
|
9191
9428
|
const { onMouseLeave } = useRatingRadioGroupContext();
|
|
9192
|
-
return /* @__PURE__ */
|
|
9429
|
+
return /* @__PURE__ */ jsx90("div", { className: "RatingRadioGroup__list flex gap-2", onMouseLeave, children });
|
|
9193
9430
|
}
|
|
9194
9431
|
|
|
9195
9432
|
// src/rating-radio-group/useRatingPreview.ts
|
|
9196
|
-
import { useRef as
|
|
9433
|
+
import { useRef as useRef21, useState as useState29 } from "react";
|
|
9197
9434
|
var TOUCH_END_DELAY = 100;
|
|
9198
9435
|
function useRatingPreview() {
|
|
9199
|
-
const [hoverValue, setHoverValue] =
|
|
9200
|
-
const isTouchDevice =
|
|
9436
|
+
const [hoverValue, setHoverValue] = useState29(void 0);
|
|
9437
|
+
const isTouchDevice = useRef21(false);
|
|
9201
9438
|
const handleContainerMouseLeave = () => {
|
|
9202
9439
|
setHoverValue(void 0);
|
|
9203
9440
|
};
|
|
@@ -9225,7 +9462,7 @@ function useRatingPreview() {
|
|
|
9225
9462
|
}
|
|
9226
9463
|
|
|
9227
9464
|
// src/rating-radio-group/RatingRadioGroup.tsx
|
|
9228
|
-
import { Fragment as Fragment10, jsx as
|
|
9465
|
+
import { Fragment as Fragment10, jsx as jsx91, jsxs as jsxs58 } from "react/jsx-runtime";
|
|
9229
9466
|
function RatingRadioGroupRoot({
|
|
9230
9467
|
value,
|
|
9231
9468
|
onChange,
|
|
@@ -9243,7 +9480,7 @@ function RatingRadioGroupRoot({
|
|
|
9243
9480
|
handleTouchStart,
|
|
9244
9481
|
handleTouchEnd
|
|
9245
9482
|
} = useRatingPreview();
|
|
9246
|
-
return /* @__PURE__ */
|
|
9483
|
+
return /* @__PURE__ */ jsx91(
|
|
9247
9484
|
RatingRadioGroupProvider,
|
|
9248
9485
|
{
|
|
9249
9486
|
value: {
|
|
@@ -9257,9 +9494,9 @@ function RatingRadioGroupRoot({
|
|
|
9257
9494
|
onTouchStart: handleTouchStart,
|
|
9258
9495
|
onTouchEnd: handleTouchEnd
|
|
9259
9496
|
},
|
|
9260
|
-
children: /* @__PURE__ */
|
|
9261
|
-
/* @__PURE__ */
|
|
9262
|
-
/* @__PURE__ */
|
|
9497
|
+
children: /* @__PURE__ */ jsx91("fieldset", { className: cn("relative [all:unset]", className), children: children ?? /* @__PURE__ */ jsxs58(Fragment10, { children: [
|
|
9498
|
+
/* @__PURE__ */ jsx91(RatingRadioGroup.Legend, { children: label }),
|
|
9499
|
+
/* @__PURE__ */ jsx91(RatingRadioGroup.List, { children: options?.map((option) => /* @__PURE__ */ jsx91(RatingRadioGroup.Item, { option }, option.value)) })
|
|
9263
9500
|
] }) })
|
|
9264
9501
|
}
|
|
9265
9502
|
);
|
|
@@ -9271,10 +9508,10 @@ var RatingRadioGroup = Object.assign(RatingRadioGroupRoot, {
|
|
|
9271
9508
|
});
|
|
9272
9509
|
|
|
9273
9510
|
// src/rating-stars/RatingStars.tsx
|
|
9274
|
-
import * as
|
|
9511
|
+
import * as React27 from "react";
|
|
9275
9512
|
import { Star as Star2 } from "lucide-react";
|
|
9276
9513
|
import { useTranslation as useTranslation13 } from "react-i18next";
|
|
9277
|
-
import { jsx as
|
|
9514
|
+
import { jsx as jsx92, jsxs as jsxs59 } from "react/jsx-runtime";
|
|
9278
9515
|
function RatingStars({
|
|
9279
9516
|
rating,
|
|
9280
9517
|
maxRating = 5,
|
|
@@ -9291,7 +9528,7 @@ function RatingStars({
|
|
|
9291
9528
|
const { t } = useTranslation13();
|
|
9292
9529
|
const normalizedRating = Math.max(0, Math.min(maxRating, rating));
|
|
9293
9530
|
const stars = Array.from({ length: maxRating }, (_, index) => index + 1);
|
|
9294
|
-
const componentId =
|
|
9531
|
+
const componentId = React27.useId();
|
|
9295
9532
|
const decimal = normalizedRating - Math.floor(normalizedRating);
|
|
9296
9533
|
const partialStarIndex = decimal > 0 ? Math.ceil(normalizedRating) : -1;
|
|
9297
9534
|
const gradientId = `star-gradient-${componentId.replace(/:/g, "")}`;
|
|
@@ -9304,18 +9541,18 @@ function RatingStars({
|
|
|
9304
9541
|
}
|
|
9305
9542
|
return emptyColor;
|
|
9306
9543
|
};
|
|
9307
|
-
return /* @__PURE__ */
|
|
9308
|
-
showText && /* @__PURE__ */
|
|
9544
|
+
return /* @__PURE__ */ jsxs59("div", { className: cn("flex flex-col items-start gap-2", className), children: [
|
|
9545
|
+
showText && /* @__PURE__ */ jsxs59("p", { className: "text-4xl font-medium", children: [
|
|
9309
9546
|
normalizedRating,
|
|
9310
9547
|
"/",
|
|
9311
9548
|
maxRating
|
|
9312
9549
|
] }),
|
|
9313
|
-
/* @__PURE__ */
|
|
9314
|
-
/* @__PURE__ */
|
|
9315
|
-
/* @__PURE__ */
|
|
9316
|
-
/* @__PURE__ */
|
|
9550
|
+
/* @__PURE__ */ jsxs59("div", { className: "flex items-center gap-1", children: [
|
|
9551
|
+
/* @__PURE__ */ jsx92("svg", { width: "0", height: "0", style: { position: "absolute" }, children: /* @__PURE__ */ jsx92("defs", { children: /* @__PURE__ */ jsxs59("linearGradient", { id: gradientId, x1: "0%", y1: "0%", x2: "100%", y2: "0%", children: [
|
|
9552
|
+
/* @__PURE__ */ jsx92("stop", { offset: `${decimal * 100}%`, stopColor: filledColor }),
|
|
9553
|
+
/* @__PURE__ */ jsx92("stop", { offset: `${decimal * 100}%`, stopColor: emptyColor })
|
|
9317
9554
|
] }) }) }),
|
|
9318
|
-
stars.map((star) => /* @__PURE__ */
|
|
9555
|
+
stars.map((star) => /* @__PURE__ */ jsx92(
|
|
9319
9556
|
Star2,
|
|
9320
9557
|
{
|
|
9321
9558
|
size,
|
|
@@ -9327,22 +9564,22 @@ function RatingStars({
|
|
|
9327
9564
|
star
|
|
9328
9565
|
))
|
|
9329
9566
|
] }),
|
|
9330
|
-
(reviewCount !== void 0 || description) && /* @__PURE__ */
|
|
9331
|
-
reviewCount !== void 0 && /* @__PURE__ */
|
|
9567
|
+
(reviewCount !== void 0 || description) && /* @__PURE__ */ jsxs59("div", { className: "flex flex-col font-medium text-[var(--chekin-color-gray-1)]", children: [
|
|
9568
|
+
reviewCount !== void 0 && /* @__PURE__ */ jsxs59("p", { className: "text-xs leading-4", children: [
|
|
9332
9569
|
reviewCount,
|
|
9333
9570
|
" ",
|
|
9334
9571
|
reviewsLabel || t("reviews")
|
|
9335
9572
|
] }),
|
|
9336
|
-
description && /* @__PURE__ */
|
|
9573
|
+
description && /* @__PURE__ */ jsx92("p", { className: "text-sm leading-6", children: description })
|
|
9337
9574
|
] })
|
|
9338
9575
|
] });
|
|
9339
9576
|
}
|
|
9340
9577
|
|
|
9341
9578
|
// src/rotate-arrow/RotateArrow.tsx
|
|
9342
9579
|
import { ChevronDown } from "lucide-react";
|
|
9343
|
-
import { jsx as
|
|
9580
|
+
import { jsx as jsx93 } from "react/jsx-runtime";
|
|
9344
9581
|
function RotateArrow({ shouldRotate, className }) {
|
|
9345
|
-
return /* @__PURE__ */
|
|
9582
|
+
return /* @__PURE__ */ jsx93(
|
|
9346
9583
|
ChevronDown,
|
|
9347
9584
|
{
|
|
9348
9585
|
size: 16,
|
|
@@ -9358,9 +9595,9 @@ function RotateArrow({ shouldRotate, className }) {
|
|
|
9358
9595
|
|
|
9359
9596
|
// src/search-button/SearchButton.tsx
|
|
9360
9597
|
import { Search } from "lucide-react";
|
|
9361
|
-
import { jsx as
|
|
9598
|
+
import { jsx as jsx94 } from "react/jsx-runtime";
|
|
9362
9599
|
function SearchButton({ onClick, className, icon, ariaLabel }) {
|
|
9363
|
-
return /* @__PURE__ */
|
|
9600
|
+
return /* @__PURE__ */ jsx94(
|
|
9364
9601
|
"button",
|
|
9365
9602
|
{
|
|
9366
9603
|
onClick,
|
|
@@ -9371,7 +9608,7 @@ function SearchButton({ onClick, className, icon, ariaLabel }) {
|
|
|
9371
9608
|
"data-testid": "search-button",
|
|
9372
9609
|
"aria-label": ariaLabel,
|
|
9373
9610
|
type: "button",
|
|
9374
|
-
children: icon || /* @__PURE__ */
|
|
9611
|
+
children: icon || /* @__PURE__ */ jsx94(Search, { size: 12, strokeWidth: 4 })
|
|
9375
9612
|
}
|
|
9376
9613
|
);
|
|
9377
9614
|
}
|
|
@@ -9381,10 +9618,10 @@ import { Loader2, Search as Search2, X as X5 } from "lucide-react";
|
|
|
9381
9618
|
import { useTranslation as useTranslation14 } from "react-i18next";
|
|
9382
9619
|
|
|
9383
9620
|
// src/legacy-fields/input/Input.tsx
|
|
9384
|
-
import * as
|
|
9385
|
-
import { jsx as
|
|
9386
|
-
var LegacyInput =
|
|
9387
|
-
({ className, type, readOnly, ...props }, ref) => /* @__PURE__ */
|
|
9621
|
+
import * as React28 from "react";
|
|
9622
|
+
import { jsx as jsx95 } from "react/jsx-runtime";
|
|
9623
|
+
var LegacyInput = React28.forwardRef(
|
|
9624
|
+
({ className, type, readOnly, ...props }, ref) => /* @__PURE__ */ jsx95(
|
|
9388
9625
|
"input",
|
|
9389
9626
|
{
|
|
9390
9627
|
ref,
|
|
@@ -9407,7 +9644,7 @@ var LegacyInput = React27.forwardRef(
|
|
|
9407
9644
|
LegacyInput.displayName = "LegacyInput";
|
|
9408
9645
|
|
|
9409
9646
|
// src/search-input/SearchInput.tsx
|
|
9410
|
-
import { jsx as
|
|
9647
|
+
import { jsx as jsx96, jsxs as jsxs60 } from "react/jsx-runtime";
|
|
9411
9648
|
function SearchInput({
|
|
9412
9649
|
disabled,
|
|
9413
9650
|
invalid,
|
|
@@ -9426,15 +9663,15 @@ function SearchInput({
|
|
|
9426
9663
|
const isBlocked = Boolean(disabled) || Boolean(loading);
|
|
9427
9664
|
const optionalLabel = optional ? typeof optional === "string" ? optional : t("optional") : void 0;
|
|
9428
9665
|
const hasLabelMeta = Boolean(optionalLabel) || Boolean(tooltip);
|
|
9429
|
-
return /* @__PURE__ */
|
|
9430
|
-
(label || hasLabelMeta) && /* @__PURE__ */
|
|
9431
|
-
label && /* @__PURE__ */
|
|
9432
|
-
optionalLabel && /* @__PURE__ */
|
|
9433
|
-
tooltip && /* @__PURE__ */
|
|
9666
|
+
return /* @__PURE__ */ jsxs60("div", { className: cn("input-wrapper", wrapperClassName), children: [
|
|
9667
|
+
(label || hasLabelMeta) && /* @__PURE__ */ jsxs60("div", { className: "mb-2 inline-flex max-w-full items-center gap-1.5 text-sm font-medium text-[var(--chekin-color-brand-navy)]", children: [
|
|
9668
|
+
label && /* @__PURE__ */ jsx96("span", { className: "min-w-0 truncate", children: label }),
|
|
9669
|
+
optionalLabel && /* @__PURE__ */ jsx96("span", { className: "shrink-0 text-xs font-normal text-[var(--chekin-color-gray-2)]", children: optionalLabel }),
|
|
9670
|
+
tooltip && /* @__PURE__ */ jsx96(HelpTooltip, { content: tooltip, side: "top", size: 16 })
|
|
9434
9671
|
] }),
|
|
9435
|
-
/* @__PURE__ */
|
|
9436
|
-
/* @__PURE__ */
|
|
9437
|
-
/* @__PURE__ */
|
|
9672
|
+
/* @__PURE__ */ jsxs60("div", { className: "relative", children: [
|
|
9673
|
+
/* @__PURE__ */ jsx96(Search2, { className: "absolute left-4 top-1/2 h-5 w-5 -translate-y-1/2 text-[var(--chekin-color-gray-2)]" }),
|
|
9674
|
+
/* @__PURE__ */ jsx96(
|
|
9438
9675
|
LegacyInput,
|
|
9439
9676
|
{
|
|
9440
9677
|
...props,
|
|
@@ -9452,15 +9689,15 @@ function SearchInput({
|
|
|
9452
9689
|
)
|
|
9453
9690
|
}
|
|
9454
9691
|
),
|
|
9455
|
-
(loading || onReset) && /* @__PURE__ */
|
|
9456
|
-
loading && /* @__PURE__ */
|
|
9692
|
+
(loading || onReset) && /* @__PURE__ */ jsxs60("div", { className: "absolute right-2 top-1/2 flex -translate-y-1/2 items-center gap-1", children: [
|
|
9693
|
+
loading && /* @__PURE__ */ jsx96(
|
|
9457
9694
|
Loader2,
|
|
9458
9695
|
{
|
|
9459
9696
|
"aria-hidden": "true",
|
|
9460
9697
|
className: "h-5 w-5 animate-spin text-[var(--chekin-color-gray-2)]"
|
|
9461
9698
|
}
|
|
9462
9699
|
),
|
|
9463
|
-
onReset && /* @__PURE__ */
|
|
9700
|
+
onReset && /* @__PURE__ */ jsx96(
|
|
9464
9701
|
Button,
|
|
9465
9702
|
{
|
|
9466
9703
|
variant: "ghost",
|
|
@@ -9468,7 +9705,7 @@ function SearchInput({
|
|
|
9468
9705
|
disabled: isBlocked,
|
|
9469
9706
|
className: "h-7 w-7 p-0 text-[var(--chekin-color-gray-2)]",
|
|
9470
9707
|
"aria-label": t("reset_search"),
|
|
9471
|
-
children: /* @__PURE__ */
|
|
9708
|
+
children: /* @__PURE__ */ jsx96(X5, { className: "h-5 w-5" })
|
|
9472
9709
|
}
|
|
9473
9710
|
)
|
|
9474
9711
|
] })
|
|
@@ -9477,15 +9714,15 @@ function SearchInput({
|
|
|
9477
9714
|
}
|
|
9478
9715
|
|
|
9479
9716
|
// src/search-input/DebouncedSearchInput.tsx
|
|
9480
|
-
import { useState as
|
|
9481
|
-
import { jsx as
|
|
9717
|
+
import { useState as useState30 } from "react";
|
|
9718
|
+
import { jsx as jsx97 } from "react/jsx-runtime";
|
|
9482
9719
|
function DebouncedSearchInput({
|
|
9483
9720
|
onChange,
|
|
9484
9721
|
placeholder,
|
|
9485
9722
|
className,
|
|
9486
9723
|
wrapperClassName
|
|
9487
9724
|
}) {
|
|
9488
|
-
const [searchValue, setSearchValue] =
|
|
9725
|
+
const [searchValue, setSearchValue] = useState30("");
|
|
9489
9726
|
const handleInputChange = (event) => {
|
|
9490
9727
|
setSearchValue(event.target.value);
|
|
9491
9728
|
};
|
|
@@ -9494,7 +9731,7 @@ function DebouncedSearchInput({
|
|
|
9494
9731
|
onChange(value);
|
|
9495
9732
|
}
|
|
9496
9733
|
});
|
|
9497
|
-
return /* @__PURE__ */
|
|
9734
|
+
return /* @__PURE__ */ jsx97(
|
|
9498
9735
|
SearchInput,
|
|
9499
9736
|
{
|
|
9500
9737
|
onChange: handleInputChange,
|
|
@@ -9523,9 +9760,9 @@ var sectionTagVariants = cva12(
|
|
|
9523
9760
|
);
|
|
9524
9761
|
|
|
9525
9762
|
// src/section-tag/SectionTag.tsx
|
|
9526
|
-
import { jsx as
|
|
9763
|
+
import { jsx as jsx98 } from "react/jsx-runtime";
|
|
9527
9764
|
function SectionTag({ children, color = "green", className }) {
|
|
9528
|
-
return /* @__PURE__ */
|
|
9765
|
+
return /* @__PURE__ */ jsx98("div", { className: cn(sectionTagVariants({ color }), className), children });
|
|
9529
9766
|
}
|
|
9530
9767
|
|
|
9531
9768
|
// src/section-tag/constants.ts
|
|
@@ -9536,7 +9773,7 @@ var SectionTagColors = /* @__PURE__ */ ((SectionTagColors2) => {
|
|
|
9536
9773
|
})(SectionTagColors || {});
|
|
9537
9774
|
|
|
9538
9775
|
// src/section/Section.tsx
|
|
9539
|
-
import { forwardRef as
|
|
9776
|
+
import { forwardRef as forwardRef39 } from "react";
|
|
9540
9777
|
import { useTranslation as useTranslation15 } from "react-i18next";
|
|
9541
9778
|
|
|
9542
9779
|
// src/section/constants.ts
|
|
@@ -9547,9 +9784,9 @@ var SubSectionSize = /* @__PURE__ */ ((SubSectionSize2) => {
|
|
|
9547
9784
|
})(SubSectionSize || {});
|
|
9548
9785
|
|
|
9549
9786
|
// src/section/Section.tsx
|
|
9550
|
-
import { jsx as
|
|
9787
|
+
import { jsx as jsx99, jsxs as jsxs61 } from "react/jsx-runtime";
|
|
9551
9788
|
function TooltipInfo({ content, className }) {
|
|
9552
|
-
return /* @__PURE__ */
|
|
9789
|
+
return /* @__PURE__ */ jsx99(
|
|
9553
9790
|
HelpTooltip,
|
|
9554
9791
|
{
|
|
9555
9792
|
side: "right",
|
|
@@ -9561,7 +9798,7 @@ function TooltipInfo({ content, className }) {
|
|
|
9561
9798
|
}
|
|
9562
9799
|
);
|
|
9563
9800
|
}
|
|
9564
|
-
var Section =
|
|
9801
|
+
var Section = forwardRef39(
|
|
9565
9802
|
({
|
|
9566
9803
|
children,
|
|
9567
9804
|
title,
|
|
@@ -9578,7 +9815,7 @@ var Section = forwardRef38(
|
|
|
9578
9815
|
size
|
|
9579
9816
|
}, ref) => {
|
|
9580
9817
|
const { t } = useTranslation15();
|
|
9581
|
-
return /* @__PURE__ */
|
|
9818
|
+
return /* @__PURE__ */ jsxs61(
|
|
9582
9819
|
"div",
|
|
9583
9820
|
{
|
|
9584
9821
|
ref,
|
|
@@ -9590,8 +9827,8 @@ var Section = forwardRef38(
|
|
|
9590
9827
|
className
|
|
9591
9828
|
),
|
|
9592
9829
|
children: [
|
|
9593
|
-
(title || subtitle) && /* @__PURE__ */
|
|
9594
|
-
title && /* @__PURE__ */
|
|
9830
|
+
(title || subtitle) && /* @__PURE__ */ jsxs61("div", { className: "flex flex-col gap-2", children: [
|
|
9831
|
+
title && /* @__PURE__ */ jsxs61(
|
|
9595
9832
|
"div",
|
|
9596
9833
|
{
|
|
9597
9834
|
className: cn(
|
|
@@ -9601,17 +9838,17 @@ var Section = forwardRef38(
|
|
|
9601
9838
|
),
|
|
9602
9839
|
children: [
|
|
9603
9840
|
title,
|
|
9604
|
-
titleTooltip && /* @__PURE__ */
|
|
9605
|
-
linkContent && /* @__PURE__ */
|
|
9841
|
+
titleTooltip && /* @__PURE__ */ jsx99("div", { className: "ml-2.5", children: /* @__PURE__ */ jsx99(TooltipInfo, { content: titleTooltip }) }),
|
|
9842
|
+
linkContent && /* @__PURE__ */ jsx99("div", { className: "ml-6 text-sm font-semibold text-[var(--section-link-color)] no-underline hover:opacity-70 active:opacity-100", children: linkContent })
|
|
9606
9843
|
]
|
|
9607
9844
|
}
|
|
9608
9845
|
),
|
|
9609
|
-
subtitle && /* @__PURE__ */
|
|
9610
|
-
/* @__PURE__ */
|
|
9611
|
-
subtitleTooltip && /* @__PURE__ */
|
|
9846
|
+
subtitle && /* @__PURE__ */ jsxs61("div", { className: "w-full max-w-[720px] md:max-w-full", children: [
|
|
9847
|
+
/* @__PURE__ */ jsx99("div", { className: "inline text-base font-normal text-[var(--section-subtitle-color)]", children: subtitle }),
|
|
9848
|
+
subtitleTooltip && /* @__PURE__ */ jsx99("div", { className: "ml-1.5 inline-block align-text-top", children: /* @__PURE__ */ jsx99(TooltipInfo, { content: subtitleTooltip }) })
|
|
9612
9849
|
] })
|
|
9613
9850
|
] }),
|
|
9614
|
-
loading && showLoader ? /* @__PURE__ */
|
|
9851
|
+
loading && showLoader ? /* @__PURE__ */ jsx99(
|
|
9615
9852
|
CircularLoader,
|
|
9616
9853
|
{
|
|
9617
9854
|
size: "md",
|
|
@@ -9625,8 +9862,8 @@ var Section = forwardRef38(
|
|
|
9625
9862
|
}
|
|
9626
9863
|
);
|
|
9627
9864
|
Section.displayName = "Section";
|
|
9628
|
-
var SubSection =
|
|
9629
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
9865
|
+
var SubSection = forwardRef39(
|
|
9866
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx99(
|
|
9630
9867
|
Section,
|
|
9631
9868
|
{
|
|
9632
9869
|
ref,
|
|
@@ -9639,8 +9876,8 @@ var SubSection = forwardRef38(
|
|
|
9639
9876
|
)
|
|
9640
9877
|
);
|
|
9641
9878
|
SubSection.displayName = "SubSection";
|
|
9642
|
-
var DividingSubsection =
|
|
9643
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
9879
|
+
var DividingSubsection = forwardRef39(
|
|
9880
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx99(
|
|
9644
9881
|
SubSection,
|
|
9645
9882
|
{
|
|
9646
9883
|
ref,
|
|
@@ -9653,14 +9890,14 @@ DividingSubsection.displayName = "DividingSubsection";
|
|
|
9653
9890
|
|
|
9654
9891
|
// src/separator/Separator.tsx
|
|
9655
9892
|
import * as SeparatorPrimitive from "@radix-ui/react-separator";
|
|
9656
|
-
import { jsx as
|
|
9893
|
+
import { jsx as jsx100 } from "react/jsx-runtime";
|
|
9657
9894
|
function Separator3({
|
|
9658
9895
|
className,
|
|
9659
9896
|
orientation = "horizontal",
|
|
9660
9897
|
decorative = true,
|
|
9661
9898
|
...props
|
|
9662
9899
|
}) {
|
|
9663
|
-
return /* @__PURE__ */
|
|
9900
|
+
return /* @__PURE__ */ jsx100(
|
|
9664
9901
|
SeparatorPrimitive.Root,
|
|
9665
9902
|
{
|
|
9666
9903
|
"data-slot": "separator",
|
|
@@ -9676,7 +9913,7 @@ function Separator3({
|
|
|
9676
9913
|
}
|
|
9677
9914
|
|
|
9678
9915
|
// src/section-group/SectionGroup.tsx
|
|
9679
|
-
import { jsx as
|
|
9916
|
+
import { jsx as jsx101, jsxs as jsxs62 } from "react/jsx-runtime";
|
|
9680
9917
|
var SectionGroupItem = ({
|
|
9681
9918
|
className,
|
|
9682
9919
|
contentClassName,
|
|
@@ -9685,17 +9922,17 @@ var SectionGroupItem = ({
|
|
|
9685
9922
|
children,
|
|
9686
9923
|
divider = true
|
|
9687
9924
|
}) => {
|
|
9688
|
-
return /* @__PURE__ */
|
|
9689
|
-
divider && /* @__PURE__ */
|
|
9690
|
-
(title || subtitle) && /* @__PURE__ */
|
|
9691
|
-
title && /* @__PURE__ */
|
|
9692
|
-
subtitle && /* @__PURE__ */
|
|
9925
|
+
return /* @__PURE__ */ jsxs62("section", { className: cn("flex flex-col gap-5", className), children: [
|
|
9926
|
+
divider && /* @__PURE__ */ jsx101("div", { className: cn("h-px w-full bg-[var(--section-group-divider-bg)]") }),
|
|
9927
|
+
(title || subtitle) && /* @__PURE__ */ jsxs62("div", { className: "flex flex-col gap-1 px-8", children: [
|
|
9928
|
+
title && /* @__PURE__ */ jsx101("h3", { className: "text-base font-semibold leading-6 text-[var(--section-group-muted-text)]", children: title }),
|
|
9929
|
+
subtitle && /* @__PURE__ */ jsx101("p", { className: "text-sm font-medium leading-6 text-[var(--section-group-muted-text)]", children: subtitle })
|
|
9693
9930
|
] }),
|
|
9694
|
-
/* @__PURE__ */
|
|
9931
|
+
/* @__PURE__ */ jsx101("div", { className: cn("flex flex-col gap-4 px-8", contentClassName), children })
|
|
9695
9932
|
] });
|
|
9696
9933
|
};
|
|
9697
9934
|
var SectionGroupRoot = ({ className, title, actions, children }) => {
|
|
9698
|
-
return /* @__PURE__ */
|
|
9935
|
+
return /* @__PURE__ */ jsxs62(
|
|
9699
9936
|
"div",
|
|
9700
9937
|
{
|
|
9701
9938
|
className: cn(
|
|
@@ -9704,18 +9941,18 @@ var SectionGroupRoot = ({ className, title, actions, children }) => {
|
|
|
9704
9941
|
className
|
|
9705
9942
|
),
|
|
9706
9943
|
children: [
|
|
9707
|
-
(title || actions) && /* @__PURE__ */
|
|
9708
|
-
title && /* @__PURE__ */
|
|
9709
|
-
actions && /* @__PURE__ */
|
|
9944
|
+
(title || actions) && /* @__PURE__ */ jsxs62("div", { className: "flex items-center gap-6 px-8", children: [
|
|
9945
|
+
title && /* @__PURE__ */ jsx101("h2", { className: "flex-1 text-lg font-bold leading-6 text-[var(--section-group-title-color)] opacity-90", children: title }),
|
|
9946
|
+
actions && /* @__PURE__ */ jsx101("div", { className: "flex items-center gap-2", children: actions })
|
|
9710
9947
|
] }),
|
|
9711
9948
|
children
|
|
9712
9949
|
]
|
|
9713
9950
|
}
|
|
9714
9951
|
);
|
|
9715
9952
|
};
|
|
9716
|
-
var SectionGroupLabel = ({ id, title, description }) => /* @__PURE__ */
|
|
9717
|
-
/* @__PURE__ */
|
|
9718
|
-
description && /* @__PURE__ */
|
|
9953
|
+
var SectionGroupLabel = ({ id, title, description }) => /* @__PURE__ */ jsxs62("div", { id, children: [
|
|
9954
|
+
/* @__PURE__ */ jsx101("div", { className: "font-semibold leading-6", children: title }),
|
|
9955
|
+
description && /* @__PURE__ */ jsx101("div", { className: "text-sm font-medium leading-6 text-[var(--section-group-muted-text)]", children: description })
|
|
9719
9956
|
] });
|
|
9720
9957
|
var SectionGroup = Object.assign(SectionGroupRoot, {
|
|
9721
9958
|
Item: SectionGroupItem,
|
|
@@ -9725,24 +9962,24 @@ var SectionGroup = Object.assign(SectionGroupRoot, {
|
|
|
9725
9962
|
// src/sheet/Sheet.tsx
|
|
9726
9963
|
import * as SheetPrimitive from "@radix-ui/react-dialog";
|
|
9727
9964
|
import { XIcon as XIcon2 } from "lucide-react";
|
|
9728
|
-
import { jsx as
|
|
9965
|
+
import { jsx as jsx102, jsxs as jsxs63 } from "react/jsx-runtime";
|
|
9729
9966
|
function Sheet({ ...props }) {
|
|
9730
|
-
return /* @__PURE__ */
|
|
9967
|
+
return /* @__PURE__ */ jsx102(SheetPrimitive.Root, { "data-slot": "sheet", ...props });
|
|
9731
9968
|
}
|
|
9732
9969
|
function SheetTrigger({ ...props }) {
|
|
9733
|
-
return /* @__PURE__ */
|
|
9970
|
+
return /* @__PURE__ */ jsx102(SheetPrimitive.Trigger, { "data-slot": "sheet-trigger", ...props });
|
|
9734
9971
|
}
|
|
9735
9972
|
function SheetClose({ ...props }) {
|
|
9736
|
-
return /* @__PURE__ */
|
|
9973
|
+
return /* @__PURE__ */ jsx102(SheetPrimitive.Close, { "data-slot": "sheet-close", ...props });
|
|
9737
9974
|
}
|
|
9738
9975
|
function SheetPortal({ ...props }) {
|
|
9739
|
-
return /* @__PURE__ */
|
|
9976
|
+
return /* @__PURE__ */ jsx102(SheetPrimitive.Portal, { "data-slot": "sheet-portal", ...props });
|
|
9740
9977
|
}
|
|
9741
9978
|
function SheetOverlay({
|
|
9742
9979
|
className,
|
|
9743
9980
|
...props
|
|
9744
9981
|
}) {
|
|
9745
|
-
return /* @__PURE__ */
|
|
9982
|
+
return /* @__PURE__ */ jsx102(
|
|
9746
9983
|
SheetPrimitive.Overlay,
|
|
9747
9984
|
{
|
|
9748
9985
|
"data-slot": "sheet-overlay",
|
|
@@ -9760,9 +9997,9 @@ function SheetContent({
|
|
|
9760
9997
|
side = "right",
|
|
9761
9998
|
...props
|
|
9762
9999
|
}) {
|
|
9763
|
-
return /* @__PURE__ */
|
|
9764
|
-
/* @__PURE__ */
|
|
9765
|
-
/* @__PURE__ */
|
|
10000
|
+
return /* @__PURE__ */ jsxs63(SheetPortal, { children: [
|
|
10001
|
+
/* @__PURE__ */ jsx102(SheetOverlay, {}),
|
|
10002
|
+
/* @__PURE__ */ jsxs63(
|
|
9766
10003
|
SheetPrimitive.Content,
|
|
9767
10004
|
{
|
|
9768
10005
|
"data-slot": "sheet-content",
|
|
@@ -9777,9 +10014,9 @@ function SheetContent({
|
|
|
9777
10014
|
...props,
|
|
9778
10015
|
children: [
|
|
9779
10016
|
children,
|
|
9780
|
-
/* @__PURE__ */
|
|
9781
|
-
/* @__PURE__ */
|
|
9782
|
-
/* @__PURE__ */
|
|
10017
|
+
/* @__PURE__ */ jsxs63(SheetPrimitive.Close, { className: "absolute right-4 top-4 rounded-[var(--chekin-radius-small)] opacity-70 transition-opacity hover:opacity-100 focus:outline-none focus:shadow-[var(--chekin-shadow-focus)] disabled:pointer-events-none", children: [
|
|
10018
|
+
/* @__PURE__ */ jsx102(XIcon2, { className: "size-4" }),
|
|
10019
|
+
/* @__PURE__ */ jsx102("span", { className: "sr-only", children: "Close" })
|
|
9783
10020
|
] })
|
|
9784
10021
|
]
|
|
9785
10022
|
}
|
|
@@ -9787,7 +10024,7 @@ function SheetContent({
|
|
|
9787
10024
|
] });
|
|
9788
10025
|
}
|
|
9789
10026
|
function SheetHeader({ className, ...props }) {
|
|
9790
|
-
return /* @__PURE__ */
|
|
10027
|
+
return /* @__PURE__ */ jsx102(
|
|
9791
10028
|
"div",
|
|
9792
10029
|
{
|
|
9793
10030
|
"data-slot": "sheet-header",
|
|
@@ -9797,7 +10034,7 @@ function SheetHeader({ className, ...props }) {
|
|
|
9797
10034
|
);
|
|
9798
10035
|
}
|
|
9799
10036
|
function SheetFooter({ className, ...props }) {
|
|
9800
|
-
return /* @__PURE__ */
|
|
10037
|
+
return /* @__PURE__ */ jsx102(
|
|
9801
10038
|
"div",
|
|
9802
10039
|
{
|
|
9803
10040
|
"data-slot": "sheet-footer",
|
|
@@ -9810,7 +10047,7 @@ function SheetTitle({
|
|
|
9810
10047
|
className,
|
|
9811
10048
|
...props
|
|
9812
10049
|
}) {
|
|
9813
|
-
return /* @__PURE__ */
|
|
10050
|
+
return /* @__PURE__ */ jsx102(
|
|
9814
10051
|
SheetPrimitive.Title,
|
|
9815
10052
|
{
|
|
9816
10053
|
"data-slot": "sheet-title",
|
|
@@ -9823,7 +10060,7 @@ function SheetDescription({
|
|
|
9823
10060
|
className,
|
|
9824
10061
|
...props
|
|
9825
10062
|
}) {
|
|
9826
|
-
return /* @__PURE__ */
|
|
10063
|
+
return /* @__PURE__ */ jsx102(
|
|
9827
10064
|
SheetPrimitive.Description,
|
|
9828
10065
|
{
|
|
9829
10066
|
"data-slot": "sheet-description",
|
|
@@ -9834,15 +10071,15 @@ function SheetDescription({
|
|
|
9834
10071
|
}
|
|
9835
10072
|
|
|
9836
10073
|
// src/sidebar/Sidebar.tsx
|
|
9837
|
-
import * as
|
|
10074
|
+
import * as React29 from "react";
|
|
9838
10075
|
import { Slot as Slot4 } from "@radix-ui/react-slot";
|
|
9839
10076
|
import { cva as cva13 } from "class-variance-authority";
|
|
9840
10077
|
import { ArrowLeftFromLineIcon, ArrowRightFromLineIcon } from "lucide-react";
|
|
9841
10078
|
|
|
9842
10079
|
// src/skeleton/Skeleton.tsx
|
|
9843
|
-
import { jsx as
|
|
10080
|
+
import { jsx as jsx103 } from "react/jsx-runtime";
|
|
9844
10081
|
function Skeleton({ className, ...props }) {
|
|
9845
|
-
return /* @__PURE__ */
|
|
10082
|
+
return /* @__PURE__ */ jsx103(
|
|
9846
10083
|
"div",
|
|
9847
10084
|
{
|
|
9848
10085
|
"data-slot": "skeleton",
|
|
@@ -9872,7 +10109,7 @@ function useSidebarMenuButton() {
|
|
|
9872
10109
|
}
|
|
9873
10110
|
|
|
9874
10111
|
// src/sidebar/SidebarIcon.tsx
|
|
9875
|
-
import { jsx as
|
|
10112
|
+
import { jsx as jsx104 } from "react/jsx-runtime";
|
|
9876
10113
|
var SidebarIcon = ({
|
|
9877
10114
|
children,
|
|
9878
10115
|
isActive: isActiveProp,
|
|
@@ -9889,7 +10126,7 @@ var SidebarIcon = ({
|
|
|
9889
10126
|
}
|
|
9890
10127
|
return highlighted ? "bg-[var(--chekin-color-surface-pressed)]" : "bg-[var(--chekin-color-surface-input-empty)]";
|
|
9891
10128
|
})();
|
|
9892
|
-
return /* @__PURE__ */
|
|
10129
|
+
return /* @__PURE__ */ jsx104(
|
|
9893
10130
|
"div",
|
|
9894
10131
|
{
|
|
9895
10132
|
className: cn(
|
|
@@ -9922,12 +10159,12 @@ function useSidebarSafe() {
|
|
|
9922
10159
|
}
|
|
9923
10160
|
|
|
9924
10161
|
// src/sidebar/Sidebar.tsx
|
|
9925
|
-
import { jsx as
|
|
10162
|
+
import { jsx as jsx105, jsxs as jsxs64 } from "react/jsx-runtime";
|
|
9926
10163
|
var SIDEBAR_COOKIE_NAME_DEFAULT = "sidebar_state";
|
|
9927
10164
|
var SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;
|
|
9928
10165
|
var SIDEBAR_WIDTH_MOBILE = "18rem";
|
|
9929
10166
|
var SIDEBAR_KEYBOARD_SHORTCUT = "b";
|
|
9930
|
-
var SidebarProvider =
|
|
10167
|
+
var SidebarProvider = React29.forwardRef(
|
|
9931
10168
|
({
|
|
9932
10169
|
defaultOpen = true,
|
|
9933
10170
|
open: openProp,
|
|
@@ -9939,10 +10176,10 @@ var SidebarProvider = React28.forwardRef(
|
|
|
9939
10176
|
...props
|
|
9940
10177
|
}, ref) => {
|
|
9941
10178
|
const isMobile3 = useIsMobile({ breakpoint: 641 });
|
|
9942
|
-
const [openMobile, setOpenMobile] =
|
|
9943
|
-
const [_open, _setOpen] =
|
|
10179
|
+
const [openMobile, setOpenMobile] = React29.useState(false);
|
|
10180
|
+
const [_open, _setOpen] = React29.useState(defaultOpen);
|
|
9944
10181
|
const open = openProp ?? _open;
|
|
9945
|
-
const setOpen =
|
|
10182
|
+
const setOpen = React29.useCallback(
|
|
9946
10183
|
(value) => {
|
|
9947
10184
|
const openState = typeof value === "function" ? value(open) : value;
|
|
9948
10185
|
if (setOpenProp) {
|
|
@@ -9954,10 +10191,10 @@ var SidebarProvider = React28.forwardRef(
|
|
|
9954
10191
|
},
|
|
9955
10192
|
[setOpenProp, open, stateName]
|
|
9956
10193
|
);
|
|
9957
|
-
const toggleSidebar =
|
|
10194
|
+
const toggleSidebar = React29.useCallback(() => {
|
|
9958
10195
|
return isMobile3 ? setOpenMobile((value) => !value) : setOpen((value) => !value);
|
|
9959
10196
|
}, [isMobile3, setOpen]);
|
|
9960
|
-
|
|
10197
|
+
React29.useEffect(() => {
|
|
9961
10198
|
const handleKeyDown = (event) => {
|
|
9962
10199
|
if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {
|
|
9963
10200
|
event.preventDefault();
|
|
@@ -9968,7 +10205,7 @@ var SidebarProvider = React28.forwardRef(
|
|
|
9968
10205
|
return () => window.removeEventListener("keydown", handleKeyDown);
|
|
9969
10206
|
}, [toggleSidebar]);
|
|
9970
10207
|
const state = open ? "expanded" : "collapsed";
|
|
9971
|
-
const contextValue =
|
|
10208
|
+
const contextValue = React29.useMemo(
|
|
9972
10209
|
() => ({
|
|
9973
10210
|
state,
|
|
9974
10211
|
open,
|
|
@@ -9980,7 +10217,7 @@ var SidebarProvider = React28.forwardRef(
|
|
|
9980
10217
|
}),
|
|
9981
10218
|
[state, open, setOpen, isMobile3, openMobile, setOpenMobile, toggleSidebar]
|
|
9982
10219
|
);
|
|
9983
|
-
return /* @__PURE__ */
|
|
10220
|
+
return /* @__PURE__ */ jsx105(SidebarContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx105(TooltipProvider, { delayDuration: 0, children: /* @__PURE__ */ jsx105(
|
|
9984
10221
|
"div",
|
|
9985
10222
|
{
|
|
9986
10223
|
style,
|
|
@@ -9996,7 +10233,7 @@ var SidebarProvider = React28.forwardRef(
|
|
|
9996
10233
|
}
|
|
9997
10234
|
);
|
|
9998
10235
|
SidebarProvider.displayName = "SidebarProvider";
|
|
9999
|
-
var Sidebar =
|
|
10236
|
+
var Sidebar = React29.forwardRef(
|
|
10000
10237
|
({
|
|
10001
10238
|
side = "left",
|
|
10002
10239
|
variant = "sidebar",
|
|
@@ -10007,7 +10244,7 @@ var Sidebar = React28.forwardRef(
|
|
|
10007
10244
|
}, ref) => {
|
|
10008
10245
|
const { isMobile: isMobile3, state, openMobile, setOpenMobile } = useSidebar();
|
|
10009
10246
|
if (collapsible === "none") {
|
|
10010
|
-
return /* @__PURE__ */
|
|
10247
|
+
return /* @__PURE__ */ jsx105(
|
|
10011
10248
|
"div",
|
|
10012
10249
|
{
|
|
10013
10250
|
className: cn(
|
|
@@ -10021,7 +10258,7 @@ var Sidebar = React28.forwardRef(
|
|
|
10021
10258
|
);
|
|
10022
10259
|
}
|
|
10023
10260
|
if (isMobile3) {
|
|
10024
|
-
return /* @__PURE__ */
|
|
10261
|
+
return /* @__PURE__ */ jsx105(Sheet, { open: openMobile, onOpenChange: setOpenMobile, ...props, children: /* @__PURE__ */ jsxs64(
|
|
10025
10262
|
SheetContent,
|
|
10026
10263
|
{
|
|
10027
10264
|
"data-sidebar": "sidebar",
|
|
@@ -10033,16 +10270,16 @@ var Sidebar = React28.forwardRef(
|
|
|
10033
10270
|
style: { "--sidebar-width": SIDEBAR_WIDTH_MOBILE },
|
|
10034
10271
|
side,
|
|
10035
10272
|
children: [
|
|
10036
|
-
/* @__PURE__ */
|
|
10037
|
-
/* @__PURE__ */
|
|
10038
|
-
/* @__PURE__ */
|
|
10273
|
+
/* @__PURE__ */ jsxs64(SheetHeader, { className: "sr-only", children: [
|
|
10274
|
+
/* @__PURE__ */ jsx105(SheetTitle, { children: "Sidebar" }),
|
|
10275
|
+
/* @__PURE__ */ jsx105(SheetDescription, { children: "Displays the mobile sidebar." })
|
|
10039
10276
|
] }),
|
|
10040
|
-
/* @__PURE__ */
|
|
10277
|
+
/* @__PURE__ */ jsx105("div", { className: "flex h-full w-full flex-col", children })
|
|
10041
10278
|
]
|
|
10042
10279
|
}
|
|
10043
10280
|
) });
|
|
10044
10281
|
}
|
|
10045
|
-
return /* @__PURE__ */
|
|
10282
|
+
return /* @__PURE__ */ jsxs64(
|
|
10046
10283
|
"div",
|
|
10047
10284
|
{
|
|
10048
10285
|
ref,
|
|
@@ -10053,7 +10290,7 @@ var Sidebar = React28.forwardRef(
|
|
|
10053
10290
|
"data-variant": variant,
|
|
10054
10291
|
"data-side": side,
|
|
10055
10292
|
children: [
|
|
10056
|
-
/* @__PURE__ */
|
|
10293
|
+
/* @__PURE__ */ jsx105(
|
|
10057
10294
|
"div",
|
|
10058
10295
|
{
|
|
10059
10296
|
className: cn(
|
|
@@ -10064,7 +10301,7 @@ var Sidebar = React28.forwardRef(
|
|
|
10064
10301
|
)
|
|
10065
10302
|
}
|
|
10066
10303
|
),
|
|
10067
|
-
/* @__PURE__ */
|
|
10304
|
+
/* @__PURE__ */ jsx105(
|
|
10068
10305
|
"div",
|
|
10069
10306
|
{
|
|
10070
10307
|
className: cn(
|
|
@@ -10074,7 +10311,7 @@ var Sidebar = React28.forwardRef(
|
|
|
10074
10311
|
className
|
|
10075
10312
|
),
|
|
10076
10313
|
...props,
|
|
10077
|
-
children: /* @__PURE__ */
|
|
10314
|
+
children: /* @__PURE__ */ jsx105(
|
|
10078
10315
|
"div",
|
|
10079
10316
|
{
|
|
10080
10317
|
"data-sidebar": "sidebar",
|
|
@@ -10090,9 +10327,9 @@ var Sidebar = React28.forwardRef(
|
|
|
10090
10327
|
}
|
|
10091
10328
|
);
|
|
10092
10329
|
Sidebar.displayName = "Sidebar";
|
|
10093
|
-
var SidebarTrigger =
|
|
10330
|
+
var SidebarTrigger = React29.forwardRef(({ className, onClick, icon, ...props }, ref) => {
|
|
10094
10331
|
const { toggleSidebar, open, isMobile: isMobile3, openMobile } = useSidebar();
|
|
10095
|
-
return /* @__PURE__ */
|
|
10332
|
+
return /* @__PURE__ */ jsxs64(
|
|
10096
10333
|
Button,
|
|
10097
10334
|
{
|
|
10098
10335
|
ref,
|
|
@@ -10110,17 +10347,17 @@ var SidebarTrigger = React28.forwardRef(({ className, onClick, icon, ...props },
|
|
|
10110
10347
|
},
|
|
10111
10348
|
...props,
|
|
10112
10349
|
children: [
|
|
10113
|
-
icon || (isMobile3 ? openMobile : open) ? icon || /* @__PURE__ */
|
|
10114
|
-
/* @__PURE__ */
|
|
10350
|
+
icon || (isMobile3 ? openMobile : open) ? icon || /* @__PURE__ */ jsx105(ArrowLeftFromLineIcon, {}) : /* @__PURE__ */ jsx105(ArrowRightFromLineIcon, {}),
|
|
10351
|
+
/* @__PURE__ */ jsx105("span", { className: "sr-only", children: "Toggle Sidebar" })
|
|
10115
10352
|
]
|
|
10116
10353
|
}
|
|
10117
10354
|
);
|
|
10118
10355
|
});
|
|
10119
10356
|
SidebarTrigger.displayName = "SidebarTrigger";
|
|
10120
|
-
var SidebarRail =
|
|
10357
|
+
var SidebarRail = React29.forwardRef(
|
|
10121
10358
|
({ className, ...props }, ref) => {
|
|
10122
10359
|
const { toggleSidebar } = useSidebar();
|
|
10123
|
-
return /* @__PURE__ */
|
|
10360
|
+
return /* @__PURE__ */ jsx105(
|
|
10124
10361
|
"button",
|
|
10125
10362
|
{
|
|
10126
10363
|
ref,
|
|
@@ -10143,8 +10380,8 @@ var SidebarRail = React28.forwardRef(
|
|
|
10143
10380
|
}
|
|
10144
10381
|
);
|
|
10145
10382
|
SidebarRail.displayName = "SidebarRail";
|
|
10146
|
-
var SidebarInset =
|
|
10147
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
10383
|
+
var SidebarInset = React29.forwardRef(
|
|
10384
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx105(
|
|
10148
10385
|
"main",
|
|
10149
10386
|
{
|
|
10150
10387
|
ref,
|
|
@@ -10158,7 +10395,7 @@ var SidebarInset = React28.forwardRef(
|
|
|
10158
10395
|
)
|
|
10159
10396
|
);
|
|
10160
10397
|
SidebarInset.displayName = "SidebarInset";
|
|
10161
|
-
var SidebarInput =
|
|
10398
|
+
var SidebarInput = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx105(
|
|
10162
10399
|
LegacyInput,
|
|
10163
10400
|
{
|
|
10164
10401
|
ref,
|
|
@@ -10168,8 +10405,8 @@ var SidebarInput = React28.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
10168
10405
|
}
|
|
10169
10406
|
));
|
|
10170
10407
|
SidebarInput.displayName = "SidebarInput";
|
|
10171
|
-
var SidebarHeader =
|
|
10172
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
10408
|
+
var SidebarHeader = React29.forwardRef(
|
|
10409
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx105(
|
|
10173
10410
|
"div",
|
|
10174
10411
|
{
|
|
10175
10412
|
ref,
|
|
@@ -10180,8 +10417,8 @@ var SidebarHeader = React28.forwardRef(
|
|
|
10180
10417
|
)
|
|
10181
10418
|
);
|
|
10182
10419
|
SidebarHeader.displayName = "SidebarHeader";
|
|
10183
|
-
var SidebarFooter =
|
|
10184
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
10420
|
+
var SidebarFooter = React29.forwardRef(
|
|
10421
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx105(
|
|
10185
10422
|
"div",
|
|
10186
10423
|
{
|
|
10187
10424
|
ref,
|
|
@@ -10192,7 +10429,7 @@ var SidebarFooter = React28.forwardRef(
|
|
|
10192
10429
|
)
|
|
10193
10430
|
);
|
|
10194
10431
|
SidebarFooter.displayName = "SidebarFooter";
|
|
10195
|
-
var SidebarSeparator =
|
|
10432
|
+
var SidebarSeparator = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx105(
|
|
10196
10433
|
Separator3,
|
|
10197
10434
|
{
|
|
10198
10435
|
ref,
|
|
@@ -10202,8 +10439,8 @@ var SidebarSeparator = React28.forwardRef(({ className, ...props }, ref) => /* @
|
|
|
10202
10439
|
}
|
|
10203
10440
|
));
|
|
10204
10441
|
SidebarSeparator.displayName = "SidebarSeparator";
|
|
10205
|
-
var SidebarContent =
|
|
10206
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
10442
|
+
var SidebarContent = React29.forwardRef(
|
|
10443
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx105(
|
|
10207
10444
|
"div",
|
|
10208
10445
|
{
|
|
10209
10446
|
ref,
|
|
@@ -10217,8 +10454,8 @@ var SidebarContent = React28.forwardRef(
|
|
|
10217
10454
|
)
|
|
10218
10455
|
);
|
|
10219
10456
|
SidebarContent.displayName = "SidebarContent";
|
|
10220
|
-
var SidebarGroup =
|
|
10221
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
10457
|
+
var SidebarGroup = React29.forwardRef(
|
|
10458
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx105(
|
|
10222
10459
|
"div",
|
|
10223
10460
|
{
|
|
10224
10461
|
ref,
|
|
@@ -10229,9 +10466,9 @@ var SidebarGroup = React28.forwardRef(
|
|
|
10229
10466
|
)
|
|
10230
10467
|
);
|
|
10231
10468
|
SidebarGroup.displayName = "SidebarGroup";
|
|
10232
|
-
var SidebarGroupLabel =
|
|
10469
|
+
var SidebarGroupLabel = React29.forwardRef(({ className, asChild = false, ...props }, ref) => {
|
|
10233
10470
|
const Comp = asChild ? Slot4 : "div";
|
|
10234
|
-
return /* @__PURE__ */
|
|
10471
|
+
return /* @__PURE__ */ jsx105(
|
|
10235
10472
|
Comp,
|
|
10236
10473
|
{
|
|
10237
10474
|
ref,
|
|
@@ -10246,9 +10483,9 @@ var SidebarGroupLabel = React28.forwardRef(({ className, asChild = false, ...pro
|
|
|
10246
10483
|
);
|
|
10247
10484
|
});
|
|
10248
10485
|
SidebarGroupLabel.displayName = "SidebarGroupLabel";
|
|
10249
|
-
var SidebarGroupAction =
|
|
10486
|
+
var SidebarGroupAction = React29.forwardRef(({ className, asChild = false, ...props }, ref) => {
|
|
10250
10487
|
const Comp = asChild ? Slot4 : "button";
|
|
10251
|
-
return /* @__PURE__ */
|
|
10488
|
+
return /* @__PURE__ */ jsx105(
|
|
10252
10489
|
Comp,
|
|
10253
10490
|
{
|
|
10254
10491
|
ref,
|
|
@@ -10262,8 +10499,8 @@ var SidebarGroupAction = React28.forwardRef(({ className, asChild = false, ...pr
|
|
|
10262
10499
|
);
|
|
10263
10500
|
});
|
|
10264
10501
|
SidebarGroupAction.displayName = "SidebarGroupAction";
|
|
10265
|
-
var SidebarGroupContent =
|
|
10266
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
10502
|
+
var SidebarGroupContent = React29.forwardRef(
|
|
10503
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx105(
|
|
10267
10504
|
"div",
|
|
10268
10505
|
{
|
|
10269
10506
|
ref,
|
|
@@ -10274,8 +10511,8 @@ var SidebarGroupContent = React28.forwardRef(
|
|
|
10274
10511
|
)
|
|
10275
10512
|
);
|
|
10276
10513
|
SidebarGroupContent.displayName = "SidebarGroupContent";
|
|
10277
|
-
var SidebarMenu =
|
|
10278
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
10514
|
+
var SidebarMenu = React29.forwardRef(
|
|
10515
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx105(
|
|
10279
10516
|
"ul",
|
|
10280
10517
|
{
|
|
10281
10518
|
ref,
|
|
@@ -10286,8 +10523,8 @@ var SidebarMenu = React28.forwardRef(
|
|
|
10286
10523
|
)
|
|
10287
10524
|
);
|
|
10288
10525
|
SidebarMenu.displayName = "SidebarMenu";
|
|
10289
|
-
var SidebarMenuItem =
|
|
10290
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
10526
|
+
var SidebarMenuItem = React29.forwardRef(
|
|
10527
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx105(
|
|
10291
10528
|
"li",
|
|
10292
10529
|
{
|
|
10293
10530
|
ref,
|
|
@@ -10318,7 +10555,7 @@ var sidebarMenuButtonVariants = cva13(
|
|
|
10318
10555
|
}
|
|
10319
10556
|
}
|
|
10320
10557
|
);
|
|
10321
|
-
var SidebarMenuButton =
|
|
10558
|
+
var SidebarMenuButton = React29.forwardRef(
|
|
10322
10559
|
({
|
|
10323
10560
|
asChild = false,
|
|
10324
10561
|
isActive = false,
|
|
@@ -10331,7 +10568,7 @@ var SidebarMenuButton = React28.forwardRef(
|
|
|
10331
10568
|
}, ref) => {
|
|
10332
10569
|
const Comp = asChild ? Slot4 : "button";
|
|
10333
10570
|
const { isMobile: isMobile3, state } = useSidebar();
|
|
10334
|
-
const button = /* @__PURE__ */
|
|
10571
|
+
const button = /* @__PURE__ */ jsx105(
|
|
10335
10572
|
Comp,
|
|
10336
10573
|
{
|
|
10337
10574
|
ref,
|
|
@@ -10344,12 +10581,12 @@ var SidebarMenuButton = React28.forwardRef(
|
|
|
10344
10581
|
}
|
|
10345
10582
|
);
|
|
10346
10583
|
if (!tooltip) {
|
|
10347
|
-
return /* @__PURE__ */
|
|
10584
|
+
return /* @__PURE__ */ jsx105(SidebarMenuButtonContext.Provider, { value: { isActive, highlighted }, children: button });
|
|
10348
10585
|
}
|
|
10349
10586
|
const tooltipProps = typeof tooltip === "string" ? { children: tooltip } : tooltip;
|
|
10350
|
-
return /* @__PURE__ */
|
|
10351
|
-
/* @__PURE__ */
|
|
10352
|
-
/* @__PURE__ */
|
|
10587
|
+
return /* @__PURE__ */ jsx105(SidebarMenuButtonContext.Provider, { value: { isActive, highlighted }, children: /* @__PURE__ */ jsxs64(Tooltip, { children: [
|
|
10588
|
+
/* @__PURE__ */ jsx105(TooltipTrigger, { asChild: true, children: button }),
|
|
10589
|
+
/* @__PURE__ */ jsx105(
|
|
10353
10590
|
TooltipContent,
|
|
10354
10591
|
{
|
|
10355
10592
|
side: "right",
|
|
@@ -10364,9 +10601,9 @@ var SidebarMenuButton = React28.forwardRef(
|
|
|
10364
10601
|
}
|
|
10365
10602
|
);
|
|
10366
10603
|
SidebarMenuButton.displayName = "SidebarMenuButton";
|
|
10367
|
-
var SidebarMenuAction =
|
|
10604
|
+
var SidebarMenuAction = React29.forwardRef(({ className, asChild = false, showOnHover = false, ...props }, ref) => {
|
|
10368
10605
|
const Comp = asChild ? Slot4 : "button";
|
|
10369
|
-
return /* @__PURE__ */
|
|
10606
|
+
return /* @__PURE__ */ jsx105(
|
|
10370
10607
|
Comp,
|
|
10371
10608
|
{
|
|
10372
10609
|
ref,
|
|
@@ -10381,11 +10618,11 @@ var SidebarMenuAction = React28.forwardRef(({ className, asChild = false, showOn
|
|
|
10381
10618
|
);
|
|
10382
10619
|
});
|
|
10383
10620
|
SidebarMenuAction.displayName = "SidebarMenuAction";
|
|
10384
|
-
var SidebarMenuBadge =
|
|
10621
|
+
var SidebarMenuBadge = React29.forwardRef(
|
|
10385
10622
|
({ className, ...props }, ref) => {
|
|
10386
10623
|
const { open, isMobile: isMobile3, openMobile } = useSidebar();
|
|
10387
10624
|
const isOpen = isMobile3 ? openMobile : open;
|
|
10388
|
-
return /* @__PURE__ */
|
|
10625
|
+
return /* @__PURE__ */ jsx105(
|
|
10389
10626
|
"div",
|
|
10390
10627
|
{
|
|
10391
10628
|
ref,
|
|
@@ -10401,9 +10638,9 @@ var SidebarMenuBadge = React28.forwardRef(
|
|
|
10401
10638
|
}
|
|
10402
10639
|
);
|
|
10403
10640
|
SidebarMenuBadge.displayName = "SidebarMenuBadge";
|
|
10404
|
-
var SidebarMenuSkeleton =
|
|
10405
|
-
const width =
|
|
10406
|
-
return /* @__PURE__ */
|
|
10641
|
+
var SidebarMenuSkeleton = React29.forwardRef(({ className, showIcon = false, ...props }, ref) => {
|
|
10642
|
+
const width = React29.useMemo(() => `${Math.floor(Math.random() * 40) + 50}%`, []);
|
|
10643
|
+
return /* @__PURE__ */ jsxs64(
|
|
10407
10644
|
"div",
|
|
10408
10645
|
{
|
|
10409
10646
|
ref,
|
|
@@ -10411,8 +10648,8 @@ var SidebarMenuSkeleton = React28.forwardRef(({ className, showIcon = false, ...
|
|
|
10411
10648
|
className: cn("flex h-8 items-center gap-2 rounded-md px-2", className),
|
|
10412
10649
|
...props,
|
|
10413
10650
|
children: [
|
|
10414
|
-
showIcon && /* @__PURE__ */
|
|
10415
|
-
/* @__PURE__ */
|
|
10651
|
+
showIcon && /* @__PURE__ */ jsx105(Skeleton, { className: "size-4 rounded-md", "data-sidebar": "menu-skeleton-icon" }),
|
|
10652
|
+
/* @__PURE__ */ jsx105(
|
|
10416
10653
|
Skeleton,
|
|
10417
10654
|
{
|
|
10418
10655
|
className: "h-4 max-w-[--skeleton-width] flex-1",
|
|
@@ -10425,8 +10662,8 @@ var SidebarMenuSkeleton = React28.forwardRef(({ className, showIcon = false, ...
|
|
|
10425
10662
|
);
|
|
10426
10663
|
});
|
|
10427
10664
|
SidebarMenuSkeleton.displayName = "SidebarMenuSkeleton";
|
|
10428
|
-
var SidebarMenuSub =
|
|
10429
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
10665
|
+
var SidebarMenuSub = React29.forwardRef(
|
|
10666
|
+
({ className, ...props }, ref) => /* @__PURE__ */ jsx105(
|
|
10430
10667
|
"ul",
|
|
10431
10668
|
{
|
|
10432
10669
|
ref,
|
|
@@ -10440,8 +10677,8 @@ var SidebarMenuSub = React28.forwardRef(
|
|
|
10440
10677
|
)
|
|
10441
10678
|
);
|
|
10442
10679
|
SidebarMenuSub.displayName = "SidebarMenuSub";
|
|
10443
|
-
var SidebarMenuSubItem =
|
|
10444
|
-
({ ...props }, ref) => /* @__PURE__ */
|
|
10680
|
+
var SidebarMenuSubItem = React29.forwardRef(
|
|
10681
|
+
({ ...props }, ref) => /* @__PURE__ */ jsx105("li", { ref, ...props })
|
|
10445
10682
|
);
|
|
10446
10683
|
SidebarMenuSubItem.displayName = "SidebarMenuSubItem";
|
|
10447
10684
|
var sidebarMenuSubButtonVariants = cva13(
|
|
@@ -10464,7 +10701,7 @@ var sidebarMenuSubButtonVariants = cva13(
|
|
|
10464
10701
|
}
|
|
10465
10702
|
}
|
|
10466
10703
|
);
|
|
10467
|
-
var SidebarMenuSubButton =
|
|
10704
|
+
var SidebarMenuSubButton = React29.forwardRef(
|
|
10468
10705
|
({
|
|
10469
10706
|
asChild = false,
|
|
10470
10707
|
isActive,
|
|
@@ -10474,7 +10711,7 @@ var SidebarMenuSubButton = React28.forwardRef(
|
|
|
10474
10711
|
...props
|
|
10475
10712
|
}, ref) => {
|
|
10476
10713
|
const Comp = asChild ? Slot4 : "a";
|
|
10477
|
-
return /* @__PURE__ */
|
|
10714
|
+
return /* @__PURE__ */ jsx105(
|
|
10478
10715
|
Comp,
|
|
10479
10716
|
{
|
|
10480
10717
|
ref,
|
|
@@ -10495,17 +10732,17 @@ var getSidebarState = (stateName) => document.cookie.split("; ").find((row) => r
|
|
|
10495
10732
|
|
|
10496
10733
|
// src/signature-canvas/SignatureCanvas.tsx
|
|
10497
10734
|
import {
|
|
10498
|
-
forwardRef as
|
|
10735
|
+
forwardRef as forwardRef41,
|
|
10499
10736
|
useEffect as useEffect30,
|
|
10500
|
-
useRef as
|
|
10501
|
-
useState as
|
|
10502
|
-
useCallback as
|
|
10737
|
+
useRef as useRef22,
|
|
10738
|
+
useState as useState32,
|
|
10739
|
+
useCallback as useCallback26,
|
|
10503
10740
|
useImperativeHandle,
|
|
10504
10741
|
useLayoutEffect as useLayoutEffect4
|
|
10505
10742
|
} from "react";
|
|
10506
10743
|
import { useTranslation as useTranslation16 } from "react-i18next";
|
|
10507
10744
|
import ReactSignatureCanvas from "react-signature-canvas";
|
|
10508
|
-
import { jsx as
|
|
10745
|
+
import { jsx as jsx106, jsxs as jsxs65 } from "react/jsx-runtime";
|
|
10509
10746
|
var SIGNATURE_PROPS = {
|
|
10510
10747
|
penColor: "var(--chekin-blue-900)",
|
|
10511
10748
|
minWidth: 1.5,
|
|
@@ -10570,15 +10807,15 @@ function getTrimmedCanvas(canvas, padding = 10) {
|
|
|
10570
10807
|
);
|
|
10571
10808
|
return trimmedCanvas;
|
|
10572
10809
|
}
|
|
10573
|
-
var SignatureCanvas =
|
|
10810
|
+
var SignatureCanvas = forwardRef41(
|
|
10574
10811
|
({ onClear, onEnd, onEnable, className, enabled }, ref) => {
|
|
10575
10812
|
const { t } = useTranslation16();
|
|
10576
10813
|
const isMobile3 = useIsMobile();
|
|
10577
|
-
const canvasRef =
|
|
10578
|
-
const containerRef =
|
|
10579
|
-
const [size, setSize] =
|
|
10580
|
-
const [hasSignature, setHasSignature] =
|
|
10581
|
-
const calculateSize =
|
|
10814
|
+
const canvasRef = useRef22(null);
|
|
10815
|
+
const containerRef = useRef22(null);
|
|
10816
|
+
const [size, setSize] = useState32({ width: 330, height: 190 });
|
|
10817
|
+
const [hasSignature, setHasSignature] = useState32(false);
|
|
10818
|
+
const calculateSize = useCallback26((containerWidth) => {
|
|
10582
10819
|
const width = Math.floor(Math.min(containerWidth, 646));
|
|
10583
10820
|
const height = Math.floor(width / ASPECT_RATIO);
|
|
10584
10821
|
setSize((prev) => {
|
|
@@ -10612,12 +10849,12 @@ var SignatureCanvas = forwardRef40(
|
|
|
10612
10849
|
canvas.style.width = `${size.width}px`;
|
|
10613
10850
|
canvas.style.height = `${size.height}px`;
|
|
10614
10851
|
}, [size, enabled]);
|
|
10615
|
-
const handleEnd =
|
|
10852
|
+
const handleEnd = useCallback26(() => {
|
|
10616
10853
|
const isEmpty = canvasRef.current?.isEmpty() ?? true;
|
|
10617
10854
|
setHasSignature(!isEmpty);
|
|
10618
10855
|
onEnd?.();
|
|
10619
10856
|
}, [onEnd]);
|
|
10620
|
-
const handleClear =
|
|
10857
|
+
const handleClear = useCallback26(() => {
|
|
10621
10858
|
canvasRef.current?.clear();
|
|
10622
10859
|
setHasSignature(false);
|
|
10623
10860
|
onClear?.();
|
|
@@ -10639,13 +10876,13 @@ var SignatureCanvas = forwardRef40(
|
|
|
10639
10876
|
},
|
|
10640
10877
|
getCanvas: (...args) => canvasRef.current?.getCanvas(...args)
|
|
10641
10878
|
}));
|
|
10642
|
-
return /* @__PURE__ */
|
|
10879
|
+
return /* @__PURE__ */ jsxs65(
|
|
10643
10880
|
"div",
|
|
10644
10881
|
{
|
|
10645
10882
|
ref: containerRef,
|
|
10646
10883
|
className: cn("relative flex w-full flex-col items-center", className),
|
|
10647
10884
|
children: [
|
|
10648
|
-
/* @__PURE__ */
|
|
10885
|
+
/* @__PURE__ */ jsxs65(
|
|
10649
10886
|
"div",
|
|
10650
10887
|
{
|
|
10651
10888
|
className: cn(
|
|
@@ -10654,7 +10891,7 @@ var SignatureCanvas = forwardRef40(
|
|
|
10654
10891
|
),
|
|
10655
10892
|
style: { width: size.width, height: size.height },
|
|
10656
10893
|
children: [
|
|
10657
|
-
/* @__PURE__ */
|
|
10894
|
+
/* @__PURE__ */ jsx106(
|
|
10658
10895
|
ReactSignatureCanvas,
|
|
10659
10896
|
{
|
|
10660
10897
|
ref: canvasRef,
|
|
@@ -10668,7 +10905,7 @@ var SignatureCanvas = forwardRef40(
|
|
|
10668
10905
|
...SIGNATURE_PROPS
|
|
10669
10906
|
}
|
|
10670
10907
|
),
|
|
10671
|
-
!enabled && /* @__PURE__ */
|
|
10908
|
+
!enabled && /* @__PURE__ */ jsx106(
|
|
10672
10909
|
"button",
|
|
10673
10910
|
{
|
|
10674
10911
|
type: "button",
|
|
@@ -10678,7 +10915,7 @@ var SignatureCanvas = forwardRef40(
|
|
|
10678
10915
|
),
|
|
10679
10916
|
onClick: onEnable,
|
|
10680
10917
|
"data-testid": "signature-placeholder",
|
|
10681
|
-
children: /* @__PURE__ */
|
|
10918
|
+
children: /* @__PURE__ */ jsx106(
|
|
10682
10919
|
"span",
|
|
10683
10920
|
{
|
|
10684
10921
|
className: cn(
|
|
@@ -10693,14 +10930,14 @@ var SignatureCanvas = forwardRef40(
|
|
|
10693
10930
|
]
|
|
10694
10931
|
}
|
|
10695
10932
|
),
|
|
10696
|
-
/* @__PURE__ */
|
|
10933
|
+
/* @__PURE__ */ jsx106(
|
|
10697
10934
|
"div",
|
|
10698
10935
|
{
|
|
10699
10936
|
className: cn("text-right", {
|
|
10700
10937
|
invisible: !enabled || !hasSignature
|
|
10701
10938
|
}),
|
|
10702
10939
|
style: { width: size.width },
|
|
10703
|
-
children: /* @__PURE__ */
|
|
10940
|
+
children: /* @__PURE__ */ jsx106(
|
|
10704
10941
|
Button,
|
|
10705
10942
|
{
|
|
10706
10943
|
variant: "link",
|
|
@@ -10722,17 +10959,17 @@ var SignatureCanvas = forwardRef40(
|
|
|
10722
10959
|
SignatureCanvas.displayName = "SignatureCanvas";
|
|
10723
10960
|
|
|
10724
10961
|
// src/carousel/Carousel.tsx
|
|
10725
|
-
import * as
|
|
10962
|
+
import * as React36 from "react";
|
|
10726
10963
|
|
|
10727
10964
|
// src/carousel/CarouselControls.tsx
|
|
10728
|
-
import * as
|
|
10965
|
+
import * as React31 from "react";
|
|
10729
10966
|
import { ChevronLeft as ChevronLeft3, ChevronRight as ChevronRight5 } from "lucide-react";
|
|
10730
10967
|
|
|
10731
10968
|
// src/carousel/CarouselContext.tsx
|
|
10732
|
-
import * as
|
|
10733
|
-
var CarouselContext =
|
|
10969
|
+
import * as React30 from "react";
|
|
10970
|
+
var CarouselContext = React30.createContext(null);
|
|
10734
10971
|
function useCarouselContext(componentName) {
|
|
10735
|
-
const context =
|
|
10972
|
+
const context = React30.useContext(CarouselContext);
|
|
10736
10973
|
if (!context) {
|
|
10737
10974
|
throw new Error(`${componentName} must be used within CarouselRoot`);
|
|
10738
10975
|
}
|
|
@@ -10740,14 +10977,14 @@ function useCarouselContext(componentName) {
|
|
|
10740
10977
|
}
|
|
10741
10978
|
|
|
10742
10979
|
// src/carousel/CarouselControls.tsx
|
|
10743
|
-
import { jsx as
|
|
10744
|
-
var CarouselPrevious =
|
|
10980
|
+
import { jsx as jsx107 } from "react/jsx-runtime";
|
|
10981
|
+
var CarouselPrevious = React31.forwardRef(
|
|
10745
10982
|
({ className, children, onClick, ...props }, ref) => {
|
|
10746
10983
|
const { canGoPrevious, goToPrevious } = useCarouselContext("CarouselPrevious");
|
|
10747
10984
|
if (!canGoPrevious) {
|
|
10748
10985
|
return null;
|
|
10749
10986
|
}
|
|
10750
|
-
return /* @__PURE__ */
|
|
10987
|
+
return /* @__PURE__ */ jsx107(
|
|
10751
10988
|
"button",
|
|
10752
10989
|
{
|
|
10753
10990
|
ref,
|
|
@@ -10765,19 +11002,19 @@ var CarouselPrevious = React30.forwardRef(
|
|
|
10765
11002
|
goToPrevious();
|
|
10766
11003
|
},
|
|
10767
11004
|
...props,
|
|
10768
|
-
children: children ?? /* @__PURE__ */
|
|
11005
|
+
children: children ?? /* @__PURE__ */ jsx107(ChevronLeft3, { className: "size-4" })
|
|
10769
11006
|
}
|
|
10770
11007
|
);
|
|
10771
11008
|
}
|
|
10772
11009
|
);
|
|
10773
11010
|
CarouselPrevious.displayName = "CarouselPrevious";
|
|
10774
|
-
var CarouselNext =
|
|
11011
|
+
var CarouselNext = React31.forwardRef(
|
|
10775
11012
|
({ className, children, onClick, ...props }, ref) => {
|
|
10776
11013
|
const { canGoNext, goToNext } = useCarouselContext("CarouselNext");
|
|
10777
11014
|
if (!canGoNext) {
|
|
10778
11015
|
return null;
|
|
10779
11016
|
}
|
|
10780
|
-
return /* @__PURE__ */
|
|
11017
|
+
return /* @__PURE__ */ jsx107(
|
|
10781
11018
|
"button",
|
|
10782
11019
|
{
|
|
10783
11020
|
ref,
|
|
@@ -10795,7 +11032,7 @@ var CarouselNext = React30.forwardRef(
|
|
|
10795
11032
|
goToNext();
|
|
10796
11033
|
},
|
|
10797
11034
|
...props,
|
|
10798
|
-
children: children ?? /* @__PURE__ */
|
|
11035
|
+
children: children ?? /* @__PURE__ */ jsx107(ChevronRight5, { className: "size-4" })
|
|
10799
11036
|
}
|
|
10800
11037
|
);
|
|
10801
11038
|
}
|
|
@@ -10803,9 +11040,9 @@ var CarouselNext = React30.forwardRef(
|
|
|
10803
11040
|
CarouselNext.displayName = "CarouselNext";
|
|
10804
11041
|
|
|
10805
11042
|
// src/carousel/CarouselRoot.tsx
|
|
10806
|
-
import * as
|
|
10807
|
-
import { jsx as
|
|
10808
|
-
var CarouselRoot =
|
|
11043
|
+
import * as React32 from "react";
|
|
11044
|
+
import { jsx as jsx108 } from "react/jsx-runtime";
|
|
11045
|
+
var CarouselRoot = React32.forwardRef(
|
|
10809
11046
|
({
|
|
10810
11047
|
className,
|
|
10811
11048
|
index: controlledIndex,
|
|
@@ -10816,8 +11053,8 @@ var CarouselRoot = React31.forwardRef(
|
|
|
10816
11053
|
children,
|
|
10817
11054
|
...props
|
|
10818
11055
|
}, ref) => {
|
|
10819
|
-
const [uncontrolledIndex, setUncontrolledIndex] =
|
|
10820
|
-
const [registeredSlideCount, setRegisteredSlideCount] =
|
|
11056
|
+
const [uncontrolledIndex, setUncontrolledIndex] = React32.useState(defaultIndex);
|
|
11057
|
+
const [registeredSlideCount, setRegisteredSlideCount] = React32.useState(0);
|
|
10821
11058
|
const slideCount = controlledSlideCount ?? registeredSlideCount;
|
|
10822
11059
|
const isControlled = controlledIndex !== void 0;
|
|
10823
11060
|
const index = isControlled ? controlledIndex : uncontrolledIndex;
|
|
@@ -10825,7 +11062,7 @@ var CarouselRoot = React31.forwardRef(
|
|
|
10825
11062
|
const normalizedIndex = Math.min(Math.max(index, 0), maxIndex);
|
|
10826
11063
|
const canGoPrevious = loop ? slideCount > 1 : normalizedIndex > 0;
|
|
10827
11064
|
const canGoNext = loop ? slideCount > 1 : normalizedIndex < maxIndex;
|
|
10828
|
-
const setIndex =
|
|
11065
|
+
const setIndex = React32.useCallback(
|
|
10829
11066
|
(nextIndex) => {
|
|
10830
11067
|
const clampedIndex = Math.min(Math.max(nextIndex, 0), maxIndex);
|
|
10831
11068
|
if (!isControlled) {
|
|
@@ -10835,23 +11072,23 @@ var CarouselRoot = React31.forwardRef(
|
|
|
10835
11072
|
},
|
|
10836
11073
|
[isControlled, maxIndex, onIndexChange]
|
|
10837
11074
|
);
|
|
10838
|
-
const goToPrevious =
|
|
11075
|
+
const goToPrevious = React32.useCallback(() => {
|
|
10839
11076
|
if (!canGoPrevious) {
|
|
10840
11077
|
return;
|
|
10841
11078
|
}
|
|
10842
11079
|
setIndex(normalizedIndex === 0 ? maxIndex : normalizedIndex - 1);
|
|
10843
11080
|
}, [canGoPrevious, maxIndex, normalizedIndex, setIndex]);
|
|
10844
|
-
const goToNext =
|
|
11081
|
+
const goToNext = React32.useCallback(() => {
|
|
10845
11082
|
if (!canGoNext) {
|
|
10846
11083
|
return;
|
|
10847
11084
|
}
|
|
10848
11085
|
setIndex(normalizedIndex === maxIndex ? 0 : normalizedIndex + 1);
|
|
10849
11086
|
}, [canGoNext, maxIndex, normalizedIndex, setIndex]);
|
|
10850
|
-
const registerSlide =
|
|
11087
|
+
const registerSlide = React32.useCallback(() => {
|
|
10851
11088
|
setRegisteredSlideCount((count) => count + 1);
|
|
10852
11089
|
return () => setRegisteredSlideCount((count) => Math.max(0, count - 1));
|
|
10853
11090
|
}, []);
|
|
10854
|
-
const contextValue =
|
|
11091
|
+
const contextValue = React32.useMemo(
|
|
10855
11092
|
() => ({
|
|
10856
11093
|
index: normalizedIndex,
|
|
10857
11094
|
slideCount,
|
|
@@ -10875,7 +11112,7 @@ var CarouselRoot = React31.forwardRef(
|
|
|
10875
11112
|
registerSlide
|
|
10876
11113
|
]
|
|
10877
11114
|
);
|
|
10878
|
-
return /* @__PURE__ */
|
|
11115
|
+
return /* @__PURE__ */ jsx108(CarouselContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx108(
|
|
10879
11116
|
"div",
|
|
10880
11117
|
{
|
|
10881
11118
|
ref,
|
|
@@ -10890,12 +11127,12 @@ var CarouselRoot = React31.forwardRef(
|
|
|
10890
11127
|
CarouselRoot.displayName = "CarouselRoot";
|
|
10891
11128
|
|
|
10892
11129
|
// src/carousel/CarouselSlide.tsx
|
|
10893
|
-
import * as
|
|
10894
|
-
import { jsx as
|
|
10895
|
-
var CarouselSlide =
|
|
11130
|
+
import * as React33 from "react";
|
|
11131
|
+
import { jsx as jsx109 } from "react/jsx-runtime";
|
|
11132
|
+
var CarouselSlide = React33.forwardRef(({ className, ...props }, ref) => {
|
|
10896
11133
|
const { registerSlide } = useCarouselContext("CarouselSlide");
|
|
10897
|
-
|
|
10898
|
-
return /* @__PURE__ */
|
|
11134
|
+
React33.useEffect(() => registerSlide(), [registerSlide]);
|
|
11135
|
+
return /* @__PURE__ */ jsx109(
|
|
10899
11136
|
"div",
|
|
10900
11137
|
{
|
|
10901
11138
|
ref,
|
|
@@ -10908,11 +11145,11 @@ var CarouselSlide = React32.forwardRef(({ className, ...props }, ref) => {
|
|
|
10908
11145
|
CarouselSlide.displayName = "CarouselSlide";
|
|
10909
11146
|
|
|
10910
11147
|
// src/carousel/CarouselTrack.tsx
|
|
10911
|
-
import * as
|
|
10912
|
-
import { jsx as
|
|
10913
|
-
var CarouselTrack =
|
|
11148
|
+
import * as React34 from "react";
|
|
11149
|
+
import { jsx as jsx110 } from "react/jsx-runtime";
|
|
11150
|
+
var CarouselTrack = React34.forwardRef(({ className, style, ...props }, ref) => {
|
|
10914
11151
|
const { index } = useCarouselContext("CarouselTrack");
|
|
10915
|
-
return /* @__PURE__ */
|
|
11152
|
+
return /* @__PURE__ */ jsx110(
|
|
10916
11153
|
"div",
|
|
10917
11154
|
{
|
|
10918
11155
|
ref,
|
|
@@ -10929,9 +11166,9 @@ var CarouselTrack = React33.forwardRef(({ className, style, ...props }, ref) =>
|
|
|
10929
11166
|
CarouselTrack.displayName = "CarouselTrack";
|
|
10930
11167
|
|
|
10931
11168
|
// src/carousel/CarouselViewport.tsx
|
|
10932
|
-
import * as
|
|
10933
|
-
import { jsx as
|
|
10934
|
-
var CarouselViewport =
|
|
11169
|
+
import * as React35 from "react";
|
|
11170
|
+
import { jsx as jsx111 } from "react/jsx-runtime";
|
|
11171
|
+
var CarouselViewport = React35.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx111(
|
|
10935
11172
|
"div",
|
|
10936
11173
|
{
|
|
10937
11174
|
ref,
|
|
@@ -10943,28 +11180,28 @@ var CarouselViewport = React34.forwardRef(({ className, ...props }, ref) => /* @
|
|
|
10943
11180
|
CarouselViewport.displayName = "CarouselViewport";
|
|
10944
11181
|
|
|
10945
11182
|
// src/carousel/Carousel.tsx
|
|
10946
|
-
import { jsx as
|
|
11183
|
+
import { jsx as jsx112, jsxs as jsxs66 } from "react/jsx-runtime";
|
|
10947
11184
|
function Carousel({ children, slideCount, ...props }) {
|
|
10948
|
-
return /* @__PURE__ */
|
|
10949
|
-
/* @__PURE__ */
|
|
10950
|
-
/* @__PURE__ */
|
|
10951
|
-
/* @__PURE__ */
|
|
11185
|
+
return /* @__PURE__ */ jsxs66(CarouselRoot, { slideCount: slideCount ?? React36.Children.count(children), ...props, children: [
|
|
11186
|
+
/* @__PURE__ */ jsx112(CarouselViewport, { children: /* @__PURE__ */ jsx112(CarouselTrack, { children: React36.Children.map(children, (slide) => /* @__PURE__ */ jsx112(CarouselSlide, { children: slide })) }) }),
|
|
11187
|
+
/* @__PURE__ */ jsx112(CarouselPrevious, {}),
|
|
11188
|
+
/* @__PURE__ */ jsx112(CarouselNext, {})
|
|
10952
11189
|
] });
|
|
10953
11190
|
}
|
|
10954
11191
|
|
|
10955
11192
|
// src/slider/Slider.tsx
|
|
10956
|
-
import * as
|
|
11193
|
+
import * as React37 from "react";
|
|
10957
11194
|
import * as SliderPrimitive from "@radix-ui/react-slider";
|
|
10958
|
-
import { jsx as
|
|
10959
|
-
var Slider =
|
|
11195
|
+
import { jsx as jsx113, jsxs as jsxs67 } from "react/jsx-runtime";
|
|
11196
|
+
var Slider = React37.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs67(
|
|
10960
11197
|
SliderPrimitive.Root,
|
|
10961
11198
|
{
|
|
10962
11199
|
ref,
|
|
10963
11200
|
className: cn("relative flex w-full touch-none select-none items-center", className),
|
|
10964
11201
|
...props,
|
|
10965
11202
|
children: [
|
|
10966
|
-
/* @__PURE__ */
|
|
10967
|
-
/* @__PURE__ */
|
|
11203
|
+
/* @__PURE__ */ jsx113(SliderPrimitive.Track, { className: "relative h-1.5 w-full grow overflow-hidden rounded-full bg-[var(--slider-track-bg)]", children: /* @__PURE__ */ jsx113(SliderPrimitive.Range, { className: "absolute h-full bg-[var(--slider-range-bg)]" }) }),
|
|
11204
|
+
/* @__PURE__ */ jsx113(SliderPrimitive.Thumb, { className: "block h-4 w-4 rounded-full border cursor-pointer border-[var(--slider-thumb-border)] bg-[var(--slider-thumb-bg)] shadow transition-all hover:brightness-110 hover:scale-105 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[var(--slider-focus-ring)] disabled:pointer-events-none disabled:opacity-50" })
|
|
10968
11205
|
]
|
|
10969
11206
|
}
|
|
10970
11207
|
));
|
|
@@ -10974,7 +11211,7 @@ Slider.displayName = SliderPrimitive.Root.displayName;
|
|
|
10974
11211
|
import { memo as memo5 } from "react";
|
|
10975
11212
|
import { Pencil, Trash2 } from "lucide-react";
|
|
10976
11213
|
import { useTranslation as useTranslation17 } from "react-i18next";
|
|
10977
|
-
import { jsx as
|
|
11214
|
+
import { jsx as jsx114, jsxs as jsxs68 } from "react/jsx-runtime";
|
|
10978
11215
|
var SmallGridSingleItem = memo5(
|
|
10979
11216
|
({
|
|
10980
11217
|
title,
|
|
@@ -10995,7 +11232,7 @@ var SmallGridSingleItem = memo5(
|
|
|
10995
11232
|
};
|
|
10996
11233
|
const hasActions = !readOnly && (onDelete || onEdit);
|
|
10997
11234
|
const hasSwitch = onActiveSwitch && !readOnly;
|
|
10998
|
-
return /* @__PURE__ */
|
|
11235
|
+
return /* @__PURE__ */ jsxs68(
|
|
10999
11236
|
"div",
|
|
11000
11237
|
{
|
|
11001
11238
|
onClick: handleClick,
|
|
@@ -11009,13 +11246,13 @@ var SmallGridSingleItem = memo5(
|
|
|
11009
11246
|
className
|
|
11010
11247
|
),
|
|
11011
11248
|
children: [
|
|
11012
|
-
/* @__PURE__ */
|
|
11013
|
-
/* @__PURE__ */
|
|
11014
|
-
/* @__PURE__ */
|
|
11015
|
-
subtitle && /* @__PURE__ */
|
|
11249
|
+
/* @__PURE__ */ jsxs68("div", { className: "flex w-full items-start justify-between gap-4", children: [
|
|
11250
|
+
/* @__PURE__ */ jsxs68("div", { className: "flex-1", children: [
|
|
11251
|
+
/* @__PURE__ */ jsx114("div", { className: "line-clamp-2 overflow-hidden text-ellipsis break-all", children: title }),
|
|
11252
|
+
subtitle && /* @__PURE__ */ jsx114("div", { className: "line-clamp-2 overflow-hidden text-ellipsis text-[15px] font-medium leading-6 text-[var(--chekin-color-gray-2)]", children: subtitle })
|
|
11016
11253
|
] }),
|
|
11017
|
-
hasActions && /* @__PURE__ */
|
|
11018
|
-
onDelete && /* @__PURE__ */
|
|
11254
|
+
hasActions && /* @__PURE__ */ jsxs68("div", { className: "flex items-center justify-end gap-2", children: [
|
|
11255
|
+
onDelete && /* @__PURE__ */ jsx114(
|
|
11019
11256
|
Button,
|
|
11020
11257
|
{
|
|
11021
11258
|
disabled,
|
|
@@ -11023,10 +11260,10 @@ var SmallGridSingleItem = memo5(
|
|
|
11023
11260
|
className: "size-8",
|
|
11024
11261
|
size: "icon",
|
|
11025
11262
|
variant: "outline",
|
|
11026
|
-
children: /* @__PURE__ */
|
|
11263
|
+
children: /* @__PURE__ */ jsx114(Trash2, { className: "h-5 w-5 text-[var(--chekin-color-brand-red)]" })
|
|
11027
11264
|
}
|
|
11028
11265
|
),
|
|
11029
|
-
onEdit && /* @__PURE__ */
|
|
11266
|
+
onEdit && /* @__PURE__ */ jsx114(
|
|
11030
11267
|
Button,
|
|
11031
11268
|
{
|
|
11032
11269
|
className: "size-8",
|
|
@@ -11034,12 +11271,12 @@ var SmallGridSingleItem = memo5(
|
|
|
11034
11271
|
disabled,
|
|
11035
11272
|
onClick: onEdit,
|
|
11036
11273
|
variant: "outline",
|
|
11037
|
-
children: /* @__PURE__ */
|
|
11274
|
+
children: /* @__PURE__ */ jsx114(Pencil, { className: "h-5 w-5 text-[var(--chekin-color-brand-blue)]" })
|
|
11038
11275
|
}
|
|
11039
11276
|
)
|
|
11040
11277
|
] })
|
|
11041
11278
|
] }),
|
|
11042
|
-
hasSwitch && /* @__PURE__ */
|
|
11279
|
+
hasSwitch && /* @__PURE__ */ jsx114("div", { className: cn("flex items-center", !active && "opacity-60"), children: /* @__PURE__ */ jsx114(
|
|
11043
11280
|
Switch,
|
|
11044
11281
|
{
|
|
11045
11282
|
onChange: onActiveSwitch,
|
|
@@ -11049,7 +11286,7 @@ var SmallGridSingleItem = memo5(
|
|
|
11049
11286
|
onClick: (event) => event.stopPropagation()
|
|
11050
11287
|
}
|
|
11051
11288
|
) }),
|
|
11052
|
-
error && /* @__PURE__ */
|
|
11289
|
+
error && /* @__PURE__ */ jsx114("div", { className: "absolute bottom-1 right-2 text-xs text-[var(--chekin-color-brand-red)]", children: error })
|
|
11053
11290
|
]
|
|
11054
11291
|
}
|
|
11055
11292
|
);
|
|
@@ -11060,7 +11297,7 @@ SmallGridSingleItem.displayName = "SmallGridSingleItem";
|
|
|
11060
11297
|
// src/sorting-action/SortingAction.tsx
|
|
11061
11298
|
import { useTranslation as useTranslation18 } from "react-i18next";
|
|
11062
11299
|
import { ArrowDown, ArrowDownUpIcon, ArrowUp, Minus as Minus3 } from "lucide-react";
|
|
11063
|
-
import { jsx as
|
|
11300
|
+
import { jsx as jsx115, jsxs as jsxs69 } from "react/jsx-runtime";
|
|
11064
11301
|
function SortingAction({
|
|
11065
11302
|
value,
|
|
11066
11303
|
onSortChange,
|
|
@@ -11070,8 +11307,8 @@ function SortingAction({
|
|
|
11070
11307
|
onOpenChange
|
|
11071
11308
|
}) {
|
|
11072
11309
|
const { t } = useTranslation18();
|
|
11073
|
-
return /* @__PURE__ */
|
|
11074
|
-
/* @__PURE__ */
|
|
11310
|
+
return /* @__PURE__ */ jsxs69(DropdownMenu, { open, onOpenChange, children: [
|
|
11311
|
+
/* @__PURE__ */ jsx115(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsx115(
|
|
11075
11312
|
"button",
|
|
11076
11313
|
{
|
|
11077
11314
|
type: "button",
|
|
@@ -11080,36 +11317,36 @@ function SortingAction({
|
|
|
11080
11317
|
className
|
|
11081
11318
|
),
|
|
11082
11319
|
"aria-label": "Open sorting menu",
|
|
11083
|
-
children: /* @__PURE__ */
|
|
11320
|
+
children: /* @__PURE__ */ jsx115(ArrowDownUpIcon, { className: "h-4 w-4 text-[var(--chekin-color-gray-1)] group-hover/trigger:text-[var(--chekin-color-brand-navy)]" })
|
|
11084
11321
|
}
|
|
11085
11322
|
) }),
|
|
11086
|
-
/* @__PURE__ */
|
|
11087
|
-
/* @__PURE__ */
|
|
11323
|
+
/* @__PURE__ */ jsxs69(DropdownMenuContent, { className: "w-full max-w-[256px]", align: "start", children: [
|
|
11324
|
+
/* @__PURE__ */ jsxs69(
|
|
11088
11325
|
DropdownMenuItem,
|
|
11089
11326
|
{
|
|
11090
11327
|
active: value === "asc",
|
|
11091
11328
|
className: cn(value === "asc" && "text-[var(--chekin-color-brand-blue)]"),
|
|
11092
11329
|
onClick: () => onSortChange?.("asc"),
|
|
11093
11330
|
children: [
|
|
11094
|
-
/* @__PURE__ */
|
|
11331
|
+
/* @__PURE__ */ jsx115(ArrowUp, { className: "h-4 w-4" }),
|
|
11095
11332
|
variant === "by_text" ? t("sort_a_z") : t("sort_in_asc")
|
|
11096
11333
|
]
|
|
11097
11334
|
}
|
|
11098
11335
|
),
|
|
11099
|
-
/* @__PURE__ */
|
|
11336
|
+
/* @__PURE__ */ jsxs69(
|
|
11100
11337
|
DropdownMenuItem,
|
|
11101
11338
|
{
|
|
11102
11339
|
active: value === "desc",
|
|
11103
11340
|
className: cn(value === "desc" && "text-[var(--chekin-color-brand-blue)]"),
|
|
11104
11341
|
onClick: () => onSortChange?.("desc"),
|
|
11105
11342
|
children: [
|
|
11106
|
-
/* @__PURE__ */
|
|
11343
|
+
/* @__PURE__ */ jsx115(ArrowDown, { className: "h-4 w-4" }),
|
|
11107
11344
|
variant === "by_text" ? t("sort_z_a") : t("sort_in_desc")
|
|
11108
11345
|
]
|
|
11109
11346
|
}
|
|
11110
11347
|
),
|
|
11111
|
-
value && /* @__PURE__ */
|
|
11112
|
-
/* @__PURE__ */
|
|
11348
|
+
value && /* @__PURE__ */ jsxs69(DropdownMenuItem, { onClick: () => onSortChange?.(null), children: [
|
|
11349
|
+
/* @__PURE__ */ jsx115(Minus3, { className: "h-4 w-4" }),
|
|
11113
11350
|
t("clear_sorting")
|
|
11114
11351
|
] })
|
|
11115
11352
|
] })
|
|
@@ -11120,7 +11357,7 @@ function SortingAction({
|
|
|
11120
11357
|
import { useMemo as useMemo6 } from "react";
|
|
11121
11358
|
import { useTranslation as useTranslation19 } from "react-i18next";
|
|
11122
11359
|
import { AlertCircle as AlertCircle3, CheckCircle, Loader2 as Loader22 } from "lucide-react";
|
|
11123
|
-
import { jsx as
|
|
11360
|
+
import { jsx as jsx116, jsxs as jsxs70 } from "react/jsx-runtime";
|
|
11124
11361
|
function StatusButton({
|
|
11125
11362
|
hidden,
|
|
11126
11363
|
status,
|
|
@@ -11138,7 +11375,7 @@ function StatusButton({
|
|
|
11138
11375
|
const configMap = useMemo6(() => {
|
|
11139
11376
|
const defaultLoadingConfig = {
|
|
11140
11377
|
text: loadingText ?? `${t("saving")}...`,
|
|
11141
|
-
icon: /* @__PURE__ */
|
|
11378
|
+
icon: /* @__PURE__ */ jsx116(Loader22, { className: "h-4 w-4 animate-spin" }),
|
|
11142
11379
|
variant,
|
|
11143
11380
|
isLoading: true
|
|
11144
11381
|
};
|
|
@@ -11148,13 +11385,13 @@ function StatusButton({
|
|
|
11148
11385
|
validating: { ...defaultLoadingConfig, text: t("validating") },
|
|
11149
11386
|
error: {
|
|
11150
11387
|
text: t("error"),
|
|
11151
|
-
icon: /* @__PURE__ */
|
|
11388
|
+
icon: /* @__PURE__ */ jsx116(AlertCircle3, { className: "h-4 w-4" }),
|
|
11152
11389
|
variant: "destructive",
|
|
11153
11390
|
isLoading: false
|
|
11154
11391
|
},
|
|
11155
11392
|
success: {
|
|
11156
11393
|
text: successText ?? t("saved_exclamation"),
|
|
11157
|
-
icon: /* @__PURE__ */
|
|
11394
|
+
icon: /* @__PURE__ */ jsx116(CheckCircle, { className: "h-4 w-4" }),
|
|
11158
11395
|
variant,
|
|
11159
11396
|
isLoading: false
|
|
11160
11397
|
},
|
|
@@ -11170,7 +11407,7 @@ function StatusButton({
|
|
|
11170
11407
|
if (hidden) {
|
|
11171
11408
|
return null;
|
|
11172
11409
|
}
|
|
11173
|
-
return /* @__PURE__ */
|
|
11410
|
+
return /* @__PURE__ */ jsxs70(
|
|
11174
11411
|
Button,
|
|
11175
11412
|
{
|
|
11176
11413
|
className: cn(
|
|
@@ -11186,7 +11423,7 @@ function StatusButton({
|
|
|
11186
11423
|
...props,
|
|
11187
11424
|
children: [
|
|
11188
11425
|
config.icon,
|
|
11189
|
-
/* @__PURE__ */
|
|
11426
|
+
/* @__PURE__ */ jsx116("span", { children: config.text })
|
|
11190
11427
|
]
|
|
11191
11428
|
}
|
|
11192
11429
|
);
|
|
@@ -11194,37 +11431,37 @@ function StatusButton({
|
|
|
11194
11431
|
|
|
11195
11432
|
// src/status-box/StatusBox.tsx
|
|
11196
11433
|
import { AlertTriangleIcon, CheckIcon as CheckIcon3, XIcon as XIcon3 } from "lucide-react";
|
|
11197
|
-
import { jsx as
|
|
11434
|
+
import { jsx as jsx117, jsxs as jsxs71 } from "react/jsx-runtime";
|
|
11198
11435
|
function StatusBox({ status, title, text }) {
|
|
11199
11436
|
if (status === "success") {
|
|
11200
|
-
return /* @__PURE__ */
|
|
11201
|
-
/* @__PURE__ */
|
|
11202
|
-
/* @__PURE__ */
|
|
11203
|
-
/* @__PURE__ */
|
|
11204
|
-
/* @__PURE__ */
|
|
11437
|
+
return /* @__PURE__ */ jsxs71("div", { className: "flex items-center gap-3 rounded-lg border border-green-100 bg-green-50 p-4", children: [
|
|
11438
|
+
/* @__PURE__ */ jsx117("div", { className: "rounded-full bg-green-100 p-1", children: /* @__PURE__ */ jsx117(CheckIcon3, { className: "h-5 w-5 text-green-600" }) }),
|
|
11439
|
+
/* @__PURE__ */ jsxs71("div", { children: [
|
|
11440
|
+
/* @__PURE__ */ jsx117("p", { className: "font-semibold text-green-800", children: title }),
|
|
11441
|
+
/* @__PURE__ */ jsx117("p", { className: "text-sm text-green-700", children: text })
|
|
11205
11442
|
] })
|
|
11206
11443
|
] });
|
|
11207
11444
|
}
|
|
11208
11445
|
if (status === "failed") {
|
|
11209
|
-
return /* @__PURE__ */
|
|
11210
|
-
/* @__PURE__ */
|
|
11211
|
-
/* @__PURE__ */
|
|
11212
|
-
/* @__PURE__ */
|
|
11213
|
-
/* @__PURE__ */
|
|
11446
|
+
return /* @__PURE__ */ jsxs71("div", { className: "flex items-center gap-3 rounded-lg border border-red-100 bg-red-50 p-4", children: [
|
|
11447
|
+
/* @__PURE__ */ jsx117("div", { className: "rounded-full bg-red-100 p-1", children: /* @__PURE__ */ jsx117(XIcon3, { className: "h-5 w-5 text-red-600" }) }),
|
|
11448
|
+
/* @__PURE__ */ jsxs71("div", { children: [
|
|
11449
|
+
/* @__PURE__ */ jsx117("p", { className: "font-semibold text-red-800", children: title }),
|
|
11450
|
+
/* @__PURE__ */ jsx117("p", { className: "text-sm text-red-700", children: text })
|
|
11214
11451
|
] })
|
|
11215
11452
|
] });
|
|
11216
11453
|
}
|
|
11217
|
-
return /* @__PURE__ */
|
|
11218
|
-
/* @__PURE__ */
|
|
11219
|
-
/* @__PURE__ */
|
|
11220
|
-
/* @__PURE__ */
|
|
11221
|
-
/* @__PURE__ */
|
|
11454
|
+
return /* @__PURE__ */ jsxs71("div", { className: "flex items-center gap-3 rounded-lg border border-amber-100 bg-amber-50 p-4", children: [
|
|
11455
|
+
/* @__PURE__ */ jsx117("div", { className: "rounded-full bg-amber-100 p-1", children: /* @__PURE__ */ jsx117(AlertTriangleIcon, { className: "h-5 w-5 text-amber-600" }) }),
|
|
11456
|
+
/* @__PURE__ */ jsxs71("div", { children: [
|
|
11457
|
+
/* @__PURE__ */ jsx117("p", { className: "font-semibold text-amber-800", children: title }),
|
|
11458
|
+
/* @__PURE__ */ jsx117("p", { className: "text-sm text-amber-700", children: text })
|
|
11222
11459
|
] })
|
|
11223
11460
|
] });
|
|
11224
11461
|
}
|
|
11225
11462
|
|
|
11226
11463
|
// src/stepper/Stepper.tsx
|
|
11227
|
-
import { jsx as
|
|
11464
|
+
import { jsx as jsx118 } from "react/jsx-runtime";
|
|
11228
11465
|
function Stepper({
|
|
11229
11466
|
totalSteps,
|
|
11230
11467
|
activeStep,
|
|
@@ -11233,7 +11470,7 @@ function Stepper({
|
|
|
11233
11470
|
}) {
|
|
11234
11471
|
if (totalSteps <= 0) return null;
|
|
11235
11472
|
const clampedActiveStep = Math.max(1, Math.min(totalSteps, activeStep));
|
|
11236
|
-
return /* @__PURE__ */
|
|
11473
|
+
return /* @__PURE__ */ jsx118(
|
|
11237
11474
|
"div",
|
|
11238
11475
|
{
|
|
11239
11476
|
className: cn("flex w-full items-center gap-2", className),
|
|
@@ -11244,7 +11481,7 @@ function Stepper({
|
|
|
11244
11481
|
children: new Array(totalSteps).fill(null).map((_, stepIndex) => {
|
|
11245
11482
|
const stepNumber = stepIndex + 1;
|
|
11246
11483
|
const isActive = cumulative ? stepNumber <= clampedActiveStep : stepNumber === clampedActiveStep;
|
|
11247
|
-
return /* @__PURE__ */
|
|
11484
|
+
return /* @__PURE__ */ jsx118(
|
|
11248
11485
|
"span",
|
|
11249
11486
|
{
|
|
11250
11487
|
className: cn(
|
|
@@ -11260,15 +11497,15 @@ function Stepper({
|
|
|
11260
11497
|
}
|
|
11261
11498
|
|
|
11262
11499
|
// src/switch-blocks/SwitchBlocks.tsx
|
|
11263
|
-
import { forwardRef as
|
|
11264
|
-
import { jsx as
|
|
11265
|
-
var SwitchBlocksInternal =
|
|
11266
|
-
({ options, value, onChange, disabled, className }, ref) => /* @__PURE__ */
|
|
11500
|
+
import { forwardRef as forwardRef48, memo as memo6 } from "react";
|
|
11501
|
+
import { jsx as jsx119 } from "react/jsx-runtime";
|
|
11502
|
+
var SwitchBlocksInternal = forwardRef48(
|
|
11503
|
+
({ options, value, onChange, disabled, className }, ref) => /* @__PURE__ */ jsx119(
|
|
11267
11504
|
"div",
|
|
11268
11505
|
{
|
|
11269
11506
|
ref,
|
|
11270
11507
|
className: cn("flex flex-wrap items-center justify-start gap-4", className),
|
|
11271
|
-
children: options.map((option) => /* @__PURE__ */
|
|
11508
|
+
children: options.map((option) => /* @__PURE__ */ jsx119(
|
|
11272
11509
|
BoxOptionSelector,
|
|
11273
11510
|
{
|
|
11274
11511
|
id: option.id,
|
|
@@ -11289,9 +11526,9 @@ SwitchBlocksInternal.displayName = "SwitchBlocks";
|
|
|
11289
11526
|
var SwitchBlocks = memo6(SwitchBlocksInternal);
|
|
11290
11527
|
|
|
11291
11528
|
// src/switch-group/SwitchGroup.tsx
|
|
11292
|
-
import * as
|
|
11293
|
-
import { jsx as
|
|
11294
|
-
var SwitchGroup =
|
|
11529
|
+
import * as React38 from "react";
|
|
11530
|
+
import { jsx as jsx120, jsxs as jsxs72 } from "react/jsx-runtime";
|
|
11531
|
+
var SwitchGroup = React38.forwardRef(
|
|
11295
11532
|
({ options, value = [], onChange, disabled = false, className, error, ...props }, ref) => {
|
|
11296
11533
|
const handleOptionChange = (optionValue, checked) => {
|
|
11297
11534
|
if (!onChange) return;
|
|
@@ -11301,9 +11538,9 @@ var SwitchGroup = React37.forwardRef(
|
|
|
11301
11538
|
}
|
|
11302
11539
|
onChange(value.filter((selectedValue) => selectedValue !== optionValue));
|
|
11303
11540
|
};
|
|
11304
|
-
return /* @__PURE__ */
|
|
11305
|
-
options.map((option) => /* @__PURE__ */
|
|
11306
|
-
/* @__PURE__ */
|
|
11541
|
+
return /* @__PURE__ */ jsxs72("div", { ref, className: cn("w-full space-y-4", className), ...props, children: [
|
|
11542
|
+
options.map((option) => /* @__PURE__ */ jsxs72("div", { className: "flex items-center justify-between gap-4", children: [
|
|
11543
|
+
/* @__PURE__ */ jsx120("div", { className: "flex flex-col", children: /* @__PURE__ */ jsxs72(
|
|
11307
11544
|
Label,
|
|
11308
11545
|
{
|
|
11309
11546
|
className: cn(
|
|
@@ -11312,7 +11549,7 @@ var SwitchGroup = React37.forwardRef(
|
|
|
11312
11549
|
),
|
|
11313
11550
|
children: [
|
|
11314
11551
|
option.label,
|
|
11315
|
-
option.description && /* @__PURE__ */
|
|
11552
|
+
option.description && /* @__PURE__ */ jsxs72(
|
|
11316
11553
|
"span",
|
|
11317
11554
|
{
|
|
11318
11555
|
className: cn(
|
|
@@ -11329,7 +11566,7 @@ var SwitchGroup = React37.forwardRef(
|
|
|
11329
11566
|
]
|
|
11330
11567
|
}
|
|
11331
11568
|
) }),
|
|
11332
|
-
/* @__PURE__ */
|
|
11569
|
+
/* @__PURE__ */ jsx120(
|
|
11333
11570
|
Switch,
|
|
11334
11571
|
{
|
|
11335
11572
|
value: value.includes(option.value),
|
|
@@ -11339,7 +11576,7 @@ var SwitchGroup = React37.forwardRef(
|
|
|
11339
11576
|
}
|
|
11340
11577
|
)
|
|
11341
11578
|
] }, option.value)),
|
|
11342
|
-
error && /* @__PURE__ */
|
|
11579
|
+
error && /* @__PURE__ */ jsx120(ErrorMessage, { disabled, children: error })
|
|
11343
11580
|
] });
|
|
11344
11581
|
}
|
|
11345
11582
|
);
|
|
@@ -11347,11 +11584,11 @@ SwitchGroup.displayName = "SwitchGroup";
|
|
|
11347
11584
|
|
|
11348
11585
|
// src/tabs/Tabs.tsx
|
|
11349
11586
|
import {
|
|
11350
|
-
forwardRef as
|
|
11587
|
+
forwardRef as forwardRef50
|
|
11351
11588
|
} from "react";
|
|
11352
11589
|
import * as TabsPrimitive2 from "@radix-ui/react-tabs";
|
|
11353
11590
|
import { cva as cva14 } from "class-variance-authority";
|
|
11354
|
-
import { jsx as
|
|
11591
|
+
import { jsx as jsx121 } from "react/jsx-runtime";
|
|
11355
11592
|
var Tabs = TabsPrimitive2.Root;
|
|
11356
11593
|
var tabsListVariants = cva14("inline-flex items-center", {
|
|
11357
11594
|
variants: {
|
|
@@ -11364,8 +11601,8 @@ var tabsListVariants = cva14("inline-flex items-center", {
|
|
|
11364
11601
|
variant: "button"
|
|
11365
11602
|
}
|
|
11366
11603
|
});
|
|
11367
|
-
var TabsList =
|
|
11368
|
-
({ className, variant, ...props }, ref) => /* @__PURE__ */
|
|
11604
|
+
var TabsList = forwardRef50(
|
|
11605
|
+
({ className, variant, ...props }, ref) => /* @__PURE__ */ jsx121(
|
|
11369
11606
|
TabsPrimitive2.List,
|
|
11370
11607
|
{
|
|
11371
11608
|
ref,
|
|
@@ -11389,13 +11626,13 @@ var tabsTriggerVariants = cva14(
|
|
|
11389
11626
|
}
|
|
11390
11627
|
}
|
|
11391
11628
|
);
|
|
11392
|
-
var TabsTrigger =
|
|
11629
|
+
var TabsTrigger = forwardRef50(({ className, variant = "button", hidden, ...props }, ref) => {
|
|
11393
11630
|
if (hidden) {
|
|
11394
11631
|
return null;
|
|
11395
11632
|
}
|
|
11396
11633
|
if (props.asLink) {
|
|
11397
11634
|
const { asLink: Link2, value, end, onClick: onClick2, children: children2, ...linkProps } = props;
|
|
11398
|
-
return /* @__PURE__ */
|
|
11635
|
+
return /* @__PURE__ */ jsx121(
|
|
11399
11636
|
Link2,
|
|
11400
11637
|
{
|
|
11401
11638
|
relative: "route",
|
|
@@ -11413,7 +11650,7 @@ var TabsTrigger = forwardRef49(({ className, variant = "button", hidden, ...prop
|
|
|
11413
11650
|
);
|
|
11414
11651
|
}
|
|
11415
11652
|
const { children, onClick, end: _end, ...triggerProps } = props;
|
|
11416
|
-
return /* @__PURE__ */
|
|
11653
|
+
return /* @__PURE__ */ jsx121(
|
|
11417
11654
|
TabsPrimitive2.Trigger,
|
|
11418
11655
|
{
|
|
11419
11656
|
ref,
|
|
@@ -11429,7 +11666,7 @@ var TabsTrigger = forwardRef49(({ className, variant = "button", hidden, ...prop
|
|
|
11429
11666
|
);
|
|
11430
11667
|
});
|
|
11431
11668
|
TabsTrigger.displayName = TabsPrimitive2.Trigger.displayName;
|
|
11432
|
-
var TabsContent =
|
|
11669
|
+
var TabsContent = forwardRef50(({ className, ...props }, ref) => /* @__PURE__ */ jsx121(
|
|
11433
11670
|
TabsPrimitive2.Content,
|
|
11434
11671
|
{
|
|
11435
11672
|
ref,
|
|
@@ -11441,7 +11678,7 @@ var TabsContent = forwardRef49(({ className, ...props }, ref) => /* @__PURE__ */
|
|
|
11441
11678
|
TabsContent.displayName = TabsPrimitive2.Content.displayName;
|
|
11442
11679
|
|
|
11443
11680
|
// src/tabbed-section/TabbedSection.tsx
|
|
11444
|
-
import { jsx as
|
|
11681
|
+
import { jsx as jsx122, jsxs as jsxs73 } from "react/jsx-runtime";
|
|
11445
11682
|
function TabbedSection({
|
|
11446
11683
|
triggers,
|
|
11447
11684
|
value,
|
|
@@ -11463,8 +11700,8 @@ function TabbedSection({
|
|
|
11463
11700
|
"[&>div:first-child]:gap-[var(--section-gap,0.75rem)]",
|
|
11464
11701
|
className
|
|
11465
11702
|
);
|
|
11466
|
-
return /* @__PURE__ */
|
|
11467
|
-
/* @__PURE__ */
|
|
11703
|
+
return /* @__PURE__ */ jsxs73(Tabs, { value: activeTab, onValueChange: onTabChange, className: "w-full", children: [
|
|
11704
|
+
/* @__PURE__ */ jsx122(
|
|
11468
11705
|
BookmarkTabsList,
|
|
11469
11706
|
{
|
|
11470
11707
|
variant,
|
|
@@ -11472,15 +11709,15 @@ function TabbedSection({
|
|
|
11472
11709
|
children: triggers
|
|
11473
11710
|
}
|
|
11474
11711
|
),
|
|
11475
|
-
/* @__PURE__ */
|
|
11712
|
+
/* @__PURE__ */ jsx122("div", { className: contentContainerClassName, children })
|
|
11476
11713
|
] });
|
|
11477
11714
|
}
|
|
11478
11715
|
|
|
11479
11716
|
// src/table-filter/TableFilter.tsx
|
|
11480
11717
|
import { SquareX } from "lucide-react";
|
|
11481
|
-
import { jsx as
|
|
11718
|
+
import { jsx as jsx123, jsxs as jsxs74 } from "react/jsx-runtime";
|
|
11482
11719
|
function TableFilter({ onRemove, onClick, children, className }) {
|
|
11483
|
-
return /* @__PURE__ */
|
|
11720
|
+
return /* @__PURE__ */ jsxs74(
|
|
11484
11721
|
"div",
|
|
11485
11722
|
{
|
|
11486
11723
|
onClick,
|
|
@@ -11492,7 +11729,7 @@ function TableFilter({ onRemove, onClick, children, className }) {
|
|
|
11492
11729
|
),
|
|
11493
11730
|
children: [
|
|
11494
11731
|
children,
|
|
11495
|
-
/* @__PURE__ */
|
|
11732
|
+
/* @__PURE__ */ jsx123(
|
|
11496
11733
|
SquareX,
|
|
11497
11734
|
{
|
|
11498
11735
|
onClick: onRemove,
|
|
@@ -11509,9 +11746,9 @@ function TableFilter({ onRemove, onClick, children, className }) {
|
|
|
11509
11746
|
}
|
|
11510
11747
|
|
|
11511
11748
|
// src/table-filter/DateTableFilter.tsx
|
|
11512
|
-
import { jsx as
|
|
11749
|
+
import { jsx as jsx124 } from "react/jsx-runtime";
|
|
11513
11750
|
function DateTableFilter({ className, ...props }) {
|
|
11514
|
-
return /* @__PURE__ */
|
|
11751
|
+
return /* @__PURE__ */ jsx124(
|
|
11515
11752
|
TableFilter,
|
|
11516
11753
|
{
|
|
11517
11754
|
className: cn(
|
|
@@ -11525,13 +11762,13 @@ function DateTableFilter({ className, ...props }) {
|
|
|
11525
11762
|
}
|
|
11526
11763
|
|
|
11527
11764
|
// src/table-loader/TableLoader.tsx
|
|
11528
|
-
import { forwardRef as
|
|
11765
|
+
import { forwardRef as forwardRef51 } from "react";
|
|
11529
11766
|
import { useTranslation as useTranslation20 } from "react-i18next";
|
|
11530
|
-
import { jsx as
|
|
11531
|
-
var LoaderComponent =
|
|
11767
|
+
import { jsx as jsx125 } from "react/jsx-runtime";
|
|
11768
|
+
var LoaderComponent = forwardRef51(
|
|
11532
11769
|
({ label, className, hideBorder, variant = "primary" }, ref) => {
|
|
11533
11770
|
const { t } = useTranslation20();
|
|
11534
|
-
return /* @__PURE__ */
|
|
11771
|
+
return /* @__PURE__ */ jsx125(
|
|
11535
11772
|
"div",
|
|
11536
11773
|
{
|
|
11537
11774
|
ref,
|
|
@@ -11540,7 +11777,7 @@ var LoaderComponent = forwardRef50(
|
|
|
11540
11777
|
!hideBorder && "border-t border-[var(--table-loader-border)]",
|
|
11541
11778
|
className
|
|
11542
11779
|
),
|
|
11543
|
-
children: /* @__PURE__ */
|
|
11780
|
+
children: /* @__PURE__ */ jsx125(
|
|
11544
11781
|
CircularLoader,
|
|
11545
11782
|
{
|
|
11546
11783
|
size: variant === "primary" ? "lg" : "md",
|
|
@@ -11556,16 +11793,16 @@ var LoaderComponent = forwardRef50(
|
|
|
11556
11793
|
}
|
|
11557
11794
|
);
|
|
11558
11795
|
LoaderComponent.displayName = "TableLoader.Loader";
|
|
11559
|
-
function
|
|
11560
|
-
return /* @__PURE__ */
|
|
11796
|
+
function Root23({ children, columns }) {
|
|
11797
|
+
return /* @__PURE__ */ jsx125("tr", { className: "cursor-pointer hover:!bg-[var(--table-loader-row-hover-bg)]", children: /* @__PURE__ */ jsx125("td", { colSpan: columns, className: "cursor-default pl-0", children }) });
|
|
11561
11798
|
}
|
|
11562
11799
|
var TableLoader = {
|
|
11563
11800
|
Loader: LoaderComponent,
|
|
11564
|
-
Root:
|
|
11801
|
+
Root: Root23
|
|
11565
11802
|
};
|
|
11566
11803
|
|
|
11567
11804
|
// src/table-placeholder/TablePlaceholder.tsx
|
|
11568
|
-
import { jsx as
|
|
11805
|
+
import { jsx as jsx126, jsxs as jsxs75 } from "react/jsx-runtime";
|
|
11569
11806
|
function TablePlaceholder({
|
|
11570
11807
|
children,
|
|
11571
11808
|
text,
|
|
@@ -11578,26 +11815,26 @@ function TablePlaceholder({
|
|
|
11578
11815
|
if (!visible) {
|
|
11579
11816
|
return null;
|
|
11580
11817
|
}
|
|
11581
|
-
const content = /* @__PURE__ */
|
|
11582
|
-
iconSlot && /* @__PURE__ */
|
|
11583
|
-
title && /* @__PURE__ */
|
|
11584
|
-
text && /* @__PURE__ */
|
|
11585
|
-
children && /* @__PURE__ */
|
|
11818
|
+
const content = /* @__PURE__ */ jsxs75("div", { className: "flex flex-col items-center justify-center px-4 py-14 text-center", children: [
|
|
11819
|
+
iconSlot && /* @__PURE__ */ jsx126("div", { className: "mb-6", children: iconSlot }),
|
|
11820
|
+
title && /* @__PURE__ */ jsx126("h3", { className: "mb-2 text-lg font-semibold", children: title }),
|
|
11821
|
+
text && /* @__PURE__ */ jsx126("p", { className: "text-md max-w-sm font-medium", children: text }),
|
|
11822
|
+
children && /* @__PURE__ */ jsx126("div", { className: "mt-6", children })
|
|
11586
11823
|
] });
|
|
11587
11824
|
if (insideTable) {
|
|
11588
|
-
return /* @__PURE__ */
|
|
11825
|
+
return /* @__PURE__ */ jsx126("tr", { children: /* @__PURE__ */ jsx126("td", { colSpan: 100, className, children: content }) });
|
|
11589
11826
|
}
|
|
11590
|
-
return /* @__PURE__ */
|
|
11827
|
+
return /* @__PURE__ */ jsx126("div", { className, children: content });
|
|
11591
11828
|
}
|
|
11592
11829
|
|
|
11593
11830
|
// src/timeline/Timeline.tsx
|
|
11594
11831
|
import { Slot as Slot5 } from "@radix-ui/react-slot";
|
|
11595
11832
|
|
|
11596
11833
|
// src/timeline/TimelineContext.ts
|
|
11597
|
-
import * as
|
|
11598
|
-
var TimelineContext =
|
|
11834
|
+
import * as React39 from "react";
|
|
11835
|
+
var TimelineContext = React39.createContext(null);
|
|
11599
11836
|
function useTimeline() {
|
|
11600
|
-
const context =
|
|
11837
|
+
const context = React39.useContext(TimelineContext);
|
|
11601
11838
|
if (!context) {
|
|
11602
11839
|
throw new Error("useTimeline must be used within a <Timeline />.");
|
|
11603
11840
|
}
|
|
@@ -11605,9 +11842,9 @@ function useTimeline() {
|
|
|
11605
11842
|
}
|
|
11606
11843
|
|
|
11607
11844
|
// src/timeline/Timeline.tsx
|
|
11608
|
-
import { jsx as
|
|
11845
|
+
import { jsx as jsx127 } from "react/jsx-runtime";
|
|
11609
11846
|
function Timeline({ className, orientation = "vertical", ...props }) {
|
|
11610
|
-
return /* @__PURE__ */
|
|
11847
|
+
return /* @__PURE__ */ jsx127(TimelineContext.Provider, { value: { orientation }, children: /* @__PURE__ */ jsx127(
|
|
11611
11848
|
"ol",
|
|
11612
11849
|
{
|
|
11613
11850
|
"data-slot": "timeline",
|
|
@@ -11621,7 +11858,7 @@ function Timeline({ className, orientation = "vertical", ...props }) {
|
|
|
11621
11858
|
function TimelineItem({ className, asChild, ...props }) {
|
|
11622
11859
|
const { orientation } = useTimeline();
|
|
11623
11860
|
const Comp = asChild ? Slot5 : "li";
|
|
11624
|
-
return /* @__PURE__ */
|
|
11861
|
+
return /* @__PURE__ */ jsx127(
|
|
11625
11862
|
Comp,
|
|
11626
11863
|
{
|
|
11627
11864
|
"data-slot": "timeline-item",
|
|
@@ -11634,7 +11871,7 @@ function TimelineItem({ className, asChild, ...props }) {
|
|
|
11634
11871
|
function TimelineSeparator({ className, asChild, ...props }) {
|
|
11635
11872
|
const { orientation } = useTimeline();
|
|
11636
11873
|
const Comp = asChild ? Slot5 : "div";
|
|
11637
|
-
return /* @__PURE__ */
|
|
11874
|
+
return /* @__PURE__ */ jsx127(
|
|
11638
11875
|
Comp,
|
|
11639
11876
|
{
|
|
11640
11877
|
"data-slot": "timeline-separator",
|
|
@@ -11656,7 +11893,7 @@ function TimelineDot({
|
|
|
11656
11893
|
}) {
|
|
11657
11894
|
const { orientation } = useTimeline();
|
|
11658
11895
|
const Comp = asChild ? Slot5 : "div";
|
|
11659
|
-
return /* @__PURE__ */
|
|
11896
|
+
return /* @__PURE__ */ jsx127(
|
|
11660
11897
|
Comp,
|
|
11661
11898
|
{
|
|
11662
11899
|
"data-slot": "timeline-dot",
|
|
@@ -11676,7 +11913,7 @@ function TimelineDot({
|
|
|
11676
11913
|
function TimelineConnector({ className, asChild, ...props }) {
|
|
11677
11914
|
const { orientation } = useTimeline();
|
|
11678
11915
|
const Comp = asChild ? Slot5 : "div";
|
|
11679
|
-
return /* @__PURE__ */
|
|
11916
|
+
return /* @__PURE__ */ jsx127(
|
|
11680
11917
|
Comp,
|
|
11681
11918
|
{
|
|
11682
11919
|
"data-slot": "timeline-connector",
|
|
@@ -11694,7 +11931,7 @@ function TimelineConnector({ className, asChild, ...props }) {
|
|
|
11694
11931
|
function TimelineContent({ className, asChild, ...props }) {
|
|
11695
11932
|
const { orientation } = useTimeline();
|
|
11696
11933
|
const Comp = asChild ? Slot5 : "div";
|
|
11697
|
-
return /* @__PURE__ */
|
|
11934
|
+
return /* @__PURE__ */ jsx127(
|
|
11698
11935
|
Comp,
|
|
11699
11936
|
{
|
|
11700
11937
|
"data-slot": "timeline-content",
|
|
@@ -11712,7 +11949,7 @@ function TimelineContent({ className, asChild, ...props }) {
|
|
|
11712
11949
|
function TimelineTitle({ className, asChild, ...props }) {
|
|
11713
11950
|
const { orientation } = useTimeline();
|
|
11714
11951
|
const Comp = asChild ? Slot5 : "div";
|
|
11715
|
-
return /* @__PURE__ */
|
|
11952
|
+
return /* @__PURE__ */ jsx127(
|
|
11716
11953
|
Comp,
|
|
11717
11954
|
{
|
|
11718
11955
|
"data-slot": "timeline-title",
|
|
@@ -11725,7 +11962,7 @@ function TimelineTitle({ className, asChild, ...props }) {
|
|
|
11725
11962
|
function TimelineDescription({ className, asChild, ...props }) {
|
|
11726
11963
|
const { orientation } = useTimeline();
|
|
11727
11964
|
const Comp = asChild ? Slot5 : "div";
|
|
11728
|
-
return /* @__PURE__ */
|
|
11965
|
+
return /* @__PURE__ */ jsx127(
|
|
11729
11966
|
Comp,
|
|
11730
11967
|
{
|
|
11731
11968
|
"data-slot": "timeline-description",
|
|
@@ -11740,11 +11977,11 @@ function TimelineDescription({ className, asChild, ...props }) {
|
|
|
11740
11977
|
import { Toaster, toast as toast2 } from "sonner";
|
|
11741
11978
|
|
|
11742
11979
|
// src/toaster/useUpdateToast.ts
|
|
11743
|
-
import { useCallback as
|
|
11980
|
+
import { useCallback as useCallback28, useRef as useRef23 } from "react";
|
|
11744
11981
|
import { toast } from "sonner";
|
|
11745
11982
|
function useUpdateToast({ id }) {
|
|
11746
|
-
const toastIdRef =
|
|
11747
|
-
const getToastOptions =
|
|
11983
|
+
const toastIdRef = useRef23("");
|
|
11984
|
+
const getToastOptions = useCallback28(
|
|
11748
11985
|
(options) => ({
|
|
11749
11986
|
id: toastIdRef.current,
|
|
11750
11987
|
dismissible: false,
|
|
@@ -11776,7 +12013,7 @@ function useUpdateToast({ id }) {
|
|
|
11776
12013
|
}
|
|
11777
12014
|
|
|
11778
12015
|
// src/toggle-group/ToggleGroup.tsx
|
|
11779
|
-
import * as
|
|
12016
|
+
import * as React40 from "react";
|
|
11780
12017
|
import * as ToggleGroupPrimitive from "@radix-ui/react-toggle-group";
|
|
11781
12018
|
|
|
11782
12019
|
// src/toggle-group/style.ts
|
|
@@ -11809,15 +12046,15 @@ var toggleVariants = cva15(
|
|
|
11809
12046
|
);
|
|
11810
12047
|
|
|
11811
12048
|
// src/toggle-group/ToggleGroup.tsx
|
|
11812
|
-
import { jsx as
|
|
11813
|
-
var ToggleGroupContext =
|
|
12049
|
+
import { jsx as jsx128, jsxs as jsxs76 } from "react/jsx-runtime";
|
|
12050
|
+
var ToggleGroupContext = React40.createContext({
|
|
11814
12051
|
size: "default",
|
|
11815
12052
|
variant: "default",
|
|
11816
12053
|
theme: "default"
|
|
11817
12054
|
});
|
|
11818
|
-
var ToggleGroup =
|
|
12055
|
+
var ToggleGroup = React40.forwardRef(({ className, variant, size, theme, children, ...props }, ref) => {
|
|
11819
12056
|
const isTabVariant = variant === "tab";
|
|
11820
|
-
return /* @__PURE__ */
|
|
12057
|
+
return /* @__PURE__ */ jsx128(
|
|
11821
12058
|
ToggleGroupPrimitive.Root,
|
|
11822
12059
|
{
|
|
11823
12060
|
ref,
|
|
@@ -11827,16 +12064,16 @@ var ToggleGroup = React39.forwardRef(({ className, variant, size, theme, childre
|
|
|
11827
12064
|
className
|
|
11828
12065
|
),
|
|
11829
12066
|
...props,
|
|
11830
|
-
children: /* @__PURE__ */
|
|
12067
|
+
children: /* @__PURE__ */ jsx128(ToggleGroupContext.Provider, { value: { variant, size, theme }, children })
|
|
11831
12068
|
}
|
|
11832
12069
|
);
|
|
11833
12070
|
});
|
|
11834
12071
|
ToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName;
|
|
11835
|
-
var ToggleGroupItem =
|
|
11836
|
-
const context =
|
|
12072
|
+
var ToggleGroupItem = React40.forwardRef(({ className, children, variant, size, theme, ...props }, ref) => {
|
|
12073
|
+
const context = React40.useContext(ToggleGroupContext);
|
|
11837
12074
|
const resolvedVariant = context.variant || variant;
|
|
11838
12075
|
const isTabVariant = resolvedVariant === "tab";
|
|
11839
|
-
return /* @__PURE__ */
|
|
12076
|
+
return /* @__PURE__ */ jsx128(
|
|
11840
12077
|
ToggleGroupPrimitive.Item,
|
|
11841
12078
|
{
|
|
11842
12079
|
ref,
|
|
@@ -11849,9 +12086,9 @@ var ToggleGroupItem = React39.forwardRef(({ className, children, variant, size,
|
|
|
11849
12086
|
className
|
|
11850
12087
|
),
|
|
11851
12088
|
...props,
|
|
11852
|
-
children: isTabVariant ? /* @__PURE__ */
|
|
11853
|
-
/* @__PURE__ */
|
|
11854
|
-
/* @__PURE__ */
|
|
12089
|
+
children: isTabVariant ? /* @__PURE__ */ jsxs76("span", { className: "inline-grid", children: [
|
|
12090
|
+
/* @__PURE__ */ jsx128("span", { className: "invisible col-start-1 row-start-1 font-semibold", children }),
|
|
12091
|
+
/* @__PURE__ */ jsx128("span", { className: "col-start-1 row-start-1", children })
|
|
11855
12092
|
] }) : children
|
|
11856
12093
|
}
|
|
11857
12094
|
);
|
|
@@ -11861,11 +12098,11 @@ ToggleGroupItem.displayName = ToggleGroupPrimitive.Item.displayName;
|
|
|
11861
12098
|
// src/toggle-group/Toggles.tsx
|
|
11862
12099
|
import {
|
|
11863
12100
|
cloneElement as cloneElement2,
|
|
11864
|
-
forwardRef as
|
|
12101
|
+
forwardRef as forwardRef53,
|
|
11865
12102
|
isValidElement as isValidElement2,
|
|
11866
12103
|
useEffect as useEffect32
|
|
11867
12104
|
} from "react";
|
|
11868
|
-
import { jsx as
|
|
12105
|
+
import { jsx as jsx129, jsxs as jsxs77 } from "react/jsx-runtime";
|
|
11869
12106
|
var getValueArray = (value) => {
|
|
11870
12107
|
if (value !== void 0 && value !== null) {
|
|
11871
12108
|
return Array.isArray(value) ? value : [value];
|
|
@@ -11961,16 +12198,16 @@ function TogglesInternal({
|
|
|
11961
12198
|
onValueChange: handleValueChange,
|
|
11962
12199
|
...multiple ? { type: "multiple", value: currentValue } : { type: "single", value: currentValue[0] ?? "" }
|
|
11963
12200
|
};
|
|
11964
|
-
return /* @__PURE__ */
|
|
11965
|
-
label && /* @__PURE__ */
|
|
11966
|
-
/* @__PURE__ */
|
|
12201
|
+
return /* @__PURE__ */ jsxs77("div", { ref, className, children: [
|
|
12202
|
+
label && /* @__PURE__ */ jsx129("div", { className: "mb-2", children: /* @__PURE__ */ jsx129("div", { className: "select-none text-base font-normal text-[var(--toggles-label-text)]", children: label }) }),
|
|
12203
|
+
/* @__PURE__ */ jsx129(ToggleGroup, { className: groupClassName, ...toggleGroupProps, children: options.map((option, index) => {
|
|
11967
12204
|
const isSelected = Boolean(
|
|
11968
12205
|
getValueArray(value).find((selectedValue) => selectedValue === option.value)
|
|
11969
12206
|
);
|
|
11970
12207
|
const isDisabled = disabled || disabledItems?.includes(option.value) || option.disabled;
|
|
11971
12208
|
const isMinSelected = getValueArray(value).length <= minSelected;
|
|
11972
12209
|
const isItemReadOnly = readOnly || isMinSelected && isSelected || readonlyItems?.includes(option.value);
|
|
11973
|
-
return /* @__PURE__ */
|
|
12210
|
+
return /* @__PURE__ */ jsx129(
|
|
11974
12211
|
ToggleGroupItem,
|
|
11975
12212
|
{
|
|
11976
12213
|
value: String(option.value),
|
|
@@ -11983,37 +12220,37 @@ function TogglesInternal({
|
|
|
11983
12220
|
}) })
|
|
11984
12221
|
] });
|
|
11985
12222
|
}
|
|
11986
|
-
var Toggles =
|
|
12223
|
+
var Toggles = forwardRef53(TogglesInternal);
|
|
11987
12224
|
|
|
11988
12225
|
// src/three-dots-loader/ThreeDotsLoader.tsx
|
|
11989
|
-
import { Fragment as Fragment11, jsx as
|
|
12226
|
+
import { Fragment as Fragment11, jsx as jsx130, jsxs as jsxs78 } from "react/jsx-runtime";
|
|
11990
12227
|
function Dots({
|
|
11991
12228
|
height,
|
|
11992
12229
|
width,
|
|
11993
12230
|
color
|
|
11994
12231
|
}) {
|
|
11995
|
-
return /* @__PURE__ */
|
|
12232
|
+
return /* @__PURE__ */ jsxs78(
|
|
11996
12233
|
"span",
|
|
11997
12234
|
{
|
|
11998
12235
|
className: "inline-flex items-center justify-center gap-[15%]",
|
|
11999
12236
|
style: { height, width },
|
|
12000
12237
|
"aria-hidden": "true",
|
|
12001
12238
|
children: [
|
|
12002
|
-
/* @__PURE__ */
|
|
12239
|
+
/* @__PURE__ */ jsx130(
|
|
12003
12240
|
"span",
|
|
12004
12241
|
{
|
|
12005
12242
|
className: "h-[22%] w-[22%] animate-chekin-three-dots rounded-full [animation-delay:-0.32s]",
|
|
12006
12243
|
style: { backgroundColor: color }
|
|
12007
12244
|
}
|
|
12008
12245
|
),
|
|
12009
|
-
/* @__PURE__ */
|
|
12246
|
+
/* @__PURE__ */ jsx130(
|
|
12010
12247
|
"span",
|
|
12011
12248
|
{
|
|
12012
12249
|
className: "h-[22%] w-[22%] animate-chekin-three-dots rounded-full [animation-delay:-0.16s]",
|
|
12013
12250
|
style: { backgroundColor: color }
|
|
12014
12251
|
}
|
|
12015
12252
|
),
|
|
12016
|
-
/* @__PURE__ */
|
|
12253
|
+
/* @__PURE__ */ jsx130(
|
|
12017
12254
|
"span",
|
|
12018
12255
|
{
|
|
12019
12256
|
className: "h-[22%] w-[22%] animate-chekin-three-dots rounded-full",
|
|
@@ -12032,9 +12269,9 @@ function ThreeDotsLoader({
|
|
|
12032
12269
|
className,
|
|
12033
12270
|
labelPlacement = "right"
|
|
12034
12271
|
}) {
|
|
12035
|
-
const dots = /* @__PURE__ */
|
|
12272
|
+
const dots = /* @__PURE__ */ jsx130(Dots, { color, height, width });
|
|
12036
12273
|
if (label) {
|
|
12037
|
-
return /* @__PURE__ */
|
|
12274
|
+
return /* @__PURE__ */ jsx130(
|
|
12038
12275
|
"div",
|
|
12039
12276
|
{
|
|
12040
12277
|
className: cn(
|
|
@@ -12042,22 +12279,22 @@ function ThreeDotsLoader({
|
|
|
12042
12279
|
className
|
|
12043
12280
|
),
|
|
12044
12281
|
role: "progressbar",
|
|
12045
|
-
children: labelPlacement === "right" ? /* @__PURE__ */
|
|
12282
|
+
children: labelPlacement === "right" ? /* @__PURE__ */ jsxs78(Fragment11, { children: [
|
|
12046
12283
|
dots,
|
|
12047
|
-
/* @__PURE__ */
|
|
12048
|
-
] }) : /* @__PURE__ */
|
|
12049
|
-
/* @__PURE__ */
|
|
12284
|
+
/* @__PURE__ */ jsx130("div", { children: label })
|
|
12285
|
+
] }) : /* @__PURE__ */ jsxs78(Fragment11, { children: [
|
|
12286
|
+
/* @__PURE__ */ jsx130("div", { children: label }),
|
|
12050
12287
|
dots
|
|
12051
12288
|
] })
|
|
12052
12289
|
}
|
|
12053
12290
|
);
|
|
12054
12291
|
}
|
|
12055
|
-
return /* @__PURE__ */
|
|
12292
|
+
return /* @__PURE__ */ jsx130("div", { role: "progressbar", className, children: dots });
|
|
12056
12293
|
}
|
|
12057
12294
|
|
|
12058
12295
|
// src/uploaded-files-list/UploadedFilesList.tsx
|
|
12059
12296
|
import { X as X6 } from "lucide-react";
|
|
12060
|
-
import { jsx as
|
|
12297
|
+
import { jsx as jsx131, jsxs as jsxs79 } from "react/jsx-runtime";
|
|
12061
12298
|
function UploadedFilesList({
|
|
12062
12299
|
files,
|
|
12063
12300
|
onRemoveFile,
|
|
@@ -12066,20 +12303,20 @@ function UploadedFilesList({
|
|
|
12066
12303
|
if (!files.length) {
|
|
12067
12304
|
return null;
|
|
12068
12305
|
}
|
|
12069
|
-
return /* @__PURE__ */
|
|
12306
|
+
return /* @__PURE__ */ jsx131("div", { className: cn("flex flex-wrap gap-2.5", className), children: files.map((file, index) => /* @__PURE__ */ jsxs79(
|
|
12070
12307
|
"div",
|
|
12071
12308
|
{
|
|
12072
12309
|
className: "flex cursor-default items-center gap-2 rounded border border-[var(--chekin-neutral-400)] bg-[var(--chekin-neutral-75)] py-1.5 pl-3 pr-1.5",
|
|
12073
12310
|
children: [
|
|
12074
|
-
/* @__PURE__ */
|
|
12075
|
-
/* @__PURE__ */
|
|
12311
|
+
/* @__PURE__ */ jsx131("span", { className: "text-nowrap text-sm font-medium leading-5 text-[var(--chekin-blue-900)]", children: file.name }),
|
|
12312
|
+
/* @__PURE__ */ jsx131(
|
|
12076
12313
|
"button",
|
|
12077
12314
|
{
|
|
12078
12315
|
type: "button",
|
|
12079
12316
|
onClick: () => onRemoveFile(file.name),
|
|
12080
12317
|
className: "flex h-[18px] w-[18px] shrink-0 cursor-pointer items-center justify-center rounded bg-[var(--chekin-neutral-600)] transition-all hover:shadow-md active:opacity-95",
|
|
12081
12318
|
"aria-label": `Remove ${file.name}`,
|
|
12082
|
-
children: /* @__PURE__ */
|
|
12319
|
+
children: /* @__PURE__ */ jsx131(X6, { className: "h-3.5 w-3.5 text-white", strokeWidth: 3 })
|
|
12083
12320
|
}
|
|
12084
12321
|
)
|
|
12085
12322
|
]
|
|
@@ -12089,8 +12326,8 @@ function UploadedFilesList({
|
|
|
12089
12326
|
}
|
|
12090
12327
|
|
|
12091
12328
|
// src/vertical-tabs/VerticalTabs.tsx
|
|
12092
|
-
import { useState as
|
|
12093
|
-
import { jsx as
|
|
12329
|
+
import { useState as useState34 } from "react";
|
|
12330
|
+
import { jsx as jsx132, jsxs as jsxs80 } from "react/jsx-runtime";
|
|
12094
12331
|
function getKey(index, key) {
|
|
12095
12332
|
return `${key || "step"}_${index}`;
|
|
12096
12333
|
}
|
|
@@ -12101,9 +12338,9 @@ function VerticalTabs({
|
|
|
12101
12338
|
className
|
|
12102
12339
|
}) {
|
|
12103
12340
|
const defaultValue = getKey(0, stepKey);
|
|
12104
|
-
const [value, setValue] =
|
|
12341
|
+
const [value, setValue] = useState34(defaultValue);
|
|
12105
12342
|
const hasImages = steps.every((step) => step.images?.length);
|
|
12106
|
-
return /* @__PURE__ */
|
|
12343
|
+
return /* @__PURE__ */ jsxs80(
|
|
12107
12344
|
"div",
|
|
12108
12345
|
{
|
|
12109
12346
|
className: cn(
|
|
@@ -12112,10 +12349,10 @@ function VerticalTabs({
|
|
|
12112
12349
|
className
|
|
12113
12350
|
),
|
|
12114
12351
|
children: [
|
|
12115
|
-
/* @__PURE__ */
|
|
12352
|
+
/* @__PURE__ */ jsx132("div", { className: "flex w-full flex-grow-0 flex-col flex-nowrap gap-0", children: steps.map(({ title, text }, index) => {
|
|
12116
12353
|
const stepValue = getKey(index, stepKey);
|
|
12117
12354
|
const active = value === stepValue;
|
|
12118
|
-
return /* @__PURE__ */
|
|
12355
|
+
return /* @__PURE__ */ jsxs80(
|
|
12119
12356
|
"button",
|
|
12120
12357
|
{
|
|
12121
12358
|
type: "button",
|
|
@@ -12127,8 +12364,8 @@ function VerticalTabs({
|
|
|
12127
12364
|
active && "border-b-[var(--vertical-tabs-step-border)] border-l-[var(--vertical-tabs-active-border)] pb-6"
|
|
12128
12365
|
),
|
|
12129
12366
|
children: [
|
|
12130
|
-
/* @__PURE__ */
|
|
12131
|
-
/* @__PURE__ */
|
|
12367
|
+
/* @__PURE__ */ jsx132("span", { className: "text-sm font-bold leading-4 text-[var(--vertical-tabs-step-label)]", children: getStepLabel(index) }),
|
|
12368
|
+
/* @__PURE__ */ jsx132(
|
|
12132
12369
|
"span",
|
|
12133
12370
|
{
|
|
12134
12371
|
className: cn(
|
|
@@ -12138,14 +12375,14 @@ function VerticalTabs({
|
|
|
12138
12375
|
children: title
|
|
12139
12376
|
}
|
|
12140
12377
|
),
|
|
12141
|
-
/* @__PURE__ */
|
|
12378
|
+
/* @__PURE__ */ jsx132(
|
|
12142
12379
|
"span",
|
|
12143
12380
|
{
|
|
12144
12381
|
className: cn(
|
|
12145
12382
|
"grid grid-rows-[0fr] overflow-hidden transition-[grid-template-rows] duration-300",
|
|
12146
12383
|
active && "grid-rows-[1fr]"
|
|
12147
12384
|
),
|
|
12148
|
-
children: /* @__PURE__ */
|
|
12385
|
+
children: /* @__PURE__ */ jsx132(
|
|
12149
12386
|
"span",
|
|
12150
12387
|
{
|
|
12151
12388
|
className: cn(
|
|
@@ -12168,7 +12405,7 @@ function VerticalTabs({
|
|
|
12168
12405
|
if (value !== stepValue) {
|
|
12169
12406
|
return null;
|
|
12170
12407
|
}
|
|
12171
|
-
return /* @__PURE__ */
|
|
12408
|
+
return /* @__PURE__ */ jsx132("div", { className: "h-full w-full", children: /* @__PURE__ */ jsx132(Carousel, { children: images?.map((image) => /* @__PURE__ */ jsx132(
|
|
12172
12409
|
"img",
|
|
12173
12410
|
{
|
|
12174
12411
|
src: image,
|
|
@@ -12185,8 +12422,8 @@ function VerticalTabs({
|
|
|
12185
12422
|
|
|
12186
12423
|
// src/video-modal/VideoModal.tsx
|
|
12187
12424
|
import { X as X7 } from "lucide-react";
|
|
12188
|
-
import * as
|
|
12189
|
-
import { jsx as
|
|
12425
|
+
import * as React41 from "react";
|
|
12426
|
+
import { jsx as jsx133, jsxs as jsxs81 } from "react/jsx-runtime";
|
|
12190
12427
|
function VideoModal({
|
|
12191
12428
|
videoId,
|
|
12192
12429
|
isOpen,
|
|
@@ -12194,8 +12431,8 @@ function VideoModal({
|
|
|
12194
12431
|
width = "100%",
|
|
12195
12432
|
height = "100%"
|
|
12196
12433
|
}) {
|
|
12197
|
-
const iframeRef =
|
|
12198
|
-
|
|
12434
|
+
const iframeRef = React41.useRef(null);
|
|
12435
|
+
React41.useEffect(() => {
|
|
12199
12436
|
const handleEsc = (event) => {
|
|
12200
12437
|
if (event.key === "Escape") {
|
|
12201
12438
|
onClose();
|
|
@@ -12208,7 +12445,7 @@ function VideoModal({
|
|
|
12208
12445
|
window.removeEventListener("keydown", handleEsc);
|
|
12209
12446
|
};
|
|
12210
12447
|
}, [isOpen, onClose]);
|
|
12211
|
-
|
|
12448
|
+
React41.useEffect(() => {
|
|
12212
12449
|
if (!isOpen && iframeRef.current) {
|
|
12213
12450
|
iframeRef.current.contentWindow?.postMessage(
|
|
12214
12451
|
'{"event":"command","func":"pauseVideo","args":""}',
|
|
@@ -12219,15 +12456,15 @@ function VideoModal({
|
|
|
12219
12456
|
if (!isOpen) {
|
|
12220
12457
|
return null;
|
|
12221
12458
|
}
|
|
12222
|
-
return /* @__PURE__ */
|
|
12459
|
+
return /* @__PURE__ */ jsx133(
|
|
12223
12460
|
"div",
|
|
12224
12461
|
{
|
|
12225
12462
|
className: "fixed inset-0 z-[9999] flex items-center justify-center bg-[var(--video-modal-overlay-bg)] px-4",
|
|
12226
12463
|
role: "dialog",
|
|
12227
12464
|
"aria-modal": "true",
|
|
12228
12465
|
"aria-label": "Video",
|
|
12229
|
-
children: /* @__PURE__ */
|
|
12230
|
-
/* @__PURE__ */
|
|
12466
|
+
children: /* @__PURE__ */ jsxs81("div", { className: "relative w-full max-w-[1075px]", children: [
|
|
12467
|
+
/* @__PURE__ */ jsx133(
|
|
12231
12468
|
"button",
|
|
12232
12469
|
{
|
|
12233
12470
|
type: "button",
|
|
@@ -12238,10 +12475,10 @@ function VideoModal({
|
|
|
12238
12475
|
"max-sm:right-2 max-sm:top-2"
|
|
12239
12476
|
),
|
|
12240
12477
|
"aria-label": "Close",
|
|
12241
|
-
children: /* @__PURE__ */
|
|
12478
|
+
children: /* @__PURE__ */ jsx133(X7, { className: "h-5 w-5", "aria-hidden": true })
|
|
12242
12479
|
}
|
|
12243
12480
|
),
|
|
12244
|
-
/* @__PURE__ */
|
|
12481
|
+
/* @__PURE__ */ jsx133("div", { className: "relative w-full overflow-hidden", children: /* @__PURE__ */ jsx133(
|
|
12245
12482
|
"iframe",
|
|
12246
12483
|
{
|
|
12247
12484
|
ref: iframeRef,
|
|
@@ -12260,7 +12497,7 @@ function VideoModal({
|
|
|
12260
12497
|
}
|
|
12261
12498
|
|
|
12262
12499
|
// src/video-player/VideoPlayer.tsx
|
|
12263
|
-
import { useEffect as useEffect34, useRef as
|
|
12500
|
+
import { useEffect as useEffect34, useRef as useRef25, useState as useState35 } from "react";
|
|
12264
12501
|
import { useTranslation as useTranslation21 } from "react-i18next";
|
|
12265
12502
|
import {
|
|
12266
12503
|
Loader2 as Loader23,
|
|
@@ -12274,7 +12511,7 @@ import {
|
|
|
12274
12511
|
VolumeX,
|
|
12275
12512
|
X as X8
|
|
12276
12513
|
} from "lucide-react";
|
|
12277
|
-
import { Fragment as Fragment12, jsx as
|
|
12514
|
+
import { Fragment as Fragment12, jsx as jsx134, jsxs as jsxs82 } from "react/jsx-runtime";
|
|
12278
12515
|
function VideoPlayer({
|
|
12279
12516
|
src,
|
|
12280
12517
|
poster,
|
|
@@ -12284,18 +12521,18 @@ function VideoPlayer({
|
|
|
12284
12521
|
autoPlay = false
|
|
12285
12522
|
}) {
|
|
12286
12523
|
const { t } = useTranslation21();
|
|
12287
|
-
const videoRef =
|
|
12288
|
-
const iframeRef =
|
|
12289
|
-
const containerRef =
|
|
12290
|
-
const [isPlaying, setIsPlaying] =
|
|
12291
|
-
const [isMuted, setIsMuted] =
|
|
12292
|
-
const [currentTime, setCurrentTime] =
|
|
12293
|
-
const [duration, setDuration] =
|
|
12294
|
-
const [isFullScreenMode, setIsFullScreenMode] =
|
|
12295
|
-
const [isLoading, setIsLoading] =
|
|
12296
|
-
const [videoSource, setVideoSource] =
|
|
12297
|
-
const [youtubeEmbedUrl, setYoutubeEmbedUrl] =
|
|
12298
|
-
const [vimeoEmbedUrl, setVimeoEmbedUrl] =
|
|
12524
|
+
const videoRef = useRef25(null);
|
|
12525
|
+
const iframeRef = useRef25(null);
|
|
12526
|
+
const containerRef = useRef25(null);
|
|
12527
|
+
const [isPlaying, setIsPlaying] = useState35(false);
|
|
12528
|
+
const [isMuted, setIsMuted] = useState35(false);
|
|
12529
|
+
const [currentTime, setCurrentTime] = useState35(0);
|
|
12530
|
+
const [duration, setDuration] = useState35(0);
|
|
12531
|
+
const [isFullScreenMode, setIsFullScreenMode] = useState35(isFullScreen);
|
|
12532
|
+
const [isLoading, setIsLoading] = useState35(true);
|
|
12533
|
+
const [videoSource, setVideoSource] = useState35("file");
|
|
12534
|
+
const [youtubeEmbedUrl, setYoutubeEmbedUrl] = useState35("");
|
|
12535
|
+
const [vimeoEmbedUrl, setVimeoEmbedUrl] = useState35("");
|
|
12299
12536
|
useClickEscape({ enabled: isFullScreenMode, onClick: onClose });
|
|
12300
12537
|
useEffect34(() => {
|
|
12301
12538
|
const youtubeRegex = /(?:youtube\.com\/watch\?v=|youtu\.be\/|youtube\.com\/embed\/)([a-zA-Z0-9_-]{11})/;
|
|
@@ -12418,21 +12655,21 @@ function VideoPlayer({
|
|
|
12418
12655
|
onClose?.();
|
|
12419
12656
|
}
|
|
12420
12657
|
};
|
|
12421
|
-
return /* @__PURE__ */
|
|
12658
|
+
return /* @__PURE__ */ jsxs82(
|
|
12422
12659
|
"div",
|
|
12423
12660
|
{
|
|
12424
12661
|
ref: containerRef,
|
|
12425
12662
|
className: containerClasses,
|
|
12426
12663
|
onClick: isFullScreenMode ? handleBackgroundClick : void 0,
|
|
12427
12664
|
children: [
|
|
12428
|
-
isFullScreenMode && /* @__PURE__ */
|
|
12429
|
-
/* @__PURE__ */
|
|
12430
|
-
/* @__PURE__ */
|
|
12431
|
-
/* @__PURE__ */
|
|
12432
|
-
/* @__PURE__ */
|
|
12433
|
-
/* @__PURE__ */
|
|
12665
|
+
isFullScreenMode && /* @__PURE__ */ jsxs82("div", { className: "pointer-events-none absolute inset-0 overflow-hidden", children: [
|
|
12666
|
+
/* @__PURE__ */ jsx134("div", { className: "absolute left-1/4 top-1/4 h-2 w-2 animate-pulse rounded-full bg-white/20 duration-1000" }),
|
|
12667
|
+
/* @__PURE__ */ jsx134("div", { className: "absolute left-1/3 top-3/4 h-1 w-1 animate-pulse rounded-full bg-white/30 delay-500 duration-1000" }),
|
|
12668
|
+
/* @__PURE__ */ jsx134("div", { className: "absolute right-1/4 top-1/2 h-1.5 w-1.5 animate-pulse rounded-full bg-white/20 delay-1000 duration-1000" }),
|
|
12669
|
+
/* @__PURE__ */ jsx134("div", { className: "absolute bottom-1/4 right-1/3 h-1 w-1 animate-pulse rounded-full bg-white/25 delay-1500 duration-1000" }),
|
|
12670
|
+
/* @__PURE__ */ jsx134("div", { className: "absolute right-1/6 top-1/6 h-2 w-2 animate-pulse rounded-full bg-white/15 delay-2000 duration-1000" })
|
|
12434
12671
|
] }),
|
|
12435
|
-
isFullScreenMode && onClose && /* @__PURE__ */
|
|
12672
|
+
isFullScreenMode && onClose && /* @__PURE__ */ jsx134(
|
|
12436
12673
|
Button,
|
|
12437
12674
|
{
|
|
12438
12675
|
variant: "ghost",
|
|
@@ -12440,15 +12677,15 @@ function VideoPlayer({
|
|
|
12440
12677
|
onClick: onClose,
|
|
12441
12678
|
className: "absolute right-4 top-4 z-10 rounded-full text-white transition-all duration-300 hover:scale-110 hover:bg-white/20 active:scale-95",
|
|
12442
12679
|
"aria-label": t("close"),
|
|
12443
|
-
children: /* @__PURE__ */
|
|
12680
|
+
children: /* @__PURE__ */ jsx134(X8, { className: "h-6 w-6" })
|
|
12444
12681
|
}
|
|
12445
12682
|
),
|
|
12446
|
-
title && isFullScreenMode && /* @__PURE__ */
|
|
12447
|
-
isLoading && /* @__PURE__ */
|
|
12448
|
-
/* @__PURE__ */
|
|
12449
|
-
/* @__PURE__ */
|
|
12683
|
+
title && isFullScreenMode && /* @__PURE__ */ jsx134("div", { className: "absolute left-4 top-4 z-10 animate-in slide-in-from-left-4 text-white delay-200 duration-500", children: /* @__PURE__ */ jsx134("h3", { className: "text-lg font-medium drop-shadow-lg", children: title }) }),
|
|
12684
|
+
isLoading && /* @__PURE__ */ jsx134("div", { className: "absolute inset-0 z-20 flex items-center justify-center bg-black/50", children: /* @__PURE__ */ jsxs82("div", { className: "flex items-center gap-3 text-white", children: [
|
|
12685
|
+
/* @__PURE__ */ jsx134(Loader23, { className: "h-8 w-8 animate-spin" }),
|
|
12686
|
+
/* @__PURE__ */ jsx134("span", { className: "text-lg font-medium", children: t("loading_video") })
|
|
12450
12687
|
] }) }),
|
|
12451
|
-
/* @__PURE__ */
|
|
12688
|
+
/* @__PURE__ */ jsx134("div", { className: videoContainerClasses, onClick: (event) => event.stopPropagation(), children: videoSource === "youtube" ? /* @__PURE__ */ jsx134(
|
|
12452
12689
|
"iframe",
|
|
12453
12690
|
{
|
|
12454
12691
|
ref: iframeRef,
|
|
@@ -12459,7 +12696,7 @@ function VideoPlayer({
|
|
|
12459
12696
|
onLoad: () => setIsLoading(false),
|
|
12460
12697
|
title: title || "YouTube video player"
|
|
12461
12698
|
}
|
|
12462
|
-
) : videoSource === "vimeo" ? /* @__PURE__ */
|
|
12699
|
+
) : videoSource === "vimeo" ? /* @__PURE__ */ jsx134(
|
|
12463
12700
|
"iframe",
|
|
12464
12701
|
{
|
|
12465
12702
|
ref: iframeRef,
|
|
@@ -12470,8 +12707,8 @@ function VideoPlayer({
|
|
|
12470
12707
|
onLoad: () => setIsLoading(false),
|
|
12471
12708
|
title: title || "Vimeo video player"
|
|
12472
12709
|
}
|
|
12473
|
-
) : /* @__PURE__ */
|
|
12474
|
-
/* @__PURE__ */
|
|
12710
|
+
) : /* @__PURE__ */ jsxs82(Fragment12, { children: [
|
|
12711
|
+
/* @__PURE__ */ jsxs82(
|
|
12475
12712
|
"video",
|
|
12476
12713
|
{
|
|
12477
12714
|
ref: videoRef,
|
|
@@ -12481,17 +12718,17 @@ function VideoPlayer({
|
|
|
12481
12718
|
playsInline: true,
|
|
12482
12719
|
autoPlay,
|
|
12483
12720
|
children: [
|
|
12484
|
-
/* @__PURE__ */
|
|
12721
|
+
/* @__PURE__ */ jsx134("source", { src, type: "video/mp4" }),
|
|
12485
12722
|
t("video_not_supported")
|
|
12486
12723
|
]
|
|
12487
12724
|
}
|
|
12488
12725
|
),
|
|
12489
|
-
/* @__PURE__ */
|
|
12726
|
+
/* @__PURE__ */ jsxs82(
|
|
12490
12727
|
"div",
|
|
12491
12728
|
{
|
|
12492
12729
|
className: `absolute bottom-0 left-0 right-0 rounded-b-lg bg-gradient-to-t from-black/80 via-black/60 to-transparent p-3 transition-all duration-300 hover:from-black/90 hover:via-black/70 ${isFullScreenMode ? "pb-6" : ""}`,
|
|
12493
12730
|
children: [
|
|
12494
|
-
/* @__PURE__ */
|
|
12731
|
+
/* @__PURE__ */ jsx134("div", { className: "mb-3 flex items-center gap-2", children: /* @__PURE__ */ jsx134(
|
|
12495
12732
|
"input",
|
|
12496
12733
|
{
|
|
12497
12734
|
type: "range",
|
|
@@ -12502,9 +12739,9 @@ function VideoPlayer({
|
|
|
12502
12739
|
className: "h-2 w-full cursor-pointer appearance-none rounded-full bg-white/30 transition-all duration-200 hover:bg-white/40 [&::-webkit-slider-thumb]:h-4 [&::-webkit-slider-thumb]:w-4 [&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:bg-white [&::-webkit-slider-thumb]:shadow-lg [&::-webkit-slider-thumb]:transition-all [&::-webkit-slider-thumb]:duration-200 [&::-webkit-slider-thumb]:hover:scale-125"
|
|
12503
12740
|
}
|
|
12504
12741
|
) }),
|
|
12505
|
-
/* @__PURE__ */
|
|
12506
|
-
/* @__PURE__ */
|
|
12507
|
-
/* @__PURE__ */
|
|
12742
|
+
/* @__PURE__ */ jsxs82("div", { className: "flex items-center justify-between", children: [
|
|
12743
|
+
/* @__PURE__ */ jsxs82("div", { className: "flex items-center gap-2", children: [
|
|
12744
|
+
/* @__PURE__ */ jsx134(
|
|
12508
12745
|
Button,
|
|
12509
12746
|
{
|
|
12510
12747
|
variant: "ghost",
|
|
@@ -12512,10 +12749,10 @@ function VideoPlayer({
|
|
|
12512
12749
|
onClick: togglePlay,
|
|
12513
12750
|
className: "h-10 w-10 rounded-full text-white transition-all duration-200 hover:scale-110 hover:bg-white/20 active:scale-95",
|
|
12514
12751
|
"aria-label": isPlaying ? t("pause") : t("play"),
|
|
12515
|
-
children: isPlaying ? /* @__PURE__ */
|
|
12752
|
+
children: isPlaying ? /* @__PURE__ */ jsx134(Pause2, { className: "h-5 w-5" }) : /* @__PURE__ */ jsx134(Play2, { className: "h-5 w-5" })
|
|
12516
12753
|
}
|
|
12517
12754
|
),
|
|
12518
|
-
/* @__PURE__ */
|
|
12755
|
+
/* @__PURE__ */ jsx134(
|
|
12519
12756
|
Button,
|
|
12520
12757
|
{
|
|
12521
12758
|
variant: "ghost",
|
|
@@ -12523,10 +12760,10 @@ function VideoPlayer({
|
|
|
12523
12760
|
onClick: skipBackward,
|
|
12524
12761
|
className: "h-10 w-10 rounded-full text-white transition-all duration-200 hover:scale-110 hover:bg-white/20 active:scale-95",
|
|
12525
12762
|
"aria-label": t("skip_backward"),
|
|
12526
|
-
children: /* @__PURE__ */
|
|
12763
|
+
children: /* @__PURE__ */ jsx134(SkipBack, { className: "h-5 w-5" })
|
|
12527
12764
|
}
|
|
12528
12765
|
),
|
|
12529
|
-
/* @__PURE__ */
|
|
12766
|
+
/* @__PURE__ */ jsx134(
|
|
12530
12767
|
Button,
|
|
12531
12768
|
{
|
|
12532
12769
|
variant: "ghost",
|
|
@@ -12534,10 +12771,10 @@ function VideoPlayer({
|
|
|
12534
12771
|
onClick: skipForward,
|
|
12535
12772
|
className: "h-10 w-10 rounded-full text-white transition-all duration-200 hover:scale-110 hover:bg-white/20 active:scale-95",
|
|
12536
12773
|
"aria-label": t("skip_forward"),
|
|
12537
|
-
children: /* @__PURE__ */
|
|
12774
|
+
children: /* @__PURE__ */ jsx134(SkipForward, { className: "h-5 w-5" })
|
|
12538
12775
|
}
|
|
12539
12776
|
),
|
|
12540
|
-
/* @__PURE__ */
|
|
12777
|
+
/* @__PURE__ */ jsx134(
|
|
12541
12778
|
Button,
|
|
12542
12779
|
{
|
|
12543
12780
|
variant: "ghost",
|
|
@@ -12545,16 +12782,16 @@ function VideoPlayer({
|
|
|
12545
12782
|
onClick: toggleMute,
|
|
12546
12783
|
className: "h-10 w-10 rounded-full text-white transition-all duration-200 hover:scale-110 hover:bg-white/20 active:scale-95",
|
|
12547
12784
|
"aria-label": isMuted ? t("unmute") : t("mute"),
|
|
12548
|
-
children: isMuted ? /* @__PURE__ */
|
|
12785
|
+
children: isMuted ? /* @__PURE__ */ jsx134(VolumeX, { className: "h-5 w-5" }) : /* @__PURE__ */ jsx134(Volume2, { className: "h-5 w-5" })
|
|
12549
12786
|
}
|
|
12550
12787
|
),
|
|
12551
|
-
/* @__PURE__ */
|
|
12788
|
+
/* @__PURE__ */ jsxs82("span", { className: "text-sm font-medium text-white/90", children: [
|
|
12552
12789
|
formatTime2(currentTime),
|
|
12553
12790
|
" / ",
|
|
12554
12791
|
formatTime2(duration || 0)
|
|
12555
12792
|
] })
|
|
12556
12793
|
] }),
|
|
12557
|
-
/* @__PURE__ */
|
|
12794
|
+
/* @__PURE__ */ jsx134(
|
|
12558
12795
|
Button,
|
|
12559
12796
|
{
|
|
12560
12797
|
variant: "ghost",
|
|
@@ -12562,7 +12799,7 @@ function VideoPlayer({
|
|
|
12562
12799
|
onClick: toggleFullScreen,
|
|
12563
12800
|
className: "h-10 w-10 rounded-full text-white transition-all duration-200 hover:scale-110 hover:bg-white/20 active:scale-95",
|
|
12564
12801
|
"aria-label": isFullScreenMode ? t("exit_full_screen") : t("enter_full_screen"),
|
|
12565
|
-
children: isFullScreenMode ? /* @__PURE__ */
|
|
12802
|
+
children: isFullScreenMode ? /* @__PURE__ */ jsx134(Minimize, { className: "h-5 w-5" }) : /* @__PURE__ */ jsx134(Maximize, { className: "h-5 w-5" })
|
|
12566
12803
|
}
|
|
12567
12804
|
)
|
|
12568
12805
|
] })
|
|
@@ -12577,13 +12814,13 @@ function VideoPlayer({
|
|
|
12577
12814
|
|
|
12578
12815
|
// src/webcam/Webcam.tsx
|
|
12579
12816
|
import {
|
|
12580
|
-
forwardRef as
|
|
12817
|
+
forwardRef as forwardRef54,
|
|
12581
12818
|
memo as memo7,
|
|
12582
|
-
useCallback as
|
|
12819
|
+
useCallback as useCallback30,
|
|
12583
12820
|
useImperativeHandle as useImperativeHandle2,
|
|
12584
12821
|
useMemo as useMemo7,
|
|
12585
|
-
useRef as
|
|
12586
|
-
useState as
|
|
12822
|
+
useRef as useRef26,
|
|
12823
|
+
useState as useState36
|
|
12587
12824
|
} from "react";
|
|
12588
12825
|
import { isFirefox, isMobile as isMobile2 } from "react-device-detect";
|
|
12589
12826
|
import ReactWebcam from "react-webcam";
|
|
@@ -12638,7 +12875,7 @@ async function compressImage(image) {
|
|
|
12638
12875
|
}
|
|
12639
12876
|
|
|
12640
12877
|
// src/webcam/useErrorHandler.ts
|
|
12641
|
-
import { useCallback as
|
|
12878
|
+
import { useCallback as useCallback29 } from "react";
|
|
12642
12879
|
import { useTranslation as useTranslation22 } from "react-i18next";
|
|
12643
12880
|
import { isSafari as isSafari2 } from "react-device-detect";
|
|
12644
12881
|
|
|
@@ -12804,7 +13041,7 @@ var GET_USER_MEDIA_ERROR = "getUserMedia is not implemented in this browser";
|
|
|
12804
13041
|
function useErrorHandler({ onError }) {
|
|
12805
13042
|
const { t } = useTranslation22();
|
|
12806
13043
|
const handleError = useEvent(onError);
|
|
12807
|
-
const handleUserMediaError =
|
|
13044
|
+
const handleUserMediaError = useCallback29(
|
|
12808
13045
|
(error) => {
|
|
12809
13046
|
console.error(error);
|
|
12810
13047
|
let errorText;
|
|
@@ -12871,11 +13108,11 @@ function useErrorHandler({ onError }) {
|
|
|
12871
13108
|
}
|
|
12872
13109
|
|
|
12873
13110
|
// src/webcam/Webcam.tsx
|
|
12874
|
-
import { Fragment as Fragment13, jsx as
|
|
13111
|
+
import { Fragment as Fragment13, jsx as jsx135, jsxs as jsxs83 } from "react/jsx-runtime";
|
|
12875
13112
|
var SCREENSHOT_FORMAT = "image/jpeg";
|
|
12876
13113
|
var mirroredTransformStyle = { transform: "rotateY(180deg)" };
|
|
12877
13114
|
var Webcam = memo7(
|
|
12878
|
-
|
|
13115
|
+
forwardRef54(
|
|
12879
13116
|
({
|
|
12880
13117
|
onUserMedia,
|
|
12881
13118
|
onDisabled,
|
|
@@ -12899,10 +13136,10 @@ var Webcam = memo7(
|
|
|
12899
13136
|
onError,
|
|
12900
13137
|
...props
|
|
12901
13138
|
}, ref) => {
|
|
12902
|
-
const [minScreenshotHeight, setMinScreenshotHeight] =
|
|
12903
|
-
const [minScreenshotWidth, setMinScreenshotWidth] =
|
|
12904
|
-
const [useReducedConstraints, setUseReducedConstraints] =
|
|
12905
|
-
const [numberOfCameras, setNumberOfCameras] =
|
|
13139
|
+
const [minScreenshotHeight, setMinScreenshotHeight] = useState36();
|
|
13140
|
+
const [minScreenshotWidth, setMinScreenshotWidth] = useState36();
|
|
13141
|
+
const [useReducedConstraints, setUseReducedConstraints] = useState36(false);
|
|
13142
|
+
const [numberOfCameras, setNumberOfCameras] = useState36(0);
|
|
12906
13143
|
const constraints = useMemo7(() => {
|
|
12907
13144
|
if (videoConstraints) {
|
|
12908
13145
|
return videoConstraints;
|
|
@@ -12924,17 +13161,17 @@ var Webcam = memo7(
|
|
|
12924
13161
|
videoSourceDeviceId
|
|
12925
13162
|
]);
|
|
12926
13163
|
const isMirroredInCSS = mirrored === void 0 && !isMobileOrTablet();
|
|
12927
|
-
const webcamRef =
|
|
12928
|
-
const scanAreaRef =
|
|
12929
|
-
const canvasRef =
|
|
12930
|
-
const containerRef =
|
|
13164
|
+
const webcamRef = useRef26(null);
|
|
13165
|
+
const scanAreaRef = useRef26(null);
|
|
13166
|
+
const canvasRef = useRef26(null);
|
|
13167
|
+
const containerRef = useRef26(null);
|
|
12931
13168
|
const { handleUserMediaError } = useErrorHandler({
|
|
12932
13169
|
onError: (errorDetails) => {
|
|
12933
13170
|
onDisabled?.(true);
|
|
12934
13171
|
onError(errorDetails);
|
|
12935
13172
|
}
|
|
12936
13173
|
});
|
|
12937
|
-
const handleUserMediaErrorWithFallback =
|
|
13174
|
+
const handleUserMediaErrorWithFallback = useCallback30(
|
|
12938
13175
|
(error) => {
|
|
12939
13176
|
if (error instanceof DOMException && error.name === "OverconstrainedError" && !useReducedConstraints && !videoConstraints) {
|
|
12940
13177
|
console.warn("Camera constraints failed, trying reduced constraints:", error);
|
|
@@ -12984,7 +13221,7 @@ var Webcam = memo7(
|
|
|
12984
13221
|
...webcamRef.current
|
|
12985
13222
|
})
|
|
12986
13223
|
);
|
|
12987
|
-
const handleUserMediaSuccess =
|
|
13224
|
+
const handleUserMediaSuccess = useCallback30(
|
|
12988
13225
|
(stream) => {
|
|
12989
13226
|
if (!isMobile2) {
|
|
12990
13227
|
const track = stream.getVideoTracks()[0];
|
|
@@ -13009,7 +13246,7 @@ var Webcam = memo7(
|
|
|
13009
13246
|
},
|
|
13010
13247
|
[minScreenshotH, minScreenshotW, onUserMedia]
|
|
13011
13248
|
);
|
|
13012
|
-
return /* @__PURE__ */
|
|
13249
|
+
return /* @__PURE__ */ jsxs83(
|
|
13013
13250
|
"div",
|
|
13014
13251
|
{
|
|
13015
13252
|
ref: containerRef,
|
|
@@ -13020,7 +13257,7 @@ var Webcam = memo7(
|
|
|
13020
13257
|
),
|
|
13021
13258
|
style: isMirroredInCSS ? mirroredTransformStyle : void 0,
|
|
13022
13259
|
children: [
|
|
13023
|
-
!hideScanArea && /* @__PURE__ */
|
|
13260
|
+
!hideScanArea && /* @__PURE__ */ jsxs83(
|
|
13024
13261
|
"div",
|
|
13025
13262
|
{
|
|
13026
13263
|
ref: scanAreaRef,
|
|
@@ -13032,18 +13269,18 @@ var Webcam = memo7(
|
|
|
13032
13269
|
),
|
|
13033
13270
|
style: isMirroredInCSS ? mirroredTransformStyle : void 0,
|
|
13034
13271
|
children: [
|
|
13035
|
-
!roundedScanArea && /* @__PURE__ */
|
|
13036
|
-
/* @__PURE__ */
|
|
13037
|
-
/* @__PURE__ */
|
|
13038
|
-
/* @__PURE__ */
|
|
13039
|
-
/* @__PURE__ */
|
|
13272
|
+
!roundedScanArea && /* @__PURE__ */ jsxs83(Fragment13, { children: [
|
|
13273
|
+
/* @__PURE__ */ jsx135("div", { className: "absolute left-[-2px] top-[-2px] h-[45px] w-[45px] rounded-tl-[15px] border-[4px] border-b-0 border-r-0 border-white" }),
|
|
13274
|
+
/* @__PURE__ */ jsx135("div", { className: "absolute right-[-2px] top-[-2px] h-[45px] w-[45px] rounded-tr-[15px] border-[4px] border-b-0 border-l-0 border-white" }),
|
|
13275
|
+
/* @__PURE__ */ jsx135("div", { className: "absolute bottom-[-2px] right-[-2px] h-[45px] w-[45px] rounded-br-[15px] border-[4px] border-l-0 border-t-0 border-white" }),
|
|
13276
|
+
/* @__PURE__ */ jsx135("div", { className: "absolute bottom-[-2px] left-[-2px] h-[45px] w-[45px] rounded-bl-[15px] border-[4px] border-r-0 border-t-0 border-white" })
|
|
13040
13277
|
] }),
|
|
13041
13278
|
placeholderImage
|
|
13042
13279
|
]
|
|
13043
13280
|
}
|
|
13044
13281
|
),
|
|
13045
|
-
/* @__PURE__ */
|
|
13046
|
-
isLoading ? /* @__PURE__ */
|
|
13282
|
+
/* @__PURE__ */ jsx135("canvas", { ref: canvasRef, className: "hidden" }),
|
|
13283
|
+
isLoading ? /* @__PURE__ */ jsx135("div", { className: "absolute inset-0 z-10 flex items-center justify-center bg-black/50", children: /* @__PURE__ */ jsx135("div", { className: "h-10 w-10 animate-spin rounded-full border-4 border-white/30 border-t-white" }) }) : /* @__PURE__ */ jsx135(
|
|
13047
13284
|
ReactWebcam,
|
|
13048
13285
|
{
|
|
13049
13286
|
ref: webcamRef,
|
|
@@ -13075,24 +13312,24 @@ Webcam.displayName = "Webcam";
|
|
|
13075
13312
|
|
|
13076
13313
|
// src/mobile-webcam/MobileWebcam.tsx
|
|
13077
13314
|
import { Camera, ChevronLeft as ChevronLeft4 } from "lucide-react";
|
|
13078
|
-
import { forwardRef as
|
|
13315
|
+
import { forwardRef as forwardRef55, useCallback as useCallback32 } from "react";
|
|
13079
13316
|
import { createPortal } from "react-dom";
|
|
13080
13317
|
import { useTranslation as useTranslation24 } from "react-i18next";
|
|
13081
13318
|
|
|
13082
13319
|
// src/mobile-webcam/DeviceCamera/DeviceCamera.tsx
|
|
13083
|
-
import { useCallback as
|
|
13320
|
+
import { useCallback as useCallback31 } from "react";
|
|
13084
13321
|
import { useTranslation as useTranslation23 } from "react-i18next";
|
|
13085
|
-
import { jsx as
|
|
13322
|
+
import { jsx as jsx136, jsxs as jsxs84 } from "react/jsx-runtime";
|
|
13086
13323
|
function DeviceCamera({ onChange, facingMode, className }) {
|
|
13087
13324
|
const { t } = useTranslation23();
|
|
13088
|
-
const handleNativeScreenshot =
|
|
13325
|
+
const handleNativeScreenshot = useCallback31(
|
|
13089
13326
|
(event) => {
|
|
13090
13327
|
const file = event.target.files?.[0];
|
|
13091
13328
|
onChange(file ? compressImage(file) : void 0);
|
|
13092
13329
|
},
|
|
13093
13330
|
[onChange]
|
|
13094
13331
|
);
|
|
13095
|
-
return /* @__PURE__ */
|
|
13332
|
+
return /* @__PURE__ */ jsxs84(
|
|
13096
13333
|
"div",
|
|
13097
13334
|
{
|
|
13098
13335
|
className: cn(
|
|
@@ -13100,10 +13337,10 @@ function DeviceCamera({ onChange, facingMode, className }) {
|
|
|
13100
13337
|
className
|
|
13101
13338
|
),
|
|
13102
13339
|
children: [
|
|
13103
|
-
/* @__PURE__ */
|
|
13104
|
-
/* @__PURE__ */
|
|
13340
|
+
/* @__PURE__ */ jsx136("div", { children: t("camera_errors.experiencing_camera_issues") }),
|
|
13341
|
+
/* @__PURE__ */ jsxs84("label", { className: "text-[16px] font-semibold uppercase leading-6", children: [
|
|
13105
13342
|
t("open_devices_camera"),
|
|
13106
|
-
/* @__PURE__ */
|
|
13343
|
+
/* @__PURE__ */ jsx136(
|
|
13107
13344
|
"input",
|
|
13108
13345
|
{
|
|
13109
13346
|
className: "sr-only",
|
|
@@ -13120,7 +13357,7 @@ function DeviceCamera({ onChange, facingMode, className }) {
|
|
|
13120
13357
|
}
|
|
13121
13358
|
|
|
13122
13359
|
// src/mobile-webcam/MobileWebcam.tsx
|
|
13123
|
-
import { jsx as
|
|
13360
|
+
import { jsx as jsx137, jsxs as jsxs85 } from "react/jsx-runtime";
|
|
13124
13361
|
var webcamClasses = "fixed left-0 top-0 z-[6] h-full w-full rounded-none";
|
|
13125
13362
|
var scanAreaClasses = String.raw`[&_.webcam\_\_scan-area]:h-full [&_.webcam\_\_scan-area]:max-h-[209px] landscape:[&_.webcam\_\_scan-area]:h-[80%] landscape:[&_.webcam\_\_scan-area]:max-h-full md:[&_.webcam\_\_scan-area]:h-auto md:[&_.webcam\_\_scan-area]:max-h-none md:[&_.webcam\_\_scan-area]:aspect-[2/1]`;
|
|
13126
13363
|
var roundedWebcamClasses = String.raw`[&_.webcam\_\_scan-area]:top-[-60px] [&_.webcam\_\_scan-area]:h-full [&_.webcam\_\_scan-area]:w-full [&_.webcam\_\_scan-area]:max-h-[55%] [&_.webcam\_\_scan-area]:max-w-[80%] max-[375px]:[&_.webcam\_\_scan-area]:max-h-[369px] max-[375px]:[&_.webcam\_\_scan-area]:max-w-[261px] max-[320px]:[&_.webcam\_\_scan-area]:max-h-[318px] max-[320px]:[&_.webcam\_\_scan-area]:max-w-[220px] landscape:[&_.webcam\_\_scan-area]:h-full landscape:[&_.webcam\_\_scan-area]:w-full landscape:[&_.webcam\_\_scan-area]:max-h-[90%] landscape:[&_.webcam\_\_scan-area]:max-w-[261px] md:[&_.webcam\_\_scan-area]:aspect-square`;
|
|
@@ -13129,28 +13366,28 @@ function getAndMapFacingMode(constraints) {
|
|
|
13129
13366
|
if (constraints.facingMode === "user") return "user";
|
|
13130
13367
|
if (constraints.facingMode === "environment") return "environment";
|
|
13131
13368
|
}
|
|
13132
|
-
var MobileWebcam =
|
|
13369
|
+
var MobileWebcam = forwardRef55(
|
|
13133
13370
|
({ onScreenshot, onBack, title, text, disabled, className, ...props }, ref) => {
|
|
13134
13371
|
const rootElement = getDocument()?.body;
|
|
13135
13372
|
const { t } = useTranslation24();
|
|
13136
|
-
const handleNativeScreenshot =
|
|
13373
|
+
const handleNativeScreenshot = useCallback32(
|
|
13137
13374
|
(photo) => onScreenshot({ isNative: true, photo }),
|
|
13138
13375
|
[onScreenshot]
|
|
13139
13376
|
);
|
|
13140
13377
|
return createPortal(
|
|
13141
|
-
/* @__PURE__ */
|
|
13142
|
-
/* @__PURE__ */
|
|
13378
|
+
/* @__PURE__ */ jsxs85("div", { className: "mobile-camera flex justify-center", children: [
|
|
13379
|
+
/* @__PURE__ */ jsx137(
|
|
13143
13380
|
"button",
|
|
13144
13381
|
{
|
|
13145
13382
|
type: "button",
|
|
13146
13383
|
onClick: onBack,
|
|
13147
13384
|
className: "mobile-camera__back-btn fixed left-7 top-9 z-[7] flex border-0 bg-transparent p-0 landscape:left-[50px] landscape:top-[70px]",
|
|
13148
|
-
children: /* @__PURE__ */
|
|
13385
|
+
children: /* @__PURE__ */ jsx137(ChevronLeft4, { size: 32, strokeWidth: 3, className: "text-white" })
|
|
13149
13386
|
}
|
|
13150
13387
|
),
|
|
13151
|
-
title && /* @__PURE__ */
|
|
13152
|
-
text ? /* @__PURE__ */
|
|
13153
|
-
/* @__PURE__ */
|
|
13388
|
+
title && /* @__PURE__ */ jsx137("div", { className: "mobile-camera__title fixed left-1/2 top-8 z-[7] -translate-x-1/2 whitespace-nowrap text-[18px] font-bold text-white landscape:top-[5px]", children: title }),
|
|
13389
|
+
text ? /* @__PURE__ */ jsx137("p", { className: "mobile-camera__subtitle fixed top-[76px] z-[7] mx-auto my-0 px-6 text-center text-white landscape:hidden [@media(min-height:838px)]:top-28", children: text }) : /* @__PURE__ */ jsx137("p", { className: "mobile-camera__helper fixed top-[88px] z-[7] mx-auto my-0 px-6 text-center text-xs text-white landscape:hidden [@media(min-height:700px)]:[font-size:inherit]", children: t("place_document_inside_frame") }),
|
|
13390
|
+
/* @__PURE__ */ jsx137(
|
|
13154
13391
|
Webcam,
|
|
13155
13392
|
{
|
|
13156
13393
|
ref,
|
|
@@ -13162,18 +13399,18 @@ var MobileWebcam = forwardRef54(
|
|
|
13162
13399
|
)
|
|
13163
13400
|
}
|
|
13164
13401
|
),
|
|
13165
|
-
/* @__PURE__ */
|
|
13166
|
-
/* @__PURE__ */
|
|
13402
|
+
/* @__PURE__ */ jsxs85("div", { className: "fixed bottom-5 z-[7] flex w-[calc(100%-32px)] flex-col justify-between gap-5 self-center landscape:inset-y-0 landscape:right-10 landscape:my-auto landscape:h-auto landscape:w-auto landscape:justify-normal landscape:[&_.mobile-webcam-device-camera]:hidden", children: [
|
|
13403
|
+
/* @__PURE__ */ jsx137(
|
|
13167
13404
|
"button",
|
|
13168
13405
|
{
|
|
13169
13406
|
type: "button",
|
|
13170
13407
|
disabled,
|
|
13171
13408
|
onClick: () => onScreenshot({ isNative: false }),
|
|
13172
13409
|
className: "mobile-camera__take-btn relative flex h-[75px] w-[75px] items-center justify-center self-center rounded-full border-0 bg-white p-[10px] shadow-[0_0_10px_#ffffff] hover:opacity-80 disabled:cursor-default disabled:opacity-60 disabled:hover:opacity-60",
|
|
13173
|
-
children: /* @__PURE__ */
|
|
13410
|
+
children: /* @__PURE__ */ jsx137(Camera, { size: 26, className: "text-[var(--primary)]" })
|
|
13174
13411
|
}
|
|
13175
13412
|
),
|
|
13176
|
-
/* @__PURE__ */
|
|
13413
|
+
/* @__PURE__ */ jsx137(
|
|
13177
13414
|
DeviceCamera,
|
|
13178
13415
|
{
|
|
13179
13416
|
onChange: handleNativeScreenshot,
|
|
@@ -13189,10 +13426,10 @@ var MobileWebcam = forwardRef54(
|
|
|
13189
13426
|
MobileWebcam.displayName = "MobileWebcam";
|
|
13190
13427
|
|
|
13191
13428
|
// src/wide-button/WideButton.tsx
|
|
13192
|
-
import { forwardRef as
|
|
13193
|
-
import { jsx as
|
|
13194
|
-
var WideButton =
|
|
13195
|
-
({ className, disabled, ...props }, ref) => /* @__PURE__ */
|
|
13429
|
+
import { forwardRef as forwardRef56 } from "react";
|
|
13430
|
+
import { jsx as jsx138 } from "react/jsx-runtime";
|
|
13431
|
+
var WideButton = forwardRef56(
|
|
13432
|
+
({ className, disabled, ...props }, ref) => /* @__PURE__ */ jsx138(
|
|
13196
13433
|
Button,
|
|
13197
13434
|
{
|
|
13198
13435
|
ref,
|
|
@@ -13210,195 +13447,6 @@ var WideButton = forwardRef55(
|
|
|
13210
13447
|
);
|
|
13211
13448
|
WideButton.displayName = "WideButton";
|
|
13212
13449
|
|
|
13213
|
-
// src/drawer/Drawer.tsx
|
|
13214
|
-
import * as React41 from "react";
|
|
13215
|
-
import * as DialogPrimitive2 from "@radix-ui/react-dialog";
|
|
13216
|
-
import Draggable from "react-draggable";
|
|
13217
|
-
import { jsx as jsx138, jsxs as jsxs85 } from "react/jsx-runtime";
|
|
13218
|
-
var DRAWER_CLOSE_THRESHOLD = 72;
|
|
13219
|
-
var DRAWER_MIN_OVERLAY_OPACITY = 0.1;
|
|
13220
|
-
function Drawer({ ...props }) {
|
|
13221
|
-
return /* @__PURE__ */ jsx138(DialogPrimitive2.Root, { "data-slot": "drawer", ...props });
|
|
13222
|
-
}
|
|
13223
|
-
function DrawerTrigger({ ...props }) {
|
|
13224
|
-
return /* @__PURE__ */ jsx138(DialogPrimitive2.Trigger, { "data-slot": "drawer-trigger", ...props });
|
|
13225
|
-
}
|
|
13226
|
-
function DrawerPortal({ ...props }) {
|
|
13227
|
-
return /* @__PURE__ */ jsx138(DialogPrimitive2.Portal, { "data-slot": "drawer-portal", ...props });
|
|
13228
|
-
}
|
|
13229
|
-
function DrawerClose({ ...props }) {
|
|
13230
|
-
return /* @__PURE__ */ jsx138(DialogPrimitive2.Close, { "data-slot": "drawer-close", ...props });
|
|
13231
|
-
}
|
|
13232
|
-
var DrawerOverlay = React41.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx138(
|
|
13233
|
-
DialogPrimitive2.Overlay,
|
|
13234
|
-
{
|
|
13235
|
-
ref,
|
|
13236
|
-
"data-slot": "drawer-overlay",
|
|
13237
|
-
className: cn(
|
|
13238
|
-
"fixed inset-0 z-50 bg-black/50 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=closed]:animate-out data-[state=closed]:fade-out-0",
|
|
13239
|
-
className
|
|
13240
|
-
),
|
|
13241
|
-
...props
|
|
13242
|
-
}
|
|
13243
|
-
));
|
|
13244
|
-
DrawerOverlay.displayName = DialogPrimitive2.Overlay.displayName;
|
|
13245
|
-
var DrawerOverlayClasses = "fixed inset-0 z-50 bg-black/50 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=closed]:animate-out data-[state=closed]:fade-out-0";
|
|
13246
|
-
var DrawerContent = React41.forwardRef(
|
|
13247
|
-
({
|
|
13248
|
-
className,
|
|
13249
|
-
children,
|
|
13250
|
-
container,
|
|
13251
|
-
onClose,
|
|
13252
|
-
showHandle = true,
|
|
13253
|
-
closeOnOverlayClick = true,
|
|
13254
|
-
lockScroll = true,
|
|
13255
|
-
disableDrag = false,
|
|
13256
|
-
...props
|
|
13257
|
-
}, ref) => {
|
|
13258
|
-
const finalContainer = container || getCustomContainer() || void 0;
|
|
13259
|
-
const nodeRef = React41.useRef(null);
|
|
13260
|
-
const [dragOffsetY, setDragOffsetY] = React41.useState(0);
|
|
13261
|
-
const overlayOpacity = Math.max(
|
|
13262
|
-
DRAWER_MIN_OVERLAY_OPACITY,
|
|
13263
|
-
1 - dragOffsetY / (DRAWER_CLOSE_THRESHOLD * 2)
|
|
13264
|
-
);
|
|
13265
|
-
const handleDrag = React41.useCallback(
|
|
13266
|
-
(_event, data) => {
|
|
13267
|
-
setDragOffsetY(Math.max(0, data.y));
|
|
13268
|
-
},
|
|
13269
|
-
[]
|
|
13270
|
-
);
|
|
13271
|
-
const handleStop = React41.useCallback(
|
|
13272
|
-
(_event, data) => {
|
|
13273
|
-
if (data.y > DRAWER_CLOSE_THRESHOLD) {
|
|
13274
|
-
setDragOffsetY(0);
|
|
13275
|
-
onClose?.();
|
|
13276
|
-
return;
|
|
13277
|
-
}
|
|
13278
|
-
setDragOffsetY(0);
|
|
13279
|
-
},
|
|
13280
|
-
[onClose]
|
|
13281
|
-
);
|
|
13282
|
-
return /* @__PURE__ */ jsxs85(DrawerPortal, { container: finalContainer, children: [
|
|
13283
|
-
lockScroll ? /* @__PURE__ */ jsx138(
|
|
13284
|
-
DrawerOverlay,
|
|
13285
|
-
{
|
|
13286
|
-
style: { opacity: overlayOpacity },
|
|
13287
|
-
onClick: closeOnOverlayClick ? onClose : void 0
|
|
13288
|
-
}
|
|
13289
|
-
) : /* @__PURE__ */ jsx138(
|
|
13290
|
-
"div",
|
|
13291
|
-
{
|
|
13292
|
-
className: cn(DrawerOverlayClasses),
|
|
13293
|
-
style: { opacity: overlayOpacity },
|
|
13294
|
-
onClick: closeOnOverlayClick ? onClose : void 0
|
|
13295
|
-
}
|
|
13296
|
-
),
|
|
13297
|
-
/* @__PURE__ */ jsx138(
|
|
13298
|
-
DialogPrimitive2.Content,
|
|
13299
|
-
{
|
|
13300
|
-
asChild: true,
|
|
13301
|
-
ref,
|
|
13302
|
-
onPointerDownOutside: (event) => {
|
|
13303
|
-
if (!closeOnOverlayClick) {
|
|
13304
|
-
event.preventDefault();
|
|
13305
|
-
}
|
|
13306
|
-
},
|
|
13307
|
-
onInteractOutside: (event) => {
|
|
13308
|
-
if (!closeOnOverlayClick) {
|
|
13309
|
-
event.preventDefault();
|
|
13310
|
-
}
|
|
13311
|
-
},
|
|
13312
|
-
...props,
|
|
13313
|
-
children: /* @__PURE__ */ jsx138("div", { className: "fixed inset-x-0 bottom-0 top-auto z-50 outline-none", children: /* @__PURE__ */ jsx138(
|
|
13314
|
-
Draggable,
|
|
13315
|
-
{
|
|
13316
|
-
axis: "y",
|
|
13317
|
-
bounds: { top: 0 },
|
|
13318
|
-
handle: "[data-drawer-handle]",
|
|
13319
|
-
nodeRef,
|
|
13320
|
-
disabled: disableDrag,
|
|
13321
|
-
onDrag: handleDrag,
|
|
13322
|
-
onStop: handleStop,
|
|
13323
|
-
position: { x: 0, y: dragOffsetY },
|
|
13324
|
-
children: /* @__PURE__ */ jsxs85(
|
|
13325
|
-
"div",
|
|
13326
|
-
{
|
|
13327
|
-
ref: nodeRef,
|
|
13328
|
-
className: cn(
|
|
13329
|
-
"bg-[var(--modal-background)] flex max-h-[calc(100vh-1rem)] w-full flex-col rounded-t-[32px] shadow-lg",
|
|
13330
|
-
className
|
|
13331
|
-
),
|
|
13332
|
-
children: [
|
|
13333
|
-
showHandle && /* @__PURE__ */ jsx138(
|
|
13334
|
-
"div",
|
|
13335
|
-
{
|
|
13336
|
-
"data-drawer-handle": true,
|
|
13337
|
-
className: cn(
|
|
13338
|
-
"mx-auto flex h-8 w-24 touch-none items-center justify-center",
|
|
13339
|
-
disableDrag ? "cursor-default" : "cursor-grab active:cursor-grabbing"
|
|
13340
|
-
),
|
|
13341
|
-
children: /* @__PURE__ */ jsx138("span", { className: "block h-1.5 w-12 rounded-full bg-[#D9D7D3]" })
|
|
13342
|
-
}
|
|
13343
|
-
),
|
|
13344
|
-
/* @__PURE__ */ jsx138("div", { className: "min-h-0 flex-1 overflow-y-auto", children })
|
|
13345
|
-
]
|
|
13346
|
-
}
|
|
13347
|
-
)
|
|
13348
|
-
}
|
|
13349
|
-
) })
|
|
13350
|
-
}
|
|
13351
|
-
)
|
|
13352
|
-
] });
|
|
13353
|
-
}
|
|
13354
|
-
);
|
|
13355
|
-
DrawerContent.displayName = DialogPrimitive2.Content.displayName;
|
|
13356
|
-
var DrawerHeader = ({ className, ...props }) => /* @__PURE__ */ jsx138(
|
|
13357
|
-
"div",
|
|
13358
|
-
{
|
|
13359
|
-
className: cn("flex flex-col gap-2 px-5 pt-2 text-center", className),
|
|
13360
|
-
...props
|
|
13361
|
-
}
|
|
13362
|
-
);
|
|
13363
|
-
DrawerHeader.displayName = "DrawerHeader";
|
|
13364
|
-
var DrawerFooter = ({ className, ...props }) => /* @__PURE__ */ jsx138("div", { className: cn("flex flex-col gap-2 p-5", className), ...props });
|
|
13365
|
-
DrawerFooter.displayName = "DrawerFooter";
|
|
13366
|
-
var DrawerTitle = React41.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx138(
|
|
13367
|
-
DialogPrimitive2.Title,
|
|
13368
|
-
{
|
|
13369
|
-
ref,
|
|
13370
|
-
"data-slot": "drawer-title",
|
|
13371
|
-
className: cn("text-lg font-semibold leading-none", className),
|
|
13372
|
-
...props
|
|
13373
|
-
}
|
|
13374
|
-
));
|
|
13375
|
-
DrawerTitle.displayName = DialogPrimitive2.Title.displayName;
|
|
13376
|
-
var DrawerDescription = React41.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx138(
|
|
13377
|
-
DialogPrimitive2.Description,
|
|
13378
|
-
{
|
|
13379
|
-
ref,
|
|
13380
|
-
"data-slot": "drawer-description",
|
|
13381
|
-
className: cn("text-muted-foreground text-sm", className),
|
|
13382
|
-
...props
|
|
13383
|
-
}
|
|
13384
|
-
));
|
|
13385
|
-
DrawerDescription.displayName = DialogPrimitive2.Description.displayName;
|
|
13386
|
-
|
|
13387
|
-
// src/lib/device.ts
|
|
13388
|
-
var DEVICE = {
|
|
13389
|
-
mobileS: "320px",
|
|
13390
|
-
mobileM: "375px",
|
|
13391
|
-
mobileL: "425px",
|
|
13392
|
-
mobileXL: "479px",
|
|
13393
|
-
tablet: "768px",
|
|
13394
|
-
laptop: "1025px",
|
|
13395
|
-
laptopM: "1126px",
|
|
13396
|
-
laptopML: "1300px",
|
|
13397
|
-
laptopL: "1440px",
|
|
13398
|
-
laptopXL: "1640px",
|
|
13399
|
-
desktop: "2560px"
|
|
13400
|
-
};
|
|
13401
|
-
|
|
13402
13450
|
// src/responsive-sheet/ResponsiveSheet.tsx
|
|
13403
13451
|
import { jsx as jsx139, jsxs as jsxs86 } from "react/jsx-runtime";
|
|
13404
13452
|
function ResponsiveSheet({
|
|
@@ -13444,17 +13492,7 @@ function ResponsiveSheet({
|
|
|
13444
13492
|
contentClassName
|
|
13445
13493
|
),
|
|
13446
13494
|
children: [
|
|
13447
|
-
title ? /* @__PURE__ */ jsx139(
|
|
13448
|
-
"div",
|
|
13449
|
-
{
|
|
13450
|
-
"aria-hidden": "true",
|
|
13451
|
-
className: cn(
|
|
13452
|
-
"text-center mb-3 text-[26px] font-semibold leading-7",
|
|
13453
|
-
titleClassName
|
|
13454
|
-
),
|
|
13455
|
-
children: title
|
|
13456
|
-
}
|
|
13457
|
-
) : null,
|
|
13495
|
+
title ? /* @__PURE__ */ jsx139(DialogTitle, { className: cn("text-center mb-3", titleClassName), children: title }) : null,
|
|
13458
13496
|
description ? /* @__PURE__ */ jsx139(
|
|
13459
13497
|
"p",
|
|
13460
13498
|
{
|
|
@@ -13482,7 +13520,6 @@ function ResponsiveSheet({
|
|
|
13482
13520
|
onEscapeKeyDown: handleEscapeKeyDown,
|
|
13483
13521
|
className: cn(className, drawerClassName),
|
|
13484
13522
|
children: [
|
|
13485
|
-
title ? /* @__PURE__ */ jsx139(DrawerTitle, { className: "sr-only", children: title }) : null,
|
|
13486
13523
|
description ? /* @__PURE__ */ jsx139(DrawerDescription, { className: "sr-only", children: description }) : null,
|
|
13487
13524
|
content
|
|
13488
13525
|
]
|
|
@@ -13499,7 +13536,6 @@ function ResponsiveSheet({
|
|
|
13499
13536
|
className: cn("max-w-[560px] border-0 p-0 shadow-xl", className, dialogClassName),
|
|
13500
13537
|
lockScroll: false,
|
|
13501
13538
|
children: [
|
|
13502
|
-
title ? /* @__PURE__ */ jsx139(DialogTitle, { className: "sr-only", children: title }) : null,
|
|
13503
13539
|
description ? /* @__PURE__ */ jsx139(DialogDescription, { className: "sr-only", children: description }) : null,
|
|
13504
13540
|
content
|
|
13505
13541
|
]
|
|
@@ -18511,13 +18547,13 @@ import { differenceInDays, isAfter, isBefore, isSameDay } from "date-fns";
|
|
|
18511
18547
|
import { format as formatDateFns, isValid, parse } from "date-fns";
|
|
18512
18548
|
var DEFAULT_DISPLAY_FORMAT = "dd-MM-yyyy";
|
|
18513
18549
|
var SUPPORTED_FORMATS = ["dd-MM-yyyy", "dd.MM.yyyy", "dd/MM/yyyy"];
|
|
18514
|
-
var formatDate = (
|
|
18550
|
+
var formatDate = (format3 = DEFAULT_DISPLAY_FORMAT) => (date) => formatDateFns(date, format3);
|
|
18515
18551
|
var parseDate = (displayFormat) => (dateStr) => {
|
|
18516
18552
|
if (!dateStr) return void 0;
|
|
18517
18553
|
const formats = displayFormat ? Array.from(/* @__PURE__ */ new Set([...SUPPORTED_FORMATS, displayFormat])) : SUPPORTED_FORMATS;
|
|
18518
|
-
for (const
|
|
18519
|
-
const parsed = parse(dateStr,
|
|
18520
|
-
if (isValid(parsed) && formatDateFns(parsed,
|
|
18554
|
+
for (const format3 of formats) {
|
|
18555
|
+
const parsed = parse(dateStr, format3, /* @__PURE__ */ new Date());
|
|
18556
|
+
if (isValid(parsed) && formatDateFns(parsed, format3) === dateStr) {
|
|
18521
18557
|
return parsed;
|
|
18522
18558
|
}
|
|
18523
18559
|
}
|
|
@@ -18618,14 +18654,14 @@ function useRangeValue({
|
|
|
18618
18654
|
import * as React66 from "react";
|
|
18619
18655
|
|
|
18620
18656
|
// src/fields/date-range-picker/utils/inputFormat.ts
|
|
18621
|
-
function parseDateInputFormat(
|
|
18657
|
+
function parseDateInputFormat(format3) {
|
|
18622
18658
|
const tokens = [];
|
|
18623
18659
|
let i = 0;
|
|
18624
|
-
while (i <
|
|
18625
|
-
const ch =
|
|
18660
|
+
while (i < format3.length) {
|
|
18661
|
+
const ch = format3[i];
|
|
18626
18662
|
if (/[a-zA-Z]/.test(ch)) {
|
|
18627
18663
|
let len = 1;
|
|
18628
|
-
while (i + len <
|
|
18664
|
+
while (i + len < format3.length && format3[i + len] === ch) len++;
|
|
18629
18665
|
tokens.push({ type: "digits", length: len });
|
|
18630
18666
|
i += len;
|
|
18631
18667
|
} else {
|
|
@@ -18697,8 +18733,8 @@ function autoFormatDateInput(raw, tokens) {
|
|
|
18697
18733
|
var countDigits = (text) => text.replace(/\D/g, "").length;
|
|
18698
18734
|
function useRangeTextInputs({
|
|
18699
18735
|
value,
|
|
18700
|
-
format:
|
|
18701
|
-
parse:
|
|
18736
|
+
format: format3,
|
|
18737
|
+
parse: parse4,
|
|
18702
18738
|
displayFormat,
|
|
18703
18739
|
onCommit,
|
|
18704
18740
|
onBlur,
|
|
@@ -18710,23 +18746,23 @@ function useRangeTextInputs({
|
|
|
18710
18746
|
[displayFormat]
|
|
18711
18747
|
);
|
|
18712
18748
|
const maxDigits = React66.useMemo(() => getMaxDigits(tokens), [tokens]);
|
|
18713
|
-
const [fromText, setFromText] = React66.useState(value?.from ?
|
|
18714
|
-
const [toText, setToText] = React66.useState(value?.to ?
|
|
18749
|
+
const [fromText, setFromText] = React66.useState(value?.from ? format3(value.from) : "");
|
|
18750
|
+
const [toText, setToText] = React66.useState(value?.to ? format3(value.to) : "");
|
|
18715
18751
|
React66.useEffect(() => {
|
|
18716
|
-
setFromText(value?.from ?
|
|
18717
|
-
setToText(value?.to ?
|
|
18718
|
-
}, [
|
|
18752
|
+
setFromText(value?.from ? format3(value.from) : "");
|
|
18753
|
+
setToText(value?.to ? format3(value.to) : "");
|
|
18754
|
+
}, [format3, value?.from, value?.to]);
|
|
18719
18755
|
const handleFromChange = React66.useCallback(
|
|
18720
18756
|
(raw) => {
|
|
18721
18757
|
const formatted = autoFormatDateInput(raw, tokens);
|
|
18722
18758
|
const wasComplete = countDigits(fromText) === maxDigits;
|
|
18723
18759
|
const isComplete = countDigits(formatted) === maxDigits;
|
|
18724
18760
|
setFromText(formatted);
|
|
18725
|
-
if (!wasComplete && isComplete &&
|
|
18761
|
+
if (!wasComplete && isComplete && parse4(formatted)) {
|
|
18726
18762
|
setTimeout(() => onFromComplete?.(), 0);
|
|
18727
18763
|
}
|
|
18728
18764
|
},
|
|
18729
|
-
[fromText, maxDigits, onFromComplete,
|
|
18765
|
+
[fromText, maxDigits, onFromComplete, parse4, tokens]
|
|
18730
18766
|
);
|
|
18731
18767
|
const handleToChange = React66.useCallback(
|
|
18732
18768
|
(raw) => {
|
|
@@ -18734,11 +18770,11 @@ function useRangeTextInputs({
|
|
|
18734
18770
|
const wasComplete = countDigits(toText) === maxDigits;
|
|
18735
18771
|
const isComplete = countDigits(formatted) === maxDigits;
|
|
18736
18772
|
setToText(formatted);
|
|
18737
|
-
if (!wasComplete && isComplete &&
|
|
18773
|
+
if (!wasComplete && isComplete && parse4(formatted)) {
|
|
18738
18774
|
setTimeout(() => onToComplete?.(), 0);
|
|
18739
18775
|
}
|
|
18740
18776
|
},
|
|
18741
|
-
[maxDigits, onToComplete,
|
|
18777
|
+
[maxDigits, onToComplete, parse4, toText, tokens]
|
|
18742
18778
|
);
|
|
18743
18779
|
const handleFromBlur = React66.useCallback(() => {
|
|
18744
18780
|
if (!fromText) {
|
|
@@ -18747,16 +18783,16 @@ function useRangeTextInputs({
|
|
|
18747
18783
|
onBlur?.(next);
|
|
18748
18784
|
return void 0;
|
|
18749
18785
|
}
|
|
18750
|
-
const parsed =
|
|
18786
|
+
const parsed = parse4(fromText);
|
|
18751
18787
|
if (parsed) {
|
|
18752
18788
|
const next = { from: parsed, to: value?.to };
|
|
18753
18789
|
onCommit(next);
|
|
18754
18790
|
onBlur?.(next);
|
|
18755
18791
|
return parsed;
|
|
18756
18792
|
}
|
|
18757
|
-
setFromText(value?.from ?
|
|
18793
|
+
setFromText(value?.from ? format3(value.from) : "");
|
|
18758
18794
|
return void 0;
|
|
18759
|
-
}, [
|
|
18795
|
+
}, [format3, fromText, onBlur, onCommit, parse4, value]);
|
|
18760
18796
|
const handleToBlur = React66.useCallback(() => {
|
|
18761
18797
|
if (!toText) {
|
|
18762
18798
|
const next = { from: value?.from, to: void 0 };
|
|
@@ -18764,15 +18800,15 @@ function useRangeTextInputs({
|
|
|
18764
18800
|
onBlur?.(next);
|
|
18765
18801
|
return;
|
|
18766
18802
|
}
|
|
18767
|
-
const parsed =
|
|
18803
|
+
const parsed = parse4(toText);
|
|
18768
18804
|
if (parsed) {
|
|
18769
18805
|
const next = { from: value?.from, to: parsed };
|
|
18770
18806
|
onCommit(next);
|
|
18771
18807
|
onBlur?.(next);
|
|
18772
18808
|
return;
|
|
18773
18809
|
}
|
|
18774
|
-
setToText(value?.to ?
|
|
18775
|
-
}, [
|
|
18810
|
+
setToText(value?.to ? format3(value.to) : "");
|
|
18811
|
+
}, [format3, onBlur, onCommit, parse4, toText, value]);
|
|
18776
18812
|
return {
|
|
18777
18813
|
fromText,
|
|
18778
18814
|
toText,
|
|
@@ -19960,7 +19996,7 @@ function AirbnbFieldHelperText({
|
|
|
19960
19996
|
{
|
|
19961
19997
|
id,
|
|
19962
19998
|
className: cn(
|
|
19963
|
-
"mt-2 text-[12px]
|
|
19999
|
+
"mt-2 text-[12px] leading-5 text-[var(--chekin-airbnb-gray-text)]",
|
|
19964
20000
|
disabled && "opacity-50",
|
|
19965
20001
|
className
|
|
19966
20002
|
),
|
|
@@ -22361,6 +22397,62 @@ var AirbnbSwitch = React84.forwardRef(
|
|
|
22361
22397
|
}
|
|
22362
22398
|
);
|
|
22363
22399
|
AirbnbSwitch.displayName = "AirbnbSwitch";
|
|
22400
|
+
|
|
22401
|
+
// src/airbnb-fields/time-picker/TimePicker.tsx
|
|
22402
|
+
import * as React85 from "react";
|
|
22403
|
+
import { addDays as addDays2, addHours as addHours2, addMinutes as addMinutes2, format as format2, parse as parse3 } from "date-fns";
|
|
22404
|
+
import { jsx as jsx196 } from "react/jsx-runtime";
|
|
22405
|
+
var SHORT_TIME_FORMAT2 = "HH:mm";
|
|
22406
|
+
function parseTime2(value) {
|
|
22407
|
+
return parse3(value, SHORT_TIME_FORMAT2, /* @__PURE__ */ new Date());
|
|
22408
|
+
}
|
|
22409
|
+
function getRange2(settings) {
|
|
22410
|
+
const min = parseTime2(settings.min_time);
|
|
22411
|
+
const max = settings.max_time === "00:00" && settings.addNextDay ? addDays2(parseTime2(settings.max_time), 1) : parseTime2(settings.max_time);
|
|
22412
|
+
return { min, max };
|
|
22413
|
+
}
|
|
22414
|
+
function buildOptions2(settings) {
|
|
22415
|
+
const interval_unit = settings.interval_unit ?? "M";
|
|
22416
|
+
const interval = settings.interval ?? (interval_unit === "H" ? 1 : 60);
|
|
22417
|
+
const min_time = settings.min_time ?? "00:00";
|
|
22418
|
+
const max_time = settings.max_time ?? (interval_unit === "H" ? "23:00" : "23:00");
|
|
22419
|
+
const addNextDay = settings.addNextDay !== false;
|
|
22420
|
+
const { min, max } = getRange2({ interval_unit, interval, min_time, max_time, addNextDay });
|
|
22421
|
+
const options = [];
|
|
22422
|
+
let current = new Date(min.getTime());
|
|
22423
|
+
while (current.getTime() <= max.getTime()) {
|
|
22424
|
+
const text = format2(current, SHORT_TIME_FORMAT2);
|
|
22425
|
+
options.push({ value: text, label: text });
|
|
22426
|
+
current = interval_unit === "H" ? addHours2(current, interval) : addMinutes2(current, interval);
|
|
22427
|
+
}
|
|
22428
|
+
return options;
|
|
22429
|
+
}
|
|
22430
|
+
var FORMAT_SETTINGS2 = {
|
|
22431
|
+
time: { interval_unit: "M", interval: 30, min_time: "00:00", max_time: "23:30" },
|
|
22432
|
+
timeEach15Minutes: {
|
|
22433
|
+
interval_unit: "M",
|
|
22434
|
+
interval: 15,
|
|
22435
|
+
min_time: "00:00",
|
|
22436
|
+
max_time: "23:45"
|
|
22437
|
+
},
|
|
22438
|
+
timeEach30Minutes: {
|
|
22439
|
+
interval_unit: "M",
|
|
22440
|
+
interval: 30,
|
|
22441
|
+
min_time: "00:00",
|
|
22442
|
+
max_time: "23:30"
|
|
22443
|
+
},
|
|
22444
|
+
hours: { interval_unit: "H", interval: 1, min_time: "00:00", max_time: "23:00" }
|
|
22445
|
+
};
|
|
22446
|
+
var AirbnbTimePicker = React85.forwardRef(
|
|
22447
|
+
function AirbnbTimePicker2({ format: formatName = "time", timeSettings, options, ...selectProps }, ref) {
|
|
22448
|
+
const resolvedOptions = React85.useMemo(() => {
|
|
22449
|
+
if (options) return options;
|
|
22450
|
+
const settings = timeSettings ?? FORMAT_SETTINGS2[formatName];
|
|
22451
|
+
return buildOptions2(settings);
|
|
22452
|
+
}, [formatName, options, timeSettings]);
|
|
22453
|
+
return /* @__PURE__ */ jsx196(AirbnbSelect, { ref, ...selectProps, options: resolvedOptions });
|
|
22454
|
+
}
|
|
22455
|
+
);
|
|
22364
22456
|
export {
|
|
22365
22457
|
ALERT_BOX_VARIANTS,
|
|
22366
22458
|
Accordion,
|
|
@@ -22376,6 +22468,7 @@ export {
|
|
|
22376
22468
|
AirbnbSearchableSelect,
|
|
22377
22469
|
AirbnbSelect,
|
|
22378
22470
|
AirbnbSwitch,
|
|
22471
|
+
AirbnbTimePicker,
|
|
22379
22472
|
Alert,
|
|
22380
22473
|
AlertBox,
|
|
22381
22474
|
AlertDescription,
|