@chekinapp/ui 0.0.113 → 0.0.115

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
@@ -12796,6 +12796,7 @@ var import_react_i18next33 = require("react-i18next");
12796
12796
  // src/dashboard/_select-internals/SelectFieldShell.tsx
12797
12797
  var import_react_i18next27 = require("react-i18next");
12798
12798
  var import_jsx_runtime146 = require("react/jsx-runtime");
12799
+ var FOCUSABLE_TRIGGER_SELECTOR = 'input:not([type="hidden"]):not([disabled]):not([readonly]), button:not([disabled])';
12799
12800
  function SelectFieldShell({
12800
12801
  containerRef,
12801
12802
  className,
@@ -12816,13 +12817,22 @@ function SelectFieldShell({
12816
12817
  }) {
12817
12818
  const { t } = (0, import_react_i18next27.useTranslation)();
12818
12819
  const wrapperWidth = toCssSize(width);
12820
+ const handleContainerFocus = (event) => {
12821
+ if (event.target !== event.currentTarget) return;
12822
+ const focusable = event.currentTarget.querySelector(
12823
+ FOCUSABLE_TRIGGER_SELECTOR
12824
+ );
12825
+ focusable?.focus();
12826
+ };
12819
12827
  return /* @__PURE__ */ (0, import_jsx_runtime146.jsxs)(
12820
12828
  "div",
12821
12829
  {
12822
12830
  ref: containerRef,
12831
+ tabIndex: -1,
12823
12832
  onBlur,
12833
+ onFocus: handleContainerFocus,
12824
12834
  className: cn(
12825
- "relative w-full max-w-[var(--field-max-width,296px)]",
12835
+ "relative w-full max-w-[var(--field-max-width,296px)] outline-none",
12826
12836
  disabled && !loading && "cursor-not-allowed opacity-50",
12827
12837
  loading && "cursor-progress opacity-50",
12828
12838
  className
@@ -12894,6 +12904,7 @@ function defaultIsOptionSelected(option, selectValue) {
12894
12904
  }
12895
12905
 
12896
12906
  // src/dashboard/_select-internals/slots/DefaultOption.tsx
12907
+ var import_lucide_react43 = require("lucide-react");
12897
12908
  var import_jsx_runtime147 = require("react/jsx-runtime");
12898
12909
  function DefaultOption(props) {
12899
12910
  const {
@@ -12902,7 +12913,7 @@ function DefaultOption(props) {
12902
12913
  isSelected,
12903
12914
  isHighlighted,
12904
12915
  isDisabled,
12905
- isLast,
12916
+ isMulti,
12906
12917
  id,
12907
12918
  onClick,
12908
12919
  onHover,
@@ -12930,15 +12941,26 @@ function DefaultOption(props) {
12930
12941
  onClick: () => onClick(option),
12931
12942
  onMouseMove: () => onHover(index),
12932
12943
  className: cn(
12933
- "flex w-full items-start justify-between border-0 border-b border-[#f2f4f8] bg-white px-4 py-[20px] text-left text-[16px] font-medium leading-5 text-[var(--chekin-color-brand-navy)] outline-none transition-colors",
12934
- isLast && "border-b-transparent",
12935
- isHighlighted && !isSelected && "cursor-pointer text-[var(--chekin-color-brand-blue)]",
12936
- isSelected && "cursor-default font-bold text-[var(--chekin-color-brand-navy)]",
12937
- isDisabled && "cursor-default opacity-30"
12944
+ "group relative flex w-full items-start justify-between gap-2 rounded-md border-0 bg-transparent px-3 py-2.5 text-left text-[15px] font-medium leading-5 text-[var(--chekin-color-brand-navy)] outline-none transition-colors duration-100",
12945
+ !isDisabled && "cursor-pointer hover:bg-[var(--chekin-color-surface-pressed)]",
12946
+ isHighlighted && !isDisabled && "bg-[var(--chekin-color-surface-pressed)]",
12947
+ isSelected && "bg-[var(--chekin-color-surface-autocomplete)] font-semibold text-[var(--chekin-color-brand-blue)]",
12948
+ isDisabled && "cursor-not-allowed text-[var(--chekin-color-gray-2)]"
12938
12949
  ),
12939
12950
  children: [
12940
- /* @__PURE__ */ (0, import_jsx_runtime147.jsx)("span", { className: "block break-words", children: labelContent }),
12941
- option.description && /* @__PURE__ */ (0, import_jsx_runtime147.jsx)("span", { className: "ml-2 mt-[3px] shrink-0 text-[12px] font-bold italic text-[#777e91]", children: option.description })
12951
+ /* @__PURE__ */ (0, import_jsx_runtime147.jsx)("span", { className: "block min-w-0 break-words", children: labelContent }),
12952
+ option.description && /* @__PURE__ */ (0, import_jsx_runtime147.jsx)("span", { className: "ml-auto shrink-0 self-center text-[12px] font-medium italic text-[var(--chekin-color-gray-1)]", children: option.description }),
12953
+ isSelected && /* @__PURE__ */ (0, import_jsx_runtime147.jsx)(
12954
+ import_lucide_react43.Check,
12955
+ {
12956
+ "aria-hidden": "true",
12957
+ className: cn(
12958
+ "shrink-0 text-[var(--chekin-color-brand-blue)]",
12959
+ isMulti ? "ml-1 mt-0.5 h-3.5 w-3.5" : "ml-2 mt-0.5 h-4 w-4"
12960
+ ),
12961
+ strokeWidth: 2.5
12962
+ }
12963
+ )
12942
12964
  ]
12943
12965
  }
12944
12966
  );
@@ -12970,7 +12992,8 @@ function SelectMenu({
12970
12992
  components,
12971
12993
  inputValue = "",
12972
12994
  formatOptionLabel,
12973
- isOptionSelected: isOptionSelected2
12995
+ isOptionSelected: isOptionSelected2,
12996
+ onMenuScrollToBottom
12974
12997
  }) {
12975
12998
  const { t } = (0, import_react_i18next28.useTranslation)();
12976
12999
  const emptyMessage = noOptionsMessage?.() ?? t("no_options");
@@ -12981,6 +13004,19 @@ function SelectMenu({
12981
13004
  () => selectedValues ?? (selectedValue ? [selectedValue] : []),
12982
13005
  [selectedValues, selectedValue]
12983
13006
  );
13007
+ const wasAtBottomRef = React45.useRef(false);
13008
+ const handleScroll = React45.useCallback(
13009
+ (event) => {
13010
+ if (!onMenuScrollToBottom) return;
13011
+ const target = event.currentTarget;
13012
+ const atBottom = target.scrollHeight - target.scrollTop - target.clientHeight <= 1;
13013
+ if (atBottom && !wasAtBottomRef.current) {
13014
+ onMenuScrollToBottom(event);
13015
+ }
13016
+ wasAtBottomRef.current = atBottom;
13017
+ },
13018
+ [onMenuScrollToBottom]
13019
+ );
12984
13020
  return /* @__PURE__ */ (0, import_jsx_runtime148.jsxs)(
12985
13021
  "div",
12986
13022
  {
@@ -12993,12 +13029,14 @@ function SelectMenu({
12993
13029
  "aria-multiselectable": isMulti,
12994
13030
  "aria-activedescendant": highlightedIndex !== void 0 && highlightedIndex >= 0 ? getOptionId2(highlightedIndex) : void 0,
12995
13031
  onKeyDown,
13032
+ onScroll: onMenuScrollToBottom ? handleScroll : void 0,
12996
13033
  className: cn(
12997
- "h-auto max-h-[322px] min-h-[75px] overflow-y-auto px-4 pb-[19px] pt-[17px] outline-none",
13034
+ "max-h-[300px] overflow-y-auto overscroll-contain p-1.5 outline-none",
13035
+ "[scrollbar-color:var(--chekin-color-gray-3)_transparent] [scrollbar-width:thin] [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-thumb]:bg-[var(--chekin-color-gray-3)] [&::-webkit-scrollbar-track]:bg-transparent [&::-webkit-scrollbar]:w-1.5",
12998
13036
  menuClassName
12999
13037
  ),
13000
13038
  children: [
13001
- !hasOptions && (emptyContent ?? /* @__PURE__ */ (0, import_jsx_runtime148.jsx)("div", { className: "mt-[10px] text-left text-[16px] text-[var(--chekin-color-brand-navy)]", children: emptyMessage })),
13039
+ !hasOptions && (emptyContent ?? /* @__PURE__ */ (0, import_jsx_runtime148.jsx)("div", { className: "px-3 py-3 text-left text-[14px] font-medium text-[var(--chekin-color-gray-1)]", children: emptyMessage })),
13002
13040
  options.map((option, index) => {
13003
13041
  const isSelected = isOptionSelected2 ? isOptionSelected2(option, selectedList) : isOptionSelected(option, selectedValue, selectedValues);
13004
13042
  const isHighlighted = index === highlightedIndex;
@@ -13088,7 +13126,7 @@ function SelectMenuPanel({
13088
13126
  "div",
13089
13127
  {
13090
13128
  className: cn(
13091
- "absolute left-0 right-0 top-full z-20 overflow-hidden rounded-b-lg bg-white shadow-[0_30px_30px_0_rgba(33,72,255,0.2)]",
13129
+ "absolute left-0 right-0 top-full z-50 mt-1.5 overflow-hidden rounded-lg border border-[var(--chekin-color-gray-3)] bg-white shadow-[0_4px_8px_-2px_rgba(22,22,67,0.06),0_16px_32px_-12px_rgba(33,72,255,0.18)] ring-1 ring-black/[0.02] animate-in fade-in-0 zoom-in-95 slide-in-from-top-1 duration-150",
13092
13130
  className
13093
13131
  ),
13094
13132
  children
@@ -13097,7 +13135,7 @@ function SelectMenuPanel({
13097
13135
  }
13098
13136
 
13099
13137
  // src/dashboard/_select-internals/SelectSearchInput.tsx
13100
- var import_lucide_react43 = require("lucide-react");
13138
+ var import_lucide_react44 = require("lucide-react");
13101
13139
  var import_jsx_runtime150 = require("react/jsx-runtime");
13102
13140
  function SelectSearchInput({
13103
13141
  inputRef,
@@ -13108,12 +13146,12 @@ function SelectSearchInput({
13108
13146
  onChange,
13109
13147
  onKeyDown
13110
13148
  }) {
13111
- return /* @__PURE__ */ (0, import_jsx_runtime150.jsx)("div", { className: "border-b border-[#f2f4f8] px-4 pb-2 pt-3", children: /* @__PURE__ */ (0, import_jsx_runtime150.jsxs)("div", { className: "relative", children: [
13149
+ return /* @__PURE__ */ (0, import_jsx_runtime150.jsx)("div", { className: "border-b border-[var(--chekin-color-gray-3)] bg-white p-2", children: /* @__PURE__ */ (0, import_jsx_runtime150.jsxs)("div", { className: "relative", children: [
13112
13150
  /* @__PURE__ */ (0, import_jsx_runtime150.jsx)(
13113
- import_lucide_react43.Search,
13151
+ import_lucide_react44.Search,
13114
13152
  {
13115
13153
  "aria-hidden": "true",
13116
- className: "pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-[var(--chekin-color-gray-2)]"
13154
+ className: "pointer-events-none absolute left-2.5 top-1/2 h-4 w-4 -translate-y-1/2 text-[var(--chekin-color-gray-2)]"
13117
13155
  }
13118
13156
  ),
13119
13157
  /* @__PURE__ */ (0, import_jsx_runtime150.jsx)(
@@ -13128,14 +13166,14 @@ function SelectSearchInput({
13128
13166
  autoComplete: "off",
13129
13167
  "aria-controls": listboxId,
13130
13168
  "aria-activedescendant": activeOptionId,
13131
- className: "m-0 box-border h-9 w-full rounded-md border border-[var(--chekin-color-gray-3)] bg-white px-9 text-[16px] font-medium text-[var(--chekin-color-brand-navy)] outline-none transition-colors placeholder:text-[var(--chekin-color-gray-1)] focus:border-[var(--chekin-color-brand-blue)]"
13169
+ className: "m-0 box-border h-9 w-full rounded-md border border-[var(--chekin-color-gray-3)] bg-white pl-8 pr-3 text-[14px] font-medium text-[var(--chekin-color-brand-navy)] outline-none transition-colors placeholder:text-[var(--chekin-color-gray-2)] hover:border-[var(--chekin-color-gray-2)] focus:border-[var(--chekin-color-brand-blue)] focus:ring-2 focus:ring-[var(--chekin-color-brand-blue)]/15"
13132
13170
  }
13133
13171
  )
13134
13172
  ] }) });
13135
13173
  }
13136
13174
 
13137
13175
  // src/dashboard/_select-internals/SelectTrigger.tsx
13138
- var import_lucide_react44 = require("lucide-react");
13176
+ var import_lucide_react45 = require("lucide-react");
13139
13177
  var import_jsx_runtime151 = require("react/jsx-runtime");
13140
13178
  function SelectTrigger({
13141
13179
  triggerRef,
@@ -13152,6 +13190,7 @@ function SelectTrigger({
13152
13190
  invalid,
13153
13191
  placeholder,
13154
13192
  valueLabel,
13193
+ leftIcon,
13155
13194
  onClick,
13156
13195
  onKeyDown,
13157
13196
  onBlur
@@ -13175,15 +13214,17 @@ function SelectTrigger({
13175
13214
  onKeyDown,
13176
13215
  onBlur,
13177
13216
  className: cn(
13178
- "relative m-0 box-border flex h-12 w-full cursor-pointer items-center justify-between gap-2 rounded-[6px] border-0 px-4 text-left text-[16px] font-medium leading-5 outline-none transition-colors duration-200",
13217
+ "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",
13218
+ leftIcon ? "pl-10" : "pl-4",
13179
13219
  isEmpty ? "bg-[var(--empty-field-background)] text-[var(--chekin-color-gray-1)]" : "bg-transparent text-[var(--chekin-color-brand-navy)]",
13180
13220
  disabled && !loading && "cursor-not-allowed opacity-50",
13181
13221
  loading && "!cursor-progress"
13182
13222
  ),
13183
13223
  children: [
13224
+ leftIcon && /* @__PURE__ */ (0, import_jsx_runtime151.jsx)("span", { className: "pointer-events-none absolute left-0 top-0 flex h-full max-w-10 items-center justify-center text-[var(--chekin-color-gray-2)]", children: /* @__PURE__ */ (0, import_jsx_runtime151.jsx)("span", { className: "flex h-full w-10 items-center justify-center", children: leftIcon }) }),
13184
13225
  /* @__PURE__ */ (0, import_jsx_runtime151.jsx)("span", { id: valueId, className: "block min-w-0 flex-1 truncate text-left", children: valueLabel ?? (isOpen ? placeholder : null) }),
13185
13226
  /* @__PURE__ */ (0, import_jsx_runtime151.jsx)("span", { className: "pointer-events-none flex items-center gap-2 text-[var(--chekin-color-gray-2)]", children: /* @__PURE__ */ (0, import_jsx_runtime151.jsx)(
13186
- import_lucide_react44.ChevronDown,
13227
+ import_lucide_react45.ChevronDown,
13187
13228
  {
13188
13229
  size: 16,
13189
13230
  className: cn(
@@ -13198,7 +13239,7 @@ function SelectTrigger({
13198
13239
  }
13199
13240
 
13200
13241
  // src/dashboard/_select-internals/ComboboxTrigger.tsx
13201
- var import_lucide_react45 = require("lucide-react");
13242
+ var import_lucide_react46 = require("lucide-react");
13202
13243
  var import_react_i18next30 = require("react-i18next");
13203
13244
  var import_jsx_runtime152 = require("react/jsx-runtime");
13204
13245
  function ComboboxTrigger({
@@ -13230,6 +13271,7 @@ function ComboboxTrigger({
13230
13271
  onClear,
13231
13272
  clearLabel,
13232
13273
  leadingContent,
13274
+ leftIcon,
13233
13275
  containerClassName,
13234
13276
  inputClassName,
13235
13277
  hideIndicator,
@@ -13260,11 +13302,13 @@ function ComboboxTrigger({
13260
13302
  containerClassName
13261
13303
  ),
13262
13304
  children: [
13305
+ leftIcon && /* @__PURE__ */ (0, import_jsx_runtime152.jsx)("span", { className: "pointer-events-none absolute left-0 top-0 flex h-full max-w-10 items-center justify-center text-[var(--chekin-color-gray-2)]", children: /* @__PURE__ */ (0, import_jsx_runtime152.jsx)("span", { className: "flex h-full w-10 items-center justify-center", children: leftIcon }) }),
13263
13306
  /* @__PURE__ */ (0, import_jsx_runtime152.jsxs)(
13264
13307
  "div",
13265
13308
  {
13266
13309
  className: cn(
13267
- "flex min-w-0 flex-1 items-center gap-2 py-[10px] pl-4",
13310
+ "flex min-w-0 flex-1 items-center gap-2 py-[10px]",
13311
+ leftIcon ? "pl-10" : "pl-4",
13268
13312
  isMulti && "flex-wrap"
13269
13313
  ),
13270
13314
  children: [
@@ -13307,7 +13351,7 @@ function ComboboxTrigger({
13307
13351
  onClick: onClear,
13308
13352
  className: "flex h-5 w-5 items-center justify-center rounded-[3px] border-0 bg-transparent p-0 text-[#9696b9] hover:shadow-[0_3px_3px_#0f477734]",
13309
13353
  "aria-label": clearLabel,
13310
- children: /* @__PURE__ */ (0, import_jsx_runtime152.jsx)(import_lucide_react45.SquareX, { size: 15, fill: "#9696b9", color: "#f8f8f8", strokeWidth: 1.8 })
13354
+ children: /* @__PURE__ */ (0, import_jsx_runtime152.jsx)(import_lucide_react46.SquareX, { size: 15, fill: "#9696b9", color: "#f8f8f8", strokeWidth: 1.8 })
13311
13355
  }
13312
13356
  ),
13313
13357
  !hideIndicator && /* @__PURE__ */ (0, import_jsx_runtime152.jsx)(
@@ -13763,7 +13807,7 @@ function useSelectState(params) {
13763
13807
  }
13764
13808
 
13765
13809
  // src/dashboard/_select-internals/slots/DefaultMultiValueChip.tsx
13766
- var import_lucide_react46 = require("lucide-react");
13810
+ var import_lucide_react47 = require("lucide-react");
13767
13811
  var import_react_i18next31 = require("react-i18next");
13768
13812
  var import_jsx_runtime153 = require("react/jsx-runtime");
13769
13813
  function DefaultMultiValueChip({
@@ -13773,8 +13817,8 @@ function DefaultMultiValueChip({
13773
13817
  }) {
13774
13818
  const { t } = (0, import_react_i18next31.useTranslation)();
13775
13819
  const labelText = typeof option.label === "string" ? option.label : String(option.value);
13776
- return /* @__PURE__ */ (0, import_jsx_runtime153.jsxs)("span", { className: "inline-flex items-center gap-2 rounded-[4px] border border-[#acacd5] bg-[#f0f0f8] py-[2px] pl-[10px] pr-1 text-[12px] font-medium text-[var(--chekin-color-brand-navy)]", children: [
13777
- /* @__PURE__ */ (0, import_jsx_runtime153.jsx)("span", { className: "whitespace-nowrap", children: option.label }),
13820
+ return /* @__PURE__ */ (0, import_jsx_runtime153.jsxs)("span", { className: "inline-flex items-center gap-1 rounded-md border border-[var(--chekin-color-gray-3)] bg-[var(--chekin-color-surface-pressed)] py-0.5 pl-2 pr-1 text-[13px] font-medium text-[var(--chekin-color-brand-navy)] transition-colors", children: [
13821
+ /* @__PURE__ */ (0, import_jsx_runtime153.jsx)("span", { className: "whitespace-nowrap leading-5", children: option.label }),
13778
13822
  !readOnly && /* @__PURE__ */ (0, import_jsx_runtime153.jsx)(
13779
13823
  "button",
13780
13824
  {
@@ -13783,9 +13827,9 @@ function DefaultMultiValueChip({
13783
13827
  event.stopPropagation();
13784
13828
  onRemove();
13785
13829
  },
13786
- className: "flex h-[15px] w-[15px] items-center justify-center rounded-[3px] border-0 bg-transparent p-0 text-[#9696b9] hover:shadow-[0_3px_3px_#0f477734]",
13830
+ className: "flex h-4 w-4 items-center justify-center rounded-sm border-0 bg-transparent p-0 text-[var(--chekin-color-gray-1)] outline-none transition-colors hover:bg-white/70 hover:text-[var(--chekin-color-brand-navy)] focus-visible:ring-2 focus-visible:ring-[var(--chekin-color-brand-blue)]/30",
13787
13831
  "aria-label": t("remove_item", { label: labelText }),
13788
- children: /* @__PURE__ */ (0, import_jsx_runtime153.jsx)(import_lucide_react46.SquareX, { size: 15, fill: "#9696b9", color: "#f8f8f8", strokeWidth: 1.8 })
13832
+ children: /* @__PURE__ */ (0, import_jsx_runtime153.jsx)(import_lucide_react47.X, { size: 12, strokeWidth: 2.5 })
13789
13833
  }
13790
13834
  )
13791
13835
  ] });
@@ -13826,6 +13870,7 @@ function DefaultControl(props) {
13826
13870
  clearLabel,
13827
13871
  hideIndicator,
13828
13872
  autoFocus,
13873
+ leftIcon,
13829
13874
  components
13830
13875
  } = props;
13831
13876
  const Chip = components.MultiValueChip ?? DefaultMultiValueChip;
@@ -13863,6 +13908,7 @@ function DefaultControl(props) {
13863
13908
  clearLabel,
13864
13909
  hideIndicator,
13865
13910
  autoFocus,
13911
+ leftIcon,
13866
13912
  leadingContent: isMulti ? selectedOptions.map((option) => /* @__PURE__ */ (0, import_jsx_runtime154.jsx)(
13867
13913
  Chip,
13868
13914
  {
@@ -13893,7 +13939,8 @@ function StaticControl(props) {
13893
13939
  disabled,
13894
13940
  valueLabel,
13895
13941
  placeholder,
13896
- onContainerClick
13942
+ onContainerClick,
13943
+ leftIcon
13897
13944
  } = props;
13898
13945
  return /* @__PURE__ */ (0, import_jsx_runtime155.jsx)(
13899
13946
  SelectTrigger,
@@ -13911,6 +13958,7 @@ function StaticControl(props) {
13911
13958
  invalid,
13912
13959
  placeholder,
13913
13960
  valueLabel,
13961
+ leftIcon,
13914
13962
  onClick: onContainerClick,
13915
13963
  onKeyDown: () => void 0
13916
13964
  }
@@ -13942,7 +13990,8 @@ function DefaultMenuList(props) {
13942
13990
  components,
13943
13991
  inputValue,
13944
13992
  formatOptionLabel,
13945
- isOptionSelected: isOptionSelected2
13993
+ isOptionSelected: isOptionSelected2,
13994
+ onMenuScrollToBottom
13946
13995
  } = props;
13947
13996
  return /* @__PURE__ */ (0, import_jsx_runtime156.jsx)(
13948
13997
  SelectMenu,
@@ -13969,7 +14018,8 @@ function DefaultMenuList(props) {
13969
14018
  components,
13970
14019
  inputValue,
13971
14020
  formatOptionLabel,
13972
- isOptionSelected: isOptionSelected2
14021
+ isOptionSelected: isOptionSelected2,
14022
+ onMenuScrollToBottom
13973
14023
  }
13974
14024
  );
13975
14025
  }
@@ -14059,7 +14109,9 @@ function SelectInternal(props, ref) {
14059
14109
  components: userComponents,
14060
14110
  onInputChange,
14061
14111
  searchPosition = "trigger",
14062
- menuHeader
14112
+ menuHeader,
14113
+ onMenuScrollToBottom,
14114
+ leftIcon
14063
14115
  } = props;
14064
14116
  const isSearchInDropdown = searchPosition === "dropdown";
14065
14117
  const isMulti = props.isMulti === true;
@@ -14181,6 +14233,7 @@ function SelectInternal(props, ref) {
14181
14233
  clearLabel: isMulti ? t("clear_all") : t("clear"),
14182
14234
  hideIndicator,
14183
14235
  autoFocus,
14236
+ leftIcon,
14184
14237
  components
14185
14238
  }
14186
14239
  ),
@@ -14199,7 +14252,8 @@ function SelectInternal(props, ref) {
14199
14252
  legend: resolvedLabel,
14200
14253
  label: resolvedLabel,
14201
14254
  tooltip,
14202
- onClick: state.handleContainerClick
14255
+ onClick: state.handleContainerClick,
14256
+ labelClassName: leftIcon ? "pl-[28px]" : void 0
14203
14257
  }
14204
14258
  ),
14205
14259
  /* @__PURE__ */ (0, import_jsx_runtime158.jsxs)(
@@ -14250,7 +14304,8 @@ function SelectInternal(props, ref) {
14250
14304
  components,
14251
14305
  inputValue: state.inputValue,
14252
14306
  formatOptionLabel,
14253
- isOptionSelected: isOptionSelected2
14307
+ isOptionSelected: isOptionSelected2,
14308
+ onMenuScrollToBottom
14254
14309
  }
14255
14310
  ),
14256
14311
  state.canCreateNewOption && /* @__PURE__ */ (0, import_jsx_runtime158.jsx)(
@@ -14314,7 +14369,8 @@ function VirtualMenuList(props) {
14314
14369
  components,
14315
14370
  inputValue = "",
14316
14371
  formatOptionLabel,
14317
- isOptionSelected: isOptionSelectedProp
14372
+ isOptionSelected: isOptionSelectedProp,
14373
+ onMenuScrollToBottom
14318
14374
  } = props;
14319
14375
  const {
14320
14376
  canLoadMore,
@@ -14362,6 +14418,19 @@ function VirtualMenuList(props) {
14362
14418
  const lastOptionIndex = options.length - 1;
14363
14419
  const emptyMessage = noOptionsMessage?.() ?? t("no_options");
14364
14420
  const isOptionSelected2 = (option) => isOptionSelectedProp ? isOptionSelectedProp(option, selectedOptions) : selectedOptions.some((s) => s.value === option.value);
14421
+ const wasAtBottomRef = React51.useRef(false);
14422
+ const handleScroll = React51.useCallback(
14423
+ (event) => {
14424
+ if (!onMenuScrollToBottom) return;
14425
+ const target = event.currentTarget;
14426
+ const atBottom = target.scrollHeight - target.scrollTop - target.clientHeight <= 1;
14427
+ if (atBottom && !wasAtBottomRef.current) {
14428
+ onMenuScrollToBottom(event);
14429
+ }
14430
+ wasAtBottomRef.current = atBottom;
14431
+ },
14432
+ [onMenuScrollToBottom]
14433
+ );
14365
14434
  if (options.length === 0) {
14366
14435
  return /* @__PURE__ */ (0, import_jsx_runtime159.jsx)("div", { className: "min-h-[75px] px-4 pb-[19px] pt-[17px]", children: isLoadingMore ? /* @__PURE__ */ (0, import_jsx_runtime159.jsxs)(
14367
14436
  "div",
@@ -14390,6 +14459,7 @@ function VirtualMenuList(props) {
14390
14459
  ref: scrollRef,
14391
14460
  className: cn("overflow-y-auto", menuClassName),
14392
14461
  style: { height: `${measuredListHeight}px` },
14462
+ onScroll: onMenuScrollToBottom ? handleScroll : void 0,
14393
14463
  children: /* @__PURE__ */ (0, import_jsx_runtime159.jsx)(
14394
14464
  "div",
14395
14465
  {
@@ -14871,7 +14941,6 @@ function SelectCheckboxOption(props) {
14871
14941
  isSelected,
14872
14942
  isHighlighted,
14873
14943
  isDisabled,
14874
- isLast,
14875
14944
  id,
14876
14945
  onClick,
14877
14946
  onHover,
@@ -14891,11 +14960,11 @@ function SelectCheckboxOption(props) {
14891
14960
  onClick: () => onClick(option),
14892
14961
  onMouseMove: () => onHover(index),
14893
14962
  className: cn(
14894
- "flex w-full items-center gap-3 border-0 border-b border-[#f2f4f8] bg-white px-4 py-[14px] text-left text-[16px] font-medium leading-5 text-[var(--chekin-color-brand-navy)] outline-none transition-colors",
14895
- isLast && "border-b-transparent",
14963
+ "flex w-full items-center gap-3 rounded-md border-0 bg-transparent px-3 py-2 text-left text-[15px] font-medium leading-5 text-[var(--chekin-color-brand-navy)] outline-none transition-colors duration-100",
14964
+ !isDisabled && "cursor-pointer hover:bg-[var(--chekin-color-surface-pressed)]",
14896
14965
  isHighlighted && !isDisabled && "bg-[var(--chekin-color-surface-pressed)]",
14897
- isSelected && "font-bold",
14898
- isDisabled && "cursor-default opacity-40"
14966
+ isSelected && "bg-[var(--chekin-color-surface-autocomplete)] font-semibold text-[var(--chekin-color-brand-blue)]",
14967
+ isDisabled && "cursor-not-allowed text-[var(--chekin-color-gray-2)]"
14899
14968
  ),
14900
14969
  children: [
14901
14970
  /* @__PURE__ */ (0, import_jsx_runtime167.jsx)(
@@ -14908,9 +14977,9 @@ function SelectCheckboxOption(props) {
14908
14977
  className: "pointer-events-none shrink-0"
14909
14978
  }
14910
14979
  ),
14911
- /* @__PURE__ */ (0, import_jsx_runtime167.jsxs)("span", { className: "flex min-w-0 flex-1 items-start justify-between gap-2", children: [
14980
+ /* @__PURE__ */ (0, import_jsx_runtime167.jsxs)("span", { className: "flex min-w-0 flex-1 items-center justify-between gap-2", children: [
14912
14981
  /* @__PURE__ */ (0, import_jsx_runtime167.jsx)("span", { className: "block break-words", children: option.label }),
14913
- option.description && /* @__PURE__ */ (0, import_jsx_runtime167.jsx)("span", { className: "shrink-0 text-[12px] font-bold italic text-[#777e91]", children: option.description })
14982
+ option.description && /* @__PURE__ */ (0, import_jsx_runtime167.jsx)("span", { className: "shrink-0 text-[12px] font-medium italic text-[var(--chekin-color-gray-1)]", children: option.description })
14914
14983
  ] })
14915
14984
  ]
14916
14985
  }
@@ -14918,7 +14987,7 @@ function SelectCheckboxOption(props) {
14918
14987
  }
14919
14988
 
14920
14989
  // src/dashboard/select-checkboxes/CountTrigger.tsx
14921
- var import_lucide_react47 = require("lucide-react");
14990
+ var import_lucide_react48 = require("lucide-react");
14922
14991
  var import_react_i18next36 = require("react-i18next");
14923
14992
  var import_jsx_runtime168 = require("react/jsx-runtime");
14924
14993
  function createCountTrigger(opts) {
@@ -14939,7 +15008,8 @@ function createCountTrigger(opts) {
14939
15008
  disabled,
14940
15009
  placeholder,
14941
15010
  selectedOptions,
14942
- onContainerClick
15011
+ onContainerClick,
15012
+ leftIcon
14943
15013
  } = props;
14944
15014
  const count = selectedOptions.length;
14945
15015
  const total = totalCount ?? count;
@@ -14961,15 +15031,17 @@ function createCountTrigger(opts) {
14961
15031
  disabled: isBlocked,
14962
15032
  onClick: onContainerClick,
14963
15033
  className: cn(
14964
- "relative m-0 box-border flex h-12 w-full cursor-pointer items-center justify-between gap-2 rounded-[6px] border-0 px-4 text-left text-[16px] font-medium leading-5 outline-none transition-colors duration-200",
15034
+ "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",
15035
+ leftIcon ? "pl-10" : "pl-4",
14965
15036
  isEmpty ? "bg-[var(--empty-field-background)] text-[var(--chekin-color-gray-1)]" : "bg-transparent text-[var(--chekin-color-brand-navy)]",
14966
15037
  disabled && !loading && "cursor-not-allowed opacity-50",
14967
15038
  loading && "!cursor-progress"
14968
15039
  ),
14969
15040
  children: [
15041
+ leftIcon && /* @__PURE__ */ (0, import_jsx_runtime168.jsx)("span", { className: "pointer-events-none absolute left-0 top-0 flex h-full max-w-10 items-center justify-center text-[var(--chekin-color-gray-2)]", children: /* @__PURE__ */ (0, import_jsx_runtime168.jsx)("span", { className: "flex h-full w-10 items-center justify-center", children: leftIcon }) }),
14970
15042
  /* @__PURE__ */ (0, import_jsx_runtime168.jsx)("span", { id: valueId, className: "block min-w-0 flex-1 truncate text-left", children: display }),
14971
15043
  /* @__PURE__ */ (0, import_jsx_runtime168.jsx)("span", { className: "pointer-events-none flex items-center gap-2 text-[var(--chekin-color-gray-2)]", children: /* @__PURE__ */ (0, import_jsx_runtime168.jsx)(
14972
- import_lucide_react47.ChevronDown,
15044
+ import_lucide_react48.ChevronDown,
14973
15045
  {
14974
15046
  size: 16,
14975
15047
  className: cn(
@@ -15355,7 +15427,7 @@ var Textarea = React61.forwardRef(function Textarea2({
15355
15427
 
15356
15428
  // src/dashboard/datepicker/Datepicker.tsx
15357
15429
  var React63 = __toESM(require("react"), 1);
15358
- var import_lucide_react48 = require("lucide-react");
15430
+ var import_lucide_react49 = require("lucide-react");
15359
15431
  var import_react_i18next39 = require("react-i18next");
15360
15432
 
15361
15433
  // src/airbnb-fields/datepicker/useDatePickerWheel.ts
@@ -16104,7 +16176,11 @@ var Datepicker = React63.forwardRef(
16104
16176
  const [monthInputValue, setMonthInputValue] = React63.useState("");
16105
16177
  const [monthHighlightIndex, setMonthHighlightIndex] = React63.useState(-1);
16106
16178
  const isMobile3 = useIsMobile();
16107
- React63.useImperativeHandle(ref, () => dayInputRef.current, []);
16179
+ React63.useImperativeHandle(
16180
+ ref,
16181
+ () => dayInputRef.current ?? mobileTriggerRef.current,
16182
+ [isMobile3]
16183
+ );
16108
16184
  React63.useEffect(() => {
16109
16185
  if (!isControlled) return;
16110
16186
  const next = partsFromDate(value ?? null);
@@ -16358,7 +16434,7 @@ var Datepicker = React63.forwardRef(
16358
16434
  children: [
16359
16435
  /* @__PURE__ */ (0, import_jsx_runtime174.jsx)("span", { className: "block min-w-0 flex-1 truncate text-left", children: triggerText ?? (isWheelOpen ? mobilePlaceholder : null) }),
16360
16436
  /* @__PURE__ */ (0, import_jsx_runtime174.jsx)("span", { className: "pointer-events-none flex items-center gap-2 text-[var(--chekin-color-gray-2)]", children: /* @__PURE__ */ (0, import_jsx_runtime174.jsx)(
16361
- import_lucide_react48.ChevronDown,
16437
+ import_lucide_react49.ChevronDown,
16362
16438
  {
16363
16439
  size: 16,
16364
16440
  className: cn(
@@ -16443,7 +16519,7 @@ var Datepicker = React63.forwardRef(
16443
16519
  }
16444
16520
  ),
16445
16521
  /* @__PURE__ */ (0, import_jsx_runtime174.jsx)(
16446
- import_lucide_react48.ChevronDown,
16522
+ import_lucide_react49.ChevronDown,
16447
16523
  {
16448
16524
  size: 14,
16449
16525
  onMouseDown: (event) => {
@@ -16768,7 +16844,7 @@ function resolveRangeSelection({
16768
16844
  }
16769
16845
 
16770
16846
  // src/dashboard/date-range-picker/components/DateRangeInputs.tsx
16771
- var import_lucide_react49 = require("lucide-react");
16847
+ var import_lucide_react50 = require("lucide-react");
16772
16848
  var import_jsx_runtime175 = require("react/jsx-runtime");
16773
16849
  var DEFAULT_PLACEHOLDER = "00-00-0000";
16774
16850
  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)]";
@@ -16888,7 +16964,7 @@ function DateRangeInputs({
16888
16964
  onClick: onReset,
16889
16965
  className: iconButtonClass,
16890
16966
  "aria-label": clearLabel,
16891
- children: /* @__PURE__ */ (0, import_jsx_runtime175.jsx)(import_lucide_react49.SquareX, { size: 16, fill: "#9696b9", color: "#f8f8f8", strokeWidth: 1.8 })
16967
+ children: /* @__PURE__ */ (0, import_jsx_runtime175.jsx)(import_lucide_react50.SquareX, { size: 16, fill: "#9696b9", color: "#f8f8f8", strokeWidth: 1.8 })
16892
16968
  }
16893
16969
  ),
16894
16970
  !readOnly && !hideCalendarIcon && /* @__PURE__ */ (0, import_jsx_runtime175.jsx)(
@@ -16903,7 +16979,7 @@ function DateRangeInputs({
16903
16979
  focusedInput !== null || isOpen ? "text-[var(--chekin-color-brand-blue)]" : "text-[var(--chekin-color-gray-2)]"
16904
16980
  ),
16905
16981
  "aria-label": openCalendarLabel,
16906
- children: /* @__PURE__ */ (0, import_jsx_runtime175.jsx)(import_lucide_react49.CalendarDays, { size: 18 })
16982
+ children: /* @__PURE__ */ (0, import_jsx_runtime175.jsx)(import_lucide_react50.CalendarDays, { size: 18 })
16907
16983
  }
16908
16984
  )
16909
16985
  ] })
@@ -17449,7 +17525,7 @@ var TimePicker = React69.forwardRef(function TimePicker2({ format: formatName =
17449
17525
 
17450
17526
  // src/dashboard/file-input/FileInput.tsx
17451
17527
  var React70 = __toESM(require("react"), 1);
17452
- var import_lucide_react50 = require("lucide-react");
17528
+ var import_lucide_react51 = require("lucide-react");
17453
17529
  var import_react_i18next42 = require("react-i18next");
17454
17530
  var import_jsx_runtime180 = require("react/jsx-runtime");
17455
17531
  function defaultDownload(url) {
@@ -17561,7 +17637,7 @@ var FileInput = React70.forwardRef(function FileInput2({
17561
17637
  className: "inline-flex items-center gap-[7px] truncate border-0 bg-transparent p-0 text-[14px] font-medium text-[var(--chekin-color-brand-navy)] outline-none",
17562
17638
  children: [
17563
17639
  /* @__PURE__ */ (0, import_jsx_runtime180.jsx)("span", { className: "truncate", children: resolvedDownloadLabel }),
17564
- /* @__PURE__ */ (0, import_jsx_runtime180.jsx)(import_lucide_react50.Download, { size: 15 })
17640
+ /* @__PURE__ */ (0, import_jsx_runtime180.jsx)(import_lucide_react51.Download, { size: 15 })
17565
17641
  ]
17566
17642
  }
17567
17643
  ) : /* @__PURE__ */ (0, import_jsx_runtime180.jsx)("span", { className: "truncate text-[14px] font-medium text-[var(--chekin-color-brand-navy)]", children: value.name }),
@@ -17573,13 +17649,13 @@ var FileInput = React70.forwardRef(function FileInput2({
17573
17649
  onClick: handleClear,
17574
17650
  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]",
17575
17651
  "aria-label": t("remove_file"),
17576
- children: /* @__PURE__ */ (0, import_jsx_runtime180.jsx)(import_lucide_react50.SquareX, { size: 15, fill: "#9696b9", color: "#f8f8f8", strokeWidth: 1.8 })
17652
+ children: /* @__PURE__ */ (0, import_jsx_runtime180.jsx)(import_lucide_react51.SquareX, { size: 15, fill: "#9696b9", color: "#f8f8f8", strokeWidth: 1.8 })
17577
17653
  }
17578
17654
  )
17579
17655
  ]
17580
17656
  }
17581
17657
  ) : /* @__PURE__ */ (0, import_jsx_runtime180.jsx)("span", { className: "block min-w-0 flex-1 truncate text-left text-[var(--chekin-color-gray-1)]", children: placeholder ?? "" }),
17582
- /* @__PURE__ */ (0, import_jsx_runtime180.jsx)("span", { className: "ml-auto flex items-center gap-2 text-[var(--chekin-color-gray-2)]", children: /* @__PURE__ */ (0, import_jsx_runtime180.jsx)(import_lucide_react50.Paperclip, { size: 20 }) })
17658
+ /* @__PURE__ */ (0, import_jsx_runtime180.jsx)("span", { className: "ml-auto flex items-center gap-2 text-[var(--chekin-color-gray-2)]", children: /* @__PURE__ */ (0, import_jsx_runtime180.jsx)(import_lucide_react51.Paperclip, { size: 20 }) })
17583
17659
  ]
17584
17660
  }
17585
17661
  ),
@@ -17620,78 +17696,92 @@ var FileInput = React70.forwardRef(function FileInput2({
17620
17696
  // src/dashboard/select-icons-box/SelectIconsBox.tsx
17621
17697
  var React71 = __toESM(require("react"), 1);
17622
17698
  var import_jsx_runtime181 = require("react/jsx-runtime");
17623
- function SelectIconsBox({
17624
- children,
17625
- icons,
17626
- renderIcon,
17627
- onSelect,
17628
- columns = 4,
17629
- iconsColor = "#6B6B95",
17630
- isOpen: controlledOpen,
17631
- defaultOpen = false,
17632
- onOpenChange,
17633
- position = "left",
17634
- className,
17635
- boxClassName
17636
- }) {
17637
- const containerRef = React71.useRef(null);
17638
- const isControlled = controlledOpen !== void 0;
17639
- const [internalOpen, setInternalOpen] = React71.useState(defaultOpen);
17640
- const isOpen = isControlled ? controlledOpen : internalOpen;
17641
- const setOpen = (next) => {
17642
- if (!isControlled) setInternalOpen(next);
17643
- onOpenChange?.(next);
17644
- };
17645
- const handleToggle = (event) => {
17646
- if (event.target.closest("[data-icon-box-item]")) return;
17647
- setOpen(!isOpen);
17648
- };
17649
- useOutsideClick({
17650
- elementRef: containerRef,
17651
- onOutsideClick: () => setOpen(false),
17652
- isDisabled: !isOpen
17653
- });
17654
- const handlePick = (iconName) => {
17655
- onSelect(iconName);
17656
- setOpen(false);
17657
- };
17658
- return /* @__PURE__ */ (0, import_jsx_runtime181.jsxs)(
17659
- "div",
17660
- {
17661
- ref: containerRef,
17662
- onClick: handleToggle,
17663
- className: cn("relative inline-block", className),
17664
- children: [
17665
- children,
17666
- isOpen && /* @__PURE__ */ (0, import_jsx_runtime181.jsx)(
17667
- "div",
17668
- {
17669
- className: cn(
17670
- "absolute top-full z-30 mt-1 grid max-h-[192px] overflow-y-auto rounded-[6px] bg-white p-6 shadow-[0_15px_15px_0_rgba(33,72,255,0.2)]",
17671
- position === "left" && "left-0",
17672
- position === "right" && "right-0",
17673
- position === "center" && "left-1/2 -translate-x-1/2",
17674
- boxClassName
17675
- ),
17676
- style: { gridTemplateColumns: `repeat(${columns}, minmax(0, 1fr))` },
17677
- children: icons.map((iconName) => /* @__PURE__ */ (0, import_jsx_runtime181.jsx)(
17678
- "button",
17679
- {
17680
- type: "button",
17681
- "data-icon-box-item": true,
17682
- onClick: () => handlePick(iconName),
17683
- className: "relative flex h-10 w-10 cursor-pointer items-center justify-center rounded-full border-0 bg-transparent p-0 outline-none hover:bg-[#f4f6f8]",
17684
- "aria-label": iconName,
17685
- children: renderIcon(iconName, iconsColor)
17686
- },
17687
- iconName
17688
- ))
17689
- }
17690
- )
17691
- ]
17692
- }
17693
- );
17694
- }
17699
+ var FOCUSABLE_TRIGGER_SELECTOR2 = 'input:not([type="hidden"]):not([disabled]):not([readonly]), button:not([disabled])';
17700
+ var SelectIconsBox = React71.forwardRef(
17701
+ function SelectIconsBox2({
17702
+ children,
17703
+ icons,
17704
+ renderIcon,
17705
+ onSelect,
17706
+ columns = 4,
17707
+ iconsColor = "#6B6B95",
17708
+ isOpen: controlledOpen,
17709
+ defaultOpen = false,
17710
+ onOpenChange,
17711
+ position = "left",
17712
+ className,
17713
+ boxClassName
17714
+ }, ref) {
17715
+ const containerRef = React71.useRef(null);
17716
+ const combinedContainerRef = useCombinedRef(containerRef, ref);
17717
+ const isControlled = controlledOpen !== void 0;
17718
+ const [internalOpen, setInternalOpen] = React71.useState(defaultOpen);
17719
+ const isOpen = isControlled ? controlledOpen : internalOpen;
17720
+ const setOpen = (next) => {
17721
+ if (!isControlled) setInternalOpen(next);
17722
+ onOpenChange?.(next);
17723
+ };
17724
+ const handleToggle = (event) => {
17725
+ if (event.target.closest("[data-icon-box-item]")) return;
17726
+ setOpen(!isOpen);
17727
+ };
17728
+ useOutsideClick({
17729
+ elementRef: containerRef,
17730
+ onOutsideClick: () => setOpen(false),
17731
+ isDisabled: !isOpen
17732
+ });
17733
+ const handlePick = (iconName) => {
17734
+ onSelect(iconName);
17735
+ setOpen(false);
17736
+ };
17737
+ const handleContainerFocus = (event) => {
17738
+ if (event.target !== event.currentTarget) return;
17739
+ const focusable = event.currentTarget.querySelector(
17740
+ FOCUSABLE_TRIGGER_SELECTOR2
17741
+ );
17742
+ focusable?.focus();
17743
+ };
17744
+ return /* @__PURE__ */ (0, import_jsx_runtime181.jsxs)(
17745
+ "div",
17746
+ {
17747
+ ref: combinedContainerRef,
17748
+ tabIndex: -1,
17749
+ onFocus: handleContainerFocus,
17750
+ onClick: handleToggle,
17751
+ className: cn("relative inline-block outline-none", className),
17752
+ children: [
17753
+ children,
17754
+ isOpen && /* @__PURE__ */ (0, import_jsx_runtime181.jsx)(
17755
+ "div",
17756
+ {
17757
+ className: cn(
17758
+ "absolute top-full z-30 mt-1 grid max-h-[192px] overflow-y-auto rounded-[6px] bg-white p-6 shadow-[0_15px_15px_0_rgba(33,72,255,0.2)]",
17759
+ position === "left" && "left-0",
17760
+ position === "right" && "right-0",
17761
+ position === "center" && "left-1/2 -translate-x-1/2",
17762
+ boxClassName
17763
+ ),
17764
+ style: { gridTemplateColumns: `repeat(${columns}, minmax(0, 1fr))` },
17765
+ children: icons.map((iconName) => /* @__PURE__ */ (0, import_jsx_runtime181.jsx)(
17766
+ "button",
17767
+ {
17768
+ type: "button",
17769
+ "data-icon-box-item": true,
17770
+ onClick: () => handlePick(iconName),
17771
+ className: "relative flex h-10 w-10 cursor-pointer items-center justify-center rounded-full border-0 bg-transparent p-0 outline-none hover:bg-[#f4f6f8]",
17772
+ "aria-label": iconName,
17773
+ children: renderIcon(iconName, iconsColor)
17774
+ },
17775
+ iconName
17776
+ ))
17777
+ }
17778
+ )
17779
+ ]
17780
+ }
17781
+ );
17782
+ }
17783
+ );
17784
+ SelectIconsBox.displayName = "SelectIconsBox";
17695
17785
 
17696
17786
  // src/lib/breakpoints.ts
17697
17787
  var DEVICE_BREAKPOINTS = {
@@ -17818,11 +17908,11 @@ LegacyTextarea.displayName = "LegacyTextarea";
17818
17908
 
17819
17909
  // src/airbnb-fields/datepicker/DatePicker.tsx
17820
17910
  var React73 = __toESM(require("react"), 1);
17821
- var import_lucide_react52 = require("lucide-react");
17911
+ var import_lucide_react53 = require("lucide-react");
17822
17912
 
17823
17913
  // src/airbnb-fields/field-trigger/FieldTrigger.tsx
17824
17914
  var React72 = __toESM(require("react"), 1);
17825
- var import_lucide_react51 = require("lucide-react");
17915
+ var import_lucide_react52 = require("lucide-react");
17826
17916
  var import_react_i18next43 = require("react-i18next");
17827
17917
  var import_jsx_runtime184 = require("react/jsx-runtime");
17828
17918
  var AirbnbFieldTrigger = React72.forwardRef(
@@ -17888,7 +17978,7 @@ var AirbnbFieldTrigger = React72.forwardRef(
17888
17978
  const resolvedTrailingAdornment = loading || trailingAdornment ? /* @__PURE__ */ (0, import_jsx_runtime184.jsxs)("span", { className: "flex items-center gap-2", children: [
17889
17979
  trailingAdornment,
17890
17980
  loading && /* @__PURE__ */ (0, import_jsx_runtime184.jsx)(
17891
- import_lucide_react51.Loader2,
17981
+ import_lucide_react52.Loader2,
17892
17982
  {
17893
17983
  "aria-hidden": "true",
17894
17984
  className: "h-5 w-5 animate-spin text-[var(--chekin-color-gray-1)]"
@@ -18149,7 +18239,7 @@ var AirbnbDatePicker = React73.forwardRef(
18149
18239
  onClick: handleTriggerClick,
18150
18240
  onKeyDown: handleTriggerKeyDown,
18151
18241
  onBlur,
18152
- trailingAdornment: /* @__PURE__ */ (0, import_jsx_runtime185.jsx)(import_lucide_react52.Calendar, { className: "h-5 w-5 text-[#1F1F1B]", strokeWidth: 2 })
18242
+ trailingAdornment: /* @__PURE__ */ (0, import_jsx_runtime185.jsx)(import_lucide_react53.Calendar, { className: "h-5 w-5 text-[#1F1F1B]", strokeWidth: 2 })
18153
18243
  }
18154
18244
  ),
18155
18245
  /* @__PURE__ */ (0, import_jsx_runtime185.jsx)(
@@ -18339,7 +18429,7 @@ AirbnbInput.displayName = "AirbnbInput";
18339
18429
 
18340
18430
  // src/airbnb-fields/phone-field/PhoneField.tsx
18341
18431
  var React80 = __toESM(require("react"), 1);
18342
- var import_lucide_react54 = require("lucide-react");
18432
+ var import_lucide_react55 = require("lucide-react");
18343
18433
 
18344
18434
  // src/airbnb-fields/select/Select.tsx
18345
18435
  var React79 = __toESM(require("react"), 1);
@@ -18688,7 +18778,7 @@ function AirbnbSelectMobileContent({
18688
18778
 
18689
18779
  // src/airbnb-fields/select/SelectTrigger.tsx
18690
18780
  var React75 = __toESM(require("react"), 1);
18691
- var import_lucide_react53 = require("lucide-react");
18781
+ var import_lucide_react54 = require("lucide-react");
18692
18782
  var import_jsx_runtime191 = require("react/jsx-runtime");
18693
18783
  var AirbnbSelectTrigger = React75.forwardRef(
18694
18784
  ({
@@ -18745,7 +18835,7 @@ var AirbnbSelectTrigger = React75.forwardRef(
18745
18835
  onKeyDown,
18746
18836
  onBlur,
18747
18837
  trailingAdornment: /* @__PURE__ */ (0, import_jsx_runtime191.jsx)(
18748
- import_lucide_react53.ChevronDown,
18838
+ import_lucide_react54.ChevronDown,
18749
18839
  {
18750
18840
  className: open ? "h-6 w-6 rotate-180 text-[#1F1F1B] transition-transform" : "h-6 w-6 text-[#1F1F1B] transition-transform"
18751
18841
  }
@@ -19532,7 +19622,7 @@ var AirbnbPhoneField = React80.forwardRef(
19532
19622
  children: [
19533
19623
  /* @__PURE__ */ (0, import_jsx_runtime193.jsx)("span", { children: valueLabel ?? codePlaceholder }),
19534
19624
  /* @__PURE__ */ (0, import_jsx_runtime193.jsx)(
19535
- import_lucide_react54.ChevronDown,
19625
+ import_lucide_react55.ChevronDown,
19536
19626
  {
19537
19627
  className: cn("h-5 w-5 transition-transform", open ? "rotate-180" : ""),
19538
19628
  strokeWidth: 2
@@ -19583,7 +19673,7 @@ AirbnbPhoneField.displayName = "AirbnbPhoneField";
19583
19673
 
19584
19674
  // src/airbnb-fields/searchable-select/SearchableSelect.tsx
19585
19675
  var React81 = __toESM(require("react"), 1);
19586
- var import_lucide_react55 = require("lucide-react");
19676
+ var import_lucide_react56 = require("lucide-react");
19587
19677
  var import_react_virtual3 = require("@tanstack/react-virtual");
19588
19678
  var import_react90 = require("react");
19589
19679
  var import_jsx_runtime194 = require("react/jsx-runtime");
@@ -19821,7 +19911,7 @@ var AirbnbSearchableSelectInternal = ({
19821
19911
  onKeyDown: handleTriggerKeyDown,
19822
19912
  onBlur,
19823
19913
  trailingAdornment: /* @__PURE__ */ (0, import_jsx_runtime194.jsx)(
19824
- import_lucide_react55.ChevronDown,
19914
+ import_lucide_react56.ChevronDown,
19825
19915
  {
19826
19916
  className: cn(
19827
19917
  "h-6 w-6 text-[#1F1F1B] transition-transform",
@@ -19919,7 +20009,7 @@ function AirbnbSearchableSelectContent({
19919
20009
  return /* @__PURE__ */ (0, import_jsx_runtime194.jsxs)("div", { className: "p-2", children: [
19920
20010
  /* @__PURE__ */ (0, import_jsx_runtime194.jsxs)("div", { className: "relative mb-2", children: [
19921
20011
  /* @__PURE__ */ (0, import_jsx_runtime194.jsx)(
19922
- import_lucide_react55.Search,
20012
+ import_lucide_react56.Search,
19923
20013
  {
19924
20014
  "aria-hidden": "true",
19925
20015
  className: "absolute left-4 top-1/2 h-5 w-5 -translate-y-1/2 text-[#9696B9]"
@@ -20029,13 +20119,13 @@ function getNextEnabledIndex(options, startIndex, step) {
20029
20119
  // src/airbnb-fields/search-input/SearchInput.tsx
20030
20120
  var React82 = __toESM(require("react"), 1);
20031
20121
  var import_react_i18next44 = require("react-i18next");
20032
- var import_lucide_react56 = require("lucide-react");
20122
+ var import_lucide_react57 = require("lucide-react");
20033
20123
  var import_jsx_runtime195 = require("react/jsx-runtime");
20034
20124
  var AirbnbSearchInput = React82.forwardRef(({ onReset, placeholder, wrapperClassName, ...props }, ref) => {
20035
20125
  const { t } = (0, import_react_i18next44.useTranslation)();
20036
20126
  const placeholderText = placeholder || t("search_property") + "...";
20037
20127
  return /* @__PURE__ */ (0, import_jsx_runtime195.jsxs)("div", { className: cn("input-wrapper relative", wrapperClassName), children: [
20038
- /* @__PURE__ */ (0, import_jsx_runtime195.jsx)(import_lucide_react56.Search, { className: "absolute left-4 top-1/2 h-5 w-5 -translate-y-1/2 transform text-[#9696B9]" }),
20128
+ /* @__PURE__ */ (0, import_jsx_runtime195.jsx)(import_lucide_react57.Search, { className: "absolute left-4 top-1/2 h-5 w-5 -translate-y-1/2 transform text-[#9696B9]" }),
20039
20129
  /* @__PURE__ */ (0, import_jsx_runtime195.jsx)(
20040
20130
  "input",
20041
20131
  {
@@ -20061,7 +20151,7 @@ var AirbnbSearchInput = React82.forwardRef(({ onReset, placeholder, wrapperClass
20061
20151
  variant: "ghost",
20062
20152
  onClick: onReset,
20063
20153
  className: "absolute right-0 top-1/2 h-5 w-5 -translate-y-1/2 transform text-[#9696B9]",
20064
- children: /* @__PURE__ */ (0, import_jsx_runtime195.jsx)(import_lucide_react56.X, { className: "h-5 w-5" })
20154
+ children: /* @__PURE__ */ (0, import_jsx_runtime195.jsx)(import_lucide_react57.X, { className: "h-5 w-5" })
20065
20155
  }
20066
20156
  )
20067
20157
  ] });