@chekinapp/ui 0.0.131 → 0.0.133

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 CHANGED
@@ -8184,7 +8184,6 @@ var SectionTagColors = /* @__PURE__ */ ((SectionTagColors2) => {
8184
8184
 
8185
8185
  // src/section/Section.tsx
8186
8186
  var import_react68 = require("react");
8187
- var import_lucide_react29 = require("lucide-react");
8188
8187
  var import_react_i18next15 = require("react-i18next");
8189
8188
 
8190
8189
  // src/section/constants.ts
@@ -8197,16 +8196,17 @@ var SubSectionSize = /* @__PURE__ */ ((SubSectionSize2) => {
8197
8196
  // src/section/Section.tsx
8198
8197
  var import_jsx_runtime100 = require("react/jsx-runtime");
8199
8198
  function TooltipInfo({ content, className }) {
8200
- return /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(Tooltip, { side: "right", content, contentClassName: "max-w-64", children: /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(
8201
- "button",
8199
+ return /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(
8200
+ HelpTooltip,
8202
8201
  {
8203
- type: "button",
8204
- className: cn("inline-flex text-[var(--chekin-color-gray-1)]", className),
8202
+ side: "right",
8203
+ content,
8204
+ contentClassName: "max-w-64",
8205
+ className: cn("text-[var(--chekin-color-gray-1)]", className),
8205
8206
  onClick: (event) => event.stopPropagation(),
8206
- "aria-label": typeof content === "string" ? content : "More information",
8207
- children: /* @__PURE__ */ (0, import_jsx_runtime100.jsx)(import_lucide_react29.CircleHelp, { className: "h-4 w-4" })
8207
+ label: typeof content === "string" ? content : "More information"
8208
8208
  }
8209
- ) });
8209
+ );
8210
8210
  }
8211
8211
  var Section = (0, import_react68.forwardRef)(
8212
8212
  ({
@@ -8371,7 +8371,7 @@ var SectionGroup = Object.assign(SectionGroupRoot, {
8371
8371
 
8372
8372
  // src/sheet/Sheet.tsx
8373
8373
  var SheetPrimitive = __toESM(require("@radix-ui/react-dialog"), 1);
8374
- var import_lucide_react30 = require("lucide-react");
8374
+ var import_lucide_react29 = require("lucide-react");
8375
8375
  var import_jsx_runtime103 = require("react/jsx-runtime");
8376
8376
  function Sheet({ ...props }) {
8377
8377
  return /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(SheetPrimitive.Root, { "data-slot": "sheet", ...props });
@@ -8425,7 +8425,7 @@ function SheetContent({
8425
8425
  children: [
8426
8426
  children,
8427
8427
  /* @__PURE__ */ (0, import_jsx_runtime103.jsxs)(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: [
8428
- /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(import_lucide_react30.XIcon, { className: "size-4" }),
8428
+ /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(import_lucide_react29.XIcon, { className: "size-4" }),
8429
8429
  /* @__PURE__ */ (0, import_jsx_runtime103.jsx)("span", { className: "sr-only", children: "Close" })
8430
8430
  ] })
8431
8431
  ]
@@ -8484,7 +8484,7 @@ function SheetDescription({
8484
8484
  var React28 = __toESM(require("react"), 1);
8485
8485
  var import_react_slot4 = require("@radix-ui/react-slot");
8486
8486
  var import_class_variance_authority13 = require("class-variance-authority");
8487
- var import_lucide_react31 = require("lucide-react");
8487
+ var import_lucide_react30 = require("lucide-react");
8488
8488
 
8489
8489
  // src/skeleton/Skeleton.tsx
8490
8490
  var import_jsx_runtime104 = require("react/jsx-runtime");
@@ -8757,7 +8757,7 @@ var SidebarTrigger = React28.forwardRef(({ className, onClick, icon, ...props },
8757
8757
  },
8758
8758
  ...props,
8759
8759
  children: [
8760
- icon || (isMobile3 ? openMobile : open) ? icon || /* @__PURE__ */ (0, import_jsx_runtime106.jsx)(import_lucide_react31.ArrowLeftFromLineIcon, {}) : /* @__PURE__ */ (0, import_jsx_runtime106.jsx)(import_lucide_react31.ArrowRightFromLineIcon, {}),
8760
+ icon || (isMobile3 ? openMobile : open) ? icon || /* @__PURE__ */ (0, import_jsx_runtime106.jsx)(import_lucide_react30.ArrowLeftFromLineIcon, {}) : /* @__PURE__ */ (0, import_jsx_runtime106.jsx)(import_lucide_react30.ArrowRightFromLineIcon, {}),
8761
8761
  /* @__PURE__ */ (0, import_jsx_runtime106.jsx)("span", { className: "sr-only", children: "Toggle Sidebar" })
8762
8762
  ]
8763
8763
  }
@@ -9365,7 +9365,7 @@ var React35 = __toESM(require("react"), 1);
9365
9365
 
9366
9366
  // src/carousel/CarouselControls.tsx
9367
9367
  var React30 = __toESM(require("react"), 1);
9368
- var import_lucide_react32 = require("lucide-react");
9368
+ var import_lucide_react31 = require("lucide-react");
9369
9369
 
9370
9370
  // src/carousel/CarouselContext.tsx
9371
9371
  var React29 = __toESM(require("react"), 1);
@@ -9404,7 +9404,7 @@ var CarouselPrevious = React30.forwardRef(
9404
9404
  goToPrevious();
9405
9405
  },
9406
9406
  ...props,
9407
- children: children ?? /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(import_lucide_react32.ChevronLeft, { className: "size-4" })
9407
+ children: children ?? /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(import_lucide_react31.ChevronLeft, { className: "size-4" })
9408
9408
  }
9409
9409
  );
9410
9410
  }
@@ -9434,7 +9434,7 @@ var CarouselNext = React30.forwardRef(
9434
9434
  goToNext();
9435
9435
  },
9436
9436
  ...props,
9437
- children: children ?? /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(import_lucide_react32.ChevronRight, { className: "size-4" })
9437
+ children: children ?? /* @__PURE__ */ (0, import_jsx_runtime108.jsx)(import_lucide_react31.ChevronRight, { className: "size-4" })
9438
9438
  }
9439
9439
  );
9440
9440
  }
@@ -9611,7 +9611,7 @@ Slider.displayName = SliderPrimitive.Root.displayName;
9611
9611
 
9612
9612
  // src/small-grid-single-item/SmallGridSingleItem.tsx
9613
9613
  var import_react74 = require("react");
9614
- var import_lucide_react33 = require("lucide-react");
9614
+ var import_lucide_react32 = require("lucide-react");
9615
9615
  var import_react_i18next17 = require("react-i18next");
9616
9616
  var import_jsx_runtime115 = require("react/jsx-runtime");
9617
9617
  var SmallGridSingleItem = (0, import_react74.memo)(
@@ -9662,7 +9662,7 @@ var SmallGridSingleItem = (0, import_react74.memo)(
9662
9662
  className: "size-8",
9663
9663
  size: "icon",
9664
9664
  variant: "outline",
9665
- children: /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(import_lucide_react33.Trash2, { className: "h-5 w-5 text-[var(--chekin-color-brand-red)]" })
9665
+ children: /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(import_lucide_react32.Trash2, { className: "h-5 w-5 text-[var(--chekin-color-brand-red)]" })
9666
9666
  }
9667
9667
  ),
9668
9668
  onEdit && /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(
@@ -9673,7 +9673,7 @@ var SmallGridSingleItem = (0, import_react74.memo)(
9673
9673
  disabled,
9674
9674
  onClick: onEdit,
9675
9675
  variant: "outline",
9676
- children: /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(import_lucide_react33.Pencil, { className: "h-5 w-5 text-[var(--chekin-color-brand-blue)]" })
9676
+ children: /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(import_lucide_react32.Pencil, { className: "h-5 w-5 text-[var(--chekin-color-brand-blue)]" })
9677
9677
  }
9678
9678
  )
9679
9679
  ] })
@@ -9698,7 +9698,7 @@ SmallGridSingleItem.displayName = "SmallGridSingleItem";
9698
9698
 
9699
9699
  // src/sorting-action/SortingAction.tsx
9700
9700
  var import_react_i18next18 = require("react-i18next");
9701
- var import_lucide_react34 = require("lucide-react");
9701
+ var import_lucide_react33 = require("lucide-react");
9702
9702
  var import_jsx_runtime116 = require("react/jsx-runtime");
9703
9703
  function SortingAction({
9704
9704
  value,
@@ -9719,7 +9719,7 @@ function SortingAction({
9719
9719
  className
9720
9720
  ),
9721
9721
  "aria-label": "Open sorting menu",
9722
- children: /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(import_lucide_react34.ArrowDownUpIcon, { className: "h-4 w-4 text-[var(--chekin-color-gray-1)] group-hover/trigger:text-[var(--chekin-color-brand-navy)]" })
9722
+ children: /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(import_lucide_react33.ArrowDownUpIcon, { className: "h-4 w-4 text-[var(--chekin-color-gray-1)] group-hover/trigger:text-[var(--chekin-color-brand-navy)]" })
9723
9723
  }
9724
9724
  ) }),
9725
9725
  /* @__PURE__ */ (0, import_jsx_runtime116.jsxs)(DropdownMenuContent, { className: "w-full max-w-[256px]", align: "start", children: [
@@ -9730,7 +9730,7 @@ function SortingAction({
9730
9730
  className: cn(value === "asc" && "text-[var(--chekin-color-brand-blue)]"),
9731
9731
  onClick: () => onSortChange?.("asc"),
9732
9732
  children: [
9733
- /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(import_lucide_react34.ArrowUp, { className: "h-4 w-4" }),
9733
+ /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(import_lucide_react33.ArrowUp, { className: "h-4 w-4" }),
9734
9734
  variant === "by_text" ? t("sort_a_z") : t("sort_in_asc")
9735
9735
  ]
9736
9736
  }
@@ -9742,13 +9742,13 @@ function SortingAction({
9742
9742
  className: cn(value === "desc" && "text-[var(--chekin-color-brand-blue)]"),
9743
9743
  onClick: () => onSortChange?.("desc"),
9744
9744
  children: [
9745
- /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(import_lucide_react34.ArrowDown, { className: "h-4 w-4" }),
9745
+ /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(import_lucide_react33.ArrowDown, { className: "h-4 w-4" }),
9746
9746
  variant === "by_text" ? t("sort_z_a") : t("sort_in_desc")
9747
9747
  ]
9748
9748
  }
9749
9749
  ),
9750
9750
  value && /* @__PURE__ */ (0, import_jsx_runtime116.jsxs)(DropdownMenuItem, { onClick: () => onSortChange?.(null), children: [
9751
- /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(import_lucide_react34.Minus, { className: "h-4 w-4" }),
9751
+ /* @__PURE__ */ (0, import_jsx_runtime116.jsx)(import_lucide_react33.Minus, { className: "h-4 w-4" }),
9752
9752
  t("clear_sorting")
9753
9753
  ] })
9754
9754
  ] })
@@ -9758,7 +9758,7 @@ function SortingAction({
9758
9758
  // src/status-button/StatusButton.tsx
9759
9759
  var import_react75 = require("react");
9760
9760
  var import_react_i18next19 = require("react-i18next");
9761
- var import_lucide_react35 = require("lucide-react");
9761
+ var import_lucide_react34 = require("lucide-react");
9762
9762
  var import_jsx_runtime117 = require("react/jsx-runtime");
9763
9763
  function StatusButton({
9764
9764
  hidden,
@@ -9777,7 +9777,7 @@ function StatusButton({
9777
9777
  const configMap = (0, import_react75.useMemo)(() => {
9778
9778
  const defaultLoadingConfig = {
9779
9779
  text: loadingText ?? `${t("saving")}...`,
9780
- icon: /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(import_lucide_react35.Loader2, { className: "h-4 w-4 animate-spin" }),
9780
+ icon: /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(import_lucide_react34.Loader2, { className: "h-4 w-4 animate-spin" }),
9781
9781
  variant,
9782
9782
  isLoading: true
9783
9783
  };
@@ -9787,13 +9787,13 @@ function StatusButton({
9787
9787
  validating: { ...defaultLoadingConfig, text: t("validating") },
9788
9788
  error: {
9789
9789
  text: t("error"),
9790
- icon: /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(import_lucide_react35.AlertCircle, { className: "h-4 w-4" }),
9790
+ icon: /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(import_lucide_react34.AlertCircle, { className: "h-4 w-4" }),
9791
9791
  variant: "destructive",
9792
9792
  isLoading: false
9793
9793
  },
9794
9794
  success: {
9795
9795
  text: successText ?? t("saved_exclamation"),
9796
- icon: /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(import_lucide_react35.CheckCircle, { className: "h-4 w-4" }),
9796
+ icon: /* @__PURE__ */ (0, import_jsx_runtime117.jsx)(import_lucide_react34.CheckCircle, { className: "h-4 w-4" }),
9797
9797
  variant,
9798
9798
  isLoading: false
9799
9799
  },
@@ -9832,12 +9832,12 @@ function StatusButton({
9832
9832
  }
9833
9833
 
9834
9834
  // src/status-box/StatusBox.tsx
9835
- var import_lucide_react36 = require("lucide-react");
9835
+ var import_lucide_react35 = require("lucide-react");
9836
9836
  var import_jsx_runtime118 = require("react/jsx-runtime");
9837
9837
  function StatusBox({ status, title, text }) {
9838
9838
  if (status === "success") {
9839
9839
  return /* @__PURE__ */ (0, import_jsx_runtime118.jsxs)("div", { className: "flex items-center gap-3 rounded-lg border border-green-100 bg-green-50 p-4", children: [
9840
- /* @__PURE__ */ (0, import_jsx_runtime118.jsx)("div", { className: "rounded-full bg-green-100 p-1", children: /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(import_lucide_react36.CheckIcon, { className: "h-5 w-5 text-green-600" }) }),
9840
+ /* @__PURE__ */ (0, import_jsx_runtime118.jsx)("div", { className: "rounded-full bg-green-100 p-1", children: /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(import_lucide_react35.CheckIcon, { className: "h-5 w-5 text-green-600" }) }),
9841
9841
  /* @__PURE__ */ (0, import_jsx_runtime118.jsxs)("div", { children: [
9842
9842
  /* @__PURE__ */ (0, import_jsx_runtime118.jsx)("p", { className: "font-semibold text-green-800", children: title }),
9843
9843
  /* @__PURE__ */ (0, import_jsx_runtime118.jsx)("p", { className: "text-sm text-green-700", children: text })
@@ -9846,7 +9846,7 @@ function StatusBox({ status, title, text }) {
9846
9846
  }
9847
9847
  if (status === "failed") {
9848
9848
  return /* @__PURE__ */ (0, import_jsx_runtime118.jsxs)("div", { className: "flex items-center gap-3 rounded-lg border border-red-100 bg-red-50 p-4", children: [
9849
- /* @__PURE__ */ (0, import_jsx_runtime118.jsx)("div", { className: "rounded-full bg-red-100 p-1", children: /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(import_lucide_react36.XIcon, { className: "h-5 w-5 text-red-600" }) }),
9849
+ /* @__PURE__ */ (0, import_jsx_runtime118.jsx)("div", { className: "rounded-full bg-red-100 p-1", children: /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(import_lucide_react35.XIcon, { className: "h-5 w-5 text-red-600" }) }),
9850
9850
  /* @__PURE__ */ (0, import_jsx_runtime118.jsxs)("div", { children: [
9851
9851
  /* @__PURE__ */ (0, import_jsx_runtime118.jsx)("p", { className: "font-semibold text-red-800", children: title }),
9852
9852
  /* @__PURE__ */ (0, import_jsx_runtime118.jsx)("p", { className: "text-sm text-red-700", children: text })
@@ -9854,7 +9854,7 @@ function StatusBox({ status, title, text }) {
9854
9854
  ] });
9855
9855
  }
9856
9856
  return /* @__PURE__ */ (0, import_jsx_runtime118.jsxs)("div", { className: "flex items-center gap-3 rounded-lg border border-amber-100 bg-amber-50 p-4", children: [
9857
- /* @__PURE__ */ (0, import_jsx_runtime118.jsx)("div", { className: "rounded-full bg-amber-100 p-1", children: /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(import_lucide_react36.AlertTriangleIcon, { className: "h-5 w-5 text-amber-600" }) }),
9857
+ /* @__PURE__ */ (0, import_jsx_runtime118.jsx)("div", { className: "rounded-full bg-amber-100 p-1", children: /* @__PURE__ */ (0, import_jsx_runtime118.jsx)(import_lucide_react35.AlertTriangleIcon, { className: "h-5 w-5 text-amber-600" }) }),
9858
9858
  /* @__PURE__ */ (0, import_jsx_runtime118.jsxs)("div", { children: [
9859
9859
  /* @__PURE__ */ (0, import_jsx_runtime118.jsx)("p", { className: "font-semibold text-amber-800", children: title }),
9860
9860
  /* @__PURE__ */ (0, import_jsx_runtime118.jsx)("p", { className: "text-sm text-amber-700", children: text })
@@ -10114,7 +10114,7 @@ function TabbedSection({
10114
10114
  }
10115
10115
 
10116
10116
  // src/table-filter/TableFilter.tsx
10117
- var import_lucide_react37 = require("lucide-react");
10117
+ var import_lucide_react36 = require("lucide-react");
10118
10118
  var import_jsx_runtime124 = require("react/jsx-runtime");
10119
10119
  function TableFilter({ onRemove, onClick, children, className }) {
10120
10120
  return /* @__PURE__ */ (0, import_jsx_runtime124.jsxs)(
@@ -10130,7 +10130,7 @@ function TableFilter({ onRemove, onClick, children, className }) {
10130
10130
  children: [
10131
10131
  children,
10132
10132
  /* @__PURE__ */ (0, import_jsx_runtime124.jsx)(
10133
- import_lucide_react37.SquareX,
10133
+ import_lucide_react36.SquareX,
10134
10134
  {
10135
10135
  onClick: onRemove,
10136
10136
  size: 15,
@@ -10688,7 +10688,7 @@ function ThreeDotsLoader({
10688
10688
  }
10689
10689
 
10690
10690
  // src/uploaded-files-list/UploadedFilesList.tsx
10691
- var import_lucide_react38 = require("lucide-react");
10691
+ var import_lucide_react37 = require("lucide-react");
10692
10692
  var import_jsx_runtime132 = require("react/jsx-runtime");
10693
10693
  function UploadedFilesList({
10694
10694
  files,
@@ -10711,7 +10711,7 @@ function UploadedFilesList({
10711
10711
  onClick: () => onRemoveFile(file.name),
10712
10712
  className: "flex h-[18px] w-[18px] shrink-0 cursor-pointer items-center justify-center rounded bg-[#6b6b95] transition-all hover:shadow-md active:opacity-95",
10713
10713
  "aria-label": `Remove ${file.name}`,
10714
- children: /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(import_lucide_react38.X, { className: "h-3.5 w-3.5 text-white", strokeWidth: 3 })
10714
+ children: /* @__PURE__ */ (0, import_jsx_runtime132.jsx)(import_lucide_react37.X, { className: "h-3.5 w-3.5 text-white", strokeWidth: 3 })
10715
10715
  }
10716
10716
  )
10717
10717
  ]
@@ -10816,7 +10816,7 @@ function VerticalTabs({
10816
10816
  }
10817
10817
 
10818
10818
  // src/video-modal/VideoModal.tsx
10819
- var import_lucide_react39 = require("lucide-react");
10819
+ var import_lucide_react38 = require("lucide-react");
10820
10820
  var React40 = __toESM(require("react"), 1);
10821
10821
  var import_jsx_runtime134 = require("react/jsx-runtime");
10822
10822
  function VideoModal({
@@ -10870,7 +10870,7 @@ function VideoModal({
10870
10870
  "max-sm:right-2 max-sm:top-2"
10871
10871
  ),
10872
10872
  "aria-label": "Close",
10873
- children: /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_lucide_react39.X, { className: "h-5 w-5", "aria-hidden": true })
10873
+ children: /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(import_lucide_react38.X, { className: "h-5 w-5", "aria-hidden": true })
10874
10874
  }
10875
10875
  ),
10876
10876
  /* @__PURE__ */ (0, import_jsx_runtime134.jsx)("div", { className: "relative w-full overflow-hidden", children: /* @__PURE__ */ (0, import_jsx_runtime134.jsx)(
@@ -10894,7 +10894,7 @@ function VideoModal({
10894
10894
  // src/video-player/VideoPlayer.tsx
10895
10895
  var import_react82 = require("react");
10896
10896
  var import_react_i18next21 = require("react-i18next");
10897
- var import_lucide_react40 = require("lucide-react");
10897
+ var import_lucide_react39 = require("lucide-react");
10898
10898
  var import_jsx_runtime135 = require("react/jsx-runtime");
10899
10899
  function VideoPlayer({
10900
10900
  src,
@@ -11061,12 +11061,12 @@ function VideoPlayer({
11061
11061
  onClick: onClose,
11062
11062
  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",
11063
11063
  "aria-label": t("close"),
11064
- children: /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_lucide_react40.X, { className: "h-6 w-6" })
11064
+ children: /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_lucide_react39.X, { className: "h-6 w-6" })
11065
11065
  }
11066
11066
  ),
11067
11067
  title && isFullScreenMode && /* @__PURE__ */ (0, import_jsx_runtime135.jsx)("div", { className: "absolute left-4 top-4 z-10 animate-in slide-in-from-left-4 text-white delay-200 duration-500", children: /* @__PURE__ */ (0, import_jsx_runtime135.jsx)("h3", { className: "text-lg font-medium drop-shadow-lg", children: title }) }),
11068
11068
  isLoading && /* @__PURE__ */ (0, import_jsx_runtime135.jsx)("div", { className: "absolute inset-0 z-20 flex items-center justify-center bg-black/50", children: /* @__PURE__ */ (0, import_jsx_runtime135.jsxs)("div", { className: "flex items-center gap-3 text-white", children: [
11069
- /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_lucide_react40.Loader2, { className: "h-8 w-8 animate-spin" }),
11069
+ /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_lucide_react39.Loader2, { className: "h-8 w-8 animate-spin" }),
11070
11070
  /* @__PURE__ */ (0, import_jsx_runtime135.jsx)("span", { className: "text-lg font-medium", children: t("loading_video") })
11071
11071
  ] }) }),
11072
11072
  /* @__PURE__ */ (0, import_jsx_runtime135.jsx)("div", { className: videoContainerClasses, onClick: (event) => event.stopPropagation(), children: videoSource === "youtube" ? /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(
@@ -11133,7 +11133,7 @@ function VideoPlayer({
11133
11133
  onClick: togglePlay,
11134
11134
  className: "h-10 w-10 rounded-full text-white transition-all duration-200 hover:scale-110 hover:bg-white/20 active:scale-95",
11135
11135
  "aria-label": isPlaying ? t("pause") : t("play"),
11136
- children: isPlaying ? /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_lucide_react40.Pause, { className: "h-5 w-5" }) : /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_lucide_react40.Play, { className: "h-5 w-5" })
11136
+ children: isPlaying ? /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_lucide_react39.Pause, { className: "h-5 w-5" }) : /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_lucide_react39.Play, { className: "h-5 w-5" })
11137
11137
  }
11138
11138
  ),
11139
11139
  /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(
@@ -11144,7 +11144,7 @@ function VideoPlayer({
11144
11144
  onClick: skipBackward,
11145
11145
  className: "h-10 w-10 rounded-full text-white transition-all duration-200 hover:scale-110 hover:bg-white/20 active:scale-95",
11146
11146
  "aria-label": t("skip_backward"),
11147
- children: /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_lucide_react40.SkipBack, { className: "h-5 w-5" })
11147
+ children: /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_lucide_react39.SkipBack, { className: "h-5 w-5" })
11148
11148
  }
11149
11149
  ),
11150
11150
  /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(
@@ -11155,7 +11155,7 @@ function VideoPlayer({
11155
11155
  onClick: skipForward,
11156
11156
  className: "h-10 w-10 rounded-full text-white transition-all duration-200 hover:scale-110 hover:bg-white/20 active:scale-95",
11157
11157
  "aria-label": t("skip_forward"),
11158
- children: /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_lucide_react40.SkipForward, { className: "h-5 w-5" })
11158
+ children: /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_lucide_react39.SkipForward, { className: "h-5 w-5" })
11159
11159
  }
11160
11160
  ),
11161
11161
  /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(
@@ -11166,7 +11166,7 @@ function VideoPlayer({
11166
11166
  onClick: toggleMute,
11167
11167
  className: "h-10 w-10 rounded-full text-white transition-all duration-200 hover:scale-110 hover:bg-white/20 active:scale-95",
11168
11168
  "aria-label": isMuted ? t("unmute") : t("mute"),
11169
- children: isMuted ? /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_lucide_react40.VolumeX, { className: "h-5 w-5" }) : /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_lucide_react40.Volume2, { className: "h-5 w-5" })
11169
+ children: isMuted ? /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_lucide_react39.VolumeX, { className: "h-5 w-5" }) : /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_lucide_react39.Volume2, { className: "h-5 w-5" })
11170
11170
  }
11171
11171
  ),
11172
11172
  /* @__PURE__ */ (0, import_jsx_runtime135.jsxs)("span", { className: "text-sm font-medium text-white/90", children: [
@@ -11183,7 +11183,7 @@ function VideoPlayer({
11183
11183
  onClick: toggleFullScreen,
11184
11184
  className: "h-10 w-10 rounded-full text-white transition-all duration-200 hover:scale-110 hover:bg-white/20 active:scale-95",
11185
11185
  "aria-label": isFullScreenMode ? t("exit_full_screen") : t("enter_full_screen"),
11186
- children: isFullScreenMode ? /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_lucide_react40.Minimize, { className: "h-5 w-5" }) : /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_lucide_react40.Maximize, { className: "h-5 w-5" })
11186
+ children: isFullScreenMode ? /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_lucide_react39.Minimize, { className: "h-5 w-5" }) : /* @__PURE__ */ (0, import_jsx_runtime135.jsx)(import_lucide_react39.Maximize, { className: "h-5 w-5" })
11187
11187
  }
11188
11188
  )
11189
11189
  ] })
@@ -11687,7 +11687,7 @@ var Webcam = (0, import_react84.memo)(
11687
11687
  Webcam.displayName = "Webcam";
11688
11688
 
11689
11689
  // src/mobile-webcam/MobileWebcam.tsx
11690
- var import_lucide_react41 = require("lucide-react");
11690
+ var import_lucide_react40 = require("lucide-react");
11691
11691
  var import_react86 = require("react");
11692
11692
  var import_react_dom = require("react-dom");
11693
11693
  var import_react_i18next24 = require("react-i18next");
@@ -11758,7 +11758,7 @@ var MobileWebcam = (0, import_react86.forwardRef)(
11758
11758
  type: "button",
11759
11759
  onClick: onBack,
11760
11760
  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]",
11761
- children: /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(import_lucide_react41.ChevronLeft, { size: 32, strokeWidth: 3, className: "text-white" })
11761
+ children: /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(import_lucide_react40.ChevronLeft, { size: 32, strokeWidth: 3, className: "text-white" })
11762
11762
  }
11763
11763
  ),
11764
11764
  title && /* @__PURE__ */ (0, import_jsx_runtime138.jsx)("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 }),
@@ -11783,7 +11783,7 @@ var MobileWebcam = (0, import_react86.forwardRef)(
11783
11783
  disabled,
11784
11784
  onClick: () => onScreenshot({ isNative: false }),
11785
11785
  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",
11786
- children: /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(import_lucide_react41.Camera, { size: 26, className: "text-[var(--primary)]" })
11786
+ children: /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(import_lucide_react40.Camera, { size: 26, className: "text-[var(--primary)]" })
11787
11787
  }
11788
11788
  ),
11789
11789
  /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(
@@ -12221,7 +12221,7 @@ function ResponsiveDropdown({
12221
12221
 
12222
12222
  // src/dashboard/input/Input.tsx
12223
12223
  var React44 = __toESM(require("react"), 1);
12224
- var import_lucide_react42 = require("lucide-react");
12224
+ var import_lucide_react41 = require("lucide-react");
12225
12225
  var import_react_i18next25 = require("react-i18next");
12226
12226
 
12227
12227
  // src/dashboard/input/useInputValueState.ts
@@ -12514,7 +12514,11 @@ var Input = React44.forwardRef(
12514
12514
  /* @__PURE__ */ (0, import_jsx_runtime144.jsxs)(
12515
12515
  "div",
12516
12516
  {
12517
- className: cn("input__content relative w-full cursor-text", contentClassName),
12517
+ className: cn(
12518
+ "input__content relative w-full cursor-text",
12519
+ readOnly && !disabled && !loading && "cursor-default",
12520
+ contentClassName
12521
+ ),
12518
12522
  children: [
12519
12523
  /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(
12520
12524
  Fieldset,
@@ -12569,7 +12573,8 @@ var Input = React44.forwardRef(
12569
12573
  isEmpty && !isFocused ? "bg-[var(--empty-field-background)]" : "bg-transparent",
12570
12574
  isEmpty && "text-[var(--chekin-color-gray-1)]",
12571
12575
  inputType === "password" && "[&:not(:placeholder-shown)]:font-bold [&:not(:placeholder-shown)]:tracking-[2px]",
12572
- (disabled || readOnly) && "cursor-not-allowed",
12576
+ disabled && "cursor-not-allowed",
12577
+ readOnly && !disabled && !loading && "cursor-default",
12573
12578
  loading && "cursor-progress",
12574
12579
  leftIcon && "pl-10",
12575
12580
  (showRightPaddingForReset || showRightPaddingForReveal) && "pr-10",
@@ -12588,7 +12593,7 @@ var Input = React44.forwardRef(
12588
12593
  disabled,
12589
12594
  className: "input__reset-button absolute right-0 top-0 flex h-full w-10 items-center justify-center border-0 bg-transparent p-0 text-[#9696b9] hover:opacity-80 disabled:cursor-not-allowed disabled:opacity-50",
12590
12595
  "aria-label": t("reset"),
12591
- children: /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(import_lucide_react42.X, { size: 14 })
12596
+ children: /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(import_lucide_react41.X, { size: 14 })
12592
12597
  }
12593
12598
  ),
12594
12599
  isPasswordReveal && /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(
@@ -12599,7 +12604,7 @@ var Input = React44.forwardRef(
12599
12604
  className: "input__password-button absolute right-[14px] top-[18px] flex h-[13px] w-[21px] cursor-pointer items-center justify-center border-0 bg-transparent p-0 hover:opacity-85",
12600
12605
  "aria-label": isPasswordRevealed ? t("hide_password") : t("show_password"),
12601
12606
  children: /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(
12602
- import_lucide_react42.Eye,
12607
+ import_lucide_react41.Eye,
12603
12608
  {
12604
12609
  size: 20,
12605
12610
  className: cn(
@@ -12621,7 +12626,7 @@ var Input = React44.forwardRef(
12621
12626
  onClick: onDecrement,
12622
12627
  className: "input__decrement-button mr-2 inline-flex h-[23px] w-8 cursor-pointer items-center justify-center rounded-[3px] border-0 bg-[var(--chekin-color-brand-blue)] p-0 text-[20px] font-bold text-white outline-none hover:opacity-90 active:opacity-100",
12623
12628
  "aria-label": t("decrement"),
12624
- children: /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(import_lucide_react42.Minus, { size: 16, strokeWidth: 3, "aria-hidden": true })
12629
+ children: /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(import_lucide_react41.Minus, { size: 16, strokeWidth: 3, "aria-hidden": true })
12625
12630
  }
12626
12631
  ),
12627
12632
  /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(
@@ -12631,7 +12636,7 @@ var Input = React44.forwardRef(
12631
12636
  onClick: onIncrement,
12632
12637
  className: "input__increment-button inline-flex h-[23px] w-8 cursor-pointer items-center justify-center rounded-[3px] border-0 bg-[var(--chekin-color-brand-blue)] p-0 text-[20px] font-bold text-white outline-none hover:opacity-90 active:opacity-100",
12633
12638
  "aria-label": t("increment"),
12634
- children: /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(import_lucide_react42.Plus, { size: 16, strokeWidth: 3, "aria-hidden": true })
12639
+ children: /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(import_lucide_react41.Plus, { size: 16, strokeWidth: 3, "aria-hidden": true })
12635
12640
  }
12636
12641
  )
12637
12642
  ] })
@@ -12835,7 +12840,7 @@ function countriesFilter(option, inputValue) {
12835
12840
  }
12836
12841
 
12837
12842
  // src/dashboard/_select-internals/slots/DefaultOption.tsx
12838
- var import_lucide_react43 = require("lucide-react");
12843
+ var import_lucide_react42 = require("lucide-react");
12839
12844
  var import_jsx_runtime146 = require("react/jsx-runtime");
12840
12845
  function DefaultOption(props) {
12841
12846
  const {
@@ -12882,7 +12887,7 @@ function DefaultOption(props) {
12882
12887
  /* @__PURE__ */ (0, import_jsx_runtime146.jsx)("span", { className: "block min-w-0 break-words", children: labelContent }),
12883
12888
  option.description && /* @__PURE__ */ (0, import_jsx_runtime146.jsx)("span", { className: "ml-auto shrink-0 self-center text-[12px] font-medium italic text-[var(--chekin-color-gray-1)]", children: option.description }),
12884
12889
  isSelected && /* @__PURE__ */ (0, import_jsx_runtime146.jsx)(
12885
- import_lucide_react43.Check,
12890
+ import_lucide_react42.Check,
12886
12891
  {
12887
12892
  "aria-hidden": "true",
12888
12893
  className: cn(
@@ -13135,7 +13140,7 @@ function SelectMenuPanel({
13135
13140
  }
13136
13141
 
13137
13142
  // src/dashboard/_select-internals/SelectSearchInput.tsx
13138
- var import_lucide_react44 = require("lucide-react");
13143
+ var import_lucide_react43 = require("lucide-react");
13139
13144
  var import_jsx_runtime149 = require("react/jsx-runtime");
13140
13145
  function SelectSearchInput({
13141
13146
  inputRef,
@@ -13148,7 +13153,7 @@ function SelectSearchInput({
13148
13153
  }) {
13149
13154
  return /* @__PURE__ */ (0, import_jsx_runtime149.jsx)("div", { className: "border-b border-[var(--chekin-color-gray-3)] bg-white p-2", children: /* @__PURE__ */ (0, import_jsx_runtime149.jsxs)("div", { className: "relative", children: [
13150
13155
  /* @__PURE__ */ (0, import_jsx_runtime149.jsx)(
13151
- import_lucide_react44.Search,
13156
+ import_lucide_react43.Search,
13152
13157
  {
13153
13158
  "aria-hidden": "true",
13154
13159
  className: "pointer-events-none absolute left-2.5 top-1/2 h-4 w-4 -translate-y-1/2 text-[var(--chekin-color-gray-2)]"
@@ -13173,7 +13178,7 @@ function SelectSearchInput({
13173
13178
  }
13174
13179
 
13175
13180
  // src/dashboard/_select-internals/SelectTrigger.tsx
13176
- var import_lucide_react45 = require("lucide-react");
13181
+ var import_lucide_react44 = require("lucide-react");
13177
13182
  var import_jsx_runtime150 = require("react/jsx-runtime");
13178
13183
  function SelectTrigger({
13179
13184
  triggerRef,
@@ -13232,7 +13237,7 @@ function SelectTrigger({
13232
13237
  leftIcon && /* @__PURE__ */ (0, import_jsx_runtime150.jsx)("span", { className: "pointer-events-none absolute left-0 top-0 flex h-full max-w-10 items-center justify-center text-[var(--chekin-color-gray-2)]", children: /* @__PURE__ */ (0, import_jsx_runtime150.jsx)("span", { className: "flex h-full w-10 items-center justify-center", children: leftIcon }) }),
13233
13238
  /* @__PURE__ */ (0, import_jsx_runtime150.jsx)("span", { id: valueId, className: "block min-w-0 flex-1 truncate text-left", children: hasValue ? valueLabel : showPlaceholderWhenIdle || isOpen ? placeholder : null }),
13234
13239
  /* @__PURE__ */ (0, import_jsx_runtime150.jsx)("span", { className: "flex items-center gap-2 text-[var(--chekin-color-gray-2)]", children: !hideIndicator && /* @__PURE__ */ (0, import_jsx_runtime150.jsx)(
13235
- import_lucide_react45.ChevronDown,
13240
+ import_lucide_react44.ChevronDown,
13236
13241
  {
13237
13242
  size: 16,
13238
13243
  className: cn(
@@ -13247,7 +13252,7 @@ function SelectTrigger({
13247
13252
  }
13248
13253
 
13249
13254
  // src/dashboard/_select-internals/ComboboxTrigger.tsx
13250
- var import_lucide_react46 = require("lucide-react");
13255
+ var import_lucide_react45 = require("lucide-react");
13251
13256
  var import_react_i18next29 = require("react-i18next");
13252
13257
  var import_jsx_runtime151 = require("react/jsx-runtime");
13253
13258
  function ComboboxTrigger({
@@ -13387,7 +13392,7 @@ function ComboboxTrigger({
13387
13392
  onClick: onClear,
13388
13393
  className: "flex h-5 w-5 items-center justify-center rounded-[3px] border-0 bg-transparent p-0 text-[#9696b9] hover:shadow-[0_3px_3px_#0f477734]",
13389
13394
  "aria-label": clearLabel,
13390
- children: /* @__PURE__ */ (0, import_jsx_runtime151.jsx)(import_lucide_react46.SquareX, { size: 15, fill: "#9696b9", color: "#f8f8f8", strokeWidth: 1.8 })
13395
+ children: /* @__PURE__ */ (0, import_jsx_runtime151.jsx)(import_lucide_react45.SquareX, { size: 15, fill: "#9696b9", color: "#f8f8f8", strokeWidth: 1.8 })
13391
13396
  }
13392
13397
  ),
13393
13398
  !hideIndicator && /* @__PURE__ */ (0, import_jsx_runtime151.jsx)(
@@ -13586,7 +13591,21 @@ function useSelectState(params) {
13586
13591
  );
13587
13592
  return !existsInOptions && !existsInSelected;
13588
13593
  }, [isCreatable, trimmedInput, isValidNewOption, options, selectedOptions]);
13594
+ const sssDebugHighlightCount = React48.useRef(0);
13589
13595
  React48.useEffect(() => {
13596
+ sssDebugHighlightCount.current += 1;
13597
+ console.log(
13598
+ `[SC-debug] highlight effect run #${sssDebugHighlightCount.current}`,
13599
+ {
13600
+ isOpen,
13601
+ filteredOptionsLength: filteredOptions.length,
13602
+ isOptionDisabledStable: typeof isOptionDisabled
13603
+ }
13604
+ );
13605
+ if (sssDebugHighlightCount.current === 30) {
13606
+ console.warn("[SC-debug] highlight effect ran 30x \u2014 opening debugger");
13607
+ debugger;
13608
+ }
13590
13609
  if (!isOpen || filteredOptions.length === 0) {
13591
13610
  setHighlightedIndex(-1);
13592
13611
  return;
@@ -13614,6 +13633,11 @@ function useSelectState(params) {
13614
13633
  );
13615
13634
  const selectOption = React48.useCallback(
13616
13635
  (option) => {
13636
+ console.log("[SC-debug] selectOption called", {
13637
+ value: option.value,
13638
+ isMulti,
13639
+ currentSelectedCount: selectedOptions.length
13640
+ });
13617
13641
  if (!isOptionEnabled(option, isOptionDisabled)) return;
13618
13642
  if (isMulti) {
13619
13643
  const exists = isValueSelected(option);
@@ -13877,7 +13901,7 @@ function useSelectState(params) {
13877
13901
  }
13878
13902
 
13879
13903
  // src/dashboard/_select-internals/slots/DefaultMultiValueChip.tsx
13880
- var import_lucide_react47 = require("lucide-react");
13904
+ var import_lucide_react46 = require("lucide-react");
13881
13905
  var import_react_i18next30 = require("react-i18next");
13882
13906
  var import_jsx_runtime152 = require("react/jsx-runtime");
13883
13907
  function DefaultMultiValueChip({
@@ -13899,7 +13923,7 @@ function DefaultMultiValueChip({
13899
13923
  },
13900
13924
  className: "flex h-4 w-4 items-center justify-center rounded-sm border-0 bg-transparent p-0 text-[var(--chekin-color-gray-1)] outline-none transition-colors hover:bg-white/70 hover:text-[var(--chekin-color-brand-navy)] focus-visible:ring-2 focus-visible:ring-[var(--chekin-color-brand-blue)]/30",
13901
13925
  "aria-label": t("remove_item", { label: labelText }),
13902
- children: /* @__PURE__ */ (0, import_jsx_runtime152.jsx)(import_lucide_react47.X, { size: 12, strokeWidth: 2.5 })
13926
+ children: /* @__PURE__ */ (0, import_jsx_runtime152.jsx)(import_lucide_react46.X, { size: 12, strokeWidth: 2.5 })
13903
13927
  }
13904
13928
  )
13905
13929
  ] });
@@ -13999,7 +14023,7 @@ function DefaultControl(props) {
13999
14023
  }
14000
14024
 
14001
14025
  // src/dashboard/_select-internals/slots/StaticControl.tsx
14002
- var import_lucide_react48 = require("lucide-react");
14026
+ var import_lucide_react47 = require("lucide-react");
14003
14027
  var import_jsx_runtime154 = require("react/jsx-runtime");
14004
14028
  function StaticControl(props) {
14005
14029
  const {
@@ -14062,7 +14086,7 @@ function StaticControl(props) {
14062
14086
  onClick: onClear,
14063
14087
  className: "absolute right-9 top-1/2 flex h-5 w-5 -translate-y-1/2 items-center justify-center rounded-[3px] border-0 bg-transparent p-0 text-[#9696b9] hover:shadow-[0_3px_3px_#0f477734]",
14064
14088
  "aria-label": clearLabel,
14065
- children: /* @__PURE__ */ (0, import_jsx_runtime154.jsx)(import_lucide_react48.SquareX, { size: 15, fill: "#9696b9", color: "#f8f8f8", strokeWidth: 1.8 })
14089
+ children: /* @__PURE__ */ (0, import_jsx_runtime154.jsx)(import_lucide_react47.SquareX, { size: 15, fill: "#9696b9", color: "#f8f8f8", strokeWidth: 1.8 })
14066
14090
  }
14067
14091
  )
14068
14092
  ] });
@@ -15073,7 +15097,7 @@ var InfiniteScrollMultiSelect = React57.forwardRef(function InfiniteScrollMultiS
15073
15097
  });
15074
15098
 
15075
15099
  // src/dashboard/select-checkboxes/SelectCheckboxes.tsx
15076
- var React58 = __toESM(require("react"), 1);
15100
+ var React59 = __toESM(require("react"), 1);
15077
15101
  var import_react_i18next36 = require("react-i18next");
15078
15102
 
15079
15103
  // src/dashboard/select-checkboxes/SelectCheckboxOption.tsx
@@ -15131,12 +15155,22 @@ function SelectCheckboxOption(props) {
15131
15155
  }
15132
15156
 
15133
15157
  // src/dashboard/select-checkboxes/CountTrigger.tsx
15134
- var import_lucide_react49 = require("lucide-react");
15158
+ var React58 = __toESM(require("react"), 1);
15159
+ var import_lucide_react48 = require("lucide-react");
15135
15160
  var import_react_i18next35 = require("react-i18next");
15136
15161
  var import_jsx_runtime166 = require("react/jsx-runtime");
15137
15162
  function createCountTrigger(opts) {
15138
- const { valueText, totalCount } = opts;
15163
+ const { getValueText, getTotalCount } = opts;
15139
15164
  function CountTrigger(props) {
15165
+ const ctDebugRenderCount = React58.useRef(0);
15166
+ ctDebugRenderCount.current += 1;
15167
+ React58.useEffect(() => {
15168
+ console.log("[SC-debug] CountTrigger MOUNTED");
15169
+ return () => {
15170
+ console.log("[SC-debug] CountTrigger UNMOUNTED");
15171
+ };
15172
+ }, []);
15173
+ console.log(`[SC-debug] CountTrigger render #${ctDebugRenderCount.current}`);
15140
15174
  const { t } = (0, import_react_i18next35.useTranslation)();
15141
15175
  const {
15142
15176
  triggerId,
@@ -15156,6 +15190,8 @@ function createCountTrigger(opts) {
15156
15190
  onTriggerFocus,
15157
15191
  leftIcon
15158
15192
  } = props;
15193
+ const valueText = getValueText();
15194
+ const totalCount = getTotalCount();
15159
15195
  const count = selectedOptions.length;
15160
15196
  const total = totalCount ?? count;
15161
15197
  const computedText = typeof valueText === "function" ? valueText(count, total) : valueText ?? (count > 0 ? t("n_selected", { count, defaultValue: `${count} selected` }) : "");
@@ -15187,7 +15223,7 @@ function createCountTrigger(opts) {
15187
15223
  leftIcon && /* @__PURE__ */ (0, import_jsx_runtime166.jsx)("span", { className: "pointer-events-none absolute left-0 top-0 flex h-full max-w-10 items-center justify-center text-[var(--chekin-color-gray-2)]", children: /* @__PURE__ */ (0, import_jsx_runtime166.jsx)("span", { className: "flex h-full w-10 items-center justify-center", children: leftIcon }) }),
15188
15224
  /* @__PURE__ */ (0, import_jsx_runtime166.jsx)("span", { id: valueId, className: "block min-w-0 flex-1 truncate text-left", children: display }),
15189
15225
  /* @__PURE__ */ (0, import_jsx_runtime166.jsx)("span", { className: "pointer-events-none flex items-center gap-2 text-[var(--chekin-color-gray-2)]", children: /* @__PURE__ */ (0, import_jsx_runtime166.jsx)(
15190
- import_lucide_react49.ChevronDown,
15226
+ import_lucide_react48.ChevronDown,
15191
15227
  {
15192
15228
  size: 16,
15193
15229
  className: cn(
@@ -15266,25 +15302,62 @@ function SelectCheckboxesInternal(props, ref) {
15266
15302
  const isPaginated = hasPaginationProps(
15267
15303
  paginationAndRest
15268
15304
  );
15269
- const [inputValue, setInputValue] = React58.useState("");
15305
+ const scDebugRenderCount = React59.useRef(0);
15306
+ const scDebugPrevPropsRef = React59.useRef({});
15307
+ scDebugRenderCount.current += 1;
15308
+ {
15309
+ const current = {
15310
+ value,
15311
+ defaultValue,
15312
+ onChange,
15313
+ trigger,
15314
+ userComponents,
15315
+ valueText,
15316
+ filterOption,
15317
+ rawOptions,
15318
+ onSearchChange
15319
+ };
15320
+ const prev = scDebugPrevPropsRef.current;
15321
+ const changed = [];
15322
+ for (const key of Object.keys(current)) {
15323
+ if (prev[key] !== current[key]) changed.push(key);
15324
+ }
15325
+ console.log(
15326
+ `[SC-debug] SelectCheckboxes render #${scDebugRenderCount.current}`,
15327
+ { changed, isPaginated, isControlled: value !== void 0 }
15328
+ );
15329
+ scDebugPrevPropsRef.current = current;
15330
+ if (scDebugRenderCount.current === 30) {
15331
+ console.warn(
15332
+ "[SC-debug] hit 30 renders of SelectCheckboxes \u2014 opening debugger"
15333
+ );
15334
+ debugger;
15335
+ }
15336
+ }
15337
+ const [inputValue, setInputValue] = React59.useState("");
15270
15338
  const isControlled = value !== void 0;
15271
- const [internalValue, setInternalValue] = React58.useState(
15339
+ const [internalValue, setInternalValue] = React59.useState(
15272
15340
  () => defaultValue ?? []
15273
15341
  );
15274
15342
  const currentValue = isControlled ? value : internalValue;
15275
- const selected = React58.useMemo(() => currentValue ?? [], [currentValue]);
15276
- const handleChange = React58.useCallback(
15343
+ const selected = React59.useMemo(() => currentValue ?? [], [currentValue]);
15344
+ const handleChange = React59.useCallback(
15277
15345
  (next, meta) => {
15346
+ console.log("[SC-debug] handleChange", {
15347
+ action: meta?.action,
15348
+ nextLength: next.length,
15349
+ isControlled
15350
+ });
15278
15351
  if (!isControlled) setInternalValue(next);
15279
15352
  onChange?.(next, meta);
15280
15353
  },
15281
15354
  [isControlled, onChange]
15282
15355
  );
15283
- const flatRawOptions = React58.useMemo(
15356
+ const flatRawOptions = React59.useMemo(
15284
15357
  () => flattenGroupedOptions(rawOptions),
15285
15358
  [rawOptions]
15286
15359
  );
15287
- const filteredGrouped = React58.useMemo(() => {
15360
+ const filteredGrouped = React59.useMemo(() => {
15288
15361
  const trimmed = inputValue.trim();
15289
15362
  if (!trimmed) return rawOptions;
15290
15363
  return rawOptions.map((item) => {
@@ -15295,7 +15368,7 @@ function SelectCheckboxesInternal(props, ref) {
15295
15368
  return filterOption(item, trimmed) ? item : null;
15296
15369
  }).filter((item) => item !== null);
15297
15370
  }, [rawOptions, inputValue, filterOption]);
15298
- const filteredFlat = React58.useMemo(
15371
+ const filteredFlat = React59.useMemo(
15299
15372
  () => flattenGroupedOptions(filteredGrouped),
15300
15373
  [filteredGrouped]
15301
15374
  );
@@ -15303,7 +15376,7 @@ function SelectCheckboxesInternal(props, ref) {
15303
15376
  return acc + (selected.some((s) => s.value === option.value) ? 1 : 0);
15304
15377
  }, 0);
15305
15378
  const allVisibleSelected = filteredFlat.length > 0 && visibleSelectedCount === filteredFlat.length;
15306
- const handleToggleAll = React58.useCallback(() => {
15379
+ const handleToggleAll = React59.useCallback(() => {
15307
15380
  if (allVisibleSelected) {
15308
15381
  const visibleValues = new Set(filteredFlat.map((option) => option.value));
15309
15382
  handleChange(
@@ -15318,14 +15391,19 @@ function SelectCheckboxesInternal(props, ref) {
15318
15391
  }
15319
15392
  handleChange(merged, { action: "select" });
15320
15393
  }, [allVisibleSelected, filteredFlat, handleChange, selected]);
15321
- const Control = React58.useMemo(() => {
15394
+ const valueTextRef = React59.useRef(valueText);
15395
+ const totalCountRef = React59.useRef(flatRawOptions.length);
15396
+ valueTextRef.current = valueText;
15397
+ totalCountRef.current = flatRawOptions.length;
15398
+ const Control = React59.useMemo(() => {
15399
+ console.log("[SC-debug] (re)creating Control component", { hasCustomTrigger: !!trigger });
15322
15400
  if (trigger) return makeTriggerSlot(trigger);
15323
15401
  return createCountTrigger({
15324
- valueText,
15325
- totalCount: flatRawOptions.length
15402
+ getValueText: () => valueTextRef.current,
15403
+ getTotalCount: () => totalCountRef.current
15326
15404
  });
15327
- }, [trigger, valueText, flatRawOptions.length]);
15328
- const components = React58.useMemo(
15405
+ }, [trigger]);
15406
+ const components = React59.useMemo(
15329
15407
  () => ({
15330
15408
  ...userComponents,
15331
15409
  Control,
@@ -15341,7 +15419,7 @@ function SelectCheckboxesInternal(props, ref) {
15341
15419
  onToggle: handleToggleAll
15342
15420
  }
15343
15421
  ) : void 0;
15344
- const handleInputChange = React58.useCallback(
15422
+ const handleInputChange = React59.useCallback(
15345
15423
  (next) => {
15346
15424
  setInputValue(next);
15347
15425
  onSearchChange?.(next);
@@ -15384,16 +15462,16 @@ function SelectCheckboxesInternal(props, ref) {
15384
15462
  }
15385
15463
  );
15386
15464
  }
15387
- var SelectCheckboxes = React58.forwardRef(
15465
+ var SelectCheckboxes = React59.forwardRef(
15388
15466
  SelectCheckboxesInternal
15389
15467
  );
15390
15468
 
15391
15469
  // src/dashboard/textarea/Textarea.tsx
15392
- var React60 = __toESM(require("react"), 1);
15470
+ var React61 = __toESM(require("react"), 1);
15393
15471
  var import_react_i18next37 = require("react-i18next");
15394
15472
 
15395
15473
  // src/dashboard/textarea/useTextareaValueState.ts
15396
- var React59 = __toESM(require("react"), 1);
15474
+ var React60 = __toESM(require("react"), 1);
15397
15475
  var isEmptyValue2 = (value) => {
15398
15476
  if (value === void 0 || value === null) return true;
15399
15477
  return String(value).length === 0;
@@ -15412,12 +15490,12 @@ function useTextareaValueState({
15412
15490
  value,
15413
15491
  defaultValue
15414
15492
  }) {
15415
- const textareaRef = React59.useRef(null);
15493
+ const textareaRef = React60.useRef(null);
15416
15494
  const isControlled = typeof empty !== "undefined" || typeof value !== "undefined";
15417
15495
  const propsAreEmpty = getTextareaEmptyState({ empty, value, defaultValue });
15418
- const [nativeIsEmpty, setNativeIsEmpty] = React59.useState(propsAreEmpty);
15496
+ const [nativeIsEmpty, setNativeIsEmpty] = React60.useState(propsAreEmpty);
15419
15497
  const isEmpty = isControlled ? propsAreEmpty : nativeIsEmpty;
15420
- const setNativeValue = React59.useCallback(
15498
+ const setNativeValue = React60.useCallback(
15421
15499
  (nextValue) => {
15422
15500
  if (isControlled) return;
15423
15501
  const nextIsEmpty = nextValue.length === 0;
@@ -15427,14 +15505,14 @@ function useTextareaValueState({
15427
15505
  },
15428
15506
  [isControlled]
15429
15507
  );
15430
- const syncValueState = React59.useCallback(() => {
15508
+ const syncValueState = React60.useCallback(() => {
15431
15509
  if (!textareaRef.current) return;
15432
15510
  setNativeValue(textareaRef.current.value);
15433
15511
  }, [setNativeValue]);
15434
- React59.useLayoutEffect(() => {
15512
+ React60.useLayoutEffect(() => {
15435
15513
  syncValueState();
15436
15514
  });
15437
- React59.useEffect(() => {
15515
+ React60.useEffect(() => {
15438
15516
  const textarea = textareaRef.current;
15439
15517
  const form = textarea?.form;
15440
15518
  if (isControlled || !form) return;
@@ -15461,7 +15539,7 @@ function useTextareaValueState({
15461
15539
  var import_jsx_runtime169 = require("react/jsx-runtime");
15462
15540
  var LINE_HEIGHT = 20;
15463
15541
  var VERTICAL_PADDING = 32;
15464
- var Textarea = React60.forwardRef(function Textarea2({
15542
+ var Textarea = React61.forwardRef(function Textarea2({
15465
15543
  className,
15466
15544
  textareaClassName,
15467
15545
  label,
@@ -15489,12 +15567,12 @@ var Textarea = React60.forwardRef(function Textarea2({
15489
15567
  }, ref) {
15490
15568
  const { textareaRef, isControlled, isEmpty, setNativeValue, syncValueState } = useTextareaValueState({ empty, value, defaultValue });
15491
15569
  const combinedRef = useCombinedRef(ref, textareaRef);
15492
- const reactId = React60.useId();
15570
+ const reactId = React61.useId();
15493
15571
  const textareaId = id ?? name ?? `dash-textarea-${reactId}`;
15494
15572
  const { t } = (0, import_react_i18next37.useTranslation)();
15495
15573
  const isInvalid = Boolean(invalid || error);
15496
15574
  const isBlocked = Boolean(disabled);
15497
- const resize = React60.useCallback(() => {
15575
+ const resize = React61.useCallback(() => {
15498
15576
  const el = textareaRef.current;
15499
15577
  if (!el || !autosize) return;
15500
15578
  el.style.height = "auto";
@@ -15504,7 +15582,7 @@ var Textarea = React60.forwardRef(function Textarea2({
15504
15582
  el.style.height = `${nextHeight}px`;
15505
15583
  el.style.overflowY = el.scrollHeight > nextHeight ? "auto" : "hidden";
15506
15584
  }, [autosize, maxRows, minRows, textareaRef]);
15507
- React60.useLayoutEffect(() => {
15585
+ React61.useLayoutEffect(() => {
15508
15586
  resize();
15509
15587
  }, [resize, value]);
15510
15588
  const handleInput = (event) => {
@@ -15596,12 +15674,12 @@ var Textarea = React60.forwardRef(function Textarea2({
15596
15674
  });
15597
15675
 
15598
15676
  // src/dashboard/datepicker/Datepicker.tsx
15599
- var React62 = __toESM(require("react"), 1);
15600
- var import_lucide_react50 = require("lucide-react");
15677
+ var React63 = __toESM(require("react"), 1);
15678
+ var import_lucide_react49 = require("lucide-react");
15601
15679
  var import_react_i18next38 = require("react-i18next");
15602
15680
 
15603
15681
  // src/airbnb-fields/datepicker/useDatePickerWheel.ts
15604
- var React61 = __toESM(require("react"), 1);
15682
+ var React62 = __toESM(require("react"), 1);
15605
15683
 
15606
15684
  // src/airbnb-fields/datepicker/datePicker.utils.ts
15607
15685
  var DISPLAY_PAD_LENGTH = 2;
@@ -15752,21 +15830,21 @@ function useDatePickerWheel({
15752
15830
  minDate,
15753
15831
  maxDate
15754
15832
  }) {
15755
- const years = React61.useMemo(() => getYearRange(minDate, maxDate), [maxDate, minDate]);
15756
- const [draftDate, setDraftDate] = React61.useState(
15833
+ const years = React62.useMemo(() => getYearRange(minDate, maxDate), [maxDate, minDate]);
15834
+ const [draftDate, setDraftDate] = React62.useState(
15757
15835
  () => resolveInitialDate({ value, defaultValue, minDate, maxDate })
15758
15836
  );
15759
15837
  const draftYear = draftDate.getFullYear();
15760
15838
  const draftMonth = draftDate.getMonth();
15761
- const [monthScrollTop, setMonthScrollTop] = React61.useState(0);
15762
- const [dayScrollTop, setDayScrollTop] = React61.useState(0);
15763
- const [yearScrollTop, setYearScrollTop] = React61.useState(0);
15764
- const monthListRef = React61.useRef(null);
15765
- const dayListRef = React61.useRef(null);
15766
- const yearListRef = React61.useRef(null);
15767
- const settleTimeoutsRef = React61.useRef({});
15768
- const animationFramesRef = React61.useRef({});
15769
- const columnRefs = React61.useMemo(
15839
+ const [monthScrollTop, setMonthScrollTop] = React62.useState(0);
15840
+ const [dayScrollTop, setDayScrollTop] = React62.useState(0);
15841
+ const [yearScrollTop, setYearScrollTop] = React62.useState(0);
15842
+ const monthListRef = React62.useRef(null);
15843
+ const dayListRef = React62.useRef(null);
15844
+ const yearListRef = React62.useRef(null);
15845
+ const settleTimeoutsRef = React62.useRef({});
15846
+ const animationFramesRef = React62.useRef({});
15847
+ const columnRefs = React62.useMemo(
15770
15848
  () => ({
15771
15849
  month: monthListRef,
15772
15850
  day: dayListRef,
@@ -15774,7 +15852,7 @@ function useDatePickerWheel({
15774
15852
  }),
15775
15853
  []
15776
15854
  );
15777
- const setColumnScrollTop = React61.useCallback(
15855
+ const setColumnScrollTop = React62.useCallback(
15778
15856
  (column, nextScrollTop) => {
15779
15857
  if (column === "month") {
15780
15858
  setMonthScrollTop(nextScrollTop);
@@ -15788,19 +15866,19 @@ function useDatePickerWheel({
15788
15866
  },
15789
15867
  []
15790
15868
  );
15791
- const clearSettleTimeout = React61.useCallback((column) => {
15869
+ const clearSettleTimeout = React62.useCallback((column) => {
15792
15870
  const timeoutId = settleTimeoutsRef.current[column];
15793
15871
  if (timeoutId === void 0) return;
15794
15872
  window.clearTimeout(timeoutId);
15795
15873
  delete settleTimeoutsRef.current[column];
15796
15874
  }, []);
15797
- const clearAnimationFrame = React61.useCallback((column) => {
15875
+ const clearAnimationFrame = React62.useCallback((column) => {
15798
15876
  const frameId = animationFramesRef.current[column];
15799
15877
  if (frameId === void 0) return;
15800
15878
  window.cancelAnimationFrame(frameId);
15801
15879
  delete animationFramesRef.current[column];
15802
15880
  }, []);
15803
- React61.useEffect(
15881
+ React62.useEffect(
15804
15882
  () => () => {
15805
15883
  ["month", "day", "year"].forEach((column) => {
15806
15884
  clearSettleTimeout(column);
@@ -15809,22 +15887,22 @@ function useDatePickerWheel({
15809
15887
  },
15810
15888
  [clearAnimationFrame, clearSettleTimeout]
15811
15889
  );
15812
- React61.useEffect(() => {
15890
+ React62.useEffect(() => {
15813
15891
  if (isOpen) return;
15814
15892
  setDraftDate(resolveInitialDate({ value, defaultValue, minDate, maxDate }));
15815
15893
  }, [defaultValue, isOpen, maxDate, minDate, value]);
15816
- const months = React61.useMemo(
15894
+ const months = React62.useMemo(
15817
15895
  () => getAllowedMonths(draftYear, minDate, maxDate),
15818
15896
  [draftYear, maxDate, minDate]
15819
15897
  );
15820
- const days = React61.useMemo(
15898
+ const days = React62.useMemo(
15821
15899
  () => getAllowedDays(draftYear, draftMonth, minDate, maxDate),
15822
15900
  [draftMonth, draftYear, maxDate, minDate]
15823
15901
  );
15824
15902
  const monthIndex = months.findIndex((month) => month === draftMonth);
15825
15903
  const dayIndex = days.findIndex((day) => day === draftDate.getDate());
15826
15904
  const yearIndex = years.findIndex((year) => year === draftYear);
15827
- const syncScrollPositions = React61.useCallback(
15905
+ const syncScrollPositions = React62.useCallback(
15828
15906
  (nextDate, behavior = "auto") => {
15829
15907
  const nextMonths = getAllowedMonths(nextDate.getFullYear(), minDate, maxDate);
15830
15908
  const nextMonthIndex = nextMonths.findIndex((month) => month === nextDate.getMonth());
@@ -15848,7 +15926,7 @@ function useDatePickerWheel({
15848
15926
  },
15849
15927
  [maxDate, minDate, years]
15850
15928
  );
15851
- React61.useLayoutEffect(() => {
15929
+ React62.useLayoutEffect(() => {
15852
15930
  if (!isOpen) return;
15853
15931
  const nextDate = resolveInitialDate({ value, defaultValue, minDate, maxDate });
15854
15932
  setDraftDate(nextDate);
@@ -15859,7 +15937,7 @@ function useDatePickerWheel({
15859
15937
  window.cancelAnimationFrame(frameId);
15860
15938
  };
15861
15939
  }, [defaultValue, isOpen, maxDate, minDate, syncScrollPositions, value]);
15862
- const updateDraftDate = React61.useCallback(
15940
+ const updateDraftDate = React62.useCallback(
15863
15941
  (column, targetIndex, behavior = "smooth") => {
15864
15942
  const currentDate = stripTime(draftDate);
15865
15943
  const currentYear = currentDate.getFullYear();
@@ -15904,7 +15982,7 @@ function useDatePickerWheel({
15904
15982
  },
15905
15983
  [days, draftDate, maxDate, minDate, months, syncScrollPositions, years]
15906
15984
  );
15907
- const settleColumnScroll = React61.useCallback(
15985
+ const settleColumnScroll = React62.useCallback(
15908
15986
  (column) => {
15909
15987
  const list = columnRefs[column].current;
15910
15988
  if (!list) return;
@@ -15917,7 +15995,7 @@ function useDatePickerWheel({
15917
15995
  },
15918
15996
  [columnRefs, days.length, months.length, updateDraftDate, years.length]
15919
15997
  );
15920
- const scheduleScrollSettle = React61.useCallback(
15998
+ const scheduleScrollSettle = React62.useCallback(
15921
15999
  (column) => {
15922
16000
  clearSettleTimeout(column);
15923
16001
  settleTimeoutsRef.current[column] = window.setTimeout(() => {
@@ -15926,7 +16004,7 @@ function useDatePickerWheel({
15926
16004
  },
15927
16005
  [clearSettleTimeout, settleColumnScroll]
15928
16006
  );
15929
- const handleColumnScroll = React61.useCallback(
16007
+ const handleColumnScroll = React62.useCallback(
15930
16008
  (column) => {
15931
16009
  const list = columnRefs[column].current;
15932
16010
  if (!list) return;
@@ -15940,13 +16018,13 @@ function useDatePickerWheel({
15940
16018
  },
15941
16019
  [clearAnimationFrame, columnRefs, scheduleScrollSettle, setColumnScrollTop]
15942
16020
  );
15943
- const handleOptionSelect = React61.useCallback(
16021
+ const handleOptionSelect = React62.useCallback(
15944
16022
  (column, targetIndex) => {
15945
16023
  updateDraftDate(column, targetIndex, "smooth");
15946
16024
  },
15947
16025
  [updateDraftDate]
15948
16026
  );
15949
- const focusAdjacentColumn = React61.useCallback(
16027
+ const focusAdjacentColumn = React62.useCallback(
15950
16028
  (column, direction) => {
15951
16029
  const order = ["month", "day", "year"];
15952
16030
  const currentIndex = order.indexOf(column);
@@ -15956,7 +16034,7 @@ function useDatePickerWheel({
15956
16034
  },
15957
16035
  [columnRefs]
15958
16036
  );
15959
- const handleColumnKeyDown = React61.useCallback(
16037
+ const handleColumnKeyDown = React62.useCallback(
15960
16038
  (column, event) => {
15961
16039
  const currentIndex = column === "month" ? monthIndex : column === "day" ? dayIndex : yearIndex;
15962
16040
  const maxIndex = column === "month" ? months.length - 1 : column === "day" ? days.length - 1 : years.length - 1;
@@ -16278,7 +16356,7 @@ function dateFromParts(day, monthIndex, year) {
16278
16356
  if (!isValidCalendarDate(yearNum, monthIndex, dayNum)) return null;
16279
16357
  return new Date(yearNum, monthIndex, dayNum);
16280
16358
  }
16281
- var Datepicker = React62.forwardRef(
16359
+ var Datepicker = React63.forwardRef(
16282
16360
  function Datepicker2({
16283
16361
  label,
16284
16362
  value,
@@ -16311,14 +16389,14 @@ var Datepicker = React62.forwardRef(
16311
16389
  maxDate,
16312
16390
  formatValue
16313
16391
  }, ref) {
16314
- const containerRef = React62.useRef(null);
16315
- const dayInputRef = React62.useRef(null);
16316
- const monthInputRef = React62.useRef(null);
16317
- const monthListRef = React62.useRef(null);
16318
- const yearInputRef = React62.useRef(null);
16319
- const mobileTriggerRef = React62.useRef(null);
16320
- const wheelBaseId = React62.useId();
16321
- const reactId = React62.useId();
16392
+ const containerRef = React63.useRef(null);
16393
+ const dayInputRef = React63.useRef(null);
16394
+ const monthInputRef = React63.useRef(null);
16395
+ const monthListRef = React63.useRef(null);
16396
+ const yearInputRef = React63.useRef(null);
16397
+ const mobileTriggerRef = React63.useRef(null);
16398
+ const wheelBaseId = React63.useId();
16399
+ const reactId = React63.useId();
16322
16400
  const baseId = name ?? `dash-datepicker-${reactId}`;
16323
16401
  const dayId = `${baseId}-day`;
16324
16402
  const monthId = `${baseId}-month`;
@@ -16327,38 +16405,38 @@ var Datepicker = React62.forwardRef(
16327
16405
  const errorId = `${baseId}-error`;
16328
16406
  const { t, i18n } = (0, import_react_i18next38.useTranslation)();
16329
16407
  const resolvedLocale = locale ?? i18n.resolvedLanguage ?? i18n.language ?? "en-US";
16330
- const resolvedMonthLabels = React62.useMemo(
16408
+ const resolvedMonthLabels = React63.useMemo(
16331
16409
  () => monthLabels ?? getMonthLabels2(resolvedLocale),
16332
16410
  [resolvedLocale, monthLabels]
16333
16411
  );
16334
16412
  const resolvedMonthPlaceholder = monthPlaceholder ?? t("month");
16335
16413
  const resolvedDoneLabel = doneLabel ?? t("done");
16336
16414
  const isControlled = value !== void 0;
16337
- const initialParts = React62.useMemo(
16415
+ const initialParts = React63.useMemo(
16338
16416
  () => partsFromDate(value ?? defaultValue ?? null),
16339
16417
  // eslint-disable-next-line react-hooks/exhaustive-deps
16340
16418
  []
16341
16419
  );
16342
- const [day, setDay] = React62.useState(initialParts.day);
16343
- const [monthIndex, setMonthIndex] = React62.useState(
16420
+ const [day, setDay] = React63.useState(initialParts.day);
16421
+ const [monthIndex, setMonthIndex] = React63.useState(
16344
16422
  initialParts.monthIndex
16345
16423
  );
16346
- const [year, setYear] = React62.useState(initialParts.year);
16347
- const [isMonthOpen, setIsMonthOpen] = React62.useState(false);
16348
- const [isWheelOpen, setIsWheelOpen] = React62.useState(false);
16349
- const [focusedField, setFocusedField] = React62.useState(null);
16350
- const [monthInputValue, setMonthInputValue] = React62.useState("");
16351
- const [monthHighlightIndex, setMonthHighlightIndex] = React62.useState(-1);
16424
+ const [year, setYear] = React63.useState(initialParts.year);
16425
+ const [isMonthOpen, setIsMonthOpen] = React63.useState(false);
16426
+ const [isWheelOpen, setIsWheelOpen] = React63.useState(false);
16427
+ const [focusedField, setFocusedField] = React63.useState(null);
16428
+ const [monthInputValue, setMonthInputValue] = React63.useState("");
16429
+ const [monthHighlightIndex, setMonthHighlightIndex] = React63.useState(-1);
16352
16430
  const isMobile3 = useIsMobile();
16353
- const emitChangeRef = React62.useRef(() => {
16431
+ const emitChangeRef = React63.useRef(() => {
16354
16432
  });
16355
- const dayStateRef = React62.useRef(day);
16356
- const yearStateRef = React62.useRef(year);
16357
- const monthIndexRef = React62.useRef(monthIndex);
16433
+ const dayStateRef = React63.useRef(day);
16434
+ const yearStateRef = React63.useRef(year);
16435
+ const monthIndexRef = React63.useRef(monthIndex);
16358
16436
  dayStateRef.current = day;
16359
16437
  yearStateRef.current = year;
16360
16438
  monthIndexRef.current = monthIndex;
16361
- React62.useImperativeHandle(
16439
+ React63.useImperativeHandle(
16362
16440
  ref,
16363
16441
  () => ({
16364
16442
  getDayValue: () => dayStateRef.current,
@@ -16376,27 +16454,27 @@ var Datepicker = React62.forwardRef(
16376
16454
  }),
16377
16455
  []
16378
16456
  );
16379
- React62.useEffect(() => {
16457
+ React63.useEffect(() => {
16380
16458
  if (!isControlled) return;
16381
16459
  const next = partsFromDate(value ?? null);
16382
16460
  setDay(next.day);
16383
16461
  setMonthIndex(next.monthIndex);
16384
16462
  setYear(next.year);
16385
16463
  }, [isControlled, value]);
16386
- React62.useEffect(() => {
16464
+ React63.useEffect(() => {
16387
16465
  if (focusedField === "month") return;
16388
16466
  setMonthInputValue(
16389
16467
  monthIndex !== null ? resolvedMonthLabels[monthIndex] ?? "" : ""
16390
16468
  );
16391
16469
  }, [monthIndex, resolvedMonthLabels, focusedField]);
16392
- const filteredMonths = React62.useMemo(() => {
16470
+ const filteredMonths = React63.useMemo(() => {
16393
16471
  const all = resolvedMonthLabels.map((label2, index) => ({ label: label2, index }));
16394
16472
  const query = monthInputValue.trim().toLowerCase();
16395
16473
  const currentLabel = monthIndex !== null ? resolvedMonthLabels[monthIndex] ?? "" : "";
16396
16474
  if (!query || monthInputValue === currentLabel) return all;
16397
16475
  return all.filter((opt) => opt.label.toLowerCase().includes(query));
16398
16476
  }, [monthInputValue, monthIndex, resolvedMonthLabels]);
16399
- React62.useEffect(() => {
16477
+ React63.useEffect(() => {
16400
16478
  if (!isMonthOpen) {
16401
16479
  setMonthHighlightIndex(-1);
16402
16480
  return;
@@ -16417,7 +16495,7 @@ var Datepicker = React62.forwardRef(
16417
16495
  const isFocused = focusedField !== null || isMonthOpen || isWheelOpen;
16418
16496
  const isInvalid = Boolean(invalid || error);
16419
16497
  const wrapperWidth = toCssSize(width);
16420
- const currentDate = React62.useMemo(
16498
+ const currentDate = React63.useMemo(
16421
16499
  () => dateFromParts(day, monthIndex, year),
16422
16500
  [day, monthIndex, year]
16423
16501
  );
@@ -16426,7 +16504,7 @@ var Datepicker = React62.forwardRef(
16426
16504
  onOutsideClick: () => setIsMonthOpen(false),
16427
16505
  isDisabled: !isMonthOpen || isMobile3
16428
16506
  });
16429
- const emitChange = React62.useCallback(
16507
+ const emitChange = React63.useCallback(
16430
16508
  (nextDay, nextMonth, nextYear) => {
16431
16509
  if (!onChange) return;
16432
16510
  const date = dateFromParts(nextDay, nextMonth, nextYear);
@@ -16462,7 +16540,7 @@ var Datepicker = React62.forwardRef(
16462
16540
  setIsMonthOpen(true);
16463
16541
  setMonthHighlightIndex(0);
16464
16542
  };
16465
- const commitMonthInput = React62.useCallback(() => {
16543
+ const commitMonthInput = React63.useCallback(() => {
16466
16544
  const query = monthInputValue.trim().toLowerCase();
16467
16545
  if (!query) {
16468
16546
  if (monthIndex !== null) {
@@ -16522,15 +16600,15 @@ var Datepicker = React62.forwardRef(
16522
16600
  setIsMonthOpen(false);
16523
16601
  }
16524
16602
  };
16525
- const focusDayInput = React62.useCallback(() => {
16603
+ const focusDayInput = React63.useCallback(() => {
16526
16604
  if (isBlocked || readOnly) return;
16527
16605
  dayInputRef.current?.focus();
16528
16606
  }, [isBlocked, readOnly]);
16529
- const openWheel = React62.useCallback(() => {
16607
+ const openWheel = React63.useCallback(() => {
16530
16608
  if (isBlocked || readOnly) return;
16531
16609
  setIsWheelOpen(true);
16532
16610
  }, [isBlocked, readOnly]);
16533
- const closeWheel = React62.useCallback(() => {
16611
+ const closeWheel = React63.useCallback(() => {
16534
16612
  setIsWheelOpen(false);
16535
16613
  mobileTriggerRef.current?.focus();
16536
16614
  }, []);
@@ -16542,7 +16620,7 @@ var Datepicker = React62.forwardRef(
16542
16620
  minDate,
16543
16621
  maxDate
16544
16622
  });
16545
- const handleWheelDone = React62.useCallback(() => {
16623
+ const handleWheelDone = React63.useCallback(() => {
16546
16624
  const next = wheel.draftDate;
16547
16625
  setDay(String(next.getDate()));
16548
16626
  setMonthIndex(next.getMonth());
@@ -16551,7 +16629,7 @@ var Datepicker = React62.forwardRef(
16551
16629
  setIsWheelOpen(false);
16552
16630
  mobileTriggerRef.current?.focus();
16553
16631
  }, [name, onChange, wheel.draftDate]);
16554
- const defaultFormatValue = React62.useCallback(
16632
+ const defaultFormatValue = React63.useCallback(
16555
16633
  (date) => `${date.getDate()} ${resolvedMonthLabels[date.getMonth()]} ${date.getFullYear()}`,
16556
16634
  [resolvedMonthLabels]
16557
16635
  );
@@ -16631,7 +16709,7 @@ var Datepicker = React62.forwardRef(
16631
16709
  children: [
16632
16710
  /* @__PURE__ */ (0, import_jsx_runtime172.jsx)("span", { className: "block min-w-0 flex-1 truncate text-left", children: triggerText ?? (isWheelOpen ? mobilePlaceholder : null) }),
16633
16711
  /* @__PURE__ */ (0, import_jsx_runtime172.jsx)("span", { className: "pointer-events-none flex items-center gap-2 text-[var(--chekin-color-gray-2)]", children: /* @__PURE__ */ (0, import_jsx_runtime172.jsx)(
16634
- import_lucide_react50.ChevronDown,
16712
+ import_lucide_react49.ChevronDown,
16635
16713
  {
16636
16714
  size: 16,
16637
16715
  className: cn(
@@ -16726,7 +16804,7 @@ var Datepicker = React62.forwardRef(
16726
16804
  }
16727
16805
  ),
16728
16806
  /* @__PURE__ */ (0, import_jsx_runtime172.jsx)(
16729
- import_lucide_react50.ChevronDown,
16807
+ import_lucide_react49.ChevronDown,
16730
16808
  {
16731
16809
  size: 14,
16732
16810
  onMouseDown: (event) => {
@@ -16847,7 +16925,7 @@ var Datepicker = React62.forwardRef(
16847
16925
  );
16848
16926
 
16849
16927
  // src/dashboard/date-range-picker/DateRangePicker.tsx
16850
- var React66 = __toESM(require("react"), 1);
16928
+ var React67 = __toESM(require("react"), 1);
16851
16929
  var import_react_i18next39 = require("react-i18next");
16852
16930
 
16853
16931
  // src/dashboard/date-range-picker/isDayBlocked.ts
@@ -16926,7 +17004,7 @@ var createDisabledMatchers = ({
16926
17004
  };
16927
17005
 
16928
17006
  // src/dashboard/date-range-picker/hooks/useRangeValue.ts
16929
- var React63 = __toESM(require("react"), 1);
17007
+ var React64 = __toESM(require("react"), 1);
16930
17008
  var getRangeKey = (range) => `${range?.from?.getTime() ?? ""}-${range?.to?.getTime() ?? ""}`;
16931
17009
  function useRangeValue({
16932
17010
  value: externalValue,
@@ -16935,10 +17013,10 @@ function useRangeValue({
16935
17013
  name
16936
17014
  }) {
16937
17015
  const isControlled = externalValue !== void 0;
16938
- const [draft, setDraft] = React63.useState(
17016
+ const [draft, setDraft] = React64.useState(
16939
17017
  isControlled ? externalValue : defaultValue
16940
17018
  );
16941
- const lastExternalKeyRef = React63.useRef(getRangeKey(externalValue));
17019
+ const lastExternalKeyRef = React64.useRef(getRangeKey(externalValue));
16942
17020
  if (isControlled) {
16943
17021
  const externalKey = getRangeKey(externalValue);
16944
17022
  if (externalKey !== lastExternalKeyRef.current) {
@@ -16946,7 +17024,7 @@ function useRangeValue({
16946
17024
  setDraft(externalValue);
16947
17025
  }
16948
17026
  }
16949
- const commit = React63.useCallback(
17027
+ const commit = React64.useCallback(
16950
17028
  (next) => {
16951
17029
  setDraft(next);
16952
17030
  if (next === void 0) {
@@ -16961,7 +17039,7 @@ function useRangeValue({
16961
17039
  }
16962
17040
 
16963
17041
  // src/dashboard/date-range-picker/hooks/useRangeTextInputs.ts
16964
- var React64 = __toESM(require("react"), 1);
17042
+ var React65 = __toESM(require("react"), 1);
16965
17043
 
16966
17044
  // src/dashboard/date-range-picker/utils/inputFormat.ts
16967
17045
  function parseDateInputFormat(format2) {
@@ -17051,18 +17129,18 @@ function useRangeTextInputs({
17051
17129
  onFromComplete,
17052
17130
  onToComplete
17053
17131
  }) {
17054
- const tokens = React64.useMemo(
17132
+ const tokens = React65.useMemo(
17055
17133
  () => parseDateInputFormat(displayFormat),
17056
17134
  [displayFormat]
17057
17135
  );
17058
- const maxDigits = React64.useMemo(() => getMaxDigits(tokens), [tokens]);
17059
- const [fromText, setFromText] = React64.useState(value?.from ? format2(value.from) : "");
17060
- const [toText, setToText] = React64.useState(value?.to ? format2(value.to) : "");
17061
- React64.useEffect(() => {
17136
+ const maxDigits = React65.useMemo(() => getMaxDigits(tokens), [tokens]);
17137
+ const [fromText, setFromText] = React65.useState(value?.from ? format2(value.from) : "");
17138
+ const [toText, setToText] = React65.useState(value?.to ? format2(value.to) : "");
17139
+ React65.useEffect(() => {
17062
17140
  setFromText(value?.from ? format2(value.from) : "");
17063
17141
  setToText(value?.to ? format2(value.to) : "");
17064
17142
  }, [format2, value?.from, value?.to]);
17065
- const handleFromChange = React64.useCallback(
17143
+ const handleFromChange = React65.useCallback(
17066
17144
  (raw) => {
17067
17145
  const formatted = autoFormatDateInput(raw, tokens);
17068
17146
  const wasComplete = countDigits(fromText) === maxDigits;
@@ -17074,7 +17152,7 @@ function useRangeTextInputs({
17074
17152
  },
17075
17153
  [fromText, maxDigits, onFromComplete, parse3, tokens]
17076
17154
  );
17077
- const handleToChange = React64.useCallback(
17155
+ const handleToChange = React65.useCallback(
17078
17156
  (raw) => {
17079
17157
  const formatted = autoFormatDateInput(raw, tokens);
17080
17158
  const wasComplete = countDigits(toText) === maxDigits;
@@ -17086,7 +17164,7 @@ function useRangeTextInputs({
17086
17164
  },
17087
17165
  [maxDigits, onToComplete, parse3, toText, tokens]
17088
17166
  );
17089
- const handleFromBlur = React64.useCallback(() => {
17167
+ const handleFromBlur = React65.useCallback(() => {
17090
17168
  if (!fromText) {
17091
17169
  const next = { from: void 0, to: value?.to };
17092
17170
  onCommit(next);
@@ -17103,7 +17181,7 @@ function useRangeTextInputs({
17103
17181
  setFromText(value?.from ? format2(value.from) : "");
17104
17182
  return void 0;
17105
17183
  }, [format2, fromText, onBlur, onCommit, parse3, value]);
17106
- const handleToBlur = React64.useCallback(() => {
17184
+ const handleToBlur = React65.useCallback(() => {
17107
17185
  if (!toText) {
17108
17186
  const next = { from: value?.from, to: void 0 };
17109
17187
  onCommit(next);
@@ -17132,21 +17210,21 @@ function useRangeTextInputs({
17132
17210
  }
17133
17211
 
17134
17212
  // src/dashboard/date-range-picker/hooks/useRangeMonthSync.ts
17135
- var React65 = __toESM(require("react"), 1);
17213
+ var React66 = __toESM(require("react"), 1);
17136
17214
  function useRangeMonthSync(value) {
17137
- const isPreloadedRef = React65.useRef(false);
17138
- const [month, setMonth] = React65.useState(value?.from ?? /* @__PURE__ */ new Date());
17139
- React65.useEffect(() => {
17215
+ const isPreloadedRef = React66.useRef(false);
17216
+ const [month, setMonth] = React66.useState(value?.from ?? /* @__PURE__ */ new Date());
17217
+ React66.useEffect(() => {
17140
17218
  if (value?.from && !isPreloadedRef.current) {
17141
17219
  setMonth(value.from);
17142
17220
  isPreloadedRef.current = true;
17143
17221
  }
17144
17222
  }, [value?.from]);
17145
- const syncMonthToValue = React65.useCallback((next) => {
17223
+ const syncMonthToValue = React66.useCallback((next) => {
17146
17224
  isPreloadedRef.current = true;
17147
17225
  if (next?.from) setMonth(next.from);
17148
17226
  }, []);
17149
- const resetPreload = React65.useCallback(() => {
17227
+ const resetPreload = React66.useCallback(() => {
17150
17228
  isPreloadedRef.current = false;
17151
17229
  }, []);
17152
17230
  return { month, setMonth, syncMonthToValue, resetPreload };
@@ -17171,7 +17249,7 @@ function resolveRangeSelection({
17171
17249
  }
17172
17250
 
17173
17251
  // src/dashboard/date-range-picker/components/DateRangeInputs.tsx
17174
- var import_lucide_react51 = require("lucide-react");
17252
+ var import_lucide_react50 = require("lucide-react");
17175
17253
  var import_jsx_runtime173 = require("react/jsx-runtime");
17176
17254
  var DEFAULT_PLACEHOLDER = "00-00-0000";
17177
17255
  var inputBaseClass = "m-0 box-border h-full w-full min-w-0 border-0 bg-transparent text-[16px] font-medium leading-5 text-[var(--chekin-color-brand-navy)] outline-none placeholder:text-[var(--chekin-color-gray-1)]";
@@ -17293,7 +17371,7 @@ function DateRangeInputs({
17293
17371
  onClick: onReset,
17294
17372
  className: iconButtonClass,
17295
17373
  "aria-label": clearLabel,
17296
- children: /* @__PURE__ */ (0, import_jsx_runtime173.jsx)(import_lucide_react51.SquareX, { size: 16, fill: "#9696b9", color: "#f8f8f8", strokeWidth: 1.8 })
17374
+ children: /* @__PURE__ */ (0, import_jsx_runtime173.jsx)(import_lucide_react50.SquareX, { size: 16, fill: "#9696b9", color: "#f8f8f8", strokeWidth: 1.8 })
17297
17375
  }
17298
17376
  ),
17299
17377
  !readOnly && !hideCalendarIcon && /* @__PURE__ */ (0, import_jsx_runtime173.jsx)(
@@ -17308,7 +17386,7 @@ function DateRangeInputs({
17308
17386
  focusedInput !== null || isOpen ? "text-[var(--chekin-color-brand-blue)]" : "text-[var(--chekin-color-gray-2)]"
17309
17387
  ),
17310
17388
  "aria-label": openCalendarLabel,
17311
- children: /* @__PURE__ */ (0, import_jsx_runtime173.jsx)(import_lucide_react51.CalendarDays, { size: 18 })
17389
+ children: /* @__PURE__ */ (0, import_jsx_runtime173.jsx)(import_lucide_react50.CalendarDays, { size: 18 })
17312
17390
  }
17313
17391
  )
17314
17392
  ] })
@@ -17406,7 +17484,7 @@ function DateRangePopover({
17406
17484
 
17407
17485
  // src/dashboard/date-range-picker/DateRangePicker.tsx
17408
17486
  var import_jsx_runtime176 = require("react/jsx-runtime");
17409
- var DateRangePicker = React66.forwardRef(function DateRangePicker2({
17487
+ var DateRangePicker = React67.forwardRef(function DateRangePicker2({
17410
17488
  label,
17411
17489
  value: externalValue,
17412
17490
  defaultValue,
@@ -17441,20 +17519,20 @@ var DateRangePicker = React66.forwardRef(function DateRangePicker2({
17441
17519
  components: customComponents,
17442
17520
  ...dayPickerProps
17443
17521
  }, ref) {
17444
- const containerRef = React66.useRef(null);
17445
- const fromInputRef = React66.useRef(null);
17446
- const toInputRef = React66.useRef(null);
17447
- const reactId = React66.useId();
17522
+ const containerRef = React67.useRef(null);
17523
+ const fromInputRef = React67.useRef(null);
17524
+ const toInputRef = React67.useRef(null);
17525
+ const reactId = React67.useId();
17448
17526
  const baseId = name ?? `dash-daterange-${reactId}`;
17449
17527
  const fromId = `${baseId}-from`;
17450
17528
  const toId = `${baseId}-to`;
17451
17529
  const labelId = `${baseId}-label`;
17452
17530
  const errorId = `${baseId}-error`;
17453
- const normalizedValue = React66.useMemo(() => {
17531
+ const normalizedValue = React67.useMemo(() => {
17454
17532
  if (externalValue === void 0) return void 0;
17455
17533
  return { from: toDate(externalValue?.from), to: toDate(externalValue?.to) };
17456
17534
  }, [externalValue]);
17457
- const normalizedDefaultValue = React66.useMemo(() => {
17535
+ const normalizedDefaultValue = React67.useMemo(() => {
17458
17536
  if (defaultValue === void 0) return void 0;
17459
17537
  return { from: toDate(defaultValue?.from), to: toDate(defaultValue?.to) };
17460
17538
  }, [defaultValue]);
@@ -17464,16 +17542,16 @@ var DateRangePicker = React66.forwardRef(function DateRangePicker2({
17464
17542
  onChange,
17465
17543
  name
17466
17544
  });
17467
- const normalizedMinDate = React66.useMemo(() => toDate(minDate), [minDate]);
17468
- const normalizedMaxDate = React66.useMemo(() => toDate(maxDate), [maxDate]);
17469
- const formatter = React66.useMemo(() => formatDate(displayFormat), [displayFormat]);
17470
- const parser = React66.useMemo(() => parseDate(displayFormat), [displayFormat]);
17471
- const closeCalendarRef = React66.useRef(() => {
17545
+ const normalizedMinDate = React67.useMemo(() => toDate(minDate), [minDate]);
17546
+ const normalizedMaxDate = React67.useMemo(() => toDate(maxDate), [maxDate]);
17547
+ const formatter = React67.useMemo(() => formatDate(displayFormat), [displayFormat]);
17548
+ const parser = React67.useMemo(() => parseDate(displayFormat), [displayFormat]);
17549
+ const closeCalendarRef = React67.useRef(() => {
17472
17550
  });
17473
- const handleFromComplete = React66.useCallback(() => {
17551
+ const handleFromComplete = React67.useCallback(() => {
17474
17552
  toInputRef.current?.focus();
17475
17553
  }, []);
17476
- const handleToComplete = React66.useCallback(() => {
17554
+ const handleToComplete = React67.useCallback(() => {
17477
17555
  toInputRef.current?.blur();
17478
17556
  closeCalendarRef.current();
17479
17557
  }, []);
@@ -17497,9 +17575,9 @@ var DateRangePicker = React66.forwardRef(function DateRangePicker2({
17497
17575
  onToComplete: handleToComplete
17498
17576
  });
17499
17577
  const { month, setMonth, syncMonthToValue } = useRangeMonthSync(value);
17500
- const [isOpen, setIsOpen] = React66.useState(false);
17501
- const [focusedInput, setFocusedInput] = React66.useState(null);
17502
- const [autoFocus, setAutoFocus] = React66.useState(false);
17578
+ const [isOpen, setIsOpen] = React67.useState(false);
17579
+ const [focusedInput, setFocusedInput] = React67.useState(null);
17580
+ const [autoFocus, setAutoFocus] = React67.useState(false);
17503
17581
  const isMobile3 = useIsMobile();
17504
17582
  const { t } = (0, import_react_i18next39.useTranslation)();
17505
17583
  const drawerTitle = label ?? t("select_dates");
@@ -17510,14 +17588,14 @@ var DateRangePicker = React66.forwardRef(function DateRangePicker2({
17510
17588
  const isFocused = focusedInput !== null || isOpen;
17511
17589
  const wrapperWidth = toCssSize(width);
17512
17590
  const monthsToShow = numberOfMonths ?? (isMobile3 ? 1 : 2);
17513
- const closeCalendar = React66.useCallback(() => {
17591
+ const closeCalendar = React67.useCallback(() => {
17514
17592
  setIsOpen(false);
17515
17593
  setFocusedInput(null);
17516
17594
  setAutoFocus(false);
17517
17595
  if (value?.from) setMonth(value.from);
17518
17596
  }, [setMonth, value?.from]);
17519
17597
  closeCalendarRef.current = closeCalendar;
17520
- const openCalendar = React66.useCallback(() => {
17598
+ const openCalendar = React67.useCallback(() => {
17521
17599
  if (isBlocked || readOnly) return;
17522
17600
  setIsOpen(true);
17523
17601
  }, [isBlocked, readOnly]);
@@ -17526,7 +17604,7 @@ var DateRangePicker = React66.forwardRef(function DateRangePicker2({
17526
17604
  onOutsideClick: closeCalendar,
17527
17605
  isDisabled: !isOpen || isMobile3
17528
17606
  });
17529
- const handlePickerChange = React66.useCallback(
17607
+ const handlePickerChange = React67.useCallback(
17530
17608
  (range, pickedDate) => {
17531
17609
  const { next, shouldClose } = resolveRangeSelection({
17532
17610
  previous: value,
@@ -17547,7 +17625,7 @@ var DateRangePicker = React66.forwardRef(function DateRangePicker2({
17547
17625
  setToText("");
17548
17626
  setMonth(/* @__PURE__ */ new Date());
17549
17627
  };
17550
- const disabledMatchers = React66.useMemo(
17628
+ const disabledMatchers = React67.useMemo(
17551
17629
  () => createDisabledMatchers({
17552
17630
  minDate: normalizedMinDate,
17553
17631
  maxDate: normalizedMaxDate,
@@ -17566,7 +17644,7 @@ var DateRangePicker = React66.forwardRef(function DateRangePicker2({
17566
17644
  openCalendar();
17567
17645
  if (autoFocusOnOpen) setAutoFocus(true);
17568
17646
  };
17569
- React66.useImperativeHandle(
17647
+ React67.useImperativeHandle(
17570
17648
  ref,
17571
17649
  () => ({
17572
17650
  setDateRange: (range) => {
@@ -17747,7 +17825,7 @@ var DateRangePicker = React66.forwardRef(function DateRangePicker2({
17747
17825
  });
17748
17826
 
17749
17827
  // src/dashboard/date-range-picker/useValidateDates.ts
17750
- var React67 = __toESM(require("react"), 1);
17828
+ var React68 = __toESM(require("react"), 1);
17751
17829
  var import_react_i18next40 = require("react-i18next");
17752
17830
  var import_date_fns4 = require("date-fns");
17753
17831
  var import_react_day_picker2 = require("react-day-picker");
@@ -17770,11 +17848,11 @@ function useValidateDates({
17770
17848
  const { t } = (0, import_react_i18next40.useTranslation)();
17771
17849
  const handleError = useEvent(onError);
17772
17850
  const handleSuccess = useEvent(onSuccess);
17773
- const errorFormatter = React67.useMemo(
17851
+ const errorFormatter = React68.useMemo(
17774
17852
  () => formatDate(displayFormat ?? DEFAULT_DISPLAY_FORMAT),
17775
17853
  [displayFormat]
17776
17854
  );
17777
- const validateDates = React67.useCallback(
17855
+ const validateDates = React68.useCallback(
17778
17856
  (dates) => {
17779
17857
  const startDate = dates?.from;
17780
17858
  const endDate = dates?.to;
@@ -17824,7 +17902,7 @@ function useValidateDates({
17824
17902
  }
17825
17903
 
17826
17904
  // src/dashboard/time-picker/TimePicker.tsx
17827
- var React68 = __toESM(require("react"), 1);
17905
+ var React69 = __toESM(require("react"), 1);
17828
17906
  var import_date_fns5 = require("date-fns");
17829
17907
  var import_jsx_runtime177 = require("react/jsx-runtime");
17830
17908
  var SHORT_TIME_FORMAT = "HH:mm";
@@ -17868,8 +17946,8 @@ var FORMAT_SETTINGS = {
17868
17946
  },
17869
17947
  hours: { interval_unit: "H", interval: 1, min_time: "00:00", max_time: "23:00" }
17870
17948
  };
17871
- var TimePicker = React68.forwardRef(function TimePicker2({ format: formatName = "time", timeSettings, options, ...selectProps }, ref) {
17872
- const resolvedOptions = React68.useMemo(() => {
17949
+ var TimePicker = React69.forwardRef(function TimePicker2({ format: formatName = "time", timeSettings, options, ...selectProps }, ref) {
17950
+ const resolvedOptions = React69.useMemo(() => {
17873
17951
  if (options) return options;
17874
17952
  const settings = timeSettings ?? FORMAT_SETTINGS[formatName];
17875
17953
  return buildOptions(settings);
@@ -17878,14 +17956,14 @@ var TimePicker = React68.forwardRef(function TimePicker2({ format: formatName =
17878
17956
  });
17879
17957
 
17880
17958
  // src/dashboard/file-input/FileInput.tsx
17881
- var React69 = __toESM(require("react"), 1);
17882
- var import_lucide_react52 = require("lucide-react");
17959
+ var React70 = __toESM(require("react"), 1);
17960
+ var import_lucide_react51 = require("lucide-react");
17883
17961
  var import_react_i18next41 = require("react-i18next");
17884
17962
  var import_jsx_runtime178 = require("react/jsx-runtime");
17885
17963
  function defaultDownload(url) {
17886
17964
  window.open(url, "_blank", "noopener,noreferrer");
17887
17965
  }
17888
- var FileInput = React69.forwardRef(function FileInput2({
17966
+ var FileInput = React70.forwardRef(function FileInput2({
17889
17967
  label,
17890
17968
  value,
17891
17969
  onChange,
@@ -17908,12 +17986,12 @@ var FileInput = React69.forwardRef(function FileInput2({
17908
17986
  width,
17909
17987
  downloadLabel
17910
17988
  }, ref) {
17911
- const internalRef = React69.useRef(null);
17989
+ const internalRef = React70.useRef(null);
17912
17990
  const inputRef = useCombinedRef(ref, internalRef);
17913
17991
  const { t } = (0, import_react_i18next41.useTranslation)();
17914
17992
  const resolvedLabel = label ?? t("upload_file");
17915
17993
  const resolvedDownloadLabel = downloadLabel ?? t("download_attachment");
17916
- const reactId = React69.useId();
17994
+ const reactId = React70.useId();
17917
17995
  const inputId = `${name || "dash-file"}-${reactId}`;
17918
17996
  const labelId = `${inputId}-label`;
17919
17997
  const errorId = `${inputId}-error`;
@@ -17993,7 +18071,7 @@ var FileInput = React69.forwardRef(function FileInput2({
17993
18071
  className: "inline-flex items-center gap-[7px] truncate border-0 bg-transparent p-0 text-[14px] font-medium text-[var(--chekin-color-brand-navy)] outline-none",
17994
18072
  children: [
17995
18073
  /* @__PURE__ */ (0, import_jsx_runtime178.jsx)("span", { className: "truncate", children: resolvedDownloadLabel }),
17996
- /* @__PURE__ */ (0, import_jsx_runtime178.jsx)(import_lucide_react52.Download, { size: 15 })
18074
+ /* @__PURE__ */ (0, import_jsx_runtime178.jsx)(import_lucide_react51.Download, { size: 15 })
17997
18075
  ]
17998
18076
  }
17999
18077
  ) : /* @__PURE__ */ (0, import_jsx_runtime178.jsx)("span", { className: "truncate text-[14px] font-medium text-[var(--chekin-color-brand-navy)]", children: value.name }),
@@ -18005,13 +18083,13 @@ var FileInput = React69.forwardRef(function FileInput2({
18005
18083
  onClick: handleClear,
18006
18084
  className: "ml-2 flex h-[15px] w-[15px] items-center justify-center rounded-[3px] border-0 bg-transparent p-0 text-[#9696b9] outline-none hover:shadow-[0_3px_3px_#0f477734]",
18007
18085
  "aria-label": t("remove_file"),
18008
- children: /* @__PURE__ */ (0, import_jsx_runtime178.jsx)(import_lucide_react52.SquareX, { size: 15, fill: "#9696b9", color: "#f8f8f8", strokeWidth: 1.8 })
18086
+ children: /* @__PURE__ */ (0, import_jsx_runtime178.jsx)(import_lucide_react51.SquareX, { size: 15, fill: "#9696b9", color: "#f8f8f8", strokeWidth: 1.8 })
18009
18087
  }
18010
18088
  )
18011
18089
  ]
18012
18090
  }
18013
18091
  ) : /* @__PURE__ */ (0, import_jsx_runtime178.jsx)("span", { className: "block min-w-0 flex-1 truncate text-left text-[var(--chekin-color-gray-1)]", children: placeholder ?? "" }),
18014
- /* @__PURE__ */ (0, import_jsx_runtime178.jsx)("span", { className: "ml-auto flex items-center gap-2 text-[var(--chekin-color-gray-2)]", children: /* @__PURE__ */ (0, import_jsx_runtime178.jsx)(import_lucide_react52.Paperclip, { size: 20 }) })
18092
+ /* @__PURE__ */ (0, import_jsx_runtime178.jsx)("span", { className: "ml-auto flex items-center gap-2 text-[var(--chekin-color-gray-2)]", children: /* @__PURE__ */ (0, import_jsx_runtime178.jsx)(import_lucide_react51.Paperclip, { size: 20 }) })
18015
18093
  ]
18016
18094
  }
18017
18095
  ),
@@ -18050,10 +18128,10 @@ var FileInput = React69.forwardRef(function FileInput2({
18050
18128
  });
18051
18129
 
18052
18130
  // src/dashboard/select-icons-box/SelectIconsBox.tsx
18053
- var React70 = __toESM(require("react"), 1);
18131
+ var React71 = __toESM(require("react"), 1);
18054
18132
  var import_jsx_runtime179 = require("react/jsx-runtime");
18055
18133
  var FOCUSABLE_TRIGGER_SELECTOR2 = 'input:not([type="hidden"]):not([disabled]):not([readonly]), button:not([disabled])';
18056
- var SelectIconsBox = React70.forwardRef(
18134
+ var SelectIconsBox = React71.forwardRef(
18057
18135
  function SelectIconsBox2({
18058
18136
  children,
18059
18137
  icons,
@@ -18069,10 +18147,10 @@ var SelectIconsBox = React70.forwardRef(
18069
18147
  className,
18070
18148
  boxClassName
18071
18149
  }, ref) {
18072
- const containerRef = React70.useRef(null);
18150
+ const containerRef = React71.useRef(null);
18073
18151
  const combinedContainerRef = useCombinedRef(containerRef, ref);
18074
18152
  const isControlled = controlledOpen !== void 0;
18075
- const [internalOpen, setInternalOpen] = React70.useState(defaultOpen);
18153
+ const [internalOpen, setInternalOpen] = React71.useState(defaultOpen);
18076
18154
  const isOpen = isControlled ? controlledOpen : internalOpen;
18077
18155
  const setOpen = (next) => {
18078
18156
  if (!isControlled) setInternalOpen(next);
@@ -18265,15 +18343,15 @@ var LegacyTextarea = (0, import_react89.forwardRef)(
18265
18343
  LegacyTextarea.displayName = "LegacyTextarea";
18266
18344
 
18267
18345
  // src/airbnb-fields/datepicker/DatePicker.tsx
18268
- var React72 = __toESM(require("react"), 1);
18269
- var import_lucide_react54 = require("lucide-react");
18346
+ var React73 = __toESM(require("react"), 1);
18347
+ var import_lucide_react53 = require("lucide-react");
18270
18348
 
18271
18349
  // src/airbnb-fields/field-trigger/FieldTrigger.tsx
18272
- var React71 = __toESM(require("react"), 1);
18273
- var import_lucide_react53 = require("lucide-react");
18350
+ var React72 = __toESM(require("react"), 1);
18351
+ var import_lucide_react52 = require("lucide-react");
18274
18352
  var import_react_i18next42 = require("react-i18next");
18275
18353
  var import_jsx_runtime182 = require("react/jsx-runtime");
18276
- var AirbnbFieldTrigger = React71.forwardRef(
18354
+ var AirbnbFieldTrigger = React72.forwardRef(
18277
18355
  ({
18278
18356
  as = "button",
18279
18357
  id,
@@ -18334,7 +18412,7 @@ var AirbnbFieldTrigger = React71.forwardRef(
18334
18412
  const resolvedTrailingAdornment = loading || trailingAdornment ? /* @__PURE__ */ (0, import_jsx_runtime182.jsxs)("span", { className: "flex items-center gap-2", children: [
18335
18413
  trailingAdornment,
18336
18414
  loading && /* @__PURE__ */ (0, import_jsx_runtime182.jsx)(
18337
- import_lucide_react53.Loader2,
18415
+ import_lucide_react52.Loader2,
18338
18416
  {
18339
18417
  "aria-hidden": "true",
18340
18418
  className: "h-5 w-5 animate-spin text-[var(--chekin-color-gray-1)]"
@@ -18441,7 +18519,7 @@ AirbnbFieldTrigger.displayName = "AirbnbFieldTrigger";
18441
18519
  // src/airbnb-fields/datepicker/DatePicker.tsx
18442
18520
  var import_jsx_runtime183 = require("react/jsx-runtime");
18443
18521
  var DEFAULT_MIN_DATE = new Date(1920, 0, 1);
18444
- var AirbnbDatePicker = React72.forwardRef(
18522
+ var AirbnbDatePicker = React73.forwardRef(
18445
18523
  ({
18446
18524
  label,
18447
18525
  topLabel,
@@ -18466,24 +18544,24 @@ var AirbnbDatePicker = React72.forwardRef(
18466
18544
  formatValue = formatDateValue
18467
18545
  }, ref) => {
18468
18546
  const { isMatch: isMobile3 } = useScreenResize(DEVICE.mobileXL);
18469
- const [isOpen, setIsOpen] = React72.useState(false);
18470
- const triggerId = React72.useId();
18471
- const pickerId = React72.useId();
18472
- const labelId = React72.useId();
18473
- const valueId = React72.useId();
18474
- const helperTextId = React72.useId();
18475
- const errorId = React72.useId();
18476
- const internalRef = React72.useRef(null);
18547
+ const [isOpen, setIsOpen] = React73.useState(false);
18548
+ const triggerId = React73.useId();
18549
+ const pickerId = React73.useId();
18550
+ const labelId = React73.useId();
18551
+ const valueId = React73.useId();
18552
+ const helperTextId = React73.useId();
18553
+ const errorId = React73.useId();
18554
+ const internalRef = React73.useRef(null);
18477
18555
  const combinedRef = useCombinedRef(ref, internalRef);
18478
- const monthLabels = React72.useMemo(() => getMonthLabels(locale), [locale]);
18479
- const resolvedMinDate = React72.useMemo(() => minDate ?? DEFAULT_MIN_DATE, [minDate]);
18480
- const resolvedMaxDate = React72.useMemo(() => maxDate ?? /* @__PURE__ */ new Date(), [maxDate]);
18481
- const normalizedValue = React72.useMemo(() => normalizeDateValue(value), [value]);
18482
- const normalizedDefaultValue = React72.useMemo(
18556
+ const monthLabels = React73.useMemo(() => getMonthLabels(locale), [locale]);
18557
+ const resolvedMinDate = React73.useMemo(() => minDate ?? DEFAULT_MIN_DATE, [minDate]);
18558
+ const resolvedMaxDate = React73.useMemo(() => maxDate ?? /* @__PURE__ */ new Date(), [maxDate]);
18559
+ const normalizedValue = React73.useMemo(() => normalizeDateValue(value), [value]);
18560
+ const normalizedDefaultValue = React73.useMemo(
18483
18561
  () => normalizeDateValue(defaultValue),
18484
18562
  [defaultValue]
18485
18563
  );
18486
- const resolvedValue = React72.useMemo(
18564
+ const resolvedValue = React73.useMemo(
18487
18565
  () => normalizedValue ? clampDate(normalizedValue, resolvedMinDate, resolvedMaxDate) : null,
18488
18566
  [normalizedValue, resolvedMaxDate, resolvedMinDate]
18489
18567
  );
@@ -18514,7 +18592,7 @@ var AirbnbDatePicker = React72.forwardRef(
18514
18592
  minDate: resolvedMinDate,
18515
18593
  maxDate: resolvedMaxDate
18516
18594
  });
18517
- const handleOpenChange = React72.useCallback(
18595
+ const handleOpenChange = React73.useCallback(
18518
18596
  (nextOpen) => {
18519
18597
  if (isBlocked && nextOpen) return;
18520
18598
  setIsOpen(nextOpen);
@@ -18524,7 +18602,7 @@ var AirbnbDatePicker = React72.forwardRef(
18524
18602
  },
18525
18603
  [isBlocked]
18526
18604
  );
18527
- const handleDone = React72.useCallback(() => {
18605
+ const handleDone = React73.useCallback(() => {
18528
18606
  if (isBlocked) return;
18529
18607
  onChange(clampDate(draftDate, resolvedMinDate, resolvedMaxDate));
18530
18608
  handleOpenChange(false);
@@ -18536,11 +18614,11 @@ var AirbnbDatePicker = React72.forwardRef(
18536
18614
  resolvedMaxDate,
18537
18615
  resolvedMinDate
18538
18616
  ]);
18539
- const handleTriggerClick = React72.useCallback(() => {
18617
+ const handleTriggerClick = React73.useCallback(() => {
18540
18618
  if (isBlocked) return;
18541
18619
  setIsOpen(true);
18542
18620
  }, [isBlocked]);
18543
- const handleTriggerKeyDown = React72.useCallback(
18621
+ const handleTriggerKeyDown = React73.useCallback(
18544
18622
  (event) => {
18545
18623
  if (isBlocked) return;
18546
18624
  if (event.key === "ArrowDown" || event.key === "ArrowUp" || event.key === "Enter" || event.key === " ") {
@@ -18550,7 +18628,7 @@ var AirbnbDatePicker = React72.forwardRef(
18550
18628
  },
18551
18629
  [isBlocked]
18552
18630
  );
18553
- React72.useEffect(() => {
18631
+ React73.useEffect(() => {
18554
18632
  if (isBlocked) {
18555
18633
  setIsOpen(false);
18556
18634
  }
@@ -18590,7 +18668,7 @@ var AirbnbDatePicker = React72.forwardRef(
18590
18668
  onClick: handleTriggerClick,
18591
18669
  onKeyDown: handleTriggerKeyDown,
18592
18670
  onBlur,
18593
- trailingAdornment: /* @__PURE__ */ (0, import_jsx_runtime183.jsx)(import_lucide_react54.Calendar, { className: "h-5 w-5 text-[#1F1F1B]", strokeWidth: 2 })
18671
+ trailingAdornment: /* @__PURE__ */ (0, import_jsx_runtime183.jsx)(import_lucide_react53.Calendar, { className: "h-5 w-5 text-[#1F1F1B]", strokeWidth: 2 })
18594
18672
  }
18595
18673
  ),
18596
18674
  /* @__PURE__ */ (0, import_jsx_runtime183.jsx)(
@@ -18627,12 +18705,12 @@ var AirbnbDatePicker = React72.forwardRef(
18627
18705
  AirbnbDatePicker.displayName = "AirbnbDatePicker";
18628
18706
 
18629
18707
  // src/airbnb-fields/input/Input.tsx
18630
- var React73 = __toESM(require("react"), 1);
18631
- var import_lucide_react55 = require("lucide-react");
18708
+ var React74 = __toESM(require("react"), 1);
18709
+ var import_lucide_react54 = require("lucide-react");
18632
18710
  var import_react_i18next43 = require("react-i18next");
18633
18711
  var import_jsx_runtime184 = require("react/jsx-runtime");
18634
18712
  var getInputValue = (value) => value != null ? String(value) : "";
18635
- var AirbnbInput = React73.forwardRef(
18713
+ var AirbnbInput = React74.forwardRef(
18636
18714
  ({
18637
18715
  label,
18638
18716
  topLabel,
@@ -18661,16 +18739,16 @@ var AirbnbInput = React73.forwardRef(
18661
18739
  ...props
18662
18740
  }, ref) => {
18663
18741
  const { t } = (0, import_react_i18next43.useTranslation)();
18664
- const generatedId = React73.useId();
18665
- const inputRef = React73.useRef(null);
18742
+ const generatedId = React74.useId();
18743
+ const inputRef = React74.useRef(null);
18666
18744
  const inputId = id ?? generatedId;
18667
18745
  const fieldId = `${inputId}-field`;
18668
18746
  const labelId = `${inputId}-label`;
18669
18747
  const errorId = `${inputId}-error`;
18670
18748
  const accessibleLabel = placeholder ?? label;
18671
- const [isFocused, setIsFocused] = React73.useState(false);
18672
- const [isPasswordRevealed, setIsPasswordRevealed] = React73.useState(false);
18673
- const [currentValue, setCurrentValue] = React73.useState(
18749
+ const [isFocused, setIsFocused] = React74.useState(false);
18750
+ const [isPasswordRevealed, setIsPasswordRevealed] = React74.useState(false);
18751
+ const [currentValue, setCurrentValue] = React74.useState(
18674
18752
  () => value != null ? getInputValue(value) : getInputValue(defaultValue)
18675
18753
  );
18676
18754
  const resolvedValue = value != null ? getInputValue(value) : currentValue;
@@ -18683,16 +18761,16 @@ var AirbnbInput = React73.forwardRef(
18683
18761
  const triggerError = error ?? invalid;
18684
18762
  const hasLabelMeta = Boolean(optional) || Boolean(tooltip);
18685
18763
  const isBlocked = Boolean(disabled) || Boolean(loading);
18686
- React73.useLayoutEffect(() => {
18764
+ React74.useLayoutEffect(() => {
18687
18765
  const nextValue = value != null ? getInputValue(value) : getInputValue(inputRef.current?.value);
18688
18766
  setCurrentValue((prevValue) => prevValue === nextValue ? prevValue : nextValue);
18689
18767
  }, [value]);
18690
- React73.useEffect(() => {
18768
+ React74.useEffect(() => {
18691
18769
  if (!isPasswordInput) {
18692
18770
  setIsPasswordRevealed(false);
18693
18771
  }
18694
18772
  }, [isPasswordInput]);
18695
- const setRefs = React73.useCallback(
18773
+ const setRefs = React74.useCallback(
18696
18774
  (node) => {
18697
18775
  inputRef.current = node;
18698
18776
  if (node && value == null) {
@@ -18793,7 +18871,7 @@ var AirbnbInput = React73.forwardRef(
18793
18871
  className: "absolute bottom-0 right-0 flex h-6 w-6 items-center justify-center border-0 bg-transparent p-0 text-[#7A8399] hover:text-[#1F1F1B] hover:opacity-85 disabled:cursor-not-allowed disabled:opacity-50",
18794
18872
  "aria-label": isPasswordRevealed ? t("hide_password") : t("show_password"),
18795
18873
  children: /* @__PURE__ */ (0, import_jsx_runtime184.jsx)(
18796
- import_lucide_react55.Eye,
18874
+ import_lucide_react54.Eye,
18797
18875
  {
18798
18876
  size: 18,
18799
18877
  "aria-hidden": "true",
@@ -18810,11 +18888,11 @@ var AirbnbInput = React73.forwardRef(
18810
18888
  AirbnbInput.displayName = "AirbnbInput";
18811
18889
 
18812
18890
  // src/airbnb-fields/phone-field/PhoneField.tsx
18813
- var React79 = __toESM(require("react"), 1);
18814
- var import_lucide_react57 = require("lucide-react");
18891
+ var React80 = __toESM(require("react"), 1);
18892
+ var import_lucide_react56 = require("lucide-react");
18815
18893
 
18816
18894
  // src/airbnb-fields/select/Select.tsx
18817
- var React78 = __toESM(require("react"), 1);
18895
+ var React79 = __toESM(require("react"), 1);
18818
18896
 
18819
18897
  // src/airbnb-fields/select/SelectDesktopMenu.tsx
18820
18898
  var import_jsx_runtime185 = require("react/jsx-runtime");
@@ -19159,10 +19237,10 @@ function AirbnbSelectMobileContent({
19159
19237
  }
19160
19238
 
19161
19239
  // src/airbnb-fields/select/SelectTrigger.tsx
19162
- var React74 = __toESM(require("react"), 1);
19163
- var import_lucide_react56 = require("lucide-react");
19240
+ var React75 = __toESM(require("react"), 1);
19241
+ var import_lucide_react55 = require("lucide-react");
19164
19242
  var import_jsx_runtime189 = require("react/jsx-runtime");
19165
- var AirbnbSelectTrigger = React74.forwardRef(
19243
+ var AirbnbSelectTrigger = React75.forwardRef(
19166
19244
  ({
19167
19245
  id,
19168
19246
  open,
@@ -19215,7 +19293,7 @@ var AirbnbSelectTrigger = React74.forwardRef(
19215
19293
  onKeyDown,
19216
19294
  onBlur,
19217
19295
  trailingAdornment: /* @__PURE__ */ (0, import_jsx_runtime189.jsx)(
19218
- import_lucide_react56.ChevronDown,
19296
+ import_lucide_react55.ChevronDown,
19219
19297
  {
19220
19298
  className: open ? "h-6 w-6 rotate-180 text-[#1F1F1B] transition-transform" : "h-6 w-6 text-[#1F1F1B] transition-transform"
19221
19299
  }
@@ -19227,7 +19305,7 @@ var AirbnbSelectTrigger = React74.forwardRef(
19227
19305
  AirbnbSelectTrigger.displayName = "AirbnbSelectTrigger";
19228
19306
 
19229
19307
  // src/airbnb-fields/select/useDesktopSelect.ts
19230
- var React75 = __toESM(require("react"), 1);
19308
+ var React76 = __toESM(require("react"), 1);
19231
19309
  function useDesktopSelect({
19232
19310
  isMobile: isMobile3,
19233
19311
  isOpen,
@@ -19236,12 +19314,12 @@ function useDesktopSelect({
19236
19314
  disabled,
19237
19315
  onChange
19238
19316
  }) {
19239
- const [highlightedIndex, setHighlightedIndex] = React75.useState(-1);
19240
- const triggerRef = React75.useRef(null);
19241
- const listRef = React75.useRef(null);
19242
- const optionRefs = React75.useRef([]);
19317
+ const [highlightedIndex, setHighlightedIndex] = React76.useState(-1);
19318
+ const triggerRef = React76.useRef(null);
19319
+ const listRef = React76.useRef(null);
19320
+ const optionRefs = React76.useRef([]);
19243
19321
  const selectedIndex = getOptionIndex2(options, value);
19244
- React75.useEffect(() => {
19322
+ React76.useEffect(() => {
19245
19323
  if (!isOpen || isMobile3) return;
19246
19324
  setHighlightedIndex((currentIndex) => {
19247
19325
  if (currentIndex >= 0) {
@@ -19256,34 +19334,34 @@ function useDesktopSelect({
19256
19334
  window.cancelAnimationFrame(frameId);
19257
19335
  };
19258
19336
  }, [isMobile3, isOpen, options, selectedIndex]);
19259
- React75.useEffect(() => {
19337
+ React76.useEffect(() => {
19260
19338
  if (!isOpen || isMobile3 || highlightedIndex < 0) return;
19261
19339
  optionRefs.current[highlightedIndex]?.scrollIntoView({
19262
19340
  block: "nearest"
19263
19341
  });
19264
19342
  }, [highlightedIndex, isMobile3, isOpen]);
19265
- React75.useEffect(() => {
19343
+ React76.useEffect(() => {
19266
19344
  if (isOpen) return;
19267
19345
  setHighlightedIndex(-1);
19268
19346
  }, [isOpen]);
19269
- const focusTrigger = React75.useCallback(() => {
19347
+ const focusTrigger = React76.useCallback(() => {
19270
19348
  triggerRef.current?.focus();
19271
19349
  }, []);
19272
- const handleSelect = React75.useCallback(
19350
+ const handleSelect = React76.useCallback(
19273
19351
  (option) => {
19274
19352
  if (option.isDisabled || disabled) return;
19275
19353
  onChange?.(option);
19276
19354
  },
19277
19355
  [disabled, onChange]
19278
19356
  );
19279
- const openMenu = React75.useCallback(
19357
+ const openMenu = React76.useCallback(
19280
19358
  (targetIndex) => {
19281
19359
  const fallbackIndex = selectedIndex >= 0 ? selectedIndex : getFirstEnabledOptionIndex2(options);
19282
19360
  setHighlightedIndex(targetIndex ?? fallbackIndex);
19283
19361
  },
19284
19362
  [options, selectedIndex]
19285
19363
  );
19286
- const handleTriggerKeyDown = React75.useCallback(
19364
+ const handleTriggerKeyDown = React76.useCallback(
19287
19365
  (event, onOpen) => {
19288
19366
  if (disabled) return;
19289
19367
  if (event.key === "ArrowDown") {
@@ -19308,7 +19386,7 @@ function useDesktopSelect({
19308
19386
  },
19309
19387
  [disabled, openMenu, options, selectedIndex]
19310
19388
  );
19311
- const handleMenuKeyDown = React75.useCallback(
19389
+ const handleMenuKeyDown = React76.useCallback(
19312
19390
  (event, onClose) => {
19313
19391
  if (event.key === "Escape") {
19314
19392
  event.preventDefault();
@@ -19358,7 +19436,7 @@ function useDesktopSelect({
19358
19436
  },
19359
19437
  [focusTrigger, highlightedIndex, onChange, options]
19360
19438
  );
19361
- const setOptionRef = React75.useCallback(
19439
+ const setOptionRef = React76.useCallback(
19362
19440
  (index, node) => {
19363
19441
  optionRefs.current[index] = node;
19364
19442
  },
@@ -19378,23 +19456,23 @@ function useDesktopSelect({
19378
19456
  }
19379
19457
 
19380
19458
  // src/airbnb-fields/select/useMobileSelectWheel.ts
19381
- var React76 = __toESM(require("react"), 1);
19459
+ var React77 = __toESM(require("react"), 1);
19382
19460
  function useMobileSelectWheel({ isMobile: isMobile3, isOpen, options, value, disabled }) {
19383
- const [pendingValue, setPendingValue] = React76.useState(
19461
+ const [pendingValue, setPendingValue] = React77.useState(
19384
19462
  value ?? null
19385
19463
  );
19386
- const [mobileScrollTop, setMobileScrollTop] = React76.useState(0);
19387
- const mobileListRef = React76.useRef(null);
19388
- const scrollSettleTimeoutRef = React76.useRef(null);
19389
- const scrollAnimationFrameRef = React76.useRef(null);
19390
- const getTargetIndex = React76.useCallback(
19464
+ const [mobileScrollTop, setMobileScrollTop] = React77.useState(0);
19465
+ const mobileListRef = React77.useRef(null);
19466
+ const scrollSettleTimeoutRef = React77.useRef(null);
19467
+ const scrollAnimationFrameRef = React77.useRef(null);
19468
+ const getTargetIndex = React77.useCallback(
19391
19469
  (targetValue) => {
19392
19470
  const selectedIndex = getOptionIndex2(options, targetValue);
19393
19471
  return selectedIndex >= 0 ? selectedIndex : getFirstEnabledOptionIndex2(options);
19394
19472
  },
19395
19473
  [options]
19396
19474
  );
19397
- const syncScrollPosition = React76.useCallback(
19475
+ const syncScrollPosition = React77.useCallback(
19398
19476
  (targetValue, behavior = "instant") => {
19399
19477
  const targetIndex = getTargetIndex(targetValue);
19400
19478
  if (targetIndex < 0) return;
@@ -19413,27 +19491,27 @@ function useMobileSelectWheel({ isMobile: isMobile3, isOpen, options, value, dis
19413
19491
  },
19414
19492
  [getTargetIndex, options]
19415
19493
  );
19416
- const clearScrollSettleTimeout = React76.useCallback(() => {
19494
+ const clearScrollSettleTimeout = React77.useCallback(() => {
19417
19495
  if (scrollSettleTimeoutRef.current === null) return;
19418
19496
  window.clearTimeout(scrollSettleTimeoutRef.current);
19419
19497
  scrollSettleTimeoutRef.current = null;
19420
19498
  }, []);
19421
- const clearScrollAnimationFrame = React76.useCallback(() => {
19499
+ const clearScrollAnimationFrame = React77.useCallback(() => {
19422
19500
  if (scrollAnimationFrameRef.current === null) return;
19423
19501
  window.cancelAnimationFrame(scrollAnimationFrameRef.current);
19424
19502
  scrollAnimationFrameRef.current = null;
19425
19503
  }, []);
19426
- React76.useEffect(
19504
+ React77.useEffect(
19427
19505
  () => () => {
19428
19506
  clearScrollSettleTimeout();
19429
19507
  clearScrollAnimationFrame();
19430
19508
  },
19431
19509
  [clearScrollAnimationFrame, clearScrollSettleTimeout]
19432
19510
  );
19433
- React76.useEffect(() => {
19511
+ React77.useEffect(() => {
19434
19512
  setPendingValue(value ?? null);
19435
19513
  }, [value]);
19436
- React76.useLayoutEffect(() => {
19514
+ React77.useLayoutEffect(() => {
19437
19515
  if (!isMobile3 || !isOpen) return;
19438
19516
  const frameId = window.requestAnimationFrame(() => {
19439
19517
  syncScrollPosition(value ?? null, "instant");
@@ -19442,7 +19520,7 @@ function useMobileSelectWheel({ isMobile: isMobile3, isOpen, options, value, dis
19442
19520
  window.cancelAnimationFrame(frameId);
19443
19521
  };
19444
19522
  }, [isMobile3, isOpen, syncScrollPosition, value]);
19445
- const settleScroll = React76.useCallback(() => {
19523
+ const settleScroll = React77.useCallback(() => {
19446
19524
  if (!mobileListRef.current) return;
19447
19525
  const nextIndex = Math.round(mobileListRef.current.scrollTop / MOBILE_OPTION_HEIGHT);
19448
19526
  const nextOption = options[nextIndex];
@@ -19454,13 +19532,13 @@ function useMobileSelectWheel({ isMobile: isMobile3, isOpen, options, value, dis
19454
19532
  }
19455
19533
  setPendingValue(nextOption);
19456
19534
  }, [options, pendingValue]);
19457
- const scheduleScrollSettle = React76.useCallback(() => {
19535
+ const scheduleScrollSettle = React77.useCallback(() => {
19458
19536
  clearScrollSettleTimeout();
19459
19537
  scrollSettleTimeoutRef.current = window.setTimeout(() => {
19460
19538
  settleScroll();
19461
19539
  }, MOBILE_SCROLL_SETTLE_DELAY);
19462
19540
  }, [clearScrollSettleTimeout, settleScroll]);
19463
- const handleScroll = React76.useCallback(() => {
19541
+ const handleScroll = React77.useCallback(() => {
19464
19542
  if (!mobileListRef.current) return;
19465
19543
  const nextScrollTop = mobileListRef.current.scrollTop;
19466
19544
  clearScrollAnimationFrame();
@@ -19470,7 +19548,7 @@ function useMobileSelectWheel({ isMobile: isMobile3, isOpen, options, value, dis
19470
19548
  });
19471
19549
  scheduleScrollSettle();
19472
19550
  }, [clearScrollAnimationFrame, scheduleScrollSettle]);
19473
- const focusOptionByIndex = React76.useCallback(
19551
+ const focusOptionByIndex = React77.useCallback(
19474
19552
  (index, behavior = "instant", updatePendingImmediately = behavior === "instant") => {
19475
19553
  if (!mobileListRef.current || index < 0 || index >= options.length) return;
19476
19554
  const option = options[index];
@@ -19488,7 +19566,7 @@ function useMobileSelectWheel({ isMobile: isMobile3, isOpen, options, value, dis
19488
19566
  },
19489
19567
  [options, scheduleScrollSettle]
19490
19568
  );
19491
- const handleOptionClick = React76.useCallback(
19569
+ const handleOptionClick = React77.useCallback(
19492
19570
  (option) => {
19493
19571
  if (!mobileListRef.current || disabled || option.isDisabled) return;
19494
19572
  const optionIndex = getOptionIndex2(options, option);
@@ -19497,7 +19575,7 @@ function useMobileSelectWheel({ isMobile: isMobile3, isOpen, options, value, dis
19497
19575
  },
19498
19576
  [disabled, focusOptionByIndex, options]
19499
19577
  );
19500
- const moveByStep = React76.useCallback(
19578
+ const moveByStep = React77.useCallback(
19501
19579
  (step) => {
19502
19580
  const currentIndex = getOptionIndex2(options, pendingValue);
19503
19581
  const fallbackIndex = step === 1 ? getFirstEnabledOptionIndex2(options) : getLastEnabledOptionIndex2(options);
@@ -19509,7 +19587,7 @@ function useMobileSelectWheel({ isMobile: isMobile3, isOpen, options, value, dis
19509
19587
  },
19510
19588
  [focusOptionByIndex, options, pendingValue]
19511
19589
  );
19512
- const moveToBoundary = React76.useCallback(
19590
+ const moveToBoundary = React77.useCallback(
19513
19591
  (boundary) => {
19514
19592
  const targetIndex = boundary === "start" ? getFirstEnabledOptionIndex2(options) : getLastEnabledOptionIndex2(options);
19515
19593
  if (targetIndex >= 0) {
@@ -19518,7 +19596,7 @@ function useMobileSelectWheel({ isMobile: isMobile3, isOpen, options, value, dis
19518
19596
  },
19519
19597
  [focusOptionByIndex, options]
19520
19598
  );
19521
- const syncPendingValue = React76.useCallback(
19599
+ const syncPendingValue = React77.useCallback(
19522
19600
  (nextValue) => {
19523
19601
  const normalizedValue = nextValue ?? null;
19524
19602
  const matchedIndex = getOptionIndex2(options, normalizedValue);
@@ -19546,9 +19624,9 @@ function useMobileSelectWheel({ isMobile: isMobile3, isOpen, options, value, dis
19546
19624
  }
19547
19625
 
19548
19626
  // src/airbnb-fields/select/useSelectIds.ts
19549
- var React77 = __toESM(require("react"), 1);
19627
+ var React78 = __toESM(require("react"), 1);
19550
19628
  function useSelectIds2({ name, hasValue, error, hideErrorMessage }) {
19551
- const reactId = React77.useId().replace(/:/g, "");
19629
+ const reactId = React78.useId().replace(/:/g, "");
19552
19630
  const baseId = name ? `select-${name}` : `select-${reactId}`;
19553
19631
  const triggerId = `${baseId}-trigger`;
19554
19632
  const labelId = `${baseId}-label`;
@@ -19558,7 +19636,7 @@ function useSelectIds2({ name, hasValue, error, hideErrorMessage }) {
19558
19636
  const listboxId = `${baseId}-listbox`;
19559
19637
  const describedErrorId = error && !hideErrorMessage ? errorId : void 0;
19560
19638
  const describedBy = [!hasValue ? helperTextId : null, describedErrorId].filter(Boolean).join(" ") || void 0;
19561
- const getOptionId2 = React77.useCallback(
19639
+ const getOptionId2 = React78.useCallback(
19562
19640
  (index) => `${baseId}-option-${index}`,
19563
19641
  [baseId]
19564
19642
  );
@@ -19577,7 +19655,7 @@ function useSelectIds2({ name, hasValue, error, hideErrorMessage }) {
19577
19655
 
19578
19656
  // src/airbnb-fields/select/Select.tsx
19579
19657
  var import_jsx_runtime190 = require("react/jsx-runtime");
19580
- var AirbnbSelect = React78.forwardRef(function AirbnbSelect2({
19658
+ var AirbnbSelect = React79.forwardRef(function AirbnbSelect2({
19581
19659
  options = [],
19582
19660
  value,
19583
19661
  onChange,
@@ -19604,8 +19682,8 @@ var AirbnbSelect = React78.forwardRef(function AirbnbSelect2({
19604
19682
  filterOption
19605
19683
  }, ref) {
19606
19684
  const { isMatch: isMobile3 } = useScreenResize(DEVICE.mobileXL);
19607
- const [isOpen, setIsOpen] = React78.useState(false);
19608
- const containerRef = React78.useRef(null);
19685
+ const [isOpen, setIsOpen] = React79.useState(false);
19686
+ const containerRef = React79.useRef(null);
19609
19687
  const filteredOptions = filterOption ? options.filter(filterOption) : options;
19610
19688
  const hasValue = Boolean(value);
19611
19689
  const helperText = placeholder ?? label;
@@ -19667,12 +19745,12 @@ var AirbnbSelect = React78.forwardRef(function AirbnbSelect2({
19667
19745
  onOutsideClick: () => setIsOpen(false),
19668
19746
  isDisabled: !isOpen || isMobile3
19669
19747
  });
19670
- React78.useEffect(() => {
19748
+ React79.useEffect(() => {
19671
19749
  if (isBlocked) {
19672
19750
  setIsOpen(false);
19673
19751
  }
19674
19752
  }, [isBlocked]);
19675
- React78.useEffect(
19753
+ React79.useEffect(
19676
19754
  function setCorrectOptionIfThereIsOnlyValue() {
19677
19755
  if (value?.value === void 0 || value.value === null || value.label !== "") {
19678
19756
  return;
@@ -19684,7 +19762,7 @@ var AirbnbSelect = React78.forwardRef(function AirbnbSelect2({
19684
19762
  },
19685
19763
  [onChange, filteredOptions, value]
19686
19764
  );
19687
- const handleMobileOpenChange = React78.useCallback(
19765
+ const handleMobileOpenChange = React79.useCallback(
19688
19766
  (nextOpen) => {
19689
19767
  if (isBlocked && nextOpen) return;
19690
19768
  setIsOpen(nextOpen);
@@ -19695,7 +19773,7 @@ var AirbnbSelect = React78.forwardRef(function AirbnbSelect2({
19695
19773
  },
19696
19774
  [focusTrigger, isBlocked, syncPendingValue, value]
19697
19775
  );
19698
- const handleMobileDone = React78.useCallback(() => {
19776
+ const handleMobileDone = React79.useCallback(() => {
19699
19777
  if (isBlocked) return;
19700
19778
  const finalOption = pendingValue;
19701
19779
  if (finalOption && finalOption.value !== value?.value) {
@@ -19704,7 +19782,7 @@ var AirbnbSelect = React78.forwardRef(function AirbnbSelect2({
19704
19782
  setIsOpen(false);
19705
19783
  focusTrigger();
19706
19784
  }, [focusTrigger, isBlocked, onChange, pendingValue, value]);
19707
- const handleTriggerClick = React78.useCallback(() => {
19785
+ const handleTriggerClick = React79.useCallback(() => {
19708
19786
  if (isBlocked) return;
19709
19787
  setIsOpen((prev) => {
19710
19788
  const nextOpen = !prev;
@@ -19876,7 +19954,7 @@ function formatPhoneCodeOptionLabel2(option) {
19876
19954
  const value = String(option.value);
19877
19955
  return label.includes(value) ? label : `${label} (${value})`;
19878
19956
  }
19879
- var AirbnbPhoneField = React79.forwardRef(
19957
+ var AirbnbPhoneField = React80.forwardRef(
19880
19958
  ({
19881
19959
  label,
19882
19960
  topLabel,
@@ -19900,9 +19978,9 @@ var AirbnbPhoneField = React79.forwardRef(
19900
19978
  codePlaceholder = "+00",
19901
19979
  defaultCode
19902
19980
  }, ref) => {
19903
- const inputId = React79.useId();
19981
+ const inputId = React80.useId();
19904
19982
  const effectiveCode = value?.code || defaultCode || "";
19905
- const codeOptions = React79.useMemo(
19983
+ const codeOptions = React80.useMemo(
19906
19984
  () => options.map((option) => ({
19907
19985
  value: option.value,
19908
19986
  label: formatPhoneCodeOptionLabel2(option),
@@ -19910,7 +19988,7 @@ var AirbnbPhoneField = React79.forwardRef(
19910
19988
  })),
19911
19989
  [options]
19912
19990
  );
19913
- const selectedCodeOption = React79.useMemo(
19991
+ const selectedCodeOption = React80.useMemo(
19914
19992
  () => codeOptions.find((option) => option.value === effectiveCode) ?? null,
19915
19993
  [codeOptions, effectiveCode]
19916
19994
  );
@@ -19999,7 +20077,7 @@ var AirbnbPhoneField = React79.forwardRef(
19999
20077
  children: [
20000
20078
  /* @__PURE__ */ (0, import_jsx_runtime191.jsx)("span", { children: valueLabel ?? codePlaceholder }),
20001
20079
  /* @__PURE__ */ (0, import_jsx_runtime191.jsx)(
20002
- import_lucide_react57.ChevronDown,
20080
+ import_lucide_react56.ChevronDown,
20003
20081
  {
20004
20082
  className: cn("h-5 w-5 transition-transform", open ? "rotate-180" : ""),
20005
20083
  strokeWidth: 2
@@ -20046,8 +20124,8 @@ var AirbnbPhoneField = React79.forwardRef(
20046
20124
  AirbnbPhoneField.displayName = "AirbnbPhoneField";
20047
20125
 
20048
20126
  // src/airbnb-fields/searchable-select/SearchableSelect.tsx
20049
- var React80 = __toESM(require("react"), 1);
20050
- var import_lucide_react58 = require("lucide-react");
20127
+ var React81 = __toESM(require("react"), 1);
20128
+ var import_lucide_react57 = require("lucide-react");
20051
20129
  var import_react_virtual3 = require("@tanstack/react-virtual");
20052
20130
  var import_react90 = require("react");
20053
20131
  var import_jsx_runtime192 = require("react/jsx-runtime");
@@ -20090,13 +20168,13 @@ var AirbnbSearchableSelectInternal = ({
20090
20168
  loadingMessage
20091
20169
  }, ref) => {
20092
20170
  const { isMatch: isMobile3 } = useScreenResize(DEVICE.mobileXL);
20093
- const reactId = React80.useId();
20094
- const [open, setOpen] = React80.useState(false);
20095
- const [internalSearchValue, setInternalSearchValue] = React80.useState("");
20096
- const [highlightedIndex, setHighlightedIndex] = React80.useState(-1);
20097
- const containerRef = React80.useRef(null);
20098
- const triggerRef = React80.useRef(null);
20099
- const inputRef = React80.useRef(null);
20171
+ const reactId = React81.useId();
20172
+ const [open, setOpen] = React81.useState(false);
20173
+ const [internalSearchValue, setInternalSearchValue] = React81.useState("");
20174
+ const [highlightedIndex, setHighlightedIndex] = React81.useState(-1);
20175
+ const containerRef = React81.useRef(null);
20176
+ const triggerRef = React81.useRef(null);
20177
+ const inputRef = React81.useRef(null);
20100
20178
  const listboxId = `${reactId}-listbox`;
20101
20179
  const labelId = `${reactId}-label`;
20102
20180
  const valueId = `${reactId}-value`;
@@ -20105,13 +20183,13 @@ var AirbnbSearchableSelectInternal = ({
20105
20183
  const searchInputId = `${reactId}-search`;
20106
20184
  const effectiveSearchValue = searchValue ?? internalSearchValue;
20107
20185
  const shouldFilterLocally = !onSearchChange && filterOption !== null;
20108
- const visibleOptions = React80.useMemo(() => {
20186
+ const visibleOptions = React81.useMemo(() => {
20109
20187
  if (!shouldFilterLocally || !effectiveSearchValue) {
20110
20188
  return options;
20111
20189
  }
20112
20190
  return options.filter((option) => filterOption(option, effectiveSearchValue));
20113
20191
  }, [effectiveSearchValue, filterOption, options, shouldFilterLocally]);
20114
- const selectedIndex = React80.useMemo(
20192
+ const selectedIndex = React81.useMemo(
20115
20193
  () => visibleOptions.findIndex((option) => option.value === value?.value),
20116
20194
  [value?.value, visibleOptions]
20117
20195
  );
@@ -20137,7 +20215,7 @@ var AirbnbSearchableSelectInternal = ({
20137
20215
  },
20138
20216
  [handleOnOpenChange]
20139
20217
  );
20140
- React80.useEffect(() => {
20218
+ React81.useEffect(() => {
20141
20219
  if (isBlocked) {
20142
20220
  setSelectOpen(false);
20143
20221
  return;
@@ -20150,7 +20228,7 @@ var AirbnbSearchableSelectInternal = ({
20150
20228
  window.cancelAnimationFrame(frameId);
20151
20229
  };
20152
20230
  }, [isBlocked, open, setSelectOpen]);
20153
- React80.useEffect(() => {
20231
+ React81.useEffect(() => {
20154
20232
  if (!open) {
20155
20233
  setHighlightedIndex(-1);
20156
20234
  return;
@@ -20245,7 +20323,7 @@ var AirbnbSearchableSelectInternal = ({
20245
20323
  onOptionHover: setHighlightedIndex
20246
20324
  }
20247
20325
  );
20248
- React80.useImperativeHandle(ref, () => triggerRef.current, []);
20326
+ React81.useImperativeHandle(ref, () => triggerRef.current, []);
20249
20327
  return /* @__PURE__ */ (0, import_jsx_runtime192.jsxs)("div", { ref: containerRef, className: cn("relative w-full max-w-[425px]", className), children: [
20250
20328
  name && /* @__PURE__ */ (0, import_jsx_runtime192.jsx)("input", { type: "hidden", name, value: value ? String(value.value) : "" }),
20251
20329
  /* @__PURE__ */ (0, import_jsx_runtime192.jsx)(
@@ -20283,7 +20361,7 @@ var AirbnbSearchableSelectInternal = ({
20283
20361
  onKeyDown: handleTriggerKeyDown,
20284
20362
  onBlur,
20285
20363
  trailingAdornment: /* @__PURE__ */ (0, import_jsx_runtime192.jsx)(
20286
- import_lucide_react58.ChevronDown,
20364
+ import_lucide_react57.ChevronDown,
20287
20365
  {
20288
20366
  className: cn(
20289
20367
  "h-6 w-6 text-[#1F1F1B] transition-transform",
@@ -20323,7 +20401,7 @@ var AirbnbSearchableSelectInternal = ({
20323
20401
  ) : null
20324
20402
  ] });
20325
20403
  };
20326
- var AirbnbSearchableSelect = React80.forwardRef(
20404
+ var AirbnbSearchableSelect = React81.forwardRef(
20327
20405
  AirbnbSearchableSelectInternal
20328
20406
  );
20329
20407
  function AirbnbSearchableSelectContent({
@@ -20350,9 +20428,9 @@ function AirbnbSearchableSelectContent({
20350
20428
  onOptionClick,
20351
20429
  onOptionHover
20352
20430
  }) {
20353
- const listRef = React80.useRef(null);
20354
- const lastLoadMoreOptionsLengthRef = React80.useRef(null);
20355
- const previousHighlightedIndexRef = React80.useRef(highlightedIndex);
20431
+ const listRef = React81.useRef(null);
20432
+ const lastLoadMoreOptionsLengthRef = React81.useRef(null);
20433
+ const previousHighlightedIndexRef = React81.useRef(highlightedIndex);
20356
20434
  const rowCount = options.length + (loading && options.length > 0 ? 1 : 0);
20357
20435
  const virtualizer = (0, import_react_virtual3.useVirtualizer)({
20358
20436
  count: rowCount,
@@ -20363,7 +20441,7 @@ function AirbnbSearchableSelectContent({
20363
20441
  const virtualItems = virtualizer.getVirtualItems();
20364
20442
  const emptyMessage = noOptionsMessage?.() ?? "No matches found";
20365
20443
  const loadingText = loadingMessage?.() ?? "Loading...";
20366
- React80.useEffect(() => {
20444
+ React81.useEffect(() => {
20367
20445
  const lastItem = virtualItems[virtualItems.length - 1];
20368
20446
  const shouldLoadMore = !!lastItem && hasNextPage && !loading && lastItem.index >= options.length - LOAD_MORE_THRESHOLD;
20369
20447
  if (shouldLoadMore && lastLoadMoreOptionsLengthRef.current !== options.length) {
@@ -20371,7 +20449,7 @@ function AirbnbSearchableSelectContent({
20371
20449
  onLoadMore?.();
20372
20450
  }
20373
20451
  }, [hasNextPage, loading, onLoadMore, options.length, virtualItems]);
20374
- React80.useEffect(() => {
20452
+ React81.useEffect(() => {
20375
20453
  const hasHighlightedIndexChanged = previousHighlightedIndexRef.current !== highlightedIndex;
20376
20454
  previousHighlightedIndexRef.current = highlightedIndex;
20377
20455
  if (highlightedIndex >= 0 && hasHighlightedIndexChanged) {
@@ -20381,7 +20459,7 @@ function AirbnbSearchableSelectContent({
20381
20459
  return /* @__PURE__ */ (0, import_jsx_runtime192.jsxs)("div", { className: "p-2", children: [
20382
20460
  /* @__PURE__ */ (0, import_jsx_runtime192.jsxs)("div", { className: "relative mb-2", children: [
20383
20461
  /* @__PURE__ */ (0, import_jsx_runtime192.jsx)(
20384
- import_lucide_react58.Search,
20462
+ import_lucide_react57.Search,
20385
20463
  {
20386
20464
  "aria-hidden": "true",
20387
20465
  className: "absolute left-4 top-1/2 h-5 w-5 -translate-y-1/2 text-[#9696B9]"
@@ -20489,15 +20567,15 @@ function getNextEnabledIndex(options, startIndex, step) {
20489
20567
  }
20490
20568
 
20491
20569
  // src/airbnb-fields/search-input/SearchInput.tsx
20492
- var React81 = __toESM(require("react"), 1);
20570
+ var React82 = __toESM(require("react"), 1);
20493
20571
  var import_react_i18next44 = require("react-i18next");
20494
- var import_lucide_react59 = require("lucide-react");
20572
+ var import_lucide_react58 = require("lucide-react");
20495
20573
  var import_jsx_runtime193 = require("react/jsx-runtime");
20496
- var AirbnbSearchInput = React81.forwardRef(({ onReset, placeholder, wrapperClassName, ...props }, ref) => {
20574
+ var AirbnbSearchInput = React82.forwardRef(({ onReset, placeholder, wrapperClassName, ...props }, ref) => {
20497
20575
  const { t } = (0, import_react_i18next44.useTranslation)();
20498
20576
  const placeholderText = placeholder || t("search_property") + "...";
20499
20577
  return /* @__PURE__ */ (0, import_jsx_runtime193.jsxs)("div", { className: cn("input-wrapper relative", wrapperClassName), children: [
20500
- /* @__PURE__ */ (0, import_jsx_runtime193.jsx)(import_lucide_react59.Search, { className: "absolute left-4 top-1/2 h-5 w-5 -translate-y-1/2 transform text-[#9696B9]" }),
20578
+ /* @__PURE__ */ (0, import_jsx_runtime193.jsx)(import_lucide_react58.Search, { className: "absolute left-4 top-1/2 h-5 w-5 -translate-y-1/2 transform text-[#9696B9]" }),
20501
20579
  /* @__PURE__ */ (0, import_jsx_runtime193.jsx)(
20502
20580
  "input",
20503
20581
  {
@@ -20523,7 +20601,7 @@ var AirbnbSearchInput = React81.forwardRef(({ onReset, placeholder, wrapperClass
20523
20601
  variant: "ghost",
20524
20602
  onClick: onReset,
20525
20603
  className: "absolute right-0 top-1/2 h-5 w-5 -translate-y-1/2 transform text-[#9696B9]",
20526
- children: /* @__PURE__ */ (0, import_jsx_runtime193.jsx)(import_lucide_react59.X, { className: "h-5 w-5" })
20604
+ children: /* @__PURE__ */ (0, import_jsx_runtime193.jsx)(import_lucide_react58.X, { className: "h-5 w-5" })
20527
20605
  }
20528
20606
  )
20529
20607
  ] });
@@ -20531,11 +20609,11 @@ var AirbnbSearchInput = React81.forwardRef(({ onReset, placeholder, wrapperClass
20531
20609
  AirbnbSearchInput.displayName = "AirbnbSearchInput";
20532
20610
 
20533
20611
  // src/airbnb-fields/switch/Switch.tsx
20534
- var React82 = __toESM(require("react"), 1);
20612
+ var React83 = __toESM(require("react"), 1);
20535
20613
  var SwitchPrimitives2 = __toESM(require("@radix-ui/react-switch"), 1);
20536
- var import_lucide_react60 = require("lucide-react");
20614
+ var import_lucide_react59 = require("lucide-react");
20537
20615
  var import_jsx_runtime194 = require("react/jsx-runtime");
20538
- var AirbnbSwitch = React82.forwardRef(
20616
+ var AirbnbSwitch = React83.forwardRef(
20539
20617
  ({
20540
20618
  className,
20541
20619
  value,
@@ -20549,7 +20627,7 @@ var AirbnbSwitch = React82.forwardRef(
20549
20627
  wrapperClassName,
20550
20628
  ...props
20551
20629
  }, ref) => {
20552
- const generatedId = React82.useId();
20630
+ const generatedId = React83.useId();
20553
20631
  const fieldId = id || generatedId;
20554
20632
  const switchElement = /* @__PURE__ */ (0, import_jsx_runtime194.jsx)(
20555
20633
  SwitchPrimitives2.Root,
@@ -20579,7 +20657,7 @@ var AirbnbSwitch = React82.forwardRef(
20579
20657
  "data-[state=checked]:translate-x-[12px] data-[state=unchecked]:translate-x-0"
20580
20658
  ),
20581
20659
  children: /* @__PURE__ */ (0, import_jsx_runtime194.jsx)(
20582
- import_lucide_react60.Check,
20660
+ import_lucide_react59.Check,
20583
20661
  {
20584
20662
  "aria-hidden": "true",
20585
20663
  className: "h-3 w-3 text-[#222222] opacity-0 transition-opacity duration-150 group-data-[state=checked]:opacity-100",