@chekinapp/ui 0.0.125 → 0.0.127

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -12122,7 +12122,7 @@ function Fieldset({
12122
12122
  {
12123
12123
  "aria-hidden": "true",
12124
12124
  className: cn(
12125
- "pointer-events-none absolute -top-[5px] bottom-0 left-0 right-0 m-0 min-w-0 rounded-[6px] border px-[13px] transition-colors duration-75",
12125
+ "pointer-events-none absolute -top-[5px] bottom-0 left-0 right-0 m-0 min-w-0 rounded-[6px] border px-[13px] text-left transition-colors duration-75",
12126
12126
  "border-[var(--chekin-color-gray-3)]",
12127
12127
  isActivated && "border-[var(--chekin-color-gray-2)]",
12128
12128
  isFocused && "border-[var(--chekin-color-brand-blue)]",
@@ -12426,10 +12426,6 @@ Input.displayName = "Input";
12426
12426
  import * as React50 from "react";
12427
12427
  import { useTranslation as useTranslation34 } from "react-i18next";
12428
12428
 
12429
- // src/dashboard/select/Select.tsx
12430
- import * as React49 from "react";
12431
- import { useTranslation as useTranslation33 } from "react-i18next";
12432
-
12433
12429
  // src/dashboard/_select-internals/SelectFieldShell.tsx
12434
12430
  import { useTranslation as useTranslation27 } from "react-i18next";
12435
12431
  import { jsx as jsx144, jsxs as jsxs91 } from "react/jsx-runtime";
@@ -12557,6 +12553,46 @@ function isOptionSelected(option, selectedValue, selectedValues) {
12557
12553
  function defaultIsOptionSelected(option, selectValue) {
12558
12554
  return selectValue.some((item) => item.value === option.value);
12559
12555
  }
12556
+ var COUNTRY_ALIASES = [["T\xFCrkiye", ["Turkey", "Turkiye"]]];
12557
+ function normalizeSearchText(value) {
12558
+ return value.normalize("NFD").replace(/[̀-ͯ]/g, "").toLowerCase();
12559
+ }
12560
+ var ALIAS_LOOKUP = COUNTRY_ALIASES.reduce(
12561
+ (acc, [officialName, aliases]) => {
12562
+ const officialLower = normalizeSearchText(officialName);
12563
+ aliases.forEach((alias) => {
12564
+ acc[normalizeSearchText(alias)] = officialLower;
12565
+ });
12566
+ return acc;
12567
+ },
12568
+ {}
12569
+ );
12570
+ function getOptionSearchText(option) {
12571
+ if (typeof option.label === "string" || typeof option.label === "number") {
12572
+ return String(option.label);
12573
+ }
12574
+ return String(option.value);
12575
+ }
12576
+ function countriesFilter(option, inputValue) {
12577
+ const input = normalizeSearchText(inputValue.trim());
12578
+ if (!input) {
12579
+ return true;
12580
+ }
12581
+ const label = normalizeSearchText(getOptionSearchText(option));
12582
+ if (label.includes(input)) {
12583
+ return true;
12584
+ }
12585
+ const officialName = ALIAS_LOOKUP[input];
12586
+ if (officialName && label.includes(officialName)) {
12587
+ return true;
12588
+ }
12589
+ for (const [alias, official] of Object.entries(ALIAS_LOOKUP)) {
12590
+ if (alias.includes(input) && label.includes(official)) {
12591
+ return true;
12592
+ }
12593
+ }
12594
+ return false;
12595
+ }
12560
12596
 
12561
12597
  // src/dashboard/_select-internals/slots/DefaultOption.tsx
12562
12598
  import { Check as Check6 } from "lucide-react";
@@ -12906,15 +12942,19 @@ function SelectTrigger({
12906
12942
  labelId,
12907
12943
  valueId,
12908
12944
  describedErrorId,
12945
+ accessibleLabel,
12909
12946
  hasValue,
12910
12947
  isOpen,
12911
12948
  isBlocked,
12912
12949
  disabled,
12950
+ readOnly,
12913
12951
  loading,
12914
12952
  invalid,
12915
12953
  placeholder,
12954
+ showPlaceholderWhenIdle,
12916
12955
  valueLabel,
12917
12956
  leftIcon,
12957
+ hideIndicator,
12918
12958
  onClick,
12919
12959
  onKeyDown,
12920
12960
  onBlur
@@ -12929,7 +12969,8 @@ function SelectTrigger({
12929
12969
  "aria-haspopup": "listbox",
12930
12970
  "aria-expanded": isOpen,
12931
12971
  "aria-controls": listboxId,
12932
- "aria-labelledby": hasValue && valueId ? `${labelId} ${valueId}` : labelId,
12972
+ "aria-label": accessibleLabel,
12973
+ "aria-labelledby": accessibleLabel ? void 0 : hasValue && valueId ? `${labelId} ${valueId}` : labelId,
12933
12974
  "aria-describedby": describedErrorId,
12934
12975
  "aria-invalid": invalid,
12935
12976
  "aria-busy": loading,
@@ -12941,18 +12982,19 @@ function SelectTrigger({
12941
12982
  "relative m-0 box-border flex h-12 w-full cursor-pointer items-center justify-between gap-2 rounded-[6px] border-0 pr-4 text-left text-[16px] font-medium leading-5 outline-none transition-colors duration-200",
12942
12983
  leftIcon ? "pl-10" : "pl-4",
12943
12984
  isEmpty ? "bg-[var(--empty-field-background)] text-[var(--chekin-color-gray-1)]" : "bg-transparent text-[var(--chekin-color-brand-navy)]",
12985
+ readOnly && !disabled && !loading && "cursor-default",
12944
12986
  disabled && !loading && "cursor-not-allowed opacity-50",
12945
12987
  loading && "!cursor-progress"
12946
12988
  ),
12947
12989
  children: [
12948
12990
  leftIcon && /* @__PURE__ */ jsx149("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__ */ jsx149("span", { className: "flex h-full w-10 items-center justify-center", children: leftIcon }) }),
12949
- /* @__PURE__ */ jsx149("span", { id: valueId, className: "block min-w-0 flex-1 truncate text-left", children: valueLabel ?? (isOpen ? placeholder : null) }),
12950
- /* @__PURE__ */ jsx149("span", { className: "pointer-events-none flex items-center gap-2 text-[var(--chekin-color-gray-2)]", children: /* @__PURE__ */ jsx149(
12991
+ /* @__PURE__ */ jsx149("span", { id: valueId, className: "block min-w-0 flex-1 truncate text-left", children: hasValue ? valueLabel : showPlaceholderWhenIdle || isOpen ? placeholder : null }),
12992
+ /* @__PURE__ */ jsx149("span", { className: "flex items-center gap-2 text-[var(--chekin-color-gray-2)]", children: !hideIndicator && /* @__PURE__ */ jsx149(
12951
12993
  ChevronDown2,
12952
12994
  {
12953
12995
  size: 16,
12954
12996
  className: cn(
12955
- "transition-transform duration-200",
12997
+ "pointer-events-none transition-transform duration-200",
12956
12998
  isOpen && "rotate-180 text-[var(--chekin-color-brand-blue)]"
12957
12999
  )
12958
13000
  }
@@ -12972,6 +13014,7 @@ function ComboboxTrigger({
12972
13014
  labelId,
12973
13015
  valueId,
12974
13016
  describedErrorId,
13017
+ accessibleLabel,
12975
13018
  isOpen,
12976
13019
  isFocused,
12977
13020
  isBlocked,
@@ -12985,6 +13028,7 @@ function ComboboxTrigger({
12985
13028
  inputRef,
12986
13029
  inputValue,
12987
13030
  placeholder,
13031
+ showPlaceholderWhenIdle,
12988
13032
  highlightedIndex,
12989
13033
  getOptionId: getOptionId2,
12990
13034
  onInputChange,
@@ -12999,7 +13043,8 @@ function ComboboxTrigger({
12999
13043
  containerClassName,
13000
13044
  inputClassName,
13001
13045
  hideIndicator,
13002
- autoFocus
13046
+ autoFocus,
13047
+ searchable = true
13003
13048
  }) {
13004
13049
  const { t } = useTranslation30();
13005
13050
  const resolvedPlaceholder = placeholder ?? t("type_to_search");
@@ -13011,7 +13056,8 @@ function ComboboxTrigger({
13011
13056
  "aria-haspopup": "listbox",
13012
13057
  "aria-expanded": isOpen,
13013
13058
  "aria-controls": listboxId,
13014
- "aria-labelledby": hasValue && valueId ? `${labelId} ${valueId}` : labelId,
13059
+ "aria-label": accessibleLabel,
13060
+ "aria-labelledby": accessibleLabel ? void 0 : hasValue && valueId ? `${labelId} ${valueId}` : labelId,
13015
13061
  "aria-describedby": describedErrorId,
13016
13062
  "aria-invalid": invalid,
13017
13063
  "aria-busy": loading,
@@ -13021,6 +13067,7 @@ function ComboboxTrigger({
13021
13067
  "relative box-border flex w-full cursor-text rounded-[6px] border-0 text-left text-[16px] font-medium leading-5 outline-none transition-colors duration-200",
13022
13068
  "min-h-12",
13023
13069
  isEmpty && !isFocused ? "bg-[var(--empty-field-background)]" : "bg-transparent",
13070
+ readOnly && !disabled && !loading && "cursor-default",
13024
13071
  disabled && !loading && "cursor-not-allowed",
13025
13072
  loading && "!cursor-progress",
13026
13073
  containerClassName
@@ -13048,8 +13095,8 @@ function ComboboxTrigger({
13048
13095
  onFocus: onInputFocus,
13049
13096
  onKeyDown: onInputKeyDown,
13050
13097
  disabled: isBlocked,
13051
- readOnly,
13052
- placeholder: isFocused || isOpen ? resolvedPlaceholder : "",
13098
+ readOnly: readOnly || !searchable,
13099
+ placeholder: searchable && (showPlaceholderWhenIdle || isFocused || isOpen) ? resolvedPlaceholder : "",
13053
13100
  autoComplete: "off",
13054
13101
  autoFocus,
13055
13102
  "aria-autocomplete": "list",
@@ -13058,7 +13105,9 @@ function ComboboxTrigger({
13058
13105
  className: cn(
13059
13106
  "m-0 box-border min-w-0 flex-1 border-0 bg-transparent p-0 text-[16px] font-medium leading-5 text-[var(--chekin-color-brand-navy)] outline-none placeholder:text-[var(--chekin-color-gray-1)]",
13060
13107
  isMulti && "min-w-[40px]",
13061
- isBlocked && !loading && "cursor-not-allowed",
13108
+ !searchable && "sr-only",
13109
+ readOnly && !disabled && !loading && "cursor-default",
13110
+ disabled && !loading && "cursor-not-allowed",
13062
13111
  loading && "!cursor-progress",
13063
13112
  inputClassName
13064
13113
  )
@@ -13205,7 +13254,9 @@ function useSelectState(params) {
13205
13254
  onKeyDown,
13206
13255
  onFocus,
13207
13256
  onBlur,
13208
- isSearchInDropdown
13257
+ onInputChange,
13258
+ isSearchInDropdown,
13259
+ searchable = true
13209
13260
  } = params;
13210
13261
  const inputRef = React48.useRef(null);
13211
13262
  const mobileSearchInputRef = React48.useRef(null);
@@ -13219,8 +13270,10 @@ function useSelectState(params) {
13219
13270
  () => resolveValueLabel(singleSelected, getValueLabel),
13220
13271
  [singleSelected, getValueLabel]
13221
13272
  );
13222
- const isSearchOnlyInput = isMulti || Boolean(isSearchInDropdown);
13223
- const [inputValue, setInputValue] = React48.useState(isSearchOnlyInput ? "" : valueLabel);
13273
+ const isSearchOnlyInput = searchable && (isMulti || Boolean(isSearchInDropdown));
13274
+ const [inputValue, setInputValue] = React48.useState(
13275
+ searchable && !isSearchOnlyInput ? valueLabel : ""
13276
+ );
13224
13277
  const hasValue = selectedOptions.length > 0;
13225
13278
  const isBlocked = Boolean(disabled) || Boolean(loading) || Boolean(readOnly);
13226
13279
  const hasInvalidState = Boolean(error);
@@ -13235,9 +13288,10 @@ function useSelectState(params) {
13235
13288
  const ids = useSelectIds({ name, hasValue, error, hideErrorMessage });
13236
13289
  const { listboxId, getOptionId: getOptionId2 } = ids;
13237
13290
  React48.useEffect(() => {
13291
+ if (!searchable) return;
13238
13292
  if (isSearchOnlyInput) return;
13239
13293
  if (!isFocused) setInputValue(valueLabel);
13240
- }, [valueLabel, isFocused, isSearchOnlyInput]);
13294
+ }, [valueLabel, isFocused, isSearchOnlyInput, searchable]);
13241
13295
  React48.useEffect(() => {
13242
13296
  if (!isSearchOnlyInput) return;
13243
13297
  if (!isOpen) {
@@ -13246,7 +13300,7 @@ function useSelectState(params) {
13246
13300
  }
13247
13301
  }, [isOpen, isSearchOnlyInput]);
13248
13302
  const trimmedInput = inputValue.trim();
13249
- const isFiltering = isSearchOnlyInput ? trimmedInput.length > 0 : trimmedInput.length > 0 && trimmedInput.toLowerCase() !== valueLabel.toLowerCase();
13303
+ const isFiltering = searchable && (isSearchOnlyInput ? trimmedInput.length > 0 : trimmedInput.length > 0 && trimmedInput.toLowerCase() !== valueLabel.toLowerCase());
13250
13304
  const filteredOptions = React48.useMemo(() => {
13251
13305
  if (!isFiltering) return options;
13252
13306
  return options.filter((option) => filterOption(option, trimmedInput));
@@ -13277,9 +13331,9 @@ function useSelectState(params) {
13277
13331
  }, [isOpen, filteredOptions, isOptionDisabled]);
13278
13332
  React48.useEffect(() => {
13279
13333
  if (!isOpen || highlightedIndex < 0) return;
13280
- optionRefs.current[highlightedIndex]?.scrollIntoView({ block: "nearest" });
13334
+ optionRefs.current[highlightedIndex]?.scrollIntoView?.({ block: "nearest" });
13281
13335
  }, [highlightedIndex, isOpen]);
13282
- const inMenuSearchVisible = isMobile3 || Boolean(isSearchInDropdown);
13336
+ const inMenuSearchVisible = searchable && (isMobile3 || Boolean(isSearchInDropdown));
13283
13337
  React48.useEffect(() => {
13284
13338
  if (!isOpen || !inMenuSearchVisible) return;
13285
13339
  const frame = window.requestAnimationFrame(
@@ -13307,7 +13361,9 @@ function useSelectState(params) {
13307
13361
  return;
13308
13362
  }
13309
13363
  onSelectionChange([option], { action: "select" });
13310
- setInputValue(isSearchInDropdown ? "" : resolveValueLabel(option, getValueLabel));
13364
+ setInputValue(
13365
+ searchable && !isSearchInDropdown ? resolveValueLabel(option, getValueLabel) : ""
13366
+ );
13311
13367
  setIsOpen(false);
13312
13368
  setIsFocused(false);
13313
13369
  inputRef.current?.blur();
@@ -13321,7 +13377,8 @@ function useSelectState(params) {
13321
13377
  closeMenuOnSelect,
13322
13378
  setIsOpen,
13323
13379
  getValueLabel,
13324
- isSearchInDropdown
13380
+ isSearchInDropdown,
13381
+ searchable
13325
13382
  ]
13326
13383
  );
13327
13384
  const removeOption = React48.useCallback(
@@ -13356,7 +13413,9 @@ function useSelectState(params) {
13356
13413
  return;
13357
13414
  }
13358
13415
  onSelectionChange([newOption], { action: "create" });
13359
- setInputValue(isSearchInDropdown ? "" : resolveValueLabel(newOption, getValueLabel));
13416
+ setInputValue(
13417
+ searchable && !isSearchInDropdown ? resolveValueLabel(newOption, getValueLabel) : ""
13418
+ );
13360
13419
  setIsOpen(false);
13361
13420
  setIsFocused(false);
13362
13421
  inputRef.current?.blur();
@@ -13370,14 +13429,18 @@ function useSelectState(params) {
13370
13429
  closeMenuOnSelect,
13371
13430
  setIsOpen,
13372
13431
  getValueLabel,
13373
- isSearchInDropdown
13432
+ isSearchInDropdown,
13433
+ searchable
13374
13434
  ]);
13375
13435
  const handleInputChange = React48.useCallback(
13376
13436
  (event) => {
13377
- setInputValue(event.target.value);
13437
+ if (!searchable) return;
13438
+ const nextValue = event.target.value;
13439
+ setInputValue(nextValue);
13440
+ onInputChange?.(nextValue);
13378
13441
  if (!isOpen) setIsOpen(true);
13379
13442
  },
13380
- [isOpen, setIsOpen]
13443
+ [isOpen, onInputChange, searchable, setIsOpen]
13381
13444
  );
13382
13445
  const handleInputFocus = React48.useCallback(
13383
13446
  (event) => {
@@ -13385,11 +13448,11 @@ function useSelectState(params) {
13385
13448
  onFocus?.(event);
13386
13449
  setIsFocused(true);
13387
13450
  if (openMenuOnFocus) setIsOpen(true);
13388
- if (!isMulti) {
13451
+ if (searchable && !isMulti) {
13389
13452
  requestAnimationFrame(() => inputRef.current?.select());
13390
13453
  }
13391
13454
  },
13392
- [isBlocked, onFocus, openMenuOnFocus, setIsOpen, isMulti]
13455
+ [isBlocked, onFocus, openMenuOnFocus, setIsOpen, searchable, isMulti]
13393
13456
  );
13394
13457
  const handleContainerClick = React48.useCallback(() => {
13395
13458
  if (isBlocked) return;
@@ -13400,10 +13463,10 @@ function useSelectState(params) {
13400
13463
  (event) => {
13401
13464
  if (containerRef.current?.contains(event.relatedTarget)) return;
13402
13465
  setIsFocused(false);
13403
- if (!isSearchOnlyInput) setInputValue(valueLabel);
13466
+ if (searchable && !isSearchOnlyInput) setInputValue(valueLabel);
13404
13467
  onBlur?.(event);
13405
13468
  },
13406
- [containerRef, isSearchOnlyInput, valueLabel, onBlur]
13469
+ [containerRef, isSearchOnlyInput, searchable, valueLabel, onBlur]
13407
13470
  );
13408
13471
  const handleInputKeyDown = React48.useCallback(
13409
13472
  (event) => {
@@ -13457,7 +13520,7 @@ function useSelectState(params) {
13457
13520
  }
13458
13521
  if (event.key === "Escape") {
13459
13522
  event.preventDefault();
13460
- if (!isSearchOnlyInput) setInputValue(valueLabel);
13523
+ if (searchable && !isSearchOnlyInput) setInputValue(valueLabel);
13461
13524
  setIsOpen(false);
13462
13525
  inputRef.current?.blur();
13463
13526
  }
@@ -13477,7 +13540,8 @@ function useSelectState(params) {
13477
13540
  selectOption,
13478
13541
  canCreateNewOption,
13479
13542
  createOption,
13480
- valueLabel
13543
+ valueLabel,
13544
+ searchable
13481
13545
  ]
13482
13546
  );
13483
13547
  const isEmpty = !hasValue && !inputValue;
@@ -13577,10 +13641,12 @@ function DefaultControl(props) {
13577
13641
  labelId,
13578
13642
  valueId,
13579
13643
  describedErrorId,
13644
+ accessibleLabel,
13580
13645
  getOptionId: getOptionId2,
13581
13646
  inputRef,
13582
13647
  inputValue,
13583
13648
  placeholder,
13649
+ showPlaceholderWhenIdle,
13584
13650
  isMulti,
13585
13651
  isOpen,
13586
13652
  isFocused,
@@ -13604,6 +13670,7 @@ function DefaultControl(props) {
13604
13670
  hideIndicator,
13605
13671
  autoFocus,
13606
13672
  leftIcon,
13673
+ searchable,
13607
13674
  components
13608
13675
  } = props;
13609
13676
  const Chip = components.MultiValueChip ?? DefaultMultiValueChip;
@@ -13617,6 +13684,7 @@ function DefaultControl(props) {
13617
13684
  labelId,
13618
13685
  valueId,
13619
13686
  describedErrorId,
13687
+ accessibleLabel,
13620
13688
  isOpen,
13621
13689
  isFocused,
13622
13690
  isBlocked,
@@ -13630,6 +13698,7 @@ function DefaultControl(props) {
13630
13698
  inputRef,
13631
13699
  inputValue,
13632
13700
  placeholder: placeholderText,
13701
+ showPlaceholderWhenIdle,
13633
13702
  highlightedIndex,
13634
13703
  getOptionId: getOptionId2,
13635
13704
  onInputChange,
@@ -13642,6 +13711,7 @@ function DefaultControl(props) {
13642
13711
  hideIndicator,
13643
13712
  autoFocus,
13644
13713
  leftIcon,
13714
+ searchable,
13645
13715
  leadingContent: isMulti ? selectedOptions.map((option) => /* @__PURE__ */ jsx152(
13646
13716
  Chip,
13647
13717
  {
@@ -13656,7 +13726,8 @@ function DefaultControl(props) {
13656
13726
  }
13657
13727
 
13658
13728
  // src/dashboard/_select-internals/slots/StaticControl.tsx
13659
- import { jsx as jsx153 } from "react/jsx-runtime";
13729
+ import { SquareX as SquareX3 } from "lucide-react";
13730
+ import { jsx as jsx153, jsxs as jsxs99 } from "react/jsx-runtime";
13660
13731
  function StaticControl(props) {
13661
13732
  const {
13662
13733
  triggerId,
@@ -13664,6 +13735,7 @@ function StaticControl(props) {
13664
13735
  labelId,
13665
13736
  valueId,
13666
13737
  describedErrorId,
13738
+ accessibleLabel,
13667
13739
  isOpen,
13668
13740
  isBlocked,
13669
13741
  hasValue,
@@ -13672,30 +13744,53 @@ function StaticControl(props) {
13672
13744
  disabled,
13673
13745
  valueLabel,
13674
13746
  placeholder,
13747
+ showPlaceholderWhenIdle,
13675
13748
  onContainerClick,
13749
+ onClear,
13750
+ clearable,
13751
+ clearLabel,
13752
+ hideIndicator,
13753
+ readOnly,
13676
13754
  leftIcon
13677
13755
  } = props;
13678
- return /* @__PURE__ */ jsx153(
13679
- SelectTrigger,
13680
- {
13681
- triggerId,
13682
- listboxId,
13683
- labelId,
13684
- valueId,
13685
- describedErrorId,
13686
- hasValue,
13687
- isOpen,
13688
- isBlocked,
13689
- disabled,
13690
- loading,
13691
- invalid,
13692
- placeholder,
13693
- valueLabel,
13694
- leftIcon,
13695
- onClick: onContainerClick,
13696
- onKeyDown: () => void 0
13697
- }
13698
- );
13756
+ const showClear = Boolean(clearable) && hasValue && !readOnly && !disabled;
13757
+ return /* @__PURE__ */ jsxs99("div", { className: "relative", children: [
13758
+ /* @__PURE__ */ jsx153(
13759
+ SelectTrigger,
13760
+ {
13761
+ triggerId,
13762
+ listboxId,
13763
+ labelId,
13764
+ valueId,
13765
+ describedErrorId,
13766
+ accessibleLabel,
13767
+ hasValue,
13768
+ isOpen,
13769
+ isBlocked,
13770
+ disabled,
13771
+ readOnly,
13772
+ loading,
13773
+ invalid,
13774
+ placeholder,
13775
+ showPlaceholderWhenIdle,
13776
+ valueLabel,
13777
+ leftIcon,
13778
+ hideIndicator,
13779
+ onClick: onContainerClick,
13780
+ onKeyDown: () => void 0
13781
+ }
13782
+ ),
13783
+ showClear && /* @__PURE__ */ jsx153(
13784
+ "button",
13785
+ {
13786
+ type: "button",
13787
+ onClick: onClear,
13788
+ 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]",
13789
+ "aria-label": clearLabel,
13790
+ children: /* @__PURE__ */ jsx153(SquareX3, { size: 15, fill: "#9696b9", color: "#f8f8f8", strokeWidth: 1.8 })
13791
+ }
13792
+ )
13793
+ ] });
13699
13794
  }
13700
13795
 
13701
13796
  // src/dashboard/_select-internals/slots/DefaultMenuList.tsx
@@ -13803,6 +13898,10 @@ function mergeComponents(overrides) {
13803
13898
  };
13804
13899
  }
13805
13900
 
13901
+ // src/dashboard/select/Select.tsx
13902
+ import * as React49 from "react";
13903
+ import { useTranslation as useTranslation33 } from "react-i18next";
13904
+
13806
13905
  // src/dashboard/select/useSetCorrectOptionIfThereIsOnlyValue.ts
13807
13906
  import { useEffect as useEffect39 } from "react";
13808
13907
  function useSetCorrectOptionIfThereIsOnlyValue({ value, options, onChange, enabled = true }) {
@@ -13819,7 +13918,7 @@ function useSetCorrectOptionIfThereIsOnlyValue({ value, options, onChange, enabl
13819
13918
  }
13820
13919
 
13821
13920
  // src/dashboard/select/Select.tsx
13822
- import { jsx as jsx156, jsxs as jsxs99 } from "react/jsx-runtime";
13921
+ import { jsx as jsx156, jsxs as jsxs100 } from "react/jsx-runtime";
13823
13922
  function SelectInternal(props, ref) {
13824
13923
  const {
13825
13924
  options = [],
@@ -13841,6 +13940,7 @@ function SelectInternal(props, ref) {
13841
13940
  menuClassName,
13842
13941
  dropdownClassName,
13843
13942
  drawerClassName,
13943
+ fieldsetClassName,
13844
13944
  name,
13845
13945
  width,
13846
13946
  noOptionsMessage,
@@ -13861,6 +13961,7 @@ function SelectInternal(props, ref) {
13861
13961
  openMenuOnFocus,
13862
13962
  components: userComponents,
13863
13963
  onInputChange,
13964
+ searchable = true,
13864
13965
  searchPosition = "trigger",
13865
13966
  menuHeader,
13866
13967
  onMenuScrollToBottom,
@@ -13868,8 +13969,8 @@ function SelectInternal(props, ref) {
13868
13969
  formatGroupLabel,
13869
13970
  onReset
13870
13971
  } = props;
13871
- const isSearchInDropdown = searchPosition === "dropdown";
13872
13972
  const isMulti = props.isMulti === true;
13973
+ const isSearchInDropdown = searchable && searchPosition === "dropdown";
13873
13974
  const clearable = !isMulti ? props.clearable ?? true : true;
13874
13975
  const closeMenuOnSelect = isMulti ? props.closeMenuOnSelect ?? false : void 0;
13875
13976
  const { t } = useTranslation33();
@@ -13928,25 +14029,24 @@ function SelectInternal(props, ref) {
13928
14029
  onKeyDown,
13929
14030
  onFocus,
13930
14031
  onBlur,
13931
- isSearchInDropdown
14032
+ onInputChange,
14033
+ isSearchInDropdown,
14034
+ searchable
13932
14035
  });
13933
14036
  const components = React49.useMemo(() => {
13934
14037
  const merged = mergeComponents(userComponents);
13935
- if (isSearchInDropdown && !userComponents?.Control) {
14038
+ if ((isSearchInDropdown || !searchable && !isMulti) && !userComponents?.Control) {
13936
14039
  return { ...merged, Control: StaticControl };
13937
14040
  }
13938
14041
  return merged;
13939
- }, [userComponents, isSearchInDropdown]);
14042
+ }, [userComponents, isSearchInDropdown, searchable, isMulti]);
13940
14043
  React49.useImperativeHandle(
13941
14044
  ref,
13942
14045
  () => state.containerRef.current
13943
14046
  );
13944
- const onInputChangeRef = React49.useRef(onInputChange);
13945
- onInputChangeRef.current = onInputChange;
13946
- React49.useEffect(() => {
13947
- onInputChangeRef.current?.(state.inputValue);
13948
- }, [state.inputValue]);
13949
- const resolvedLabel = label ?? placeholder;
14047
+ const hasLabel = Boolean(label);
14048
+ const resolvedTitle = label ?? placeholder;
14049
+ const accessibleLabel = !hasLabel && typeof placeholder === "string" ? placeholder : void 0;
13950
14050
  const hasInvalidState = state.hasInvalidState || Boolean(invalid);
13951
14051
  const hiddenValue = isMulti ? selectedOptions.map((item) => String(item.value)).join(",") : selectedOptions[0] ? String(selectedOptions[0].value) : "";
13952
14052
  const handleClear = (event) => {
@@ -13954,7 +14054,7 @@ function SelectInternal(props, ref) {
13954
14054
  onReset?.();
13955
14055
  };
13956
14056
  const { Control, MenuList, CreateOption } = components;
13957
- return /* @__PURE__ */ jsxs99(
14057
+ return /* @__PURE__ */ jsxs100(
13958
14058
  SelectFieldShell,
13959
14059
  {
13960
14060
  containerRef: state.containerRef,
@@ -13981,10 +14081,12 @@ function SelectInternal(props, ref) {
13981
14081
  labelId: state.ids.labelId,
13982
14082
  valueId: state.ids.valueId,
13983
14083
  describedErrorId: state.ids.describedErrorId,
14084
+ accessibleLabel,
13984
14085
  getOptionId: state.ids.getOptionId,
13985
14086
  inputRef: state.inputRef,
13986
14087
  inputValue: state.inputValue,
13987
14088
  placeholder,
14089
+ showPlaceholderWhenIdle: !hasLabel,
13988
14090
  isMulti,
13989
14091
  isOpen: state.isOpen,
13990
14092
  isFocused: state.isFocused,
@@ -14009,6 +14111,7 @@ function SelectInternal(props, ref) {
14009
14111
  hideIndicator,
14010
14112
  autoFocus,
14011
14113
  leftIcon,
14114
+ searchable,
14012
14115
  components
14013
14116
  }
14014
14117
  ),
@@ -14024,14 +14127,15 @@ function SelectInternal(props, ref) {
14024
14127
  readOnly,
14025
14128
  htmlFor: state.ids.triggerId,
14026
14129
  labelId: state.ids.labelId,
14027
- legend: resolvedLabel,
14028
- label: resolvedLabel,
14130
+ legend: label,
14131
+ label,
14029
14132
  tooltip,
14030
14133
  onClick: state.handleContainerClick,
14031
- labelClassName: leftIcon ? "pl-[28px]" : void 0
14134
+ labelClassName: leftIcon ? "pl-[28px]" : void 0,
14135
+ className: fieldsetClassName
14032
14136
  }
14033
14137
  ),
14034
- /* @__PURE__ */ jsxs99(
14138
+ /* @__PURE__ */ jsxs100(
14035
14139
  SelectMenuPanel,
14036
14140
  {
14037
14141
  isOpen: state.isOpen,
@@ -14040,7 +14144,7 @@ function SelectInternal(props, ref) {
14040
14144
  state.closeMenu();
14041
14145
  state.setIsFocused(false);
14042
14146
  },
14043
- title: resolvedLabel,
14147
+ title: resolvedTitle,
14044
14148
  className: dropdownClassName,
14045
14149
  drawerClassName,
14046
14150
  children: [
@@ -14146,7 +14250,7 @@ function formatPhoneCodeOptionLabel(option) {
14146
14250
  }
14147
14251
 
14148
14252
  // src/dashboard/phone-input/PhoneInput.tsx
14149
- import { jsx as jsx157, jsxs as jsxs100 } from "react/jsx-runtime";
14253
+ import { jsx as jsx157, jsxs as jsxs101 } from "react/jsx-runtime";
14150
14254
  var EMPTY_VALUE = { code: "", number: "" };
14151
14255
  var PhoneInput = React50.forwardRef(
14152
14256
  function PhoneInput2({
@@ -14180,9 +14284,6 @@ var PhoneInput = React50.forwardRef(
14180
14284
  const safeValue = value ?? EMPTY_VALUE;
14181
14285
  const effectiveCode = safeValue.code || defaultCode || "";
14182
14286
  const resolvedLabel = label ?? "";
14183
- const resolvedPrefixLabel = prefixLabel ?? t("prefix");
14184
- const isBlocked = Boolean(disabled) || Boolean(loading);
14185
- const isCodeBlocked = isBlocked || Boolean(readOnly) || Boolean(codeReadOnly);
14186
14287
  const hasExternalError = Boolean(error);
14187
14288
  const isPrefixRequired = autoDetectCode && Boolean(safeValue.number) && !effectiveCode;
14188
14289
  const hasInvalidState = hasExternalError || Boolean(invalid) || isPrefixRequired;
@@ -14227,7 +14328,7 @@ var PhoneInput = React50.forwardRef(
14227
14328
  }
14228
14329
  emitChange({ code: effectiveCode, number: cleanedNumber });
14229
14330
  };
14230
- return /* @__PURE__ */ jsxs100(
14331
+ return /* @__PURE__ */ jsxs101(
14231
14332
  "div",
14232
14333
  {
14233
14334
  className: cn(
@@ -14257,20 +14358,24 @@ var PhoneInput = React50.forwardRef(
14257
14358
  }
14258
14359
  ),
14259
14360
  topLabel && /* @__PURE__ */ jsx157("label", { className: "mb-2 block text-[14px] font-medium text-[var(--chekin-color-brand-navy)]", children: topLabel }),
14260
- /* @__PURE__ */ jsxs100("div", { className: "grid grid-cols-[96px_minmax(0,1fr)] gap-2", children: [
14361
+ /* @__PURE__ */ jsxs101("div", { className: "grid grid-cols-[96px_minmax(0,1fr)] gap-2", children: [
14261
14362
  /* @__PURE__ */ jsx157(
14262
14363
  Select,
14263
14364
  {
14264
14365
  options: codeOptions,
14265
14366
  value: selectedCodeOption,
14266
14367
  onChange: handleCodeChange,
14267
- label: resolvedPrefixLabel,
14368
+ label: prefixLabel,
14268
14369
  placeholder: codePlaceholder,
14269
- disabled: isCodeBlocked,
14370
+ disabled,
14371
+ readOnly: Boolean(readOnly) || Boolean(codeReadOnly),
14270
14372
  loading,
14271
14373
  invalid: hasInvalidState,
14272
14374
  hideErrorMessage: true,
14273
14375
  searchPosition: searchable ? "dropdown" : "trigger",
14376
+ searchable,
14377
+ filterOption: countriesFilter,
14378
+ clearable: false,
14274
14379
  getValueLabel: (option) => option.value,
14275
14380
  className: "!max-w-none",
14276
14381
  dropdownClassName: "right-auto w-[280px]"
@@ -14296,7 +14401,9 @@ var PhoneInput = React50.forwardRef(
14296
14401
  onFocus,
14297
14402
  onBlur,
14298
14403
  renderErrorMessage: false,
14299
- wrapperClassName: "!max-w-none"
14404
+ wrapperClassName: "!max-w-none",
14405
+ contentClassName: readOnly ? "!cursor-default" : void 0,
14406
+ inputClassName: readOnly ? "!cursor-default" : void 0
14300
14407
  }
14301
14408
  )
14302
14409
  ] }),
@@ -14361,7 +14468,7 @@ function useInfiniteScrollContext() {
14361
14468
  }
14362
14469
 
14363
14470
  // src/dashboard/infinite-scroll-select/VirtualMenuList.tsx
14364
- import { jsx as jsx161, jsxs as jsxs101 } from "react/jsx-runtime";
14471
+ import { jsx as jsx161, jsxs as jsxs102 } from "react/jsx-runtime";
14365
14472
  function VirtualMenuList(props) {
14366
14473
  const {
14367
14474
  id,
@@ -14451,7 +14558,7 @@ function VirtualMenuList(props) {
14451
14558
  [onMenuScrollToBottom]
14452
14559
  );
14453
14560
  if (options.length === 0) {
14454
- return /* @__PURE__ */ jsx161("div", { className: "min-h-[75px] px-4 pb-[19px] pt-[17px]", children: isLoadingMore ? /* @__PURE__ */ jsxs101(
14561
+ return /* @__PURE__ */ jsx161("div", { className: "min-h-[75px] px-4 pb-[19px] pt-[17px]", children: isLoadingMore ? /* @__PURE__ */ jsxs102(
14455
14562
  "div",
14456
14563
  {
14457
14564
  role: "status",
@@ -14508,7 +14615,7 @@ function VirtualMenuList(props) {
14508
14615
  height: `${virtualItem.size}px`,
14509
14616
  transform: `translateY(${virtualItem.start}px)`
14510
14617
  },
14511
- children: isLoaderRow ? /* @__PURE__ */ jsxs101(
14618
+ children: isLoaderRow ? /* @__PURE__ */ jsxs102(
14512
14619
  "div",
14513
14620
  {
14514
14621
  role: "status",
@@ -14575,13 +14682,14 @@ function InfiniteScrollSelectInternal(props, ref) {
14575
14682
  listHeight = DEFAULT_LIST_HEIGHT,
14576
14683
  overscan = DEFAULT_OVERSCAN,
14577
14684
  loadMoreThreshold = DEFAULT_LOAD_MORE_THRESHOLD,
14578
- getFullSearchOption,
14685
+ getFullSearchOption: getFullSearchOptionProp,
14579
14686
  filterOption: userFilterOption,
14580
14687
  components: userComponents,
14581
14688
  onInputChange: userOnInputChange,
14582
14689
  isMulti = false,
14583
14690
  ...rest
14584
14691
  } = props;
14692
+ const getFullSearchOption = isMulti ? void 0 : getFullSearchOptionProp;
14585
14693
  const isPaginated = canLoadMore !== void 0 || isLoadingMore !== void 0 || loadMoreItems !== void 0 || onSearchChange !== void 0 || getFullSearchOption !== void 0;
14586
14694
  const filterOption = userFilterOption ?? (isPaginated ? passthroughFilter : defaultFilterOption);
14587
14695
  const [inputValue, setInputValue] = React56.useState("");
@@ -14679,7 +14787,7 @@ import * as React58 from "react";
14679
14787
  import { useTranslation as useTranslation37 } from "react-i18next";
14680
14788
 
14681
14789
  // src/dashboard/select-checkboxes/SelectCheckboxOption.tsx
14682
- import { jsx as jsx164, jsxs as jsxs102 } from "react/jsx-runtime";
14790
+ import { jsx as jsx164, jsxs as jsxs103 } from "react/jsx-runtime";
14683
14791
  function SelectCheckboxOption(props) {
14684
14792
  const {
14685
14793
  option,
@@ -14692,7 +14800,7 @@ function SelectCheckboxOption(props) {
14692
14800
  onHover,
14693
14801
  innerRef
14694
14802
  } = props;
14695
- return /* @__PURE__ */ jsxs102(
14803
+ return /* @__PURE__ */ jsxs103(
14696
14804
  "button",
14697
14805
  {
14698
14806
  id,
@@ -14723,7 +14831,7 @@ function SelectCheckboxOption(props) {
14723
14831
  className: "pointer-events-none shrink-0"
14724
14832
  }
14725
14833
  ),
14726
- /* @__PURE__ */ jsxs102("span", { className: "flex min-w-0 flex-1 items-center justify-between gap-2", children: [
14834
+ /* @__PURE__ */ jsxs103("span", { className: "flex min-w-0 flex-1 items-center justify-between gap-2", children: [
14727
14835
  /* @__PURE__ */ jsx164("span", { className: "block break-words", children: option.label }),
14728
14836
  option.description && /* @__PURE__ */ jsx164("span", { className: "shrink-0 text-[12px] font-medium italic text-[var(--chekin-color-gray-1)]", children: option.description })
14729
14837
  ] })
@@ -14735,7 +14843,7 @@ function SelectCheckboxOption(props) {
14735
14843
  // src/dashboard/select-checkboxes/CountTrigger.tsx
14736
14844
  import { ChevronDown as ChevronDown3 } from "lucide-react";
14737
14845
  import { useTranslation as useTranslation36 } from "react-i18next";
14738
- import { jsx as jsx165, jsxs as jsxs103 } from "react/jsx-runtime";
14846
+ import { jsx as jsx165, jsxs as jsxs104 } from "react/jsx-runtime";
14739
14847
  function createCountTrigger(opts) {
14740
14848
  const { valueText, totalCount } = opts;
14741
14849
  function CountTrigger(props) {
@@ -14762,7 +14870,7 @@ function createCountTrigger(opts) {
14762
14870
  const computedText = typeof valueText === "function" ? valueText(count, total) : valueText ?? (count > 0 ? t("n_selected", { count, defaultValue: `${count} selected` }) : "");
14763
14871
  const display = hasValue ? computedText : isOpen ? placeholder ?? null : null;
14764
14872
  const isEmpty = !hasValue;
14765
- return /* @__PURE__ */ jsxs103(
14873
+ return /* @__PURE__ */ jsxs104(
14766
14874
  "button",
14767
14875
  {
14768
14876
  id: triggerId,
@@ -14804,9 +14912,9 @@ function createCountTrigger(opts) {
14804
14912
  }
14805
14913
 
14806
14914
  // src/dashboard/select-checkboxes/SelectAllRow.tsx
14807
- import { jsx as jsx166, jsxs as jsxs104 } from "react/jsx-runtime";
14915
+ import { jsx as jsx166, jsxs as jsxs105 } from "react/jsx-runtime";
14808
14916
  function SelectAllRow({ label, checked, disabled, onToggle }) {
14809
- return /* @__PURE__ */ jsxs104(
14917
+ return /* @__PURE__ */ jsxs105(
14810
14918
  "button",
14811
14919
  {
14812
14920
  type: "button",
@@ -14836,7 +14944,7 @@ function SelectAllRow({ label, checked, disabled, onToggle }) {
14836
14944
  // src/dashboard/select-checkboxes/SelectCheckboxes.tsx
14837
14945
  import { Fragment as Fragment16, jsx as jsx167 } from "react/jsx-runtime";
14838
14946
  function hasPaginationProps(props) {
14839
- return props.canLoadMore !== void 0 || props.isLoadingMore !== void 0 || props.loadMoreItems !== void 0 || props.onSearchChange !== void 0 || props.getFullSearchOption !== void 0;
14947
+ return props.canLoadMore !== void 0 || props.isLoadingMore !== void 0 || props.loadMoreItems !== void 0 || props.onSearchChange !== void 0;
14840
14948
  }
14841
14949
  function makeTriggerSlot(render) {
14842
14950
  function CustomTrigger(props) {
@@ -14956,6 +15064,7 @@ function SelectCheckboxesInternal(props, ref) {
14956
15064
  components,
14957
15065
  closeMenuOnSelect,
14958
15066
  searchPosition: searchable ? "dropdown" : "trigger",
15067
+ searchable,
14959
15068
  menuHeader,
14960
15069
  onInputChange: handleInputChange,
14961
15070
  isMulti: true
@@ -15057,7 +15166,7 @@ function useTextareaValueState({
15057
15166
  }
15058
15167
 
15059
15168
  // src/dashboard/textarea/Textarea.tsx
15060
- import { jsx as jsx168, jsxs as jsxs105 } from "react/jsx-runtime";
15169
+ import { jsx as jsx168, jsxs as jsxs106 } from "react/jsx-runtime";
15061
15170
  var LINE_HEIGHT = 20;
15062
15171
  var VERTICAL_PADDING = 32;
15063
15172
  var Textarea = React60.forwardRef(function Textarea2({
@@ -15126,7 +15235,7 @@ var Textarea = React60.forwardRef(function Textarea2({
15126
15235
  onBlur?.(event);
15127
15236
  syncValueState();
15128
15237
  };
15129
- return /* @__PURE__ */ jsxs105(
15238
+ return /* @__PURE__ */ jsxs106(
15130
15239
  "div",
15131
15240
  {
15132
15241
  className: cn(
@@ -15136,7 +15245,7 @@ var Textarea = React60.forwardRef(function Textarea2({
15136
15245
  className
15137
15246
  ),
15138
15247
  children: [
15139
- label && /* @__PURE__ */ jsxs105(
15248
+ label && /* @__PURE__ */ jsxs106(
15140
15249
  "label",
15141
15250
  {
15142
15251
  htmlFor: textareaId,
@@ -15621,7 +15730,7 @@ function useDatePickerWheel({
15621
15730
  }
15622
15731
 
15623
15732
  // src/airbnb-fields/datepicker/DatePickerWheelColumn.tsx
15624
- import { jsx as jsx169, jsxs as jsxs106 } from "react/jsx-runtime";
15733
+ import { jsx as jsx169, jsxs as jsxs107 } from "react/jsx-runtime";
15625
15734
  var spacerHeight = DATE_PICKER_OPTION_HEIGHT * DATE_PICKER_WHEEL_BUFFER_OPTIONS;
15626
15735
  function AirbnbDatePickerWheelColumn({
15627
15736
  id,
@@ -15635,7 +15744,7 @@ function AirbnbDatePickerWheelColumn({
15635
15744
  onOptionSelect,
15636
15745
  column
15637
15746
  }) {
15638
- return /* @__PURE__ */ jsx169("div", { className: "relative z-10 min-w-0", children: /* @__PURE__ */ jsxs106(
15747
+ return /* @__PURE__ */ jsx169("div", { className: "relative z-10 min-w-0", children: /* @__PURE__ */ jsxs107(
15639
15748
  "div",
15640
15749
  {
15641
15750
  id,
@@ -15682,7 +15791,7 @@ function AirbnbDatePickerWheelColumn({
15682
15791
  }
15683
15792
 
15684
15793
  // src/airbnb-fields/datepicker/DatePickerContent.tsx
15685
- import { jsx as jsx170, jsxs as jsxs107 } from "react/jsx-runtime";
15794
+ import { jsx as jsx170, jsxs as jsxs108 } from "react/jsx-runtime";
15686
15795
  function AirbnbDatePickerBody({
15687
15796
  baseId,
15688
15797
  label,
@@ -15704,8 +15813,8 @@ function AirbnbDatePickerBody({
15704
15813
  onOptionSelect,
15705
15814
  onDone
15706
15815
  }) {
15707
- return /* @__PURE__ */ jsxs107("div", { className: "px-6 pb-4 pt-1 bg-white", children: [
15708
- /* @__PURE__ */ jsxs107("div", { className: "relative overflow-hidden rounded-[24px]", children: [
15816
+ return /* @__PURE__ */ jsxs108("div", { className: "px-6 pb-4 pt-1 bg-white", children: [
15817
+ /* @__PURE__ */ jsxs108("div", { className: "relative overflow-hidden rounded-[24px]", children: [
15709
15818
  /* @__PURE__ */ jsx170("div", { className: "pointer-events-none absolute inset-x-0 top-0 z-20 h-16 bg-gradient-to-b from-white via-white/80 to-transparent" }),
15710
15819
  /* @__PURE__ */ jsx170("div", { className: "pointer-events-none absolute inset-x-0 bottom-0 z-20 h-16 bg-gradient-to-t from-white via-white/80 to-transparent" }),
15711
15820
  /* @__PURE__ */ jsx170(
@@ -15715,7 +15824,7 @@ function AirbnbDatePickerBody({
15715
15824
  className: "pointer-events-none absolute inset-x-0 top-1/2 z-0 h-8 -translate-y-1/2 rounded-[12px] bg-black/[0.04]"
15716
15825
  }
15717
15826
  ),
15718
- /* @__PURE__ */ jsxs107("div", { className: "relative grid grid-cols-[1.35fr_0.7fr_1fr] gap-1", children: [
15827
+ /* @__PURE__ */ jsxs108("div", { className: "relative grid grid-cols-[1.35fr_0.7fr_1fr] gap-1", children: [
15719
15828
  /* @__PURE__ */ jsx170(
15720
15829
  AirbnbDatePickerWheelColumn,
15721
15830
  {
@@ -15816,7 +15925,7 @@ function AirbnbDatePickerContent({
15816
15925
  }
15817
15926
  );
15818
15927
  if (isMobile3) {
15819
- return /* @__PURE__ */ jsx170(Drawer, { open, onOpenChange, children: /* @__PURE__ */ jsxs107(
15928
+ return /* @__PURE__ */ jsx170(Drawer, { open, onOpenChange, children: /* @__PURE__ */ jsxs108(
15820
15929
  DrawerContent,
15821
15930
  {
15822
15931
  onClose: () => onOpenChange(false),
@@ -15829,7 +15938,7 @@ function AirbnbDatePickerContent({
15829
15938
  }
15830
15939
  ) });
15831
15940
  }
15832
- return /* @__PURE__ */ jsx170(Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxs107(
15941
+ return /* @__PURE__ */ jsx170(Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxs108(
15833
15942
  DialogContent,
15834
15943
  {
15835
15944
  className: "max-w-[520px] rounded-[28px] border-0 p-0 shadow-xl",
@@ -15844,7 +15953,7 @@ function AirbnbDatePickerContent({
15844
15953
  }
15845
15954
 
15846
15955
  // src/dashboard/datepicker/Datepicker.tsx
15847
- import { jsx as jsx171, jsxs as jsxs108 } from "react/jsx-runtime";
15956
+ import { jsx as jsx171, jsxs as jsxs109 } from "react/jsx-runtime";
15848
15957
  var MONTHS_IN_YEAR2 = 12;
15849
15958
  function getMonthLabels2(locale) {
15850
15959
  const formatter = new Intl.DateTimeFormat(locale, { month: "long" });
@@ -16206,9 +16315,9 @@ var Datepicker = React62.forwardRef(
16206
16315
  className
16207
16316
  ),
16208
16317
  style: wrapperWidth ? { width: wrapperWidth } : void 0,
16209
- children: /* @__PURE__ */ jsxs108("div", { className: "relative min-h-[var(--field-min-height,48px)] w-full", children: [
16210
- /* @__PURE__ */ jsxs108("div", { className: "relative w-full", children: [
16211
- isMobile3 ? /* @__PURE__ */ jsxs108(
16318
+ children: /* @__PURE__ */ jsxs109("div", { className: "relative min-h-[var(--field-min-height,48px)] w-full", children: [
16319
+ /* @__PURE__ */ jsxs109("div", { className: "relative w-full", children: [
16320
+ isMobile3 ? /* @__PURE__ */ jsxs109(
16212
16321
  "button",
16213
16322
  {
16214
16323
  ref: mobileTriggerRef,
@@ -16241,7 +16350,7 @@ var Datepicker = React62.forwardRef(
16241
16350
  ) })
16242
16351
  ]
16243
16352
  }
16244
- ) : /* @__PURE__ */ jsxs108(
16353
+ ) : /* @__PURE__ */ jsxs109(
16245
16354
  "div",
16246
16355
  {
16247
16356
  className: cn(
@@ -16277,7 +16386,7 @@ var Datepicker = React62.forwardRef(
16277
16386
  className: subInputClass
16278
16387
  }
16279
16388
  ) }),
16280
- /* @__PURE__ */ jsxs108("div", { className: "relative flex h-full min-w-0 items-center gap-1 px-2 before:absolute before:inset-y-3 before:left-0 before:w-px before:bg-[var(--chekin-color-gray-3)] before:content-[''] after:absolute after:inset-y-3 after:right-0 after:w-px after:bg-[var(--chekin-color-gray-3)] after:content-[''] sm:px-3", children: [
16389
+ /* @__PURE__ */ jsxs109("div", { className: "relative flex h-full min-w-0 items-center gap-1 px-2 before:absolute before:inset-y-3 before:left-0 before:w-px before:bg-[var(--chekin-color-gray-3)] before:content-[''] after:absolute after:inset-y-3 after:right-0 after:w-px after:bg-[var(--chekin-color-gray-3)] after:content-[''] sm:px-3", children: [
16281
16390
  /* @__PURE__ */ jsx171(
16282
16391
  "input",
16283
16392
  {
@@ -16657,8 +16766,8 @@ function resolveRangeSelection({
16657
16766
  }
16658
16767
 
16659
16768
  // src/dashboard/date-range-picker/components/DateRangeInputs.tsx
16660
- import { CalendarDays, SquareX as SquareX3 } from "lucide-react";
16661
- import { jsx as jsx172, jsxs as jsxs109 } from "react/jsx-runtime";
16769
+ import { CalendarDays, SquareX as SquareX4 } from "lucide-react";
16770
+ import { jsx as jsx172, jsxs as jsxs110 } from "react/jsx-runtime";
16662
16771
  var DEFAULT_PLACEHOLDER = "00-00-0000";
16663
16772
  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)]";
16664
16773
  var iconButtonClass = "flex h-5 w-5 items-center justify-center rounded-[3px] border-0 bg-transparent p-0 text-[#9696b9] outline-none hover:shadow-[0_3px_3px_#0f477734] disabled:cursor-not-allowed";
@@ -16700,7 +16809,7 @@ function DateRangeInputs({
16700
16809
  isBlocked && "cursor-not-allowed",
16701
16810
  loading && "cursor-progress"
16702
16811
  );
16703
- return /* @__PURE__ */ jsxs109(
16812
+ return /* @__PURE__ */ jsxs110(
16704
16813
  "div",
16705
16814
  {
16706
16815
  className: cn(
@@ -16768,7 +16877,7 @@ function DateRangeInputs({
16768
16877
  )
16769
16878
  }
16770
16879
  ),
16771
- /* @__PURE__ */ jsxs109("span", { className: "ml-auto flex shrink-0 items-center gap-2 pl-2 text-[var(--chekin-color-gray-2)]", children: [
16880
+ /* @__PURE__ */ jsxs110("span", { className: "ml-auto flex shrink-0 items-center gap-2 pl-2 text-[var(--chekin-color-gray-2)]", children: [
16772
16881
  !readOnly && !hideClearDates && !isEmpty && /* @__PURE__ */ jsx172(
16773
16882
  "button",
16774
16883
  {
@@ -16777,7 +16886,7 @@ function DateRangeInputs({
16777
16886
  onClick: onReset,
16778
16887
  className: iconButtonClass,
16779
16888
  "aria-label": clearLabel,
16780
- children: /* @__PURE__ */ jsx172(SquareX3, { size: 16, fill: "#9696b9", color: "#f8f8f8", strokeWidth: 1.8 })
16889
+ children: /* @__PURE__ */ jsx172(SquareX4, { size: 16, fill: "#9696b9", color: "#f8f8f8", strokeWidth: 1.8 })
16781
16890
  }
16782
16891
  ),
16783
16892
  !readOnly && !hideCalendarIcon && /* @__PURE__ */ jsx172(
@@ -16841,7 +16950,7 @@ function DateRangeCalendar({
16841
16950
  }
16842
16951
 
16843
16952
  // src/dashboard/date-range-picker/components/DateRangePopover.tsx
16844
- import { jsx as jsx174, jsxs as jsxs110 } from "react/jsx-runtime";
16953
+ import { jsx as jsx174, jsxs as jsxs111 } from "react/jsx-runtime";
16845
16954
  function DateRangePopover({
16846
16955
  isOpen,
16847
16956
  isMobile: isMobile3,
@@ -16860,7 +16969,7 @@ function DateRangePopover({
16860
16969
  onOpenChange: (next) => {
16861
16970
  if (!next) onClose();
16862
16971
  },
16863
- children: /* @__PURE__ */ jsxs110(
16972
+ children: /* @__PURE__ */ jsxs111(
16864
16973
  DrawerContent,
16865
16974
  {
16866
16975
  onClose,
@@ -16889,7 +16998,7 @@ function DateRangePopover({
16889
16998
  }
16890
16999
 
16891
17000
  // src/dashboard/date-range-picker/DateRangePicker.tsx
16892
- import { jsx as jsx175, jsxs as jsxs111 } from "react/jsx-runtime";
17001
+ import { jsx as jsx175, jsxs as jsxs112 } from "react/jsx-runtime";
16893
17002
  var DateRangePicker = React66.forwardRef(function DateRangePicker2({
16894
17003
  label,
16895
17004
  value: externalValue,
@@ -17062,8 +17171,8 @@ var DateRangePicker = React66.forwardRef(function DateRangePicker2({
17062
17171
  className
17063
17172
  ),
17064
17173
  style: wrapperWidth ? { width: wrapperWidth } : void 0,
17065
- children: /* @__PURE__ */ jsxs111("div", { className: "relative min-h-[var(--field-min-height,48px)] w-full", children: [
17066
- /* @__PURE__ */ jsxs111("div", { className: "relative w-full", children: [
17174
+ children: /* @__PURE__ */ jsxs112("div", { className: "relative min-h-[var(--field-min-height,48px)] w-full", children: [
17175
+ /* @__PURE__ */ jsxs112("div", { className: "relative w-full", children: [
17067
17176
  /* @__PURE__ */ jsx175(
17068
17177
  DateRangeInputs,
17069
17178
  {
@@ -17344,9 +17453,9 @@ var TimePicker = React68.forwardRef(function TimePicker2({ format: formatName =
17344
17453
 
17345
17454
  // src/dashboard/file-input/FileInput.tsx
17346
17455
  import * as React69 from "react";
17347
- import { Download, Paperclip, SquareX as SquareX4 } from "lucide-react";
17456
+ import { Download, Paperclip, SquareX as SquareX5 } from "lucide-react";
17348
17457
  import { useTranslation as useTranslation42 } from "react-i18next";
17349
- import { jsx as jsx177, jsxs as jsxs112 } from "react/jsx-runtime";
17458
+ import { jsx as jsx177, jsxs as jsxs113 } from "react/jsx-runtime";
17350
17459
  function defaultDownload(url) {
17351
17460
  window.open(url, "_blank", "noopener,noreferrer");
17352
17461
  }
@@ -17404,7 +17513,7 @@ var FileInput = React69.forwardRef(function FileInput2({
17404
17513
  event.stopPropagation();
17405
17514
  if (isUrl) onDownload(value);
17406
17515
  };
17407
- return /* @__PURE__ */ jsxs112(
17516
+ return /* @__PURE__ */ jsxs113(
17408
17517
  "label",
17409
17518
  {
17410
17519
  htmlFor: inputId,
@@ -17434,9 +17543,9 @@ var FileInput = React69.forwardRef(function FileInput2({
17434
17543
  "aria-invalid": isInvalid
17435
17544
  }
17436
17545
  ),
17437
- /* @__PURE__ */ jsxs112("div", { className: "relative w-full", children: [
17438
- /* @__PURE__ */ jsxs112("div", { className: "relative w-full", children: [
17439
- /* @__PURE__ */ jsxs112(
17546
+ /* @__PURE__ */ jsxs113("div", { className: "relative w-full", children: [
17547
+ /* @__PURE__ */ jsxs113("div", { className: "relative w-full", children: [
17548
+ /* @__PURE__ */ jsxs113(
17440
17549
  "div",
17441
17550
  {
17442
17551
  className: cn(
@@ -17444,13 +17553,13 @@ var FileInput = React69.forwardRef(function FileInput2({
17444
17553
  isEmpty && "bg-[var(--empty-field-background)]"
17445
17554
  ),
17446
17555
  children: [
17447
- hasFileChip ? /* @__PURE__ */ jsxs112(
17556
+ hasFileChip ? /* @__PURE__ */ jsxs113(
17448
17557
  "div",
17449
17558
  {
17450
17559
  className: "inline-flex h-6 max-w-[85%] items-center rounded-[4px] border border-[#acacd5] bg-[#f0f0f8] pl-[10px] pr-1",
17451
17560
  onClick: (event) => event.preventDefault(),
17452
17561
  children: [
17453
- isUrl ? /* @__PURE__ */ jsxs112(
17562
+ isUrl ? /* @__PURE__ */ jsxs113(
17454
17563
  "button",
17455
17564
  {
17456
17565
  type: "button",
@@ -17470,7 +17579,7 @@ var FileInput = React69.forwardRef(function FileInput2({
17470
17579
  onClick: handleClear,
17471
17580
  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]",
17472
17581
  "aria-label": t("remove_file"),
17473
- children: /* @__PURE__ */ jsx177(SquareX4, { size: 15, fill: "#9696b9", color: "#f8f8f8", strokeWidth: 1.8 })
17582
+ children: /* @__PURE__ */ jsx177(SquareX5, { size: 15, fill: "#9696b9", color: "#f8f8f8", strokeWidth: 1.8 })
17474
17583
  }
17475
17584
  )
17476
17585
  ]
@@ -17516,7 +17625,7 @@ var FileInput = React69.forwardRef(function FileInput2({
17516
17625
 
17517
17626
  // src/dashboard/select-icons-box/SelectIconsBox.tsx
17518
17627
  import * as React70 from "react";
17519
- import { jsx as jsx178, jsxs as jsxs113 } from "react/jsx-runtime";
17628
+ import { jsx as jsx178, jsxs as jsxs114 } from "react/jsx-runtime";
17520
17629
  var FOCUSABLE_TRIGGER_SELECTOR2 = 'input:not([type="hidden"]):not([disabled]):not([readonly]), button:not([disabled])';
17521
17630
  var SelectIconsBox = React70.forwardRef(
17522
17631
  function SelectIconsBox2({
@@ -17564,7 +17673,7 @@ var SelectIconsBox = React70.forwardRef(
17564
17673
  );
17565
17674
  focusable?.focus();
17566
17675
  };
17567
- return /* @__PURE__ */ jsxs113(
17676
+ return /* @__PURE__ */ jsxs114(
17568
17677
  "div",
17569
17678
  {
17570
17679
  ref: combinedContainerRef,
@@ -17668,13 +17777,13 @@ function getErrorMessage(error) {
17668
17777
 
17669
17778
  // src/lib/toastResponseError.tsx
17670
17779
  import i18next from "i18next";
17671
- import { jsx as jsx179, jsxs as jsxs114 } from "react/jsx-runtime";
17780
+ import { jsx as jsx179, jsxs as jsxs115 } from "react/jsx-runtime";
17672
17781
  function addSupportEmailToMessage(message, prefixText) {
17673
17782
  if (typeof message !== "string") {
17674
17783
  return message;
17675
17784
  }
17676
17785
  const builtMessage = `${prefixText ? `${prefixText} ` : ""}${message}`;
17677
- return /* @__PURE__ */ jsxs114("div", { children: [
17786
+ return /* @__PURE__ */ jsxs115("div", { children: [
17678
17787
  /* @__PURE__ */ jsx179("div", { children: builtMessage }),
17679
17788
  i18next.t("reach_us_at_email")
17680
17789
  ] });
@@ -17691,11 +17800,11 @@ function toastResponseError(error, options = {}) {
17691
17800
 
17692
17801
  // src/legacy-fields/textarea/Textarea.tsx
17693
17802
  import { forwardRef as forwardRef73, useId as useId15 } from "react";
17694
- import { jsx as jsx180, jsxs as jsxs115 } from "react/jsx-runtime";
17803
+ import { jsx as jsx180, jsxs as jsxs116 } from "react/jsx-runtime";
17695
17804
  var LegacyTextarea = forwardRef73(
17696
17805
  ({ className, textareaClassName, label, disabled, name, invalid, ...textareaProps }, ref) => {
17697
17806
  const inputId = useId15();
17698
- return /* @__PURE__ */ jsxs115("div", { className: cn("relative", className), children: [
17807
+ return /* @__PURE__ */ jsxs116("div", { className: cn("relative", className), children: [
17699
17808
  /* @__PURE__ */ jsx180(
17700
17809
  "textarea",
17701
17810
  {
@@ -17737,7 +17846,7 @@ import { Calendar as Calendar2 } from "lucide-react";
17737
17846
  import * as React71 from "react";
17738
17847
  import { Loader2 as Loader24 } from "lucide-react";
17739
17848
  import { useTranslation as useTranslation43 } from "react-i18next";
17740
- import { Fragment as Fragment17, jsx as jsx181, jsxs as jsxs116 } from "react/jsx-runtime";
17849
+ import { Fragment as Fragment17, jsx as jsx181, jsxs as jsxs117 } from "react/jsx-runtime";
17741
17850
  var AirbnbFieldTrigger = React71.forwardRef(
17742
17851
  ({
17743
17852
  as = "button",
@@ -17774,9 +17883,9 @@ var AirbnbFieldTrigger = React71.forwardRef(
17774
17883
  const optionalLabel = optional ? typeof optional === "string" ? optional : t("optional") : void 0;
17775
17884
  const visibleLabelText = labelText ?? label;
17776
17885
  const hasLabelMeta = Boolean(optionalLabel) || Boolean(tooltip);
17777
- const resolvedLabelText = visibleLabelText && hasLabelMeta ? /* @__PURE__ */ jsxs116("span", { className: "inline-flex max-w-full items-center gap-1.5 align-middle", children: [
17886
+ const resolvedLabelText = visibleLabelText && hasLabelMeta ? /* @__PURE__ */ jsxs117("span", { className: "inline-flex max-w-full items-center gap-1.5 align-middle", children: [
17778
17887
  /* @__PURE__ */ jsx181("span", { className: "min-w-0 truncate", children: visibleLabelText }),
17779
- optionalLabel && /* @__PURE__ */ jsxs116("span", { className: "text-current opacity-70 lowercase", children: [
17888
+ optionalLabel && /* @__PURE__ */ jsxs117("span", { className: "text-current opacity-70 lowercase", children: [
17780
17889
  "(",
17781
17890
  optionalLabel,
17782
17891
  ")"
@@ -17796,7 +17905,7 @@ var AirbnbFieldTrigger = React71.forwardRef(
17796
17905
  const hasInvalidState = Boolean(error);
17797
17906
  const errorMessage = typeof error === "string" ? error : void 0;
17798
17907
  const isBlocked = Boolean(disabled) || Boolean(loading);
17799
- const resolvedTrailingAdornment = loading || trailingAdornment ? /* @__PURE__ */ jsxs116("span", { className: "flex items-center gap-2", children: [
17908
+ const resolvedTrailingAdornment = loading || trailingAdornment ? /* @__PURE__ */ jsxs117("span", { className: "flex items-center gap-2", children: [
17800
17909
  trailingAdornment,
17801
17910
  loading && /* @__PURE__ */ jsx181(
17802
17911
  Loader24,
@@ -17814,8 +17923,8 @@ var AirbnbFieldTrigger = React71.forwardRef(
17814
17923
  disabled ? "cursor-not-allowed opacity-50" : loading ? "cursor-progress" : "cursor-pointer",
17815
17924
  className
17816
17925
  );
17817
- const sharedContent = /* @__PURE__ */ jsxs116(Fragment17, { children: [
17818
- /* @__PURE__ */ jsxs116(
17926
+ const sharedContent = /* @__PURE__ */ jsxs117(Fragment17, { children: [
17927
+ /* @__PURE__ */ jsxs117(
17819
17928
  "span",
17820
17929
  {
17821
17930
  className: cn(
@@ -17861,7 +17970,7 @@ var AirbnbFieldTrigger = React71.forwardRef(
17861
17970
  }
17862
17971
  )
17863
17972
  ] });
17864
- return /* @__PURE__ */ jsxs116("div", { className: "w-full", children: [
17973
+ return /* @__PURE__ */ jsxs117("div", { className: "w-full", children: [
17865
17974
  topLabel && /* @__PURE__ */ jsx181("p", { className: "mb-3 text-[16px] font-semibold leading-5 text-[#222222]", children: topLabel }),
17866
17975
  as === "button" ? /* @__PURE__ */ jsx181(
17867
17976
  "button",
@@ -17904,7 +18013,7 @@ var AirbnbFieldTrigger = React71.forwardRef(
17904
18013
  AirbnbFieldTrigger.displayName = "AirbnbFieldTrigger";
17905
18014
 
17906
18015
  // src/airbnb-fields/datepicker/DatePicker.tsx
17907
- import { jsx as jsx182, jsxs as jsxs117 } from "react/jsx-runtime";
18016
+ import { jsx as jsx182, jsxs as jsxs118 } from "react/jsx-runtime";
17908
18017
  var DEFAULT_MIN_DATE = new Date(1920, 0, 1);
17909
18018
  var AirbnbDatePicker = React72.forwardRef(
17910
18019
  ({
@@ -18020,7 +18129,7 @@ var AirbnbDatePicker = React72.forwardRef(
18020
18129
  setIsOpen(false);
18021
18130
  }
18022
18131
  }, [isBlocked]);
18023
- return /* @__PURE__ */ jsxs117("div", { className: cn("relative w-full max-w-[var(--max-field-width)]", className), children: [
18132
+ return /* @__PURE__ */ jsxs118("div", { className: cn("relative w-full max-w-[var(--max-field-width)]", className), children: [
18024
18133
  name && /* @__PURE__ */ jsx182(
18025
18134
  "input",
18026
18135
  {
@@ -18095,7 +18204,7 @@ AirbnbDatePicker.displayName = "AirbnbDatePicker";
18095
18204
  import * as React73 from "react";
18096
18205
  import { Eye as Eye2 } from "lucide-react";
18097
18206
  import { useTranslation as useTranslation44 } from "react-i18next";
18098
- import { jsx as jsx183, jsxs as jsxs118 } from "react/jsx-runtime";
18207
+ import { jsx as jsx183, jsxs as jsxs119 } from "react/jsx-runtime";
18099
18208
  var getInputValue = (value) => value != null ? String(value) : "";
18100
18209
  var AirbnbInput = React73.forwardRef(
18101
18210
  ({
@@ -18190,7 +18299,7 @@ var AirbnbInput = React73.forwardRef(
18190
18299
  const togglePasswordReveal = () => {
18191
18300
  setIsPasswordRevealed((isRevealed) => !isRevealed);
18192
18301
  };
18193
- return /* @__PURE__ */ jsx183("div", { className: cn("w-full max-w-[var(--max-field-width)]", wrapperClassName), children: /* @__PURE__ */ jsxs118(
18302
+ return /* @__PURE__ */ jsx183("div", { className: cn("w-full max-w-[var(--max-field-width)]", wrapperClassName), children: /* @__PURE__ */ jsxs119(
18194
18303
  AirbnbFieldTrigger,
18195
18304
  {
18196
18305
  as: "div",
@@ -18282,7 +18391,7 @@ import { ChevronDown as ChevronDown6 } from "lucide-react";
18282
18391
  import * as React78 from "react";
18283
18392
 
18284
18393
  // src/airbnb-fields/select/SelectDesktopMenu.tsx
18285
- import { jsx as jsx184, jsxs as jsxs119 } from "react/jsx-runtime";
18394
+ import { jsx as jsx184, jsxs as jsxs120 } from "react/jsx-runtime";
18286
18395
  function AirbnbSelectDesktopMenu({
18287
18396
  id,
18288
18397
  options,
@@ -18301,7 +18410,7 @@ function AirbnbSelectDesktopMenu({
18301
18410
  noOptionsMessage
18302
18411
  }) {
18303
18412
  const emptyMessage = noOptionsMessage?.();
18304
- return /* @__PURE__ */ jsxs119(
18413
+ return /* @__PURE__ */ jsxs120(
18305
18414
  "div",
18306
18415
  {
18307
18416
  id,
@@ -18477,7 +18586,7 @@ function getMobileOptionStyles(index, scrollTop) {
18477
18586
  }
18478
18587
 
18479
18588
  // src/airbnb-fields/select/SelectMobileWheel.tsx
18480
- import { jsx as jsx186, jsxs as jsxs120 } from "react/jsx-runtime";
18589
+ import { jsx as jsx186, jsxs as jsxs121 } from "react/jsx-runtime";
18481
18590
  function AirbnbSelectMobileWheel({
18482
18591
  id,
18483
18592
  options,
@@ -18496,7 +18605,7 @@ function AirbnbSelectMobileWheel({
18496
18605
  }) {
18497
18606
  const spacerHeight2 = getWheelSpacerHeight();
18498
18607
  const emptyMessage = noOptionsMessage?.();
18499
- return /* @__PURE__ */ jsxs120(
18608
+ return /* @__PURE__ */ jsxs121(
18500
18609
  "div",
18501
18610
  {
18502
18611
  id,
@@ -18521,7 +18630,7 @@ function AirbnbSelectMobileWheel({
18521
18630
  )
18522
18631
  }
18523
18632
  ),
18524
- /* @__PURE__ */ jsxs120(
18633
+ /* @__PURE__ */ jsxs121(
18525
18634
  "div",
18526
18635
  {
18527
18636
  ref: listRef,
@@ -18571,7 +18680,7 @@ function AirbnbSelectMobileWheel({
18571
18680
  }
18572
18681
 
18573
18682
  // src/airbnb-fields/select/SelectMobileContent.tsx
18574
- import { jsx as jsx187, jsxs as jsxs121 } from "react/jsx-runtime";
18683
+ import { jsx as jsx187, jsxs as jsxs122 } from "react/jsx-runtime";
18575
18684
  function AirbnbSelectMobileContent({
18576
18685
  open,
18577
18686
  onOpenChange,
@@ -18595,10 +18704,10 @@ function AirbnbSelectMobileContent({
18595
18704
  getOptionId: getOptionId2,
18596
18705
  noOptionsMessage
18597
18706
  }) {
18598
- return /* @__PURE__ */ jsx187(Drawer, { open, onOpenChange, children: /* @__PURE__ */ jsxs121(DrawerContent, { onClose, lockScroll: false, children: [
18707
+ return /* @__PURE__ */ jsx187(Drawer, { open, onOpenChange, children: /* @__PURE__ */ jsxs122(DrawerContent, { onClose, lockScroll: false, children: [
18599
18708
  /* @__PURE__ */ jsx187(DrawerTitle, { className: "sr-only", children: mobileTitle ?? label }),
18600
18709
  /* @__PURE__ */ jsx187(DrawerDescription, { className: "sr-only", children: label }),
18601
- /* @__PURE__ */ jsxs121("div", { className: "px-6 pb-4 pt-1", children: [
18710
+ /* @__PURE__ */ jsxs122("div", { className: "px-6 pb-4 pt-1", children: [
18602
18711
  /* @__PURE__ */ jsx187(
18603
18712
  AirbnbSelectMobileWheel,
18604
18713
  {
@@ -19041,7 +19150,7 @@ function useSelectIds2({ name, hasValue, error, hideErrorMessage }) {
19041
19150
  }
19042
19151
 
19043
19152
  // src/airbnb-fields/select/Select.tsx
19044
- import { jsx as jsx189, jsxs as jsxs122 } from "react/jsx-runtime";
19153
+ import { jsx as jsx189, jsxs as jsxs123 } from "react/jsx-runtime";
19045
19154
  var AirbnbSelect = React78.forwardRef(function AirbnbSelect2({
19046
19155
  options = [],
19047
19156
  value,
@@ -19222,7 +19331,7 @@ var AirbnbSelect = React78.forwardRef(function AirbnbSelect2({
19222
19331
  handleMobileOpenChange(false);
19223
19332
  }
19224
19333
  };
19225
- return /* @__PURE__ */ jsxs122(
19334
+ return /* @__PURE__ */ jsxs123(
19226
19335
  "div",
19227
19336
  {
19228
19337
  ref: containerRef,
@@ -19335,7 +19444,7 @@ var AirbnbSelect = React78.forwardRef(function AirbnbSelect2({
19335
19444
  });
19336
19445
 
19337
19446
  // src/airbnb-fields/phone-field/PhoneField.tsx
19338
- import { jsx as jsx190, jsxs as jsxs123 } from "react/jsx-runtime";
19447
+ import { jsx as jsx190, jsxs as jsxs124 } from "react/jsx-runtime";
19339
19448
  function formatPhoneCodeOptionLabel2(option) {
19340
19449
  const label = String(option.label);
19341
19450
  const value = String(option.value);
@@ -19383,7 +19492,7 @@ var AirbnbPhoneField = React79.forwardRef(
19383
19492
  const hasInvalidState = Boolean(error) || Boolean(invalid);
19384
19493
  const isBlocked = Boolean(disabled) || Boolean(loading);
19385
19494
  const isCodeBlocked = isBlocked || Boolean(codeReadOnly);
19386
- return /* @__PURE__ */ jsxs123("div", { className: cn("w-full max-w-[var(--max-field-width)]", className), children: [
19495
+ return /* @__PURE__ */ jsxs124("div", { className: cn("w-full max-w-[var(--max-field-width)]", className), children: [
19387
19496
  name && /* @__PURE__ */ jsx190("input", { type: "hidden", name, value: combinedValue, disabled }),
19388
19497
  codeName && /* @__PURE__ */ jsx190(
19389
19498
  "input",
@@ -19411,7 +19520,7 @@ var AirbnbPhoneField = React79.forwardRef(
19411
19520
  children: topLabel
19412
19521
  }
19413
19522
  ),
19414
- /* @__PURE__ */ jsxs123("div", { className: "flex items-stretch", children: [
19523
+ /* @__PURE__ */ jsxs124("div", { className: "flex items-stretch", children: [
19415
19524
  /* @__PURE__ */ jsx190(
19416
19525
  AirbnbSelect,
19417
19526
  {
@@ -19441,7 +19550,7 @@ var AirbnbPhoneField = React79.forwardRef(
19441
19550
  onClick,
19442
19551
  onKeyDown,
19443
19552
  valueLabel
19444
- }) => /* @__PURE__ */ jsxs123(
19553
+ }) => /* @__PURE__ */ jsxs124(
19445
19554
  "button",
19446
19555
  {
19447
19556
  id,
@@ -19515,7 +19624,7 @@ import * as React80 from "react";
19515
19624
  import { ChevronDown as ChevronDown7, Search as Search4 } from "lucide-react";
19516
19625
  import { useVirtualizer as useVirtualizer3 } from "@tanstack/react-virtual";
19517
19626
  import { useCallback as useCallback57 } from "react";
19518
- import { jsx as jsx191, jsxs as jsxs124 } from "react/jsx-runtime";
19627
+ import { jsx as jsx191, jsxs as jsxs125 } from "react/jsx-runtime";
19519
19628
  var ROW_HEIGHT = 48;
19520
19629
  var DESKTOP_LIST_HEIGHT = 280;
19521
19630
  var MOBILE_LIST_HEIGHT = 420;
@@ -19711,7 +19820,7 @@ var AirbnbSearchableSelectInternal = ({
19711
19820
  }
19712
19821
  );
19713
19822
  React80.useImperativeHandle(ref, () => triggerRef.current, []);
19714
- return /* @__PURE__ */ jsxs124("div", { ref: containerRef, className: cn("relative w-full max-w-[425px]", className), children: [
19823
+ return /* @__PURE__ */ jsxs125("div", { ref: containerRef, className: cn("relative w-full max-w-[425px]", className), children: [
19715
19824
  name && /* @__PURE__ */ jsx191("input", { type: "hidden", name, value: value ? String(value.value) : "" }),
19716
19825
  /* @__PURE__ */ jsx191(
19717
19826
  AirbnbFieldTrigger,
@@ -19770,7 +19879,7 @@ var AirbnbSearchableSelectInternal = ({
19770
19879
  }
19771
19880
  closeSelect();
19772
19881
  },
19773
- children: /* @__PURE__ */ jsxs124(DrawerContent, { onClose: closeSelect, lockScroll: false, children: [
19882
+ children: /* @__PURE__ */ jsxs125(DrawerContent, { onClose: closeSelect, lockScroll: false, children: [
19774
19883
  /* @__PURE__ */ jsx191(DrawerTitle, { className: "sr-only", children: mobileTitle ?? label }),
19775
19884
  /* @__PURE__ */ jsx191(DrawerDescription, { className: "sr-only", children: label }),
19776
19885
  /* @__PURE__ */ jsx191("div", { className: "px-5 pb-5 pt-1", children: content })
@@ -19843,8 +19952,8 @@ function AirbnbSearchableSelectContent({
19843
19952
  virtualizer.scrollToIndex(highlightedIndex, { align: "auto" });
19844
19953
  }
19845
19954
  }, [highlightedIndex, virtualizer]);
19846
- return /* @__PURE__ */ jsxs124("div", { className: "p-2", children: [
19847
- /* @__PURE__ */ jsxs124("div", { className: "relative mb-2", children: [
19955
+ return /* @__PURE__ */ jsxs125("div", { className: "p-2", children: [
19956
+ /* @__PURE__ */ jsxs125("div", { className: "relative mb-2", children: [
19848
19957
  /* @__PURE__ */ jsx191(
19849
19958
  Search4,
19850
19959
  {
@@ -19957,11 +20066,11 @@ function getNextEnabledIndex(options, startIndex, step) {
19957
20066
  import * as React81 from "react";
19958
20067
  import { useTranslation as useTranslation45 } from "react-i18next";
19959
20068
  import { Search as Search5, X as X11 } from "lucide-react";
19960
- import { jsx as jsx192, jsxs as jsxs125 } from "react/jsx-runtime";
20069
+ import { jsx as jsx192, jsxs as jsxs126 } from "react/jsx-runtime";
19961
20070
  var AirbnbSearchInput = React81.forwardRef(({ onReset, placeholder, wrapperClassName, ...props }, ref) => {
19962
20071
  const { t } = useTranslation45();
19963
20072
  const placeholderText = placeholder || t("search_property") + "...";
19964
- return /* @__PURE__ */ jsxs125("div", { className: cn("input-wrapper relative", wrapperClassName), children: [
20073
+ return /* @__PURE__ */ jsxs126("div", { className: cn("input-wrapper relative", wrapperClassName), children: [
19965
20074
  /* @__PURE__ */ jsx192(Search5, { className: "absolute left-4 top-1/2 h-5 w-5 -translate-y-1/2 transform text-[#9696B9]" }),
19966
20075
  /* @__PURE__ */ jsx192(
19967
20076
  "input",
@@ -19999,7 +20108,7 @@ AirbnbSearchInput.displayName = "AirbnbSearchInput";
19999
20108
  import * as React82 from "react";
20000
20109
  import * as SwitchPrimitives2 from "@radix-ui/react-switch";
20001
20110
  import { Check as Check7 } from "lucide-react";
20002
- import { Fragment as Fragment18, jsx as jsx193, jsxs as jsxs126 } from "react/jsx-runtime";
20111
+ import { Fragment as Fragment18, jsx as jsx193, jsxs as jsxs127 } from "react/jsx-runtime";
20003
20112
  var AirbnbSwitch = React82.forwardRef(
20004
20113
  ({
20005
20114
  className,
@@ -20058,8 +20167,8 @@ var AirbnbSwitch = React82.forwardRef(
20058
20167
  if (!label && !error) {
20059
20168
  return switchElement;
20060
20169
  }
20061
- return /* @__PURE__ */ jsxs126(Fragment18, { children: [
20062
- /* @__PURE__ */ jsxs126("div", { className: cn("flex items-center gap-x-3 gap-y-1.5", wrapperClassName), children: [
20170
+ return /* @__PURE__ */ jsxs127(Fragment18, { children: [
20171
+ /* @__PURE__ */ jsxs127("div", { className: cn("flex items-center gap-x-3 gap-y-1.5", wrapperClassName), children: [
20063
20172
  switchElement,
20064
20173
  label && /* @__PURE__ */ jsx193(
20065
20174
  Label,
@@ -20394,6 +20503,7 @@ export {
20394
20503
  compressFile,
20395
20504
  compressImage,
20396
20505
  copyToClipboard,
20506
+ countriesFilter,
20397
20507
  createDisabledMatchers,
20398
20508
  emptyMediaVariants,
20399
20509
  findPhoneCode,