@chekinapp/ui 0.0.52 → 0.0.54

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
@@ -318,6 +318,7 @@ __export(index_exports, {
318
318
  useDebouncedFunction: () => useDebouncedFunction,
319
319
  useEvent: () => useEvent,
320
320
  useHover: () => useHover,
321
+ useIframeFocusTrapFallback: () => useIframeFocusTrapFallback,
321
322
  useIsFormTouched: () => useIsFormTouched,
322
323
  useIsMobile: () => useIsMobile,
323
324
  useIsMounted: () => useIsMounted,
@@ -2372,7 +2373,7 @@ function DataTable({ columns, data }) {
2372
2373
  }
2373
2374
 
2374
2375
  // src/dialog/Dialog.tsx
2375
- var React12 = __toESM(require("react"), 1);
2376
+ var React13 = __toESM(require("react"), 1);
2376
2377
  var DialogPrimitive = __toESM(require("@radix-ui/react-dialog"), 1);
2377
2378
  var import_react_visually_hidden = require("@radix-ui/react-visually-hidden");
2378
2379
  var import_lucide_react10 = require("lucide-react");
@@ -3000,6 +3001,77 @@ function useKeyDown(key, cb, options) {
3000
3001
  }, [handleKeyDown, enabled]);
3001
3002
  }
3002
3003
 
3004
+ // src/hooks/use-iframe-focus-trap-fallback.ts
3005
+ var React12 = __toESM(require("react"), 1);
3006
+ var IFRAME_FOCUSABLE_SELECTOR = [
3007
+ "a[href]",
3008
+ "area[href]",
3009
+ 'input:not([disabled]):not([type="hidden"])',
3010
+ "select:not([disabled])",
3011
+ "textarea:not([disabled])",
3012
+ "button:not([disabled])",
3013
+ "iframe",
3014
+ "object",
3015
+ "embed",
3016
+ '[contenteditable="true"]',
3017
+ '[tabindex]:not([tabindex="-1"])'
3018
+ ].join(",");
3019
+ function getFocusableElements(container) {
3020
+ const ownerDocument = container.ownerDocument;
3021
+ const HTMLElementConstructor = ownerDocument.defaultView?.HTMLElement ?? HTMLElement;
3022
+ return Array.from(
3023
+ container.querySelectorAll(IFRAME_FOCUSABLE_SELECTOR)
3024
+ ).filter((element) => {
3025
+ if (!(element instanceof HTMLElementConstructor)) {
3026
+ return false;
3027
+ }
3028
+ if (element.tabIndex < 0 || element.hidden || element.getAttribute("aria-hidden")) {
3029
+ return false;
3030
+ }
3031
+ return element.getClientRects().length > 0 || element === ownerDocument.activeElement;
3032
+ });
3033
+ }
3034
+ function useIframeFocusTrapFallback(contentRef, onKeyDown) {
3035
+ return React12.useCallback(
3036
+ (event) => {
3037
+ onKeyDown?.(event);
3038
+ if (event.defaultPrevented || event.key !== "Tab") {
3039
+ return;
3040
+ }
3041
+ const contentNode = contentRef.current;
3042
+ if (!contentNode || !window.chekinCustomDocument || contentNode.ownerDocument !== window.chekinCustomDocument) {
3043
+ return;
3044
+ }
3045
+ const focusableElements = getFocusableElements(contentNode);
3046
+ if (!focusableElements.length) {
3047
+ event.preventDefault();
3048
+ contentNode.focus();
3049
+ return;
3050
+ }
3051
+ const firstFocusableElement = focusableElements[0];
3052
+ const lastFocusableElement = focusableElements[focusableElements.length - 1];
3053
+ const activeElement = contentNode.ownerDocument.activeElement;
3054
+ if (focusableElements.length === 1) {
3055
+ event.preventDefault();
3056
+ firstFocusableElement.focus();
3057
+ return;
3058
+ }
3059
+ if (event.shiftKey) {
3060
+ if (activeElement === firstFocusableElement || activeElement === contentNode) {
3061
+ event.preventDefault();
3062
+ lastFocusableElement.focus();
3063
+ }
3064
+ return;
3065
+ }
3066
+ if (activeElement === lastFocusableElement) {
3067
+ event.preventDefault();
3068
+ firstFocusableElement.focus();
3069
+ }
3070
+ },
3071
+ [contentRef, onKeyDown]
3072
+ );
3073
+ }
3074
+
3003
3075
  // src/hooks/use-reset-after-request-status.ts
3004
3076
  var import_react27 = require("react");
3005
3077
  var ResetStatusTimeoutMs = 2e3;
@@ -3090,7 +3162,7 @@ function useIsFormTouched({
3090
3162
  // src/dialog/Dialog.tsx
3091
3163
  var import_jsx_runtime31 = require("react/jsx-runtime");
3092
3164
  function useIframeTitleFix(titleRef) {
3093
- React12.useEffect(() => {
3165
+ React13.useEffect(() => {
3094
3166
  if (!window.chekinCustomDocument) {
3095
3167
  return;
3096
3168
  }
@@ -3119,7 +3191,7 @@ function DialogClose({ ...props }) {
3119
3191
  }
3120
3192
  var dialogOverlayClasses = "fixed inset-0 z-50 bg-[var(--dialog-overlay-bg)] data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0";
3121
3193
  var scrollableOverlayClasses = "fixed inset-0 z-50 flex flex-col items-center overflow-y-auto overscroll-none pb-[19px] pt-[20px]";
3122
- var DialogOverlay = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
3194
+ var DialogOverlay = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
3123
3195
  DialogPrimitive.Overlay,
3124
3196
  {
3125
3197
  ref,
@@ -3131,7 +3203,7 @@ var DialogOverlay = React12.forwardRef(({ className, ...props }, ref) => /* @__P
3131
3203
  DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
3132
3204
  var dialogContentClasses = "relative z-50 my-auto w-full max-w-[calc(100%-2rem)] rounded-[var(--dialog-content-radius)] border border-[var(--dialog-content-border)] bg-[var(--dialog-content-bg)] p-6 text-[var(--dialog-content-text)] shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 sm:max-w-2xl";
3133
3205
  var dialogCloseButtonClasses = "absolute right-4 top-4 flex size-6 items-center justify-center rounded-[var(--dialog-close-radius)] opacity-70 transition-opacity hover:opacity-100 focus:outline-none focus:shadow-chekin-focus disabled:pointer-events-none [&_svg:not([class*=size-])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0";
3134
- var DialogContent = React12.forwardRef(
3206
+ var DialogContent = React13.forwardRef(
3135
3207
  ({
3136
3208
  className,
3137
3209
  showCloseButton = true,
@@ -3141,13 +3213,17 @@ var DialogContent = React12.forwardRef(
3141
3213
  overlayClassName,
3142
3214
  ...props
3143
3215
  }, ref) => {
3216
+ const contentRef = React13.useRef(null);
3217
+ const combinedRef = useCombinedRef(contentRef, ref);
3218
+ const handleKeyDown = useIframeFocusTrapFallback(contentRef, props.onKeyDown);
3144
3219
  const contentElement = /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
3145
3220
  DialogPrimitive.Content,
3146
3221
  {
3147
- ref,
3222
+ ref: combinedRef,
3148
3223
  "data-slot": "dialog-content",
3149
3224
  className: cn(dialogContentClasses, className),
3150
3225
  ...props,
3226
+ onKeyDown: handleKeyDown,
3151
3227
  children: [
3152
3228
  children,
3153
3229
  showCloseButton && /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
@@ -3207,8 +3283,8 @@ var DialogFooter = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_r
3207
3283
  }
3208
3284
  );
3209
3285
  DialogFooter.displayName = "DialogFooter";
3210
- var DialogTitle = React12.forwardRef(({ className, ...props }, ref) => {
3211
- const titleRef = React12.useRef(null);
3286
+ var DialogTitle = React13.forwardRef(({ className, ...props }, ref) => {
3287
+ const titleRef = React13.useRef(null);
3212
3288
  const combinedRef = useCombinedRef(titleRef, ref);
3213
3289
  useIframeTitleFix(titleRef);
3214
3290
  return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
@@ -3222,7 +3298,7 @@ var DialogTitle = React12.forwardRef(({ className, ...props }, ref) => {
3222
3298
  );
3223
3299
  });
3224
3300
  DialogTitle.displayName = DialogPrimitive.Title.displayName;
3225
- var DialogDescription = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
3301
+ var DialogDescription = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
3226
3302
  DialogPrimitive.Description,
3227
3303
  {
3228
3304
  ref,
@@ -3284,9 +3360,9 @@ function ConfirmationDialog({
3284
3360
  }
3285
3361
 
3286
3362
  // src/default-select-trigger/DefaultSelectTrigger.tsx
3287
- var React13 = __toESM(require("react"), 1);
3363
+ var React14 = __toESM(require("react"), 1);
3288
3364
  var import_jsx_runtime33 = require("react/jsx-runtime");
3289
- var DefaultSelectTrigger = React13.forwardRef(
3365
+ var DefaultSelectTrigger = React14.forwardRef(
3290
3366
  ({
3291
3367
  className,
3292
3368
  disabled,
@@ -3359,7 +3435,7 @@ function DownloadEntryFormsButton({
3359
3435
  var import_react33 = require("react");
3360
3436
 
3361
3437
  // src/dropdown-menu/DropdownMenu.tsx
3362
- var React14 = __toESM(require("react"), 1);
3438
+ var React15 = __toESM(require("react"), 1);
3363
3439
  var DropdownMenuPrimitive = __toESM(require("@radix-ui/react-dropdown-menu"), 1);
3364
3440
  var import_lucide_react12 = require("lucide-react");
3365
3441
 
@@ -3411,7 +3487,7 @@ function DropdownMenuRadioGroup({
3411
3487
  }) {
3412
3488
  return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(DropdownMenuPrimitive.RadioGroup, { "data-slot": "dropdown-menu-radio-group", ...props });
3413
3489
  }
3414
- var DropdownMenuSubTrigger = React14.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(
3490
+ var DropdownMenuSubTrigger = React15.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(
3415
3491
  DropdownMenuPrimitive.SubTrigger,
3416
3492
  {
3417
3493
  ref,
@@ -3433,7 +3509,7 @@ var DropdownMenuSubTrigger = React14.forwardRef(({ className, inset, children, .
3433
3509
  }
3434
3510
  ));
3435
3511
  DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
3436
- var DropdownMenuSubContent = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
3512
+ var DropdownMenuSubContent = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
3437
3513
  DropdownMenuPrimitive.SubContent,
3438
3514
  {
3439
3515
  ref,
@@ -3451,7 +3527,7 @@ var DropdownMenuSubContent = React14.forwardRef(({ className, ...props }, ref) =
3451
3527
  }
3452
3528
  ));
3453
3529
  DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
3454
- var DropdownMenuContent = React14.forwardRef(({ className, sideOffset = 4, container, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(DropdownMenuPrimitive.Portal, { container: container || getCustomContainer(), children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
3530
+ var DropdownMenuContent = React15.forwardRef(({ className, sideOffset = 4, container, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(DropdownMenuPrimitive.Portal, { container: container || getCustomContainer(), children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
3455
3531
  DropdownMenuPrimitive.Content,
3456
3532
  {
3457
3533
  ref,
@@ -3473,7 +3549,7 @@ var DropdownMenuContent = React14.forwardRef(({ className, sideOffset = 4, conta
3473
3549
  }
3474
3550
  ) }));
3475
3551
  DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
3476
- var DropdownMenuItem = React14.forwardRef(({ className, children, inset, active, leftSlot, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(
3552
+ var DropdownMenuItem = React15.forwardRef(({ className, children, inset, active, leftSlot, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(
3477
3553
  DropdownMenuPrimitive.Item,
3478
3554
  {
3479
3555
  ref,
@@ -3498,7 +3574,7 @@ var DropdownMenuItem = React14.forwardRef(({ className, children, inset, active,
3498
3574
  }
3499
3575
  ));
3500
3576
  DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
3501
- var DropdownMenuCheckboxItem = React14.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(
3577
+ var DropdownMenuCheckboxItem = React15.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(
3502
3578
  DropdownMenuPrimitive.CheckboxItem,
3503
3579
  {
3504
3580
  ref,
@@ -3518,7 +3594,7 @@ var DropdownMenuCheckboxItem = React14.forwardRef(({ className, children, checke
3518
3594
  }
3519
3595
  ));
3520
3596
  DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
3521
- var DropdownMenuRadioItem = React14.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(
3597
+ var DropdownMenuRadioItem = React15.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(
3522
3598
  DropdownMenuPrimitive.RadioItem,
3523
3599
  {
3524
3600
  ref,
@@ -3537,7 +3613,7 @@ var DropdownMenuRadioItem = React14.forwardRef(({ className, children, ...props
3537
3613
  }
3538
3614
  ));
3539
3615
  DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
3540
- var DropdownMenuLabel = React14.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
3616
+ var DropdownMenuLabel = React15.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
3541
3617
  DropdownMenuPrimitive.Label,
3542
3618
  {
3543
3619
  ref,
@@ -3550,7 +3626,7 @@ var DropdownMenuLabel = React14.forwardRef(({ className, inset, ...props }, ref)
3550
3626
  }
3551
3627
  ));
3552
3628
  DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
3553
- var DropdownMenuSeparator = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
3629
+ var DropdownMenuSeparator = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
3554
3630
  DropdownMenuPrimitive.Separator,
3555
3631
  {
3556
3632
  ref,
@@ -3939,9 +4015,9 @@ function EmptySectionPlaceholder({
3939
4015
  }
3940
4016
 
3941
4017
  // src/external-link/ExternalLink.tsx
3942
- var React15 = __toESM(require("react"), 1);
4018
+ var React16 = __toESM(require("react"), 1);
3943
4019
  var import_jsx_runtime49 = require("react/jsx-runtime");
3944
- var ExternalLink = React15.forwardRef(
4020
+ var ExternalLink = React16.forwardRef(
3945
4021
  ({ className, children, showIcon = true, target = "_blank", rel, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(
3946
4022
  "a",
3947
4023
  {
@@ -3987,7 +4063,7 @@ var import_react_i18next10 = require("react-i18next");
3987
4063
  var import_lucide_react15 = require("lucide-react");
3988
4064
 
3989
4065
  // src/switch/Switch.tsx
3990
- var React16 = __toESM(require("react"), 1);
4066
+ var React17 = __toESM(require("react"), 1);
3991
4067
  var SwitchPrimitives = __toESM(require("@radix-ui/react-switch"), 1);
3992
4068
  var import_class_variance_authority7 = require("class-variance-authority");
3993
4069
  var import_jsx_runtime50 = require("react/jsx-runtime");
@@ -4029,9 +4105,9 @@ var switchThumbVariants = (0, import_class_variance_authority7.cva)(
4029
4105
  }
4030
4106
  }
4031
4107
  );
4032
- var Switch = React16.forwardRef(
4108
+ var Switch = React17.forwardRef(
4033
4109
  ({ className, size, readOnly, loading, onChange, value, id, label, error, ...props }, ref) => {
4034
- const generatedId = React16.useId();
4110
+ const generatedId = React17.useId();
4035
4111
  const fieldId = id || generatedId;
4036
4112
  const switchElement = /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
4037
4113
  SwitchPrimitives.Root,
@@ -4677,7 +4753,7 @@ var FreeTextField = (0, import_react37.forwardRef)(
4677
4753
  FreeTextField.displayName = "FreeTextField";
4678
4754
 
4679
4755
  // src/framed-icon/FramedIcon.tsx
4680
- var React17 = __toESM(require("react"), 1);
4756
+ var React18 = __toESM(require("react"), 1);
4681
4757
  var import_class_variance_authority8 = require("class-variance-authority");
4682
4758
  var import_jsx_runtime59 = require("react/jsx-runtime");
4683
4759
  var framedIconVariants = (0, import_class_variance_authority8.cva)("inline-flex items-center justify-center shrink-0", {
@@ -4701,7 +4777,7 @@ var framedIconVariants = (0, import_class_variance_authority8.cva)("inline-flex
4701
4777
  },
4702
4778
  defaultVariants: { size: "m", shape: "rounded", tone: "info" }
4703
4779
  });
4704
- var FramedIcon = React17.forwardRef(
4780
+ var FramedIcon = React18.forwardRef(
4705
4781
  ({ className, size, shape, tone, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
4706
4782
  "span",
4707
4783
  {
@@ -4863,7 +4939,7 @@ var IconRegistry = class {
4863
4939
  var RegistryIcon = Icon;
4864
4940
 
4865
4941
  // src/icon-button/IconButton.tsx
4866
- var React18 = __toESM(require("react"), 1);
4942
+ var React19 = __toESM(require("react"), 1);
4867
4943
  var import_class_variance_authority9 = require("class-variance-authority");
4868
4944
  var import_jsx_runtime63 = require("react/jsx-runtime");
4869
4945
  var iconButtonVariants = (0, import_class_variance_authority9.cva)(
@@ -4894,7 +4970,7 @@ var iconButtonVariants = (0, import_class_variance_authority9.cva)(
4894
4970
  defaultVariants: { size: "m", shape: "rounded", variant: "secondary" }
4895
4971
  }
4896
4972
  );
4897
- var IconButton = React18.forwardRef(
4973
+ var IconButton = React19.forwardRef(
4898
4974
  ({ className, size, shape, variant, label, children, type = "button", ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
4899
4975
  "button",
4900
4976
  {
@@ -4949,9 +5025,9 @@ function Image2({
4949
5025
  }
4950
5026
 
4951
5027
  // src/input/Input.tsx
4952
- var React19 = __toESM(require("react"), 1);
5028
+ var React20 = __toESM(require("react"), 1);
4953
5029
  var import_jsx_runtime66 = require("react/jsx-runtime");
4954
- var Input = React19.forwardRef(
5030
+ var Input = React20.forwardRef(
4955
5031
  ({ className, type, readOnly, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
4956
5032
  "input",
4957
5033
  {
@@ -4975,7 +5051,7 @@ var Input = React19.forwardRef(
4975
5051
  Input.displayName = "Input";
4976
5052
 
4977
5053
  // src/input-otp/InputOTP.tsx
4978
- var React20 = __toESM(require("react"), 1);
5054
+ var React21 = __toESM(require("react"), 1);
4979
5055
 
4980
5056
  // src/input-otp/InputOTPContext.ts
4981
5057
  var import_react41 = require("react");
@@ -5258,11 +5334,11 @@ function InputOTP({
5258
5334
  }
5259
5335
  ) });
5260
5336
  }
5261
- var InputOTPGroup = React20.forwardRef(
5337
+ var InputOTPGroup = React21.forwardRef(
5262
5338
  ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("div", { ref, className: cn("flex items-center", className), ...props })
5263
5339
  );
5264
5340
  InputOTPGroup.displayName = "InputOTPGroup";
5265
- var InputOTPSlot = React20.forwardRef(
5341
+ var InputOTPSlot = React21.forwardRef(
5266
5342
  ({ index, className, ...props }, ref) => {
5267
5343
  const {
5268
5344
  char,
@@ -5311,7 +5387,7 @@ var InputOTPSlot = React20.forwardRef(
5311
5387
  }
5312
5388
  );
5313
5389
  InputOTPSlot.displayName = "InputOTPSlot";
5314
- var InputOTPSeparator = React20.forwardRef(
5390
+ var InputOTPSeparator = React21.forwardRef(
5315
5391
  (props, ref) => /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("div", { ref, role: "separator", ...props })
5316
5392
  );
5317
5393
  InputOTPSeparator.displayName = "InputOTPSeparator";
@@ -6429,7 +6505,7 @@ var import_lucide_react26 = require("lucide-react");
6429
6505
  var import_react50 = require("react");
6430
6506
 
6431
6507
  // src/select/components.tsx
6432
- var React22 = __toESM(require("react"), 1);
6508
+ var React23 = __toESM(require("react"), 1);
6433
6509
  var SelectPrimitive = __toESM(require("@radix-ui/react-select"), 1);
6434
6510
  var import_lucide_react24 = require("lucide-react");
6435
6511
  var import_jsx_runtime79 = require("react/jsx-runtime");
@@ -6441,7 +6517,7 @@ var selectSizeClassNames = {
6441
6517
  sm: "text-sm",
6442
6518
  md: "text-base"
6443
6519
  };
6444
- var SelectTrigger = React22.forwardRef(({ className, children, size = "sm", ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(
6520
+ var SelectTrigger = React23.forwardRef(({ className, children, size = "sm", ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(
6445
6521
  SelectPrimitive.Trigger,
6446
6522
  {
6447
6523
  ref,
@@ -6468,7 +6544,7 @@ var SelectTrigger = React22.forwardRef(({ className, children, size = "sm", ...p
6468
6544
  }
6469
6545
  ));
6470
6546
  SelectTrigger.displayName = SelectPrimitive.Trigger.displayName;
6471
- var SelectScrollUpButton = React22.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
6547
+ var SelectScrollUpButton = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
6472
6548
  SelectPrimitive.ScrollUpButton,
6473
6549
  {
6474
6550
  ref,
@@ -6478,7 +6554,7 @@ var SelectScrollUpButton = React22.forwardRef(({ className, ...props }, ref) =>
6478
6554
  }
6479
6555
  ));
6480
6556
  SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;
6481
- var SelectScrollDownButton = React22.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
6557
+ var SelectScrollDownButton = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
6482
6558
  SelectPrimitive.ScrollDownButton,
6483
6559
  {
6484
6560
  ref,
@@ -6488,7 +6564,7 @@ var SelectScrollDownButton = React22.forwardRef(({ className, ...props }, ref) =
6488
6564
  }
6489
6565
  ));
6490
6566
  SelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;
6491
- var SelectContent = React22.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(SelectPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(
6567
+ var SelectContent = React23.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(SelectPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(
6492
6568
  SelectPrimitive.Content,
6493
6569
  {
6494
6570
  ref,
@@ -6522,7 +6598,7 @@ var SelectContent = React22.forwardRef(({ className, children, position = "poppe
6522
6598
  }
6523
6599
  ) }));
6524
6600
  SelectContent.displayName = SelectPrimitive.Content.displayName;
6525
- var SelectLabel = React22.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
6601
+ var SelectLabel = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
6526
6602
  SelectPrimitive.Label,
6527
6603
  {
6528
6604
  ref,
@@ -6534,7 +6610,7 @@ var SelectLabel = React22.forwardRef(({ className, ...props }, ref) => /* @__PUR
6534
6610
  }
6535
6611
  ));
6536
6612
  SelectLabel.displayName = SelectPrimitive.Label.displayName;
6537
- var SelectItem = React22.forwardRef(({ className, children, size = "sm", ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(
6613
+ var SelectItem = React23.forwardRef(({ className, children, size = "sm", ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(
6538
6614
  SelectPrimitive.Item,
6539
6615
  {
6540
6616
  ref,
@@ -6554,7 +6630,7 @@ var SelectItem = React22.forwardRef(({ className, children, size = "sm", ...prop
6554
6630
  }
6555
6631
  ));
6556
6632
  SelectItem.displayName = SelectPrimitive.Item.displayName;
6557
- var SelectSeparator = React22.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
6633
+ var SelectSeparator = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
6558
6634
  SelectPrimitive.Separator,
6559
6635
  {
6560
6636
  ref,
@@ -6964,7 +7040,7 @@ function Pagination({
6964
7040
  }
6965
7041
 
6966
7042
  // src/popover/Popover.tsx
6967
- var React23 = __toESM(require("react"), 1);
7043
+ var React24 = __toESM(require("react"), 1);
6968
7044
  var RadixPopover = __toESM(require("@radix-ui/react-popover"), 1);
6969
7045
  var import_jsx_runtime84 = require("react/jsx-runtime");
6970
7046
  var Popover = RadixPopover.Root;
@@ -6972,7 +7048,7 @@ var PopoverTrigger = RadixPopover.Trigger;
6972
7048
  var PopoverAnchor = RadixPopover.Anchor;
6973
7049
  var PopoverPortal = RadixPopover.Portal;
6974
7050
  var PopoverClose = RadixPopover.Close;
6975
- var PopoverContent = React23.forwardRef(({ className, sideOffset = 4, align = "center", ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(RadixPopover.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
7051
+ var PopoverContent = React24.forwardRef(({ className, sideOffset = 4, align = "center", ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(RadixPopover.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
6976
7052
  RadixPopover.Content,
6977
7053
  {
6978
7054
  ref,
@@ -7062,11 +7138,11 @@ function PopoverWithTooltip({
7062
7138
  var import_react54 = require("react");
7063
7139
 
7064
7140
  // src/radio-group/RadioGroup.tsx
7065
- var React24 = __toESM(require("react"), 1);
7141
+ var React25 = __toESM(require("react"), 1);
7066
7142
  var RadioGroupPrimitive = __toESM(require("@radix-ui/react-radio-group"), 1);
7067
7143
  var import_lucide_react27 = require("lucide-react");
7068
7144
  var import_jsx_runtime86 = require("react/jsx-runtime");
7069
- var RadioGroup2 = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
7145
+ var RadioGroup2 = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
7070
7146
  RadioGroupPrimitive.Root,
7071
7147
  {
7072
7148
  ref,
@@ -7075,7 +7151,7 @@ var RadioGroup2 = React24.forwardRef(({ className, ...props }, ref) => /* @__PUR
7075
7151
  }
7076
7152
  ));
7077
7153
  RadioGroup2.displayName = RadioGroupPrimitive.Root.displayName;
7078
- var RadioGroupItem = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
7154
+ var RadioGroupItem = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(
7079
7155
  RadioGroupPrimitive.Item,
7080
7156
  {
7081
7157
  ref,
@@ -7296,7 +7372,7 @@ function RatingRadioGroup({
7296
7372
  }
7297
7373
 
7298
7374
  // src/rating-stars/RatingStars.tsx
7299
- var React25 = __toESM(require("react"), 1);
7375
+ var React26 = __toESM(require("react"), 1);
7300
7376
  var import_lucide_react29 = require("lucide-react");
7301
7377
  var import_react_i18next17 = require("react-i18next");
7302
7378
  var import_jsx_runtime91 = require("react/jsx-runtime");
@@ -7316,7 +7392,7 @@ function RatingStars({
7316
7392
  const { t } = (0, import_react_i18next17.useTranslation)();
7317
7393
  const normalizedRating = Math.max(0, Math.min(maxRating, rating));
7318
7394
  const stars = Array.from({ length: maxRating }, (_, index) => index + 1);
7319
- const componentId = React25.useId();
7395
+ const componentId = React26.useId();
7320
7396
  const decimal = normalizedRating - Math.floor(normalizedRating);
7321
7397
  const partialStarIndex = decimal > 0 ? Math.ceil(normalizedRating) : -1;
7322
7398
  const gradientId = `star-gradient-${componentId.replace(/:/g, "")}`;
@@ -7911,7 +7987,7 @@ function SheetDescription({
7911
7987
  }
7912
7988
 
7913
7989
  // src/sidebar/Sidebar.tsx
7914
- var React26 = __toESM(require("react"), 1);
7990
+ var React27 = __toESM(require("react"), 1);
7915
7991
  var import_react_slot4 = require("@radix-ui/react-slot");
7916
7992
  var import_class_variance_authority11 = require("class-variance-authority");
7917
7993
  var import_lucide_react35 = require("lucide-react");
@@ -8004,7 +8080,7 @@ var SIDEBAR_COOKIE_NAME_DEFAULT = "sidebar_state";
8004
8080
  var SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;
8005
8081
  var SIDEBAR_WIDTH_MOBILE = "18rem";
8006
8082
  var SIDEBAR_KEYBOARD_SHORTCUT = "b";
8007
- var SidebarProvider = React26.forwardRef(
8083
+ var SidebarProvider = React27.forwardRef(
8008
8084
  ({
8009
8085
  defaultOpen = true,
8010
8086
  open: openProp,
@@ -8016,10 +8092,10 @@ var SidebarProvider = React26.forwardRef(
8016
8092
  ...props
8017
8093
  }, ref) => {
8018
8094
  const isMobile = useIsMobile({ breakpoint: 641 });
8019
- const [openMobile, setOpenMobile] = React26.useState(false);
8020
- const [_open, _setOpen] = React26.useState(defaultOpen);
8095
+ const [openMobile, setOpenMobile] = React27.useState(false);
8096
+ const [_open, _setOpen] = React27.useState(defaultOpen);
8021
8097
  const open = openProp ?? _open;
8022
- const setOpen = React26.useCallback(
8098
+ const setOpen = React27.useCallback(
8023
8099
  (value) => {
8024
8100
  const openState = typeof value === "function" ? value(open) : value;
8025
8101
  if (setOpenProp) {
@@ -8031,10 +8107,10 @@ var SidebarProvider = React26.forwardRef(
8031
8107
  },
8032
8108
  [setOpenProp, open, stateName]
8033
8109
  );
8034
- const toggleSidebar = React26.useCallback(() => {
8110
+ const toggleSidebar = React27.useCallback(() => {
8035
8111
  return isMobile ? setOpenMobile((value) => !value) : setOpen((value) => !value);
8036
8112
  }, [isMobile, setOpen]);
8037
- React26.useEffect(() => {
8113
+ React27.useEffect(() => {
8038
8114
  const handleKeyDown = (event) => {
8039
8115
  if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {
8040
8116
  event.preventDefault();
@@ -8045,7 +8121,7 @@ var SidebarProvider = React26.forwardRef(
8045
8121
  return () => window.removeEventListener("keydown", handleKeyDown);
8046
8122
  }, [toggleSidebar]);
8047
8123
  const state = open ? "expanded" : "collapsed";
8048
- const contextValue = React26.useMemo(
8124
+ const contextValue = React27.useMemo(
8049
8125
  () => ({
8050
8126
  state,
8051
8127
  open,
@@ -8070,7 +8146,7 @@ var SidebarProvider = React26.forwardRef(
8070
8146
  }
8071
8147
  );
8072
8148
  SidebarProvider.displayName = "SidebarProvider";
8073
- var Sidebar = React26.forwardRef(
8149
+ var Sidebar = React27.forwardRef(
8074
8150
  ({
8075
8151
  side = "left",
8076
8152
  variant = "sidebar",
@@ -8164,7 +8240,7 @@ var Sidebar = React26.forwardRef(
8164
8240
  }
8165
8241
  );
8166
8242
  Sidebar.displayName = "Sidebar";
8167
- var SidebarTrigger = React26.forwardRef(({ className, onClick, icon, ...props }, ref) => {
8243
+ var SidebarTrigger = React27.forwardRef(({ className, onClick, icon, ...props }, ref) => {
8168
8244
  const { toggleSidebar, open, isMobile, openMobile } = useSidebar();
8169
8245
  return /* @__PURE__ */ (0, import_jsx_runtime103.jsxs)(
8170
8246
  Button,
@@ -8191,7 +8267,7 @@ var SidebarTrigger = React26.forwardRef(({ className, onClick, icon, ...props },
8191
8267
  );
8192
8268
  });
8193
8269
  SidebarTrigger.displayName = "SidebarTrigger";
8194
- var SidebarRail = React26.forwardRef(
8270
+ var SidebarRail = React27.forwardRef(
8195
8271
  ({ className, ...props }, ref) => {
8196
8272
  const { toggleSidebar } = useSidebar();
8197
8273
  return /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(
@@ -8217,7 +8293,7 @@ var SidebarRail = React26.forwardRef(
8217
8293
  }
8218
8294
  );
8219
8295
  SidebarRail.displayName = "SidebarRail";
8220
- var SidebarInset = React26.forwardRef(
8296
+ var SidebarInset = React27.forwardRef(
8221
8297
  ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(
8222
8298
  "main",
8223
8299
  {
@@ -8232,7 +8308,7 @@ var SidebarInset = React26.forwardRef(
8232
8308
  )
8233
8309
  );
8234
8310
  SidebarInset.displayName = "SidebarInset";
8235
- var SidebarInput = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(
8311
+ var SidebarInput = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(
8236
8312
  Input,
8237
8313
  {
8238
8314
  ref,
@@ -8242,7 +8318,7 @@ var SidebarInput = React26.forwardRef(({ className, ...props }, ref) => /* @__PU
8242
8318
  }
8243
8319
  ));
8244
8320
  SidebarInput.displayName = "SidebarInput";
8245
- var SidebarHeader = React26.forwardRef(
8321
+ var SidebarHeader = React27.forwardRef(
8246
8322
  ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(
8247
8323
  "div",
8248
8324
  {
@@ -8254,7 +8330,7 @@ var SidebarHeader = React26.forwardRef(
8254
8330
  )
8255
8331
  );
8256
8332
  SidebarHeader.displayName = "SidebarHeader";
8257
- var SidebarFooter = React26.forwardRef(
8333
+ var SidebarFooter = React27.forwardRef(
8258
8334
  ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(
8259
8335
  "div",
8260
8336
  {
@@ -8266,7 +8342,7 @@ var SidebarFooter = React26.forwardRef(
8266
8342
  )
8267
8343
  );
8268
8344
  SidebarFooter.displayName = "SidebarFooter";
8269
- var SidebarSeparator = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(
8345
+ var SidebarSeparator = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(
8270
8346
  Separator3,
8271
8347
  {
8272
8348
  ref,
@@ -8276,7 +8352,7 @@ var SidebarSeparator = React26.forwardRef(({ className, ...props }, ref) => /* @
8276
8352
  }
8277
8353
  ));
8278
8354
  SidebarSeparator.displayName = "SidebarSeparator";
8279
- var SidebarContent = React26.forwardRef(
8355
+ var SidebarContent = React27.forwardRef(
8280
8356
  ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(
8281
8357
  "div",
8282
8358
  {
@@ -8291,7 +8367,7 @@ var SidebarContent = React26.forwardRef(
8291
8367
  )
8292
8368
  );
8293
8369
  SidebarContent.displayName = "SidebarContent";
8294
- var SidebarGroup = React26.forwardRef(
8370
+ var SidebarGroup = React27.forwardRef(
8295
8371
  ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(
8296
8372
  "div",
8297
8373
  {
@@ -8303,7 +8379,7 @@ var SidebarGroup = React26.forwardRef(
8303
8379
  )
8304
8380
  );
8305
8381
  SidebarGroup.displayName = "SidebarGroup";
8306
- var SidebarGroupLabel = React26.forwardRef(({ className, asChild = false, ...props }, ref) => {
8382
+ var SidebarGroupLabel = React27.forwardRef(({ className, asChild = false, ...props }, ref) => {
8307
8383
  const Comp = asChild ? import_react_slot4.Slot : "div";
8308
8384
  return /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(
8309
8385
  Comp,
@@ -8320,7 +8396,7 @@ var SidebarGroupLabel = React26.forwardRef(({ className, asChild = false, ...pro
8320
8396
  );
8321
8397
  });
8322
8398
  SidebarGroupLabel.displayName = "SidebarGroupLabel";
8323
- var SidebarGroupAction = React26.forwardRef(({ className, asChild = false, ...props }, ref) => {
8399
+ var SidebarGroupAction = React27.forwardRef(({ className, asChild = false, ...props }, ref) => {
8324
8400
  const Comp = asChild ? import_react_slot4.Slot : "button";
8325
8401
  return /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(
8326
8402
  Comp,
@@ -8336,7 +8412,7 @@ var SidebarGroupAction = React26.forwardRef(({ className, asChild = false, ...pr
8336
8412
  );
8337
8413
  });
8338
8414
  SidebarGroupAction.displayName = "SidebarGroupAction";
8339
- var SidebarGroupContent = React26.forwardRef(
8415
+ var SidebarGroupContent = React27.forwardRef(
8340
8416
  ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(
8341
8417
  "div",
8342
8418
  {
@@ -8348,7 +8424,7 @@ var SidebarGroupContent = React26.forwardRef(
8348
8424
  )
8349
8425
  );
8350
8426
  SidebarGroupContent.displayName = "SidebarGroupContent";
8351
- var SidebarMenu = React26.forwardRef(
8427
+ var SidebarMenu = React27.forwardRef(
8352
8428
  ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(
8353
8429
  "ul",
8354
8430
  {
@@ -8360,7 +8436,7 @@ var SidebarMenu = React26.forwardRef(
8360
8436
  )
8361
8437
  );
8362
8438
  SidebarMenu.displayName = "SidebarMenu";
8363
- var SidebarMenuItem = React26.forwardRef(
8439
+ var SidebarMenuItem = React27.forwardRef(
8364
8440
  ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(
8365
8441
  "li",
8366
8442
  {
@@ -8392,7 +8468,7 @@ var sidebarMenuButtonVariants = (0, import_class_variance_authority11.cva)(
8392
8468
  }
8393
8469
  }
8394
8470
  );
8395
- var SidebarMenuButton = React26.forwardRef(
8471
+ var SidebarMenuButton = React27.forwardRef(
8396
8472
  ({
8397
8473
  asChild = false,
8398
8474
  isActive = false,
@@ -8438,7 +8514,7 @@ var SidebarMenuButton = React26.forwardRef(
8438
8514
  }
8439
8515
  );
8440
8516
  SidebarMenuButton.displayName = "SidebarMenuButton";
8441
- var SidebarMenuAction = React26.forwardRef(({ className, asChild = false, showOnHover = false, ...props }, ref) => {
8517
+ var SidebarMenuAction = React27.forwardRef(({ className, asChild = false, showOnHover = false, ...props }, ref) => {
8442
8518
  const Comp = asChild ? import_react_slot4.Slot : "button";
8443
8519
  return /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(
8444
8520
  Comp,
@@ -8455,7 +8531,7 @@ var SidebarMenuAction = React26.forwardRef(({ className, asChild = false, showOn
8455
8531
  );
8456
8532
  });
8457
8533
  SidebarMenuAction.displayName = "SidebarMenuAction";
8458
- var SidebarMenuBadge = React26.forwardRef(
8534
+ var SidebarMenuBadge = React27.forwardRef(
8459
8535
  ({ className, ...props }, ref) => {
8460
8536
  const { open, isMobile, openMobile } = useSidebar();
8461
8537
  const isOpen = isMobile ? openMobile : open;
@@ -8475,8 +8551,8 @@ var SidebarMenuBadge = React26.forwardRef(
8475
8551
  }
8476
8552
  );
8477
8553
  SidebarMenuBadge.displayName = "SidebarMenuBadge";
8478
- var SidebarMenuSkeleton = React26.forwardRef(({ className, showIcon = false, ...props }, ref) => {
8479
- const width = React26.useMemo(() => `${Math.floor(Math.random() * 40) + 50}%`, []);
8554
+ var SidebarMenuSkeleton = React27.forwardRef(({ className, showIcon = false, ...props }, ref) => {
8555
+ const width = React27.useMemo(() => `${Math.floor(Math.random() * 40) + 50}%`, []);
8480
8556
  return /* @__PURE__ */ (0, import_jsx_runtime103.jsxs)(
8481
8557
  "div",
8482
8558
  {
@@ -8499,7 +8575,7 @@ var SidebarMenuSkeleton = React26.forwardRef(({ className, showIcon = false, ...
8499
8575
  );
8500
8576
  });
8501
8577
  SidebarMenuSkeleton.displayName = "SidebarMenuSkeleton";
8502
- var SidebarMenuSub = React26.forwardRef(
8578
+ var SidebarMenuSub = React27.forwardRef(
8503
8579
  ({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime103.jsx)(
8504
8580
  "ul",
8505
8581
  {
@@ -8514,7 +8590,7 @@ var SidebarMenuSub = React26.forwardRef(
8514
8590
  )
8515
8591
  );
8516
8592
  SidebarMenuSub.displayName = "SidebarMenuSub";
8517
- var SidebarMenuSubItem = React26.forwardRef(
8593
+ var SidebarMenuSubItem = React27.forwardRef(
8518
8594
  ({ ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime103.jsx)("li", { ref, ...props })
8519
8595
  );
8520
8596
  SidebarMenuSubItem.displayName = "SidebarMenuSubItem";
@@ -8538,7 +8614,7 @@ var sidebarMenuSubButtonVariants = (0, import_class_variance_authority11.cva)(
8538
8614
  }
8539
8615
  }
8540
8616
  );
8541
- var SidebarMenuSubButton = React26.forwardRef(
8617
+ var SidebarMenuSubButton = React27.forwardRef(
8542
8618
  ({
8543
8619
  asChild = false,
8544
8620
  isActive,
@@ -8857,9 +8933,9 @@ SwitchBlocksInternal.displayName = "SwitchBlocks";
8857
8933
  var SwitchBlocks = (0, import_react63.memo)(SwitchBlocksInternal);
8858
8934
 
8859
8935
  // src/switch-group/SwitchGroup.tsx
8860
- var React27 = __toESM(require("react"), 1);
8936
+ var React28 = __toESM(require("react"), 1);
8861
8937
  var import_jsx_runtime110 = require("react/jsx-runtime");
8862
- var SwitchGroup = React27.forwardRef(
8938
+ var SwitchGroup = React28.forwardRef(
8863
8939
  ({ options, value = [], onChange, disabled = false, className, error, ...props }, ref) => {
8864
8940
  const handleOptionChange = (optionValue, checked) => {
8865
8941
  if (!onChange) return;
@@ -9149,7 +9225,7 @@ function useUpdateToast({ id }) {
9149
9225
  }
9150
9226
 
9151
9227
  // src/toggle-group/ToggleGroup.tsx
9152
- var React28 = __toESM(require("react"), 1);
9228
+ var React29 = __toESM(require("react"), 1);
9153
9229
  var ToggleGroupPrimitive = __toESM(require("@radix-ui/react-toggle-group"), 1);
9154
9230
 
9155
9231
  // src/toggle-group/style.ts
@@ -9183,12 +9259,12 @@ var toggleVariants = (0, import_class_variance_authority13.cva)(
9183
9259
 
9184
9260
  // src/toggle-group/ToggleGroup.tsx
9185
9261
  var import_jsx_runtime115 = require("react/jsx-runtime");
9186
- var ToggleGroupContext = React28.createContext({
9262
+ var ToggleGroupContext = React29.createContext({
9187
9263
  size: "default",
9188
9264
  variant: "default",
9189
9265
  theme: "default"
9190
9266
  });
9191
- var ToggleGroup = React28.forwardRef(({ className, variant, size, theme, children, ...props }, ref) => {
9267
+ var ToggleGroup = React29.forwardRef(({ className, variant, size, theme, children, ...props }, ref) => {
9192
9268
  const isTabVariant = variant === "tab";
9193
9269
  return /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(
9194
9270
  ToggleGroupPrimitive.Root,
@@ -9205,8 +9281,8 @@ var ToggleGroup = React28.forwardRef(({ className, variant, size, theme, childre
9205
9281
  );
9206
9282
  });
9207
9283
  ToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName;
9208
- var ToggleGroupItem = React28.forwardRef(({ className, children, variant, size, theme, ...props }, ref) => {
9209
- const context = React28.useContext(ToggleGroupContext);
9284
+ var ToggleGroupItem = React29.forwardRef(({ className, children, variant, size, theme, ...props }, ref) => {
9285
+ const context = React29.useContext(ToggleGroupContext);
9210
9286
  const resolvedVariant = context.variant || variant;
9211
9287
  const isTabVariant = resolvedVariant === "tab";
9212
9288
  return /* @__PURE__ */ (0, import_jsx_runtime115.jsx)(
@@ -9354,7 +9430,7 @@ function TogglesInternal({
9354
9430
  var Toggles = (0, import_react66.forwardRef)(TogglesInternal);
9355
9431
 
9356
9432
  // src/text-field/TextField.tsx
9357
- var React29 = __toESM(require("react"), 1);
9433
+ var React30 = __toESM(require("react"), 1);
9358
9434
  var LabelPrimitive2 = __toESM(require("@radix-ui/react-label"), 1);
9359
9435
  var import_class_variance_authority14 = require("class-variance-authority");
9360
9436
  var import_react_i18next22 = require("react-i18next");
@@ -9470,7 +9546,7 @@ var floatingLabelClasses = [
9470
9546
  "peer-focus:to-[var(--text-field-bg-filled)]",
9471
9547
  "peer-focus:to-50%"
9472
9548
  ];
9473
- var TextField = React29.forwardRef(
9549
+ var TextField = React30.forwardRef(
9474
9550
  ({
9475
9551
  className,
9476
9552
  wrapperClassName,
@@ -9489,7 +9565,7 @@ var TextField = React29.forwardRef(
9489
9565
  }, ref) => {
9490
9566
  const { t } = (0, import_react_i18next22.useTranslation)();
9491
9567
  const hasError = Boolean(error);
9492
- const autoId = React29.useId();
9568
+ const autoId = React30.useId();
9493
9569
  const inputId = props.id || autoId;
9494
9570
  const inputClasses = cn(
9495
9571
  inputVariants({ variant, error: hasError, readOnly: Boolean(readOnly) }),
@@ -9750,11 +9826,11 @@ function WideButton({ className, disabled, ...props }) {
9750
9826
  }
9751
9827
 
9752
9828
  // src/datepicker/DatePicker.tsx
9753
- var React33 = __toESM(require("react"), 1);
9829
+ var React34 = __toESM(require("react"), 1);
9754
9830
  var import_lucide_react44 = require("lucide-react");
9755
9831
 
9756
9832
  // src/drawer/Drawer.tsx
9757
- var React30 = __toESM(require("react"), 1);
9833
+ var React31 = __toESM(require("react"), 1);
9758
9834
  var DialogPrimitive2 = __toESM(require("@radix-ui/react-dialog"), 1);
9759
9835
  var import_react_draggable = __toESM(require("react-draggable"), 1);
9760
9836
  var import_jsx_runtime125 = require("react/jsx-runtime");
@@ -9772,7 +9848,7 @@ function DrawerPortal({ ...props }) {
9772
9848
  function DrawerClose({ ...props }) {
9773
9849
  return /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(DialogPrimitive2.Close, { "data-slot": "drawer-close", ...props });
9774
9850
  }
9775
- var DrawerOverlay = React30.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(
9851
+ var DrawerOverlay = React31.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(
9776
9852
  DialogPrimitive2.Overlay,
9777
9853
  {
9778
9854
  ref,
@@ -9786,7 +9862,7 @@ var DrawerOverlay = React30.forwardRef(({ className, ...props }, ref) => /* @__P
9786
9862
  ));
9787
9863
  DrawerOverlay.displayName = DialogPrimitive2.Overlay.displayName;
9788
9864
  var DrawerOverlayClasses = "fixed inset-0 z-50 bg-black/50 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=closed]:animate-out data-[state=closed]:fade-out-0";
9789
- var DrawerContent = React30.forwardRef(
9865
+ var DrawerContent = React31.forwardRef(
9790
9866
  ({
9791
9867
  className,
9792
9868
  children,
@@ -9798,19 +9874,19 @@ var DrawerContent = React30.forwardRef(
9798
9874
  ...props
9799
9875
  }, ref) => {
9800
9876
  const finalContainer = container || getCustomContainer() || void 0;
9801
- const nodeRef = React30.useRef(null);
9802
- const [dragOffsetY, setDragOffsetY] = React30.useState(0);
9877
+ const nodeRef = React31.useRef(null);
9878
+ const [dragOffsetY, setDragOffsetY] = React31.useState(0);
9803
9879
  const overlayOpacity = Math.max(
9804
9880
  DRAWER_MIN_OVERLAY_OPACITY,
9805
9881
  1 - dragOffsetY / (DRAWER_CLOSE_THRESHOLD * 2)
9806
9882
  );
9807
- const handleDrag = React30.useCallback(
9883
+ const handleDrag = React31.useCallback(
9808
9884
  (_event, data) => {
9809
9885
  setDragOffsetY(Math.max(0, data.y));
9810
9886
  },
9811
9887
  []
9812
9888
  );
9813
- const handleStop = React30.useCallback(
9889
+ const handleStop = React31.useCallback(
9814
9890
  (_event, data) => {
9815
9891
  if (data.y > DRAWER_CLOSE_THRESHOLD) {
9816
9892
  setDragOffsetY(0);
@@ -9901,7 +9977,7 @@ var DrawerHeader = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_r
9901
9977
  DrawerHeader.displayName = "DrawerHeader";
9902
9978
  var DrawerFooter = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime125.jsx)("div", { className: cn("flex flex-col gap-2 p-5", className), ...props });
9903
9979
  DrawerFooter.displayName = "DrawerFooter";
9904
- var DrawerTitle = React30.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(
9980
+ var DrawerTitle = React31.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(
9905
9981
  DialogPrimitive2.Title,
9906
9982
  {
9907
9983
  ref,
@@ -9911,7 +9987,7 @@ var DrawerTitle = React30.forwardRef(({ className, ...props }, ref) => /* @__PUR
9911
9987
  }
9912
9988
  ));
9913
9989
  DrawerTitle.displayName = DialogPrimitive2.Title.displayName;
9914
- var DrawerDescription = React30.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(
9990
+ var DrawerDescription = React31.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(
9915
9991
  DialogPrimitive2.Description,
9916
9992
  {
9917
9993
  ref,
@@ -9923,7 +9999,7 @@ var DrawerDescription = React30.forwardRef(({ className, ...props }, ref) => /*
9923
9999
  DrawerDescription.displayName = DialogPrimitive2.Description.displayName;
9924
10000
 
9925
10001
  // src/datepicker/useDatePickerWheel.ts
9926
- var React31 = __toESM(require("react"), 1);
10002
+ var React32 = __toESM(require("react"), 1);
9927
10003
 
9928
10004
  // src/datepicker/datePicker.utils.ts
9929
10005
  var DISPLAY_PAD_LENGTH = 2;
@@ -10074,21 +10150,21 @@ function useDatePickerWheel({
10074
10150
  minDate,
10075
10151
  maxDate
10076
10152
  }) {
10077
- const years = React31.useMemo(() => getYearRange(minDate, maxDate), [maxDate, minDate]);
10078
- const [draftDate, setDraftDate] = React31.useState(
10153
+ const years = React32.useMemo(() => getYearRange(minDate, maxDate), [maxDate, minDate]);
10154
+ const [draftDate, setDraftDate] = React32.useState(
10079
10155
  () => resolveInitialDate({ value, defaultValue, minDate, maxDate })
10080
10156
  );
10081
10157
  const draftYear = draftDate.getFullYear();
10082
10158
  const draftMonth = draftDate.getMonth();
10083
- const [monthScrollTop, setMonthScrollTop] = React31.useState(0);
10084
- const [dayScrollTop, setDayScrollTop] = React31.useState(0);
10085
- const [yearScrollTop, setYearScrollTop] = React31.useState(0);
10086
- const monthListRef = React31.useRef(null);
10087
- const dayListRef = React31.useRef(null);
10088
- const yearListRef = React31.useRef(null);
10089
- const settleTimeoutsRef = React31.useRef({});
10090
- const animationFramesRef = React31.useRef({});
10091
- const columnRefs = React31.useMemo(
10159
+ const [monthScrollTop, setMonthScrollTop] = React32.useState(0);
10160
+ const [dayScrollTop, setDayScrollTop] = React32.useState(0);
10161
+ const [yearScrollTop, setYearScrollTop] = React32.useState(0);
10162
+ const monthListRef = React32.useRef(null);
10163
+ const dayListRef = React32.useRef(null);
10164
+ const yearListRef = React32.useRef(null);
10165
+ const settleTimeoutsRef = React32.useRef({});
10166
+ const animationFramesRef = React32.useRef({});
10167
+ const columnRefs = React32.useMemo(
10092
10168
  () => ({
10093
10169
  month: monthListRef,
10094
10170
  day: dayListRef,
@@ -10096,7 +10172,7 @@ function useDatePickerWheel({
10096
10172
  }),
10097
10173
  []
10098
10174
  );
10099
- const setColumnScrollTop = React31.useCallback(
10175
+ const setColumnScrollTop = React32.useCallback(
10100
10176
  (column, nextScrollTop) => {
10101
10177
  if (column === "month") {
10102
10178
  setMonthScrollTop(nextScrollTop);
@@ -10110,19 +10186,19 @@ function useDatePickerWheel({
10110
10186
  },
10111
10187
  []
10112
10188
  );
10113
- const clearSettleTimeout = React31.useCallback((column) => {
10189
+ const clearSettleTimeout = React32.useCallback((column) => {
10114
10190
  const timeoutId = settleTimeoutsRef.current[column];
10115
10191
  if (timeoutId === void 0) return;
10116
10192
  window.clearTimeout(timeoutId);
10117
10193
  delete settleTimeoutsRef.current[column];
10118
10194
  }, []);
10119
- const clearAnimationFrame = React31.useCallback((column) => {
10195
+ const clearAnimationFrame = React32.useCallback((column) => {
10120
10196
  const frameId = animationFramesRef.current[column];
10121
10197
  if (frameId === void 0) return;
10122
10198
  window.cancelAnimationFrame(frameId);
10123
10199
  delete animationFramesRef.current[column];
10124
10200
  }, []);
10125
- React31.useEffect(
10201
+ React32.useEffect(
10126
10202
  () => () => {
10127
10203
  ["month", "day", "year"].forEach((column) => {
10128
10204
  clearSettleTimeout(column);
@@ -10131,22 +10207,22 @@ function useDatePickerWheel({
10131
10207
  },
10132
10208
  [clearAnimationFrame, clearSettleTimeout]
10133
10209
  );
10134
- React31.useEffect(() => {
10210
+ React32.useEffect(() => {
10135
10211
  if (isOpen) return;
10136
10212
  setDraftDate(resolveInitialDate({ value, defaultValue, minDate, maxDate }));
10137
10213
  }, [defaultValue, isOpen, maxDate, minDate, value]);
10138
- const months = React31.useMemo(
10214
+ const months = React32.useMemo(
10139
10215
  () => getAllowedMonths(draftYear, minDate, maxDate),
10140
10216
  [draftYear, maxDate, minDate]
10141
10217
  );
10142
- const days = React31.useMemo(
10218
+ const days = React32.useMemo(
10143
10219
  () => getAllowedDays(draftYear, draftMonth, minDate, maxDate),
10144
10220
  [draftMonth, draftYear, maxDate, minDate]
10145
10221
  );
10146
10222
  const monthIndex = months.findIndex((month) => month === draftMonth);
10147
10223
  const dayIndex = days.findIndex((day) => day === draftDate.getDate());
10148
10224
  const yearIndex = years.findIndex((year) => year === draftYear);
10149
- const syncScrollPositions = React31.useCallback(
10225
+ const syncScrollPositions = React32.useCallback(
10150
10226
  (nextDate, behavior = "auto") => {
10151
10227
  const nextMonths = getAllowedMonths(nextDate.getFullYear(), minDate, maxDate);
10152
10228
  const nextMonthIndex = nextMonths.findIndex((month) => month === nextDate.getMonth());
@@ -10170,7 +10246,7 @@ function useDatePickerWheel({
10170
10246
  },
10171
10247
  [maxDate, minDate, years]
10172
10248
  );
10173
- React31.useLayoutEffect(() => {
10249
+ React32.useLayoutEffect(() => {
10174
10250
  if (!isOpen) return;
10175
10251
  const nextDate = resolveInitialDate({ value, defaultValue, minDate, maxDate });
10176
10252
  setDraftDate(nextDate);
@@ -10181,7 +10257,7 @@ function useDatePickerWheel({
10181
10257
  window.cancelAnimationFrame(frameId);
10182
10258
  };
10183
10259
  }, [defaultValue, isOpen, maxDate, minDate, syncScrollPositions, value]);
10184
- const updateDraftDate = React31.useCallback(
10260
+ const updateDraftDate = React32.useCallback(
10185
10261
  (column, targetIndex, behavior = "smooth") => {
10186
10262
  const currentDate = stripTime(draftDate);
10187
10263
  const currentYear = currentDate.getFullYear();
@@ -10226,7 +10302,7 @@ function useDatePickerWheel({
10226
10302
  },
10227
10303
  [days, draftDate, maxDate, minDate, months, syncScrollPositions, years]
10228
10304
  );
10229
- const settleColumnScroll = React31.useCallback(
10305
+ const settleColumnScroll = React32.useCallback(
10230
10306
  (column) => {
10231
10307
  const list = columnRefs[column].current;
10232
10308
  if (!list) return;
@@ -10239,7 +10315,7 @@ function useDatePickerWheel({
10239
10315
  },
10240
10316
  [columnRefs, days.length, months.length, updateDraftDate, years.length]
10241
10317
  );
10242
- const scheduleScrollSettle = React31.useCallback(
10318
+ const scheduleScrollSettle = React32.useCallback(
10243
10319
  (column) => {
10244
10320
  clearSettleTimeout(column);
10245
10321
  settleTimeoutsRef.current[column] = window.setTimeout(() => {
@@ -10248,7 +10324,7 @@ function useDatePickerWheel({
10248
10324
  },
10249
10325
  [clearSettleTimeout, settleColumnScroll]
10250
10326
  );
10251
- const handleColumnScroll = React31.useCallback(
10327
+ const handleColumnScroll = React32.useCallback(
10252
10328
  (column) => {
10253
10329
  const list = columnRefs[column].current;
10254
10330
  if (!list) return;
@@ -10262,13 +10338,13 @@ function useDatePickerWheel({
10262
10338
  },
10263
10339
  [clearAnimationFrame, columnRefs, scheduleScrollSettle, setColumnScrollTop]
10264
10340
  );
10265
- const handleOptionSelect = React31.useCallback(
10341
+ const handleOptionSelect = React32.useCallback(
10266
10342
  (column, targetIndex) => {
10267
10343
  updateDraftDate(column, targetIndex, "smooth");
10268
10344
  },
10269
10345
  [updateDraftDate]
10270
10346
  );
10271
- const focusAdjacentColumn = React31.useCallback(
10347
+ const focusAdjacentColumn = React32.useCallback(
10272
10348
  (column, direction) => {
10273
10349
  const order = ["month", "day", "year"];
10274
10350
  const currentIndex = order.indexOf(column);
@@ -10278,7 +10354,7 @@ function useDatePickerWheel({
10278
10354
  },
10279
10355
  [columnRefs]
10280
10356
  );
10281
- const handleColumnKeyDown = React31.useCallback(
10357
+ const handleColumnKeyDown = React32.useCallback(
10282
10358
  (column, event) => {
10283
10359
  const currentIndex = column === "month" ? monthIndex : column === "day" ? dayIndex : yearIndex;
10284
10360
  const maxIndex = column === "month" ? months.length - 1 : column === "day" ? days.length - 1 : years.length - 1;
@@ -10582,7 +10658,7 @@ var DEVICE = {
10582
10658
  };
10583
10659
 
10584
10660
  // src/field-trigger/FieldTrigger.tsx
10585
- var React32 = __toESM(require("react"), 1);
10661
+ var React33 = __toESM(require("react"), 1);
10586
10662
  var import_lucide_react43 = require("lucide-react");
10587
10663
  var import_react_i18next23 = require("react-i18next");
10588
10664
 
@@ -10626,7 +10702,7 @@ function FieldErrorMessage({
10626
10702
 
10627
10703
  // src/field-trigger/FieldTrigger.tsx
10628
10704
  var import_jsx_runtime129 = require("react/jsx-runtime");
10629
- var FieldTrigger = React32.forwardRef(
10705
+ var FieldTrigger = React33.forwardRef(
10630
10706
  ({
10631
10707
  as = "button",
10632
10708
  variant = "airbnb",
@@ -10799,7 +10875,7 @@ FieldTrigger.displayName = "FieldTrigger";
10799
10875
  // src/datepicker/DatePicker.tsx
10800
10876
  var import_jsx_runtime130 = require("react/jsx-runtime");
10801
10877
  var DEFAULT_MIN_DATE = new Date(1920, 0, 1);
10802
- var DatePicker = React33.forwardRef(
10878
+ var DatePicker = React34.forwardRef(
10803
10879
  ({
10804
10880
  variant = "default",
10805
10881
  label,
@@ -10825,24 +10901,24 @@ var DatePicker = React33.forwardRef(
10825
10901
  formatValue = formatDateValue
10826
10902
  }, ref) => {
10827
10903
  const { isMatch: isMobile } = useScreenResize(DEVICE.mobileXL);
10828
- const [isOpen, setIsOpen] = React33.useState(false);
10829
- const triggerId = React33.useId();
10830
- const pickerId = React33.useId();
10831
- const labelId = React33.useId();
10832
- const valueId = React33.useId();
10833
- const helperTextId = React33.useId();
10834
- const errorId = React33.useId();
10835
- const internalRef = React33.useRef(null);
10904
+ const [isOpen, setIsOpen] = React34.useState(false);
10905
+ const triggerId = React34.useId();
10906
+ const pickerId = React34.useId();
10907
+ const labelId = React34.useId();
10908
+ const valueId = React34.useId();
10909
+ const helperTextId = React34.useId();
10910
+ const errorId = React34.useId();
10911
+ const internalRef = React34.useRef(null);
10836
10912
  const combinedRef = useCombinedRef(ref, internalRef);
10837
- const monthLabels = React33.useMemo(() => getMonthLabels(locale), [locale]);
10838
- const resolvedMinDate = React33.useMemo(() => minDate ?? DEFAULT_MIN_DATE, [minDate]);
10839
- const resolvedMaxDate = React33.useMemo(() => maxDate ?? /* @__PURE__ */ new Date(), [maxDate]);
10840
- const normalizedValue = React33.useMemo(() => normalizeDateValue(value), [value]);
10841
- const normalizedDefaultValue = React33.useMemo(
10913
+ const monthLabels = React34.useMemo(() => getMonthLabels(locale), [locale]);
10914
+ const resolvedMinDate = React34.useMemo(() => minDate ?? DEFAULT_MIN_DATE, [minDate]);
10915
+ const resolvedMaxDate = React34.useMemo(() => maxDate ?? /* @__PURE__ */ new Date(), [maxDate]);
10916
+ const normalizedValue = React34.useMemo(() => normalizeDateValue(value), [value]);
10917
+ const normalizedDefaultValue = React34.useMemo(
10842
10918
  () => normalizeDateValue(defaultValue),
10843
10919
  [defaultValue]
10844
10920
  );
10845
- const resolvedValue = React33.useMemo(
10921
+ const resolvedValue = React34.useMemo(
10846
10922
  () => normalizedValue ? clampDate(normalizedValue, resolvedMinDate, resolvedMaxDate) : null,
10847
10923
  [normalizedValue, resolvedMaxDate, resolvedMinDate]
10848
10924
  );
@@ -10873,7 +10949,7 @@ var DatePicker = React33.forwardRef(
10873
10949
  minDate: resolvedMinDate,
10874
10950
  maxDate: resolvedMaxDate
10875
10951
  });
10876
- const handleOpenChange = React33.useCallback(
10952
+ const handleOpenChange = React34.useCallback(
10877
10953
  (nextOpen) => {
10878
10954
  if (isBlocked && nextOpen) return;
10879
10955
  setIsOpen(nextOpen);
@@ -10883,7 +10959,7 @@ var DatePicker = React33.forwardRef(
10883
10959
  },
10884
10960
  [isBlocked]
10885
10961
  );
10886
- const handleDone = React33.useCallback(() => {
10962
+ const handleDone = React34.useCallback(() => {
10887
10963
  if (isBlocked) return;
10888
10964
  onChange(clampDate(draftDate, resolvedMinDate, resolvedMaxDate));
10889
10965
  handleOpenChange(false);
@@ -10895,11 +10971,11 @@ var DatePicker = React33.forwardRef(
10895
10971
  resolvedMaxDate,
10896
10972
  resolvedMinDate
10897
10973
  ]);
10898
- const handleTriggerClick = React33.useCallback(() => {
10974
+ const handleTriggerClick = React34.useCallback(() => {
10899
10975
  if (isBlocked) return;
10900
10976
  setIsOpen(true);
10901
10977
  }, [isBlocked]);
10902
- const handleTriggerKeyDown = React33.useCallback(
10978
+ const handleTriggerKeyDown = React34.useCallback(
10903
10979
  (event) => {
10904
10980
  if (isBlocked) return;
10905
10981
  if (event.key === "ArrowDown" || event.key === "ArrowUp" || event.key === "Enter" || event.key === " ") {
@@ -10909,7 +10985,7 @@ var DatePicker = React33.forwardRef(
10909
10985
  },
10910
10986
  [isBlocked]
10911
10987
  );
10912
- React33.useEffect(() => {
10988
+ React34.useEffect(() => {
10913
10989
  if (isBlocked) {
10914
10990
  setIsOpen(false);
10915
10991
  }
@@ -11033,6 +11109,7 @@ function ResponsiveSheet({
11033
11109
  title ? /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(
11034
11110
  "div",
11035
11111
  {
11112
+ "aria-hidden": "true",
11036
11113
  className: cn(
11037
11114
  "text-center mb-3 text-[26px] font-semibold leading-7",
11038
11115
  titleClassName
@@ -11043,6 +11120,7 @@ function ResponsiveSheet({
11043
11120
  description ? /* @__PURE__ */ (0, import_jsx_runtime131.jsx)(
11044
11121
  "p",
11045
11122
  {
11123
+ "aria-hidden": "true",
11046
11124
  className: cn(
11047
11125
  "text-center text-[16px] leading-6 text-[var(--primary)]/70",
11048
11126
  descriptionClassName
@@ -11091,10 +11169,10 @@ function ResponsiveSheet({
11091
11169
  }
11092
11170
 
11093
11171
  // src/airbnb/input/Input.tsx
11094
- var React34 = __toESM(require("react"), 1);
11172
+ var React35 = __toESM(require("react"), 1);
11095
11173
  var import_jsx_runtime132 = require("react/jsx-runtime");
11096
11174
  var getInputValue = (value) => value != null ? String(value) : "";
11097
- var AirbnbInput = React34.forwardRef(
11175
+ var AirbnbInput = React35.forwardRef(
11098
11176
  ({
11099
11177
  variant = "default",
11100
11178
  label,
@@ -11123,15 +11201,15 @@ var AirbnbInput = React34.forwardRef(
11123
11201
  placeholder,
11124
11202
  ...props
11125
11203
  }, ref) => {
11126
- const generatedId = React34.useId();
11127
- const inputRef = React34.useRef(null);
11204
+ const generatedId = React35.useId();
11205
+ const inputRef = React35.useRef(null);
11128
11206
  const inputId = id ?? generatedId;
11129
11207
  const fieldId = `${inputId}-field`;
11130
11208
  const labelId = `${inputId}-label`;
11131
11209
  const errorId = `${inputId}-error`;
11132
11210
  const accessibleLabel = placeholder ?? label;
11133
- const [isFocused, setIsFocused] = React34.useState(false);
11134
- const [currentValue, setCurrentValue] = React34.useState(
11211
+ const [isFocused, setIsFocused] = React35.useState(false);
11212
+ const [currentValue, setCurrentValue] = React35.useState(
11135
11213
  () => value != null ? getInputValue(value) : getInputValue(defaultValue)
11136
11214
  );
11137
11215
  const resolvedValue = value != null ? getInputValue(value) : currentValue;
@@ -11141,11 +11219,11 @@ var AirbnbInput = React34.forwardRef(
11141
11219
  const triggerError = error ?? invalid;
11142
11220
  const hasLabelMeta = Boolean(optional) || Boolean(tooltip);
11143
11221
  const isBlocked = Boolean(disabled) || Boolean(loading);
11144
- React34.useLayoutEffect(() => {
11222
+ React35.useLayoutEffect(() => {
11145
11223
  const nextValue = value != null ? getInputValue(value) : getInputValue(inputRef.current?.value);
11146
11224
  setCurrentValue((prevValue) => prevValue === nextValue ? prevValue : nextValue);
11147
11225
  }, [value]);
11148
- const setRefs = React34.useCallback(
11226
+ const setRefs = React35.useCallback(
11149
11227
  (node) => {
11150
11228
  inputRef.current = node;
11151
11229
  if (node && value == null) {
@@ -11243,11 +11321,11 @@ var AirbnbInput = React34.forwardRef(
11243
11321
  AirbnbInput.displayName = "Input";
11244
11322
 
11245
11323
  // src/airbnb/phone-field/PhoneField.tsx
11246
- var React40 = __toESM(require("react"), 1);
11324
+ var React41 = __toESM(require("react"), 1);
11247
11325
  var import_lucide_react46 = require("lucide-react");
11248
11326
 
11249
11327
  // src/airbnb/select/Select.tsx
11250
- var React39 = __toESM(require("react"), 1);
11328
+ var React40 = __toESM(require("react"), 1);
11251
11329
 
11252
11330
  // src/airbnb/select/SelectDesktopMenu.tsx
11253
11331
  var import_jsx_runtime133 = require("react/jsx-runtime");
@@ -11592,10 +11670,10 @@ function SelectMobileContent({
11592
11670
  }
11593
11671
 
11594
11672
  // src/airbnb/select/SelectTrigger.tsx
11595
- var React35 = __toESM(require("react"), 1);
11673
+ var React36 = __toESM(require("react"), 1);
11596
11674
  var import_lucide_react45 = require("lucide-react");
11597
11675
  var import_jsx_runtime137 = require("react/jsx-runtime");
11598
- var SelectTrigger2 = React35.forwardRef(
11676
+ var SelectTrigger2 = React36.forwardRef(
11599
11677
  ({
11600
11678
  id,
11601
11679
  open,
@@ -11662,7 +11740,7 @@ var SelectTrigger2 = React35.forwardRef(
11662
11740
  SelectTrigger2.displayName = "SelectTrigger";
11663
11741
 
11664
11742
  // src/airbnb/select/useDesktopSelect.ts
11665
- var React36 = __toESM(require("react"), 1);
11743
+ var React37 = __toESM(require("react"), 1);
11666
11744
  function useDesktopSelect({
11667
11745
  isMobile,
11668
11746
  isOpen,
@@ -11671,12 +11749,12 @@ function useDesktopSelect({
11671
11749
  disabled,
11672
11750
  onChange
11673
11751
  }) {
11674
- const [highlightedIndex, setHighlightedIndex] = React36.useState(-1);
11675
- const triggerRef = React36.useRef(null);
11676
- const listRef = React36.useRef(null);
11677
- const optionRefs = React36.useRef([]);
11752
+ const [highlightedIndex, setHighlightedIndex] = React37.useState(-1);
11753
+ const triggerRef = React37.useRef(null);
11754
+ const listRef = React37.useRef(null);
11755
+ const optionRefs = React37.useRef([]);
11678
11756
  const selectedIndex = getOptionIndex(options, value);
11679
- React36.useEffect(() => {
11757
+ React37.useEffect(() => {
11680
11758
  if (!isOpen || isMobile) return;
11681
11759
  setHighlightedIndex((currentIndex) => {
11682
11760
  if (currentIndex >= 0) {
@@ -11691,34 +11769,34 @@ function useDesktopSelect({
11691
11769
  window.cancelAnimationFrame(frameId);
11692
11770
  };
11693
11771
  }, [isMobile, isOpen, options, selectedIndex]);
11694
- React36.useEffect(() => {
11772
+ React37.useEffect(() => {
11695
11773
  if (!isOpen || isMobile || highlightedIndex < 0) return;
11696
11774
  optionRefs.current[highlightedIndex]?.scrollIntoView({
11697
11775
  block: "nearest"
11698
11776
  });
11699
11777
  }, [highlightedIndex, isMobile, isOpen]);
11700
- React36.useEffect(() => {
11778
+ React37.useEffect(() => {
11701
11779
  if (isOpen) return;
11702
11780
  setHighlightedIndex(-1);
11703
11781
  }, [isOpen]);
11704
- const focusTrigger = React36.useCallback(() => {
11782
+ const focusTrigger = React37.useCallback(() => {
11705
11783
  triggerRef.current?.focus();
11706
11784
  }, []);
11707
- const handleSelect = React36.useCallback(
11785
+ const handleSelect = React37.useCallback(
11708
11786
  (option) => {
11709
11787
  if (option.isDisabled || disabled) return;
11710
11788
  onChange(option);
11711
11789
  },
11712
11790
  [disabled, onChange]
11713
11791
  );
11714
- const openMenu = React36.useCallback(
11792
+ const openMenu = React37.useCallback(
11715
11793
  (targetIndex) => {
11716
11794
  const fallbackIndex = selectedIndex >= 0 ? selectedIndex : getFirstEnabledOptionIndex(options);
11717
11795
  setHighlightedIndex(targetIndex ?? fallbackIndex);
11718
11796
  },
11719
11797
  [options, selectedIndex]
11720
11798
  );
11721
- const handleTriggerKeyDown = React36.useCallback(
11799
+ const handleTriggerKeyDown = React37.useCallback(
11722
11800
  (event, onOpen) => {
11723
11801
  if (disabled) return;
11724
11802
  if (event.key === "ArrowDown") {
@@ -11743,7 +11821,7 @@ function useDesktopSelect({
11743
11821
  },
11744
11822
  [disabled, openMenu, options, selectedIndex]
11745
11823
  );
11746
- const handleMenuKeyDown = React36.useCallback(
11824
+ const handleMenuKeyDown = React37.useCallback(
11747
11825
  (event, onClose) => {
11748
11826
  if (event.key === "Escape") {
11749
11827
  event.preventDefault();
@@ -11793,7 +11871,7 @@ function useDesktopSelect({
11793
11871
  },
11794
11872
  [focusTrigger, highlightedIndex, onChange, options]
11795
11873
  );
11796
- const setOptionRef = React36.useCallback(
11874
+ const setOptionRef = React37.useCallback(
11797
11875
  (index, node) => {
11798
11876
  optionRefs.current[index] = node;
11799
11877
  },
@@ -11813,23 +11891,23 @@ function useDesktopSelect({
11813
11891
  }
11814
11892
 
11815
11893
  // src/airbnb/select/useMobileSelectWheel.ts
11816
- var React37 = __toESM(require("react"), 1);
11894
+ var React38 = __toESM(require("react"), 1);
11817
11895
  function useMobileSelectWheel({ isMobile, isOpen, options, value, disabled }) {
11818
- const [pendingValue, setPendingValue] = React37.useState(
11896
+ const [pendingValue, setPendingValue] = React38.useState(
11819
11897
  value ?? null
11820
11898
  );
11821
- const [mobileScrollTop, setMobileScrollTop] = React37.useState(0);
11822
- const mobileListRef = React37.useRef(null);
11823
- const scrollSettleTimeoutRef = React37.useRef(null);
11824
- const scrollAnimationFrameRef = React37.useRef(null);
11825
- const getTargetIndex = React37.useCallback(
11899
+ const [mobileScrollTop, setMobileScrollTop] = React38.useState(0);
11900
+ const mobileListRef = React38.useRef(null);
11901
+ const scrollSettleTimeoutRef = React38.useRef(null);
11902
+ const scrollAnimationFrameRef = React38.useRef(null);
11903
+ const getTargetIndex = React38.useCallback(
11826
11904
  (targetValue) => {
11827
11905
  const selectedIndex = getOptionIndex(options, targetValue);
11828
11906
  return selectedIndex >= 0 ? selectedIndex : getFirstEnabledOptionIndex(options);
11829
11907
  },
11830
11908
  [options]
11831
11909
  );
11832
- const syncScrollPosition = React37.useCallback(
11910
+ const syncScrollPosition = React38.useCallback(
11833
11911
  (targetValue, behavior = "instant") => {
11834
11912
  const targetIndex = getTargetIndex(targetValue);
11835
11913
  if (targetIndex < 0) return;
@@ -11848,27 +11926,27 @@ function useMobileSelectWheel({ isMobile, isOpen, options, value, disabled }) {
11848
11926
  },
11849
11927
  [getTargetIndex, options]
11850
11928
  );
11851
- const clearScrollSettleTimeout = React37.useCallback(() => {
11929
+ const clearScrollSettleTimeout = React38.useCallback(() => {
11852
11930
  if (scrollSettleTimeoutRef.current === null) return;
11853
11931
  window.clearTimeout(scrollSettleTimeoutRef.current);
11854
11932
  scrollSettleTimeoutRef.current = null;
11855
11933
  }, []);
11856
- const clearScrollAnimationFrame = React37.useCallback(() => {
11934
+ const clearScrollAnimationFrame = React38.useCallback(() => {
11857
11935
  if (scrollAnimationFrameRef.current === null) return;
11858
11936
  window.cancelAnimationFrame(scrollAnimationFrameRef.current);
11859
11937
  scrollAnimationFrameRef.current = null;
11860
11938
  }, []);
11861
- React37.useEffect(
11939
+ React38.useEffect(
11862
11940
  () => () => {
11863
11941
  clearScrollSettleTimeout();
11864
11942
  clearScrollAnimationFrame();
11865
11943
  },
11866
11944
  [clearScrollAnimationFrame, clearScrollSettleTimeout]
11867
11945
  );
11868
- React37.useEffect(() => {
11946
+ React38.useEffect(() => {
11869
11947
  setPendingValue(value ?? null);
11870
11948
  }, [value]);
11871
- React37.useLayoutEffect(() => {
11949
+ React38.useLayoutEffect(() => {
11872
11950
  if (!isMobile || !isOpen) return;
11873
11951
  const frameId = window.requestAnimationFrame(() => {
11874
11952
  syncScrollPosition(value ?? null, "instant");
@@ -11877,7 +11955,7 @@ function useMobileSelectWheel({ isMobile, isOpen, options, value, disabled }) {
11877
11955
  window.cancelAnimationFrame(frameId);
11878
11956
  };
11879
11957
  }, [isMobile, isOpen, syncScrollPosition, value]);
11880
- const settleScroll = React37.useCallback(() => {
11958
+ const settleScroll = React38.useCallback(() => {
11881
11959
  if (!mobileListRef.current) return;
11882
11960
  const nextIndex = Math.round(mobileListRef.current.scrollTop / MOBILE_OPTION_HEIGHT);
11883
11961
  const nextOption = options[nextIndex];
@@ -11889,13 +11967,13 @@ function useMobileSelectWheel({ isMobile, isOpen, options, value, disabled }) {
11889
11967
  }
11890
11968
  setPendingValue(nextOption);
11891
11969
  }, [options, pendingValue]);
11892
- const scheduleScrollSettle = React37.useCallback(() => {
11970
+ const scheduleScrollSettle = React38.useCallback(() => {
11893
11971
  clearScrollSettleTimeout();
11894
11972
  scrollSettleTimeoutRef.current = window.setTimeout(() => {
11895
11973
  settleScroll();
11896
11974
  }, MOBILE_SCROLL_SETTLE_DELAY);
11897
11975
  }, [clearScrollSettleTimeout, settleScroll]);
11898
- const handleScroll = React37.useCallback(() => {
11976
+ const handleScroll = React38.useCallback(() => {
11899
11977
  if (!mobileListRef.current) return;
11900
11978
  const nextScrollTop = mobileListRef.current.scrollTop;
11901
11979
  clearScrollAnimationFrame();
@@ -11905,7 +11983,7 @@ function useMobileSelectWheel({ isMobile, isOpen, options, value, disabled }) {
11905
11983
  });
11906
11984
  scheduleScrollSettle();
11907
11985
  }, [clearScrollAnimationFrame, scheduleScrollSettle]);
11908
- const focusOptionByIndex = React37.useCallback(
11986
+ const focusOptionByIndex = React38.useCallback(
11909
11987
  (index, behavior = "instant", updatePendingImmediately = behavior === "instant") => {
11910
11988
  if (!mobileListRef.current || index < 0 || index >= options.length) return;
11911
11989
  const option = options[index];
@@ -11923,7 +12001,7 @@ function useMobileSelectWheel({ isMobile, isOpen, options, value, disabled }) {
11923
12001
  },
11924
12002
  [options, scheduleScrollSettle]
11925
12003
  );
11926
- const handleOptionClick = React37.useCallback(
12004
+ const handleOptionClick = React38.useCallback(
11927
12005
  (option) => {
11928
12006
  if (!mobileListRef.current || disabled || option.isDisabled) return;
11929
12007
  const optionIndex = getOptionIndex(options, option);
@@ -11932,7 +12010,7 @@ function useMobileSelectWheel({ isMobile, isOpen, options, value, disabled }) {
11932
12010
  },
11933
12011
  [disabled, focusOptionByIndex, options]
11934
12012
  );
11935
- const moveByStep = React37.useCallback(
12013
+ const moveByStep = React38.useCallback(
11936
12014
  (step) => {
11937
12015
  const currentIndex = getOptionIndex(options, pendingValue);
11938
12016
  const fallbackIndex = step === 1 ? getFirstEnabledOptionIndex(options) : getLastEnabledOptionIndex(options);
@@ -11944,7 +12022,7 @@ function useMobileSelectWheel({ isMobile, isOpen, options, value, disabled }) {
11944
12022
  },
11945
12023
  [focusOptionByIndex, options, pendingValue]
11946
12024
  );
11947
- const moveToBoundary = React37.useCallback(
12025
+ const moveToBoundary = React38.useCallback(
11948
12026
  (boundary) => {
11949
12027
  const targetIndex = boundary === "start" ? getFirstEnabledOptionIndex(options) : getLastEnabledOptionIndex(options);
11950
12028
  if (targetIndex >= 0) {
@@ -11953,7 +12031,7 @@ function useMobileSelectWheel({ isMobile, isOpen, options, value, disabled }) {
11953
12031
  },
11954
12032
  [focusOptionByIndex, options]
11955
12033
  );
11956
- const syncPendingValue = React37.useCallback(
12034
+ const syncPendingValue = React38.useCallback(
11957
12035
  (nextValue) => {
11958
12036
  const normalizedValue = nextValue ?? null;
11959
12037
  const matchedIndex = getOptionIndex(options, normalizedValue);
@@ -11981,9 +12059,9 @@ function useMobileSelectWheel({ isMobile, isOpen, options, value, disabled }) {
11981
12059
  }
11982
12060
 
11983
12061
  // src/airbnb/select/useSelectIds.ts
11984
- var React38 = __toESM(require("react"), 1);
12062
+ var React39 = __toESM(require("react"), 1);
11985
12063
  function useSelectIds({ name, hasValue, error, hideErrorMessage }) {
11986
- const reactId = React38.useId().replace(/:/g, "");
12064
+ const reactId = React39.useId().replace(/:/g, "");
11987
12065
  const baseId = name ? `select-${name}` : `select-${reactId}`;
11988
12066
  const triggerId = `${baseId}-trigger`;
11989
12067
  const labelId = `${baseId}-label`;
@@ -11993,7 +12071,7 @@ function useSelectIds({ name, hasValue, error, hideErrorMessage }) {
11993
12071
  const listboxId = `${baseId}-listbox`;
11994
12072
  const describedErrorId = error && !hideErrorMessage ? errorId : void 0;
11995
12073
  const describedBy = [!hasValue ? helperTextId : null, describedErrorId].filter(Boolean).join(" ") || void 0;
11996
- const getOptionId2 = React38.useCallback(
12074
+ const getOptionId2 = React39.useCallback(
11997
12075
  (index) => `${baseId}-option-${index}`,
11998
12076
  [baseId]
11999
12077
  );
@@ -12012,7 +12090,7 @@ function useSelectIds({ name, hasValue, error, hideErrorMessage }) {
12012
12090
 
12013
12091
  // src/airbnb/select/Select.tsx
12014
12092
  var import_jsx_runtime138 = require("react/jsx-runtime");
12015
- var AirbnbSelect = React39.forwardRef(function AirbnbSelect2({
12093
+ var AirbnbSelect = React40.forwardRef(function AirbnbSelect2({
12016
12094
  options = [],
12017
12095
  value,
12018
12096
  onChange,
@@ -12039,10 +12117,11 @@ var AirbnbSelect = React39.forwardRef(function AirbnbSelect2({
12039
12117
  noOptionsMessage
12040
12118
  }, ref) {
12041
12119
  const { isMatch: isMobile } = useScreenResize(DEVICE.mobileXL);
12042
- const [isOpen, setIsOpen] = React39.useState(false);
12043
- const containerRef = React39.useRef(null);
12120
+ const [isOpen, setIsOpen] = React40.useState(false);
12121
+ const containerRef = React40.useRef(null);
12044
12122
  const hasValue = Boolean(value);
12045
12123
  const helperText = placeholder ?? label;
12124
+ const shouldDescribeHelperText = !hasValue && helperText !== label;
12046
12125
  const isBlocked = Boolean(disabled) || Boolean(loading);
12047
12126
  const triggerError = error ?? invalid;
12048
12127
  const {
@@ -12056,6 +12135,8 @@ var AirbnbSelect = React39.forwardRef(function AirbnbSelect2({
12056
12135
  describedBy,
12057
12136
  getOptionId: getOptionId2
12058
12137
  } = useSelectIds({ name, hasValue, error, hideErrorMessage });
12138
+ const triggerHelperTextId = shouldDescribeHelperText ? helperTextId : void 0;
12139
+ const triggerDescribedBy = shouldDescribeHelperText ? describedBy : describedErrorId;
12059
12140
  const {
12060
12141
  mobileListRef,
12061
12142
  mobileScrollTop,
@@ -12098,12 +12179,12 @@ var AirbnbSelect = React39.forwardRef(function AirbnbSelect2({
12098
12179
  onOutsideClick: () => setIsOpen(false),
12099
12180
  isDisabled: !isOpen || isMobile
12100
12181
  });
12101
- React39.useEffect(() => {
12182
+ React40.useEffect(() => {
12102
12183
  if (isBlocked) {
12103
12184
  setIsOpen(false);
12104
12185
  }
12105
12186
  }, [isBlocked]);
12106
- React39.useEffect(
12187
+ React40.useEffect(
12107
12188
  function setCorrectOptionIfThereIsOnlyValue() {
12108
12189
  if (value?.value === void 0 || value.value === null || value.label !== "") {
12109
12190
  return;
@@ -12115,7 +12196,7 @@ var AirbnbSelect = React39.forwardRef(function AirbnbSelect2({
12115
12196
  },
12116
12197
  [onChange, options, value]
12117
12198
  );
12118
- const handleMobileOpenChange = React39.useCallback(
12199
+ const handleMobileOpenChange = React40.useCallback(
12119
12200
  (nextOpen) => {
12120
12201
  if (isBlocked && nextOpen) return;
12121
12202
  setIsOpen(nextOpen);
@@ -12126,7 +12207,7 @@ var AirbnbSelect = React39.forwardRef(function AirbnbSelect2({
12126
12207
  },
12127
12208
  [focusTrigger, isBlocked, syncPendingValue, value]
12128
12209
  );
12129
- const handleMobileDone = React39.useCallback(() => {
12210
+ const handleMobileDone = React40.useCallback(() => {
12130
12211
  if (isBlocked) return;
12131
12212
  const finalOption = pendingValue;
12132
12213
  if (finalOption && finalOption.value !== value?.value) {
@@ -12135,7 +12216,7 @@ var AirbnbSelect = React39.forwardRef(function AirbnbSelect2({
12135
12216
  setIsOpen(false);
12136
12217
  focusTrigger();
12137
12218
  }, [focusTrigger, isBlocked, onChange, pendingValue, value]);
12138
- const handleTriggerClick = React39.useCallback(() => {
12219
+ const handleTriggerClick = React40.useCallback(() => {
12139
12220
  if (isBlocked) return;
12140
12221
  setIsOpen((prev) => {
12141
12222
  const nextOpen = !prev;
@@ -12211,7 +12292,7 @@ var AirbnbSelect = React39.forwardRef(function AirbnbSelect2({
12211
12292
  error,
12212
12293
  invalid,
12213
12294
  listboxId,
12214
- describedBy,
12295
+ describedBy: triggerDescribedBy,
12215
12296
  triggerRef: combinedRef,
12216
12297
  onClick: handleTriggerClick,
12217
12298
  onKeyDown: handleRootTriggerKeyDown,
@@ -12235,10 +12316,10 @@ var AirbnbSelect = React39.forwardRef(function AirbnbSelect2({
12235
12316
  hideErrorMessage,
12236
12317
  labelId,
12237
12318
  valueId,
12238
- helperTextId,
12319
+ helperTextId: triggerHelperTextId,
12239
12320
  errorId: error ? errorId : void 0,
12240
12321
  listboxId,
12241
- describedBy,
12322
+ describedBy: triggerDescribedBy,
12242
12323
  onClick: handleTriggerClick,
12243
12324
  onKeyDown: handleRootTriggerKeyDown,
12244
12325
  onBlur
@@ -12309,7 +12390,7 @@ function formatPhoneCodeOptionLabel(option) {
12309
12390
  const value = String(option.value);
12310
12391
  return label.includes(value) ? label : `${label} (${value})`;
12311
12392
  }
12312
- var PhoneField = React40.forwardRef(
12393
+ var PhoneField = React41.forwardRef(
12313
12394
  ({
12314
12395
  variant = "default",
12315
12396
  label,
@@ -12333,8 +12414,8 @@ var PhoneField = React40.forwardRef(
12333
12414
  mobileTitle,
12334
12415
  codePlaceholder = "+00"
12335
12416
  }, ref) => {
12336
- const inputId = React40.useId();
12337
- const codeOptions = React40.useMemo(
12417
+ const inputId = React41.useId();
12418
+ const codeOptions = React41.useMemo(
12338
12419
  () => options.map((option) => ({
12339
12420
  value: option.value,
12340
12421
  label: formatPhoneCodeOptionLabel(option),
@@ -12342,7 +12423,7 @@ var PhoneField = React40.forwardRef(
12342
12423
  })),
12343
12424
  [options]
12344
12425
  );
12345
- const selectedCodeOption = React40.useMemo(
12426
+ const selectedCodeOption = React41.useMemo(
12346
12427
  () => codeOptions.find((option) => option.value === value?.code) ?? null,
12347
12428
  [codeOptions, value?.code]
12348
12429
  );
@@ -12484,11 +12565,11 @@ var PhoneField = React40.forwardRef(
12484
12565
  PhoneField.displayName = "PhoneField";
12485
12566
 
12486
12567
  // src/airbnb/search-input/SearchInput.tsx
12487
- var React41 = __toESM(require("react"), 1);
12568
+ var React42 = __toESM(require("react"), 1);
12488
12569
  var import_react_i18next24 = require("react-i18next");
12489
12570
  var import_lucide_react47 = require("lucide-react");
12490
12571
  var import_jsx_runtime140 = require("react/jsx-runtime");
12491
- var AirbnbSearchInput = React41.forwardRef(({ onReset, placeholder, wrapperClassName, ...props }, ref) => {
12572
+ var AirbnbSearchInput = React42.forwardRef(({ onReset, placeholder, wrapperClassName, ...props }, ref) => {
12492
12573
  const { t } = (0, import_react_i18next24.useTranslation)();
12493
12574
  const placeholderText = placeholder || t("search_property") + "...";
12494
12575
  return /* @__PURE__ */ (0, import_jsx_runtime140.jsxs)("div", { className: cn("input-wrapper relative", wrapperClassName), children: [
@@ -12526,7 +12607,7 @@ var AirbnbSearchInput = React41.forwardRef(({ onReset, placeholder, wrapperClass
12526
12607
  AirbnbSearchInput.displayName = "SearchInput";
12527
12608
 
12528
12609
  // src/searchable-select/SearchableSelect.tsx
12529
- var React42 = __toESM(require("react"), 1);
12610
+ var React43 = __toESM(require("react"), 1);
12530
12611
  var import_lucide_react48 = require("lucide-react");
12531
12612
  var import_react_virtual2 = require("@tanstack/react-virtual");
12532
12613
  var import_react68 = require("react");
@@ -12571,13 +12652,13 @@ var SearchableSelectInternal = ({
12571
12652
  loadingMessage
12572
12653
  }, ref) => {
12573
12654
  const { isMatch: isMobile } = useScreenResize(DEVICE.mobileXL);
12574
- const reactId = React42.useId();
12575
- const [open, setOpen] = React42.useState(false);
12576
- const [internalSearchValue, setInternalSearchValue] = React42.useState("");
12577
- const [highlightedIndex, setHighlightedIndex] = React42.useState(-1);
12578
- const containerRef = React42.useRef(null);
12579
- const triggerRef = React42.useRef(null);
12580
- const inputRef = React42.useRef(null);
12655
+ const reactId = React43.useId();
12656
+ const [open, setOpen] = React43.useState(false);
12657
+ const [internalSearchValue, setInternalSearchValue] = React43.useState("");
12658
+ const [highlightedIndex, setHighlightedIndex] = React43.useState(-1);
12659
+ const containerRef = React43.useRef(null);
12660
+ const triggerRef = React43.useRef(null);
12661
+ const inputRef = React43.useRef(null);
12581
12662
  const listboxId = `${reactId}-listbox`;
12582
12663
  const labelId = `${reactId}-label`;
12583
12664
  const valueId = `${reactId}-value`;
@@ -12586,13 +12667,13 @@ var SearchableSelectInternal = ({
12586
12667
  const searchInputId = `${reactId}-search`;
12587
12668
  const effectiveSearchValue = searchValue ?? internalSearchValue;
12588
12669
  const shouldFilterLocally = !onSearchChange && filterOption !== null;
12589
- const visibleOptions = React42.useMemo(() => {
12670
+ const visibleOptions = React43.useMemo(() => {
12590
12671
  if (!shouldFilterLocally || !effectiveSearchValue) {
12591
12672
  return options;
12592
12673
  }
12593
12674
  return options.filter((option) => filterOption(option, effectiveSearchValue));
12594
12675
  }, [effectiveSearchValue, filterOption, options, shouldFilterLocally]);
12595
- const selectedIndex = React42.useMemo(
12676
+ const selectedIndex = React43.useMemo(
12596
12677
  () => visibleOptions.findIndex((option) => option.value === value?.value),
12597
12678
  [value?.value, visibleOptions]
12598
12679
  );
@@ -12618,7 +12699,7 @@ var SearchableSelectInternal = ({
12618
12699
  },
12619
12700
  [handleOnOpenChange]
12620
12701
  );
12621
- React42.useEffect(() => {
12702
+ React43.useEffect(() => {
12622
12703
  if (isBlocked) {
12623
12704
  setSelectOpen(false);
12624
12705
  return;
@@ -12631,7 +12712,7 @@ var SearchableSelectInternal = ({
12631
12712
  window.cancelAnimationFrame(frameId);
12632
12713
  };
12633
12714
  }, [isBlocked, open, setSelectOpen]);
12634
- React42.useEffect(() => {
12715
+ React43.useEffect(() => {
12635
12716
  if (!open) {
12636
12717
  setHighlightedIndex(-1);
12637
12718
  return;
@@ -12726,7 +12807,7 @@ var SearchableSelectInternal = ({
12726
12807
  onOptionHover: setHighlightedIndex
12727
12808
  }
12728
12809
  );
12729
- React42.useImperativeHandle(ref, () => triggerRef.current, []);
12810
+ React43.useImperativeHandle(ref, () => triggerRef.current, []);
12730
12811
  return /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)("div", { ref: containerRef, className: cn("relative w-full max-w-[425px]", className), children: [
12731
12812
  name && /* @__PURE__ */ (0, import_jsx_runtime141.jsx)("input", { type: "hidden", name, value: value ? String(value.value) : "" }),
12732
12813
  /* @__PURE__ */ (0, import_jsx_runtime141.jsx)(
@@ -12805,7 +12886,7 @@ var SearchableSelectInternal = ({
12805
12886
  ) : null
12806
12887
  ] });
12807
12888
  };
12808
- var SearchableSelect = React42.forwardRef(
12889
+ var SearchableSelect = React43.forwardRef(
12809
12890
  SearchableSelectInternal
12810
12891
  );
12811
12892
  function SearchableSelectContent({
@@ -12832,9 +12913,9 @@ function SearchableSelectContent({
12832
12913
  onOptionClick,
12833
12914
  onOptionHover
12834
12915
  }) {
12835
- const listRef = React42.useRef(null);
12836
- const lastLoadMoreOptionsLengthRef = React42.useRef(null);
12837
- const previousHighlightedIndexRef = React42.useRef(highlightedIndex);
12916
+ const listRef = React43.useRef(null);
12917
+ const lastLoadMoreOptionsLengthRef = React43.useRef(null);
12918
+ const previousHighlightedIndexRef = React43.useRef(highlightedIndex);
12838
12919
  const rowCount = options.length + (loading && options.length > 0 ? 1 : 0);
12839
12920
  const virtualizer = (0, import_react_virtual2.useVirtualizer)({
12840
12921
  count: rowCount,
@@ -12845,7 +12926,7 @@ function SearchableSelectContent({
12845
12926
  const virtualItems = virtualizer.getVirtualItems();
12846
12927
  const emptyMessage = noOptionsMessage?.() ?? "No matches found";
12847
12928
  const loadingText = loadingMessage?.() ?? "Loading...";
12848
- React42.useEffect(() => {
12929
+ React43.useEffect(() => {
12849
12930
  const lastItem = virtualItems[virtualItems.length - 1];
12850
12931
  const shouldLoadMore = !!lastItem && hasNextPage && !loading && lastItem.index >= options.length - LOAD_MORE_THRESHOLD;
12851
12932
  if (shouldLoadMore && lastLoadMoreOptionsLengthRef.current !== options.length) {
@@ -12853,7 +12934,7 @@ function SearchableSelectContent({
12853
12934
  onLoadMore?.();
12854
12935
  }
12855
12936
  }, [hasNextPage, loading, onLoadMore, options.length, virtualItems]);
12856
- React42.useEffect(() => {
12937
+ React43.useEffect(() => {
12857
12938
  const hasHighlightedIndexChanged = previousHighlightedIndexRef.current !== highlightedIndex;
12858
12939
  previousHighlightedIndexRef.current = highlightedIndex;
12859
12940
  if (highlightedIndex >= 0 && hasHighlightedIndexChanged) {
@@ -13259,6 +13340,7 @@ function getNextEnabledIndex(options, startIndex, step) {
13259
13340
  useDebouncedFunction,
13260
13341
  useEvent,
13261
13342
  useHover,
13343
+ useIframeFocusTrapFallback,
13262
13344
  useIsFormTouched,
13263
13345
  useIsMobile,
13264
13346
  useIsMounted,