@chekinapp/ui 0.0.113 → 0.0.114
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 +212 -138
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +4 -2
- package/dist/index.d.ts +4 -2
- package/dist/index.js +190 -116
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
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
|
-
|
|
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
|
|
12934
|
-
|
|
12935
|
-
isHighlighted && !
|
|
12936
|
-
isSelected && "
|
|
12937
|
-
isDisabled && "cursor-
|
|
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-
|
|
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
|
-
"
|
|
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: "
|
|
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-
|
|
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
|
|
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-[
|
|
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
|
-
|
|
13151
|
+
import_lucide_react44.Search,
|
|
13114
13152
|
{
|
|
13115
13153
|
"aria-hidden": "true",
|
|
13116
|
-
className: "pointer-events-none absolute left-
|
|
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
|
|
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
|
|
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,
|
|
@@ -13183,7 +13221,7 @@ function SelectTrigger({
|
|
|
13183
13221
|
children: [
|
|
13184
13222
|
/* @__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
13223
|
/* @__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
|
-
|
|
13224
|
+
import_lucide_react45.ChevronDown,
|
|
13187
13225
|
{
|
|
13188
13226
|
size: 16,
|
|
13189
13227
|
className: cn(
|
|
@@ -13198,7 +13236,7 @@ function SelectTrigger({
|
|
|
13198
13236
|
}
|
|
13199
13237
|
|
|
13200
13238
|
// src/dashboard/_select-internals/ComboboxTrigger.tsx
|
|
13201
|
-
var
|
|
13239
|
+
var import_lucide_react46 = require("lucide-react");
|
|
13202
13240
|
var import_react_i18next30 = require("react-i18next");
|
|
13203
13241
|
var import_jsx_runtime152 = require("react/jsx-runtime");
|
|
13204
13242
|
function ComboboxTrigger({
|
|
@@ -13307,7 +13345,7 @@ function ComboboxTrigger({
|
|
|
13307
13345
|
onClick: onClear,
|
|
13308
13346
|
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
13347
|
"aria-label": clearLabel,
|
|
13310
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime152.jsx)(
|
|
13348
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime152.jsx)(import_lucide_react46.SquareX, { size: 15, fill: "#9696b9", color: "#f8f8f8", strokeWidth: 1.8 })
|
|
13311
13349
|
}
|
|
13312
13350
|
),
|
|
13313
13351
|
!hideIndicator && /* @__PURE__ */ (0, import_jsx_runtime152.jsx)(
|
|
@@ -13763,7 +13801,7 @@ function useSelectState(params) {
|
|
|
13763
13801
|
}
|
|
13764
13802
|
|
|
13765
13803
|
// src/dashboard/_select-internals/slots/DefaultMultiValueChip.tsx
|
|
13766
|
-
var
|
|
13804
|
+
var import_lucide_react47 = require("lucide-react");
|
|
13767
13805
|
var import_react_i18next31 = require("react-i18next");
|
|
13768
13806
|
var import_jsx_runtime153 = require("react/jsx-runtime");
|
|
13769
13807
|
function DefaultMultiValueChip({
|
|
@@ -13773,8 +13811,8 @@ function DefaultMultiValueChip({
|
|
|
13773
13811
|
}) {
|
|
13774
13812
|
const { t } = (0, import_react_i18next31.useTranslation)();
|
|
13775
13813
|
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-
|
|
13777
|
-
/* @__PURE__ */ (0, import_jsx_runtime153.jsx)("span", { className: "whitespace-nowrap", children: option.label }),
|
|
13814
|
+
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: [
|
|
13815
|
+
/* @__PURE__ */ (0, import_jsx_runtime153.jsx)("span", { className: "whitespace-nowrap leading-5", children: option.label }),
|
|
13778
13816
|
!readOnly && /* @__PURE__ */ (0, import_jsx_runtime153.jsx)(
|
|
13779
13817
|
"button",
|
|
13780
13818
|
{
|
|
@@ -13783,9 +13821,9 @@ function DefaultMultiValueChip({
|
|
|
13783
13821
|
event.stopPropagation();
|
|
13784
13822
|
onRemove();
|
|
13785
13823
|
},
|
|
13786
|
-
className: "flex h-
|
|
13824
|
+
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
13825
|
"aria-label": t("remove_item", { label: labelText }),
|
|
13788
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime153.jsx)(
|
|
13826
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime153.jsx)(import_lucide_react47.X, { size: 12, strokeWidth: 2.5 })
|
|
13789
13827
|
}
|
|
13790
13828
|
)
|
|
13791
13829
|
] });
|
|
@@ -13942,7 +13980,8 @@ function DefaultMenuList(props) {
|
|
|
13942
13980
|
components,
|
|
13943
13981
|
inputValue,
|
|
13944
13982
|
formatOptionLabel,
|
|
13945
|
-
isOptionSelected: isOptionSelected2
|
|
13983
|
+
isOptionSelected: isOptionSelected2,
|
|
13984
|
+
onMenuScrollToBottom
|
|
13946
13985
|
} = props;
|
|
13947
13986
|
return /* @__PURE__ */ (0, import_jsx_runtime156.jsx)(
|
|
13948
13987
|
SelectMenu,
|
|
@@ -13969,7 +14008,8 @@ function DefaultMenuList(props) {
|
|
|
13969
14008
|
components,
|
|
13970
14009
|
inputValue,
|
|
13971
14010
|
formatOptionLabel,
|
|
13972
|
-
isOptionSelected: isOptionSelected2
|
|
14011
|
+
isOptionSelected: isOptionSelected2,
|
|
14012
|
+
onMenuScrollToBottom
|
|
13973
14013
|
}
|
|
13974
14014
|
);
|
|
13975
14015
|
}
|
|
@@ -14059,7 +14099,8 @@ function SelectInternal(props, ref) {
|
|
|
14059
14099
|
components: userComponents,
|
|
14060
14100
|
onInputChange,
|
|
14061
14101
|
searchPosition = "trigger",
|
|
14062
|
-
menuHeader
|
|
14102
|
+
menuHeader,
|
|
14103
|
+
onMenuScrollToBottom
|
|
14063
14104
|
} = props;
|
|
14064
14105
|
const isSearchInDropdown = searchPosition === "dropdown";
|
|
14065
14106
|
const isMulti = props.isMulti === true;
|
|
@@ -14250,7 +14291,8 @@ function SelectInternal(props, ref) {
|
|
|
14250
14291
|
components,
|
|
14251
14292
|
inputValue: state.inputValue,
|
|
14252
14293
|
formatOptionLabel,
|
|
14253
|
-
isOptionSelected: isOptionSelected2
|
|
14294
|
+
isOptionSelected: isOptionSelected2,
|
|
14295
|
+
onMenuScrollToBottom
|
|
14254
14296
|
}
|
|
14255
14297
|
),
|
|
14256
14298
|
state.canCreateNewOption && /* @__PURE__ */ (0, import_jsx_runtime158.jsx)(
|
|
@@ -14314,7 +14356,8 @@ function VirtualMenuList(props) {
|
|
|
14314
14356
|
components,
|
|
14315
14357
|
inputValue = "",
|
|
14316
14358
|
formatOptionLabel,
|
|
14317
|
-
isOptionSelected: isOptionSelectedProp
|
|
14359
|
+
isOptionSelected: isOptionSelectedProp,
|
|
14360
|
+
onMenuScrollToBottom
|
|
14318
14361
|
} = props;
|
|
14319
14362
|
const {
|
|
14320
14363
|
canLoadMore,
|
|
@@ -14362,6 +14405,19 @@ function VirtualMenuList(props) {
|
|
|
14362
14405
|
const lastOptionIndex = options.length - 1;
|
|
14363
14406
|
const emptyMessage = noOptionsMessage?.() ?? t("no_options");
|
|
14364
14407
|
const isOptionSelected2 = (option) => isOptionSelectedProp ? isOptionSelectedProp(option, selectedOptions) : selectedOptions.some((s) => s.value === option.value);
|
|
14408
|
+
const wasAtBottomRef = React51.useRef(false);
|
|
14409
|
+
const handleScroll = React51.useCallback(
|
|
14410
|
+
(event) => {
|
|
14411
|
+
if (!onMenuScrollToBottom) return;
|
|
14412
|
+
const target = event.currentTarget;
|
|
14413
|
+
const atBottom = target.scrollHeight - target.scrollTop - target.clientHeight <= 1;
|
|
14414
|
+
if (atBottom && !wasAtBottomRef.current) {
|
|
14415
|
+
onMenuScrollToBottom(event);
|
|
14416
|
+
}
|
|
14417
|
+
wasAtBottomRef.current = atBottom;
|
|
14418
|
+
},
|
|
14419
|
+
[onMenuScrollToBottom]
|
|
14420
|
+
);
|
|
14365
14421
|
if (options.length === 0) {
|
|
14366
14422
|
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
14423
|
"div",
|
|
@@ -14390,6 +14446,7 @@ function VirtualMenuList(props) {
|
|
|
14390
14446
|
ref: scrollRef,
|
|
14391
14447
|
className: cn("overflow-y-auto", menuClassName),
|
|
14392
14448
|
style: { height: `${measuredListHeight}px` },
|
|
14449
|
+
onScroll: onMenuScrollToBottom ? handleScroll : void 0,
|
|
14393
14450
|
children: /* @__PURE__ */ (0, import_jsx_runtime159.jsx)(
|
|
14394
14451
|
"div",
|
|
14395
14452
|
{
|
|
@@ -14871,7 +14928,6 @@ function SelectCheckboxOption(props) {
|
|
|
14871
14928
|
isSelected,
|
|
14872
14929
|
isHighlighted,
|
|
14873
14930
|
isDisabled,
|
|
14874
|
-
isLast,
|
|
14875
14931
|
id,
|
|
14876
14932
|
onClick,
|
|
14877
14933
|
onHover,
|
|
@@ -14891,11 +14947,11 @@ function SelectCheckboxOption(props) {
|
|
|
14891
14947
|
onClick: () => onClick(option),
|
|
14892
14948
|
onMouseMove: () => onHover(index),
|
|
14893
14949
|
className: cn(
|
|
14894
|
-
"flex w-full items-center gap-3
|
|
14895
|
-
|
|
14950
|
+
"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",
|
|
14951
|
+
!isDisabled && "cursor-pointer hover:bg-[var(--chekin-color-surface-pressed)]",
|
|
14896
14952
|
isHighlighted && !isDisabled && "bg-[var(--chekin-color-surface-pressed)]",
|
|
14897
|
-
isSelected && "font-
|
|
14898
|
-
isDisabled && "cursor-
|
|
14953
|
+
isSelected && "bg-[var(--chekin-color-surface-autocomplete)] font-semibold text-[var(--chekin-color-brand-blue)]",
|
|
14954
|
+
isDisabled && "cursor-not-allowed text-[var(--chekin-color-gray-2)]"
|
|
14899
14955
|
),
|
|
14900
14956
|
children: [
|
|
14901
14957
|
/* @__PURE__ */ (0, import_jsx_runtime167.jsx)(
|
|
@@ -14908,9 +14964,9 @@ function SelectCheckboxOption(props) {
|
|
|
14908
14964
|
className: "pointer-events-none shrink-0"
|
|
14909
14965
|
}
|
|
14910
14966
|
),
|
|
14911
|
-
/* @__PURE__ */ (0, import_jsx_runtime167.jsxs)("span", { className: "flex min-w-0 flex-1 items-
|
|
14967
|
+
/* @__PURE__ */ (0, import_jsx_runtime167.jsxs)("span", { className: "flex min-w-0 flex-1 items-center justify-between gap-2", children: [
|
|
14912
14968
|
/* @__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-
|
|
14969
|
+
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
14970
|
] })
|
|
14915
14971
|
]
|
|
14916
14972
|
}
|
|
@@ -14918,7 +14974,7 @@ function SelectCheckboxOption(props) {
|
|
|
14918
14974
|
}
|
|
14919
14975
|
|
|
14920
14976
|
// src/dashboard/select-checkboxes/CountTrigger.tsx
|
|
14921
|
-
var
|
|
14977
|
+
var import_lucide_react48 = require("lucide-react");
|
|
14922
14978
|
var import_react_i18next36 = require("react-i18next");
|
|
14923
14979
|
var import_jsx_runtime168 = require("react/jsx-runtime");
|
|
14924
14980
|
function createCountTrigger(opts) {
|
|
@@ -14969,7 +15025,7 @@ function createCountTrigger(opts) {
|
|
|
14969
15025
|
children: [
|
|
14970
15026
|
/* @__PURE__ */ (0, import_jsx_runtime168.jsx)("span", { id: valueId, className: "block min-w-0 flex-1 truncate text-left", children: display }),
|
|
14971
15027
|
/* @__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
|
-
|
|
15028
|
+
import_lucide_react48.ChevronDown,
|
|
14973
15029
|
{
|
|
14974
15030
|
size: 16,
|
|
14975
15031
|
className: cn(
|
|
@@ -15355,7 +15411,7 @@ var Textarea = React61.forwardRef(function Textarea2({
|
|
|
15355
15411
|
|
|
15356
15412
|
// src/dashboard/datepicker/Datepicker.tsx
|
|
15357
15413
|
var React63 = __toESM(require("react"), 1);
|
|
15358
|
-
var
|
|
15414
|
+
var import_lucide_react49 = require("lucide-react");
|
|
15359
15415
|
var import_react_i18next39 = require("react-i18next");
|
|
15360
15416
|
|
|
15361
15417
|
// src/airbnb-fields/datepicker/useDatePickerWheel.ts
|
|
@@ -16104,7 +16160,11 @@ var Datepicker = React63.forwardRef(
|
|
|
16104
16160
|
const [monthInputValue, setMonthInputValue] = React63.useState("");
|
|
16105
16161
|
const [monthHighlightIndex, setMonthHighlightIndex] = React63.useState(-1);
|
|
16106
16162
|
const isMobile3 = useIsMobile();
|
|
16107
|
-
React63.useImperativeHandle(
|
|
16163
|
+
React63.useImperativeHandle(
|
|
16164
|
+
ref,
|
|
16165
|
+
() => dayInputRef.current ?? mobileTriggerRef.current,
|
|
16166
|
+
[isMobile3]
|
|
16167
|
+
);
|
|
16108
16168
|
React63.useEffect(() => {
|
|
16109
16169
|
if (!isControlled) return;
|
|
16110
16170
|
const next = partsFromDate(value ?? null);
|
|
@@ -16358,7 +16418,7 @@ var Datepicker = React63.forwardRef(
|
|
|
16358
16418
|
children: [
|
|
16359
16419
|
/* @__PURE__ */ (0, import_jsx_runtime174.jsx)("span", { className: "block min-w-0 flex-1 truncate text-left", children: triggerText ?? (isWheelOpen ? mobilePlaceholder : null) }),
|
|
16360
16420
|
/* @__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
|
-
|
|
16421
|
+
import_lucide_react49.ChevronDown,
|
|
16362
16422
|
{
|
|
16363
16423
|
size: 16,
|
|
16364
16424
|
className: cn(
|
|
@@ -16443,7 +16503,7 @@ var Datepicker = React63.forwardRef(
|
|
|
16443
16503
|
}
|
|
16444
16504
|
),
|
|
16445
16505
|
/* @__PURE__ */ (0, import_jsx_runtime174.jsx)(
|
|
16446
|
-
|
|
16506
|
+
import_lucide_react49.ChevronDown,
|
|
16447
16507
|
{
|
|
16448
16508
|
size: 14,
|
|
16449
16509
|
onMouseDown: (event) => {
|
|
@@ -16768,7 +16828,7 @@ function resolveRangeSelection({
|
|
|
16768
16828
|
}
|
|
16769
16829
|
|
|
16770
16830
|
// src/dashboard/date-range-picker/components/DateRangeInputs.tsx
|
|
16771
|
-
var
|
|
16831
|
+
var import_lucide_react50 = require("lucide-react");
|
|
16772
16832
|
var import_jsx_runtime175 = require("react/jsx-runtime");
|
|
16773
16833
|
var DEFAULT_PLACEHOLDER = "00-00-0000";
|
|
16774
16834
|
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 +16948,7 @@ function DateRangeInputs({
|
|
|
16888
16948
|
onClick: onReset,
|
|
16889
16949
|
className: iconButtonClass,
|
|
16890
16950
|
"aria-label": clearLabel,
|
|
16891
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime175.jsx)(
|
|
16951
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime175.jsx)(import_lucide_react50.SquareX, { size: 16, fill: "#9696b9", color: "#f8f8f8", strokeWidth: 1.8 })
|
|
16892
16952
|
}
|
|
16893
16953
|
),
|
|
16894
16954
|
!readOnly && !hideCalendarIcon && /* @__PURE__ */ (0, import_jsx_runtime175.jsx)(
|
|
@@ -16903,7 +16963,7 @@ function DateRangeInputs({
|
|
|
16903
16963
|
focusedInput !== null || isOpen ? "text-[var(--chekin-color-brand-blue)]" : "text-[var(--chekin-color-gray-2)]"
|
|
16904
16964
|
),
|
|
16905
16965
|
"aria-label": openCalendarLabel,
|
|
16906
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime175.jsx)(
|
|
16966
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime175.jsx)(import_lucide_react50.CalendarDays, { size: 18 })
|
|
16907
16967
|
}
|
|
16908
16968
|
)
|
|
16909
16969
|
] })
|
|
@@ -17449,7 +17509,7 @@ var TimePicker = React69.forwardRef(function TimePicker2({ format: formatName =
|
|
|
17449
17509
|
|
|
17450
17510
|
// src/dashboard/file-input/FileInput.tsx
|
|
17451
17511
|
var React70 = __toESM(require("react"), 1);
|
|
17452
|
-
var
|
|
17512
|
+
var import_lucide_react51 = require("lucide-react");
|
|
17453
17513
|
var import_react_i18next42 = require("react-i18next");
|
|
17454
17514
|
var import_jsx_runtime180 = require("react/jsx-runtime");
|
|
17455
17515
|
function defaultDownload(url) {
|
|
@@ -17561,7 +17621,7 @@ var FileInput = React70.forwardRef(function FileInput2({
|
|
|
17561
17621
|
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
17622
|
children: [
|
|
17563
17623
|
/* @__PURE__ */ (0, import_jsx_runtime180.jsx)("span", { className: "truncate", children: resolvedDownloadLabel }),
|
|
17564
|
-
/* @__PURE__ */ (0, import_jsx_runtime180.jsx)(
|
|
17624
|
+
/* @__PURE__ */ (0, import_jsx_runtime180.jsx)(import_lucide_react51.Download, { size: 15 })
|
|
17565
17625
|
]
|
|
17566
17626
|
}
|
|
17567
17627
|
) : /* @__PURE__ */ (0, import_jsx_runtime180.jsx)("span", { className: "truncate text-[14px] font-medium text-[var(--chekin-color-brand-navy)]", children: value.name }),
|
|
@@ -17573,13 +17633,13 @@ var FileInput = React70.forwardRef(function FileInput2({
|
|
|
17573
17633
|
onClick: handleClear,
|
|
17574
17634
|
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
17635
|
"aria-label": t("remove_file"),
|
|
17576
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime180.jsx)(
|
|
17636
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime180.jsx)(import_lucide_react51.SquareX, { size: 15, fill: "#9696b9", color: "#f8f8f8", strokeWidth: 1.8 })
|
|
17577
17637
|
}
|
|
17578
17638
|
)
|
|
17579
17639
|
]
|
|
17580
17640
|
}
|
|
17581
17641
|
) : /* @__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)(
|
|
17642
|
+
/* @__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
17643
|
]
|
|
17584
17644
|
}
|
|
17585
17645
|
),
|
|
@@ -17620,78 +17680,92 @@ var FileInput = React70.forwardRef(function FileInput2({
|
|
|
17620
17680
|
// src/dashboard/select-icons-box/SelectIconsBox.tsx
|
|
17621
17681
|
var React71 = __toESM(require("react"), 1);
|
|
17622
17682
|
var import_jsx_runtime181 = require("react/jsx-runtime");
|
|
17623
|
-
|
|
17624
|
-
|
|
17625
|
-
|
|
17626
|
-
|
|
17627
|
-
|
|
17628
|
-
|
|
17629
|
-
|
|
17630
|
-
|
|
17631
|
-
|
|
17632
|
-
|
|
17633
|
-
|
|
17634
|
-
|
|
17635
|
-
|
|
17636
|
-
|
|
17637
|
-
|
|
17638
|
-
|
|
17639
|
-
|
|
17640
|
-
|
|
17641
|
-
|
|
17642
|
-
|
|
17643
|
-
|
|
17644
|
-
|
|
17645
|
-
|
|
17646
|
-
|
|
17647
|
-
|
|
17648
|
-
|
|
17649
|
-
|
|
17650
|
-
|
|
17651
|
-
|
|
17652
|
-
|
|
17653
|
-
|
|
17654
|
-
|
|
17655
|
-
|
|
17656
|
-
|
|
17657
|
-
|
|
17658
|
-
|
|
17659
|
-
|
|
17660
|
-
|
|
17661
|
-
|
|
17662
|
-
|
|
17663
|
-
|
|
17664
|
-
|
|
17665
|
-
|
|
17666
|
-
|
|
17667
|
-
|
|
17668
|
-
|
|
17669
|
-
|
|
17670
|
-
|
|
17671
|
-
|
|
17672
|
-
|
|
17673
|
-
|
|
17674
|
-
|
|
17675
|
-
|
|
17676
|
-
|
|
17677
|
-
|
|
17678
|
-
|
|
17679
|
-
|
|
17680
|
-
|
|
17681
|
-
|
|
17682
|
-
|
|
17683
|
-
|
|
17684
|
-
"
|
|
17685
|
-
|
|
17686
|
-
|
|
17687
|
-
|
|
17688
|
-
|
|
17689
|
-
|
|
17690
|
-
|
|
17691
|
-
|
|
17692
|
-
|
|
17693
|
-
|
|
17694
|
-
|
|
17683
|
+
var FOCUSABLE_TRIGGER_SELECTOR2 = 'input:not([type="hidden"]):not([disabled]):not([readonly]), button:not([disabled])';
|
|
17684
|
+
var SelectIconsBox = React71.forwardRef(
|
|
17685
|
+
function SelectIconsBox2({
|
|
17686
|
+
children,
|
|
17687
|
+
icons,
|
|
17688
|
+
renderIcon,
|
|
17689
|
+
onSelect,
|
|
17690
|
+
columns = 4,
|
|
17691
|
+
iconsColor = "#6B6B95",
|
|
17692
|
+
isOpen: controlledOpen,
|
|
17693
|
+
defaultOpen = false,
|
|
17694
|
+
onOpenChange,
|
|
17695
|
+
position = "left",
|
|
17696
|
+
className,
|
|
17697
|
+
boxClassName
|
|
17698
|
+
}, ref) {
|
|
17699
|
+
const containerRef = React71.useRef(null);
|
|
17700
|
+
const combinedContainerRef = useCombinedRef(containerRef, ref);
|
|
17701
|
+
const isControlled = controlledOpen !== void 0;
|
|
17702
|
+
const [internalOpen, setInternalOpen] = React71.useState(defaultOpen);
|
|
17703
|
+
const isOpen = isControlled ? controlledOpen : internalOpen;
|
|
17704
|
+
const setOpen = (next) => {
|
|
17705
|
+
if (!isControlled) setInternalOpen(next);
|
|
17706
|
+
onOpenChange?.(next);
|
|
17707
|
+
};
|
|
17708
|
+
const handleToggle = (event) => {
|
|
17709
|
+
if (event.target.closest("[data-icon-box-item]")) return;
|
|
17710
|
+
setOpen(!isOpen);
|
|
17711
|
+
};
|
|
17712
|
+
useOutsideClick({
|
|
17713
|
+
elementRef: containerRef,
|
|
17714
|
+
onOutsideClick: () => setOpen(false),
|
|
17715
|
+
isDisabled: !isOpen
|
|
17716
|
+
});
|
|
17717
|
+
const handlePick = (iconName) => {
|
|
17718
|
+
onSelect(iconName);
|
|
17719
|
+
setOpen(false);
|
|
17720
|
+
};
|
|
17721
|
+
const handleContainerFocus = (event) => {
|
|
17722
|
+
if (event.target !== event.currentTarget) return;
|
|
17723
|
+
const focusable = event.currentTarget.querySelector(
|
|
17724
|
+
FOCUSABLE_TRIGGER_SELECTOR2
|
|
17725
|
+
);
|
|
17726
|
+
focusable?.focus();
|
|
17727
|
+
};
|
|
17728
|
+
return /* @__PURE__ */ (0, import_jsx_runtime181.jsxs)(
|
|
17729
|
+
"div",
|
|
17730
|
+
{
|
|
17731
|
+
ref: combinedContainerRef,
|
|
17732
|
+
tabIndex: -1,
|
|
17733
|
+
onFocus: handleContainerFocus,
|
|
17734
|
+
onClick: handleToggle,
|
|
17735
|
+
className: cn("relative inline-block outline-none", className),
|
|
17736
|
+
children: [
|
|
17737
|
+
children,
|
|
17738
|
+
isOpen && /* @__PURE__ */ (0, import_jsx_runtime181.jsx)(
|
|
17739
|
+
"div",
|
|
17740
|
+
{
|
|
17741
|
+
className: cn(
|
|
17742
|
+
"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)]",
|
|
17743
|
+
position === "left" && "left-0",
|
|
17744
|
+
position === "right" && "right-0",
|
|
17745
|
+
position === "center" && "left-1/2 -translate-x-1/2",
|
|
17746
|
+
boxClassName
|
|
17747
|
+
),
|
|
17748
|
+
style: { gridTemplateColumns: `repeat(${columns}, minmax(0, 1fr))` },
|
|
17749
|
+
children: icons.map((iconName) => /* @__PURE__ */ (0, import_jsx_runtime181.jsx)(
|
|
17750
|
+
"button",
|
|
17751
|
+
{
|
|
17752
|
+
type: "button",
|
|
17753
|
+
"data-icon-box-item": true,
|
|
17754
|
+
onClick: () => handlePick(iconName),
|
|
17755
|
+
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]",
|
|
17756
|
+
"aria-label": iconName,
|
|
17757
|
+
children: renderIcon(iconName, iconsColor)
|
|
17758
|
+
},
|
|
17759
|
+
iconName
|
|
17760
|
+
))
|
|
17761
|
+
}
|
|
17762
|
+
)
|
|
17763
|
+
]
|
|
17764
|
+
}
|
|
17765
|
+
);
|
|
17766
|
+
}
|
|
17767
|
+
);
|
|
17768
|
+
SelectIconsBox.displayName = "SelectIconsBox";
|
|
17695
17769
|
|
|
17696
17770
|
// src/lib/breakpoints.ts
|
|
17697
17771
|
var DEVICE_BREAKPOINTS = {
|
|
@@ -17818,11 +17892,11 @@ LegacyTextarea.displayName = "LegacyTextarea";
|
|
|
17818
17892
|
|
|
17819
17893
|
// src/airbnb-fields/datepicker/DatePicker.tsx
|
|
17820
17894
|
var React73 = __toESM(require("react"), 1);
|
|
17821
|
-
var
|
|
17895
|
+
var import_lucide_react53 = require("lucide-react");
|
|
17822
17896
|
|
|
17823
17897
|
// src/airbnb-fields/field-trigger/FieldTrigger.tsx
|
|
17824
17898
|
var React72 = __toESM(require("react"), 1);
|
|
17825
|
-
var
|
|
17899
|
+
var import_lucide_react52 = require("lucide-react");
|
|
17826
17900
|
var import_react_i18next43 = require("react-i18next");
|
|
17827
17901
|
var import_jsx_runtime184 = require("react/jsx-runtime");
|
|
17828
17902
|
var AirbnbFieldTrigger = React72.forwardRef(
|
|
@@ -17888,7 +17962,7 @@ var AirbnbFieldTrigger = React72.forwardRef(
|
|
|
17888
17962
|
const resolvedTrailingAdornment = loading || trailingAdornment ? /* @__PURE__ */ (0, import_jsx_runtime184.jsxs)("span", { className: "flex items-center gap-2", children: [
|
|
17889
17963
|
trailingAdornment,
|
|
17890
17964
|
loading && /* @__PURE__ */ (0, import_jsx_runtime184.jsx)(
|
|
17891
|
-
|
|
17965
|
+
import_lucide_react52.Loader2,
|
|
17892
17966
|
{
|
|
17893
17967
|
"aria-hidden": "true",
|
|
17894
17968
|
className: "h-5 w-5 animate-spin text-[var(--chekin-color-gray-1)]"
|
|
@@ -18149,7 +18223,7 @@ var AirbnbDatePicker = React73.forwardRef(
|
|
|
18149
18223
|
onClick: handleTriggerClick,
|
|
18150
18224
|
onKeyDown: handleTriggerKeyDown,
|
|
18151
18225
|
onBlur,
|
|
18152
|
-
trailingAdornment: /* @__PURE__ */ (0, import_jsx_runtime185.jsx)(
|
|
18226
|
+
trailingAdornment: /* @__PURE__ */ (0, import_jsx_runtime185.jsx)(import_lucide_react53.Calendar, { className: "h-5 w-5 text-[#1F1F1B]", strokeWidth: 2 })
|
|
18153
18227
|
}
|
|
18154
18228
|
),
|
|
18155
18229
|
/* @__PURE__ */ (0, import_jsx_runtime185.jsx)(
|
|
@@ -18339,7 +18413,7 @@ AirbnbInput.displayName = "AirbnbInput";
|
|
|
18339
18413
|
|
|
18340
18414
|
// src/airbnb-fields/phone-field/PhoneField.tsx
|
|
18341
18415
|
var React80 = __toESM(require("react"), 1);
|
|
18342
|
-
var
|
|
18416
|
+
var import_lucide_react55 = require("lucide-react");
|
|
18343
18417
|
|
|
18344
18418
|
// src/airbnb-fields/select/Select.tsx
|
|
18345
18419
|
var React79 = __toESM(require("react"), 1);
|
|
@@ -18688,7 +18762,7 @@ function AirbnbSelectMobileContent({
|
|
|
18688
18762
|
|
|
18689
18763
|
// src/airbnb-fields/select/SelectTrigger.tsx
|
|
18690
18764
|
var React75 = __toESM(require("react"), 1);
|
|
18691
|
-
var
|
|
18765
|
+
var import_lucide_react54 = require("lucide-react");
|
|
18692
18766
|
var import_jsx_runtime191 = require("react/jsx-runtime");
|
|
18693
18767
|
var AirbnbSelectTrigger = React75.forwardRef(
|
|
18694
18768
|
({
|
|
@@ -18745,7 +18819,7 @@ var AirbnbSelectTrigger = React75.forwardRef(
|
|
|
18745
18819
|
onKeyDown,
|
|
18746
18820
|
onBlur,
|
|
18747
18821
|
trailingAdornment: /* @__PURE__ */ (0, import_jsx_runtime191.jsx)(
|
|
18748
|
-
|
|
18822
|
+
import_lucide_react54.ChevronDown,
|
|
18749
18823
|
{
|
|
18750
18824
|
className: open ? "h-6 w-6 rotate-180 text-[#1F1F1B] transition-transform" : "h-6 w-6 text-[#1F1F1B] transition-transform"
|
|
18751
18825
|
}
|
|
@@ -19532,7 +19606,7 @@ var AirbnbPhoneField = React80.forwardRef(
|
|
|
19532
19606
|
children: [
|
|
19533
19607
|
/* @__PURE__ */ (0, import_jsx_runtime193.jsx)("span", { children: valueLabel ?? codePlaceholder }),
|
|
19534
19608
|
/* @__PURE__ */ (0, import_jsx_runtime193.jsx)(
|
|
19535
|
-
|
|
19609
|
+
import_lucide_react55.ChevronDown,
|
|
19536
19610
|
{
|
|
19537
19611
|
className: cn("h-5 w-5 transition-transform", open ? "rotate-180" : ""),
|
|
19538
19612
|
strokeWidth: 2
|
|
@@ -19583,7 +19657,7 @@ AirbnbPhoneField.displayName = "AirbnbPhoneField";
|
|
|
19583
19657
|
|
|
19584
19658
|
// src/airbnb-fields/searchable-select/SearchableSelect.tsx
|
|
19585
19659
|
var React81 = __toESM(require("react"), 1);
|
|
19586
|
-
var
|
|
19660
|
+
var import_lucide_react56 = require("lucide-react");
|
|
19587
19661
|
var import_react_virtual3 = require("@tanstack/react-virtual");
|
|
19588
19662
|
var import_react90 = require("react");
|
|
19589
19663
|
var import_jsx_runtime194 = require("react/jsx-runtime");
|
|
@@ -19821,7 +19895,7 @@ var AirbnbSearchableSelectInternal = ({
|
|
|
19821
19895
|
onKeyDown: handleTriggerKeyDown,
|
|
19822
19896
|
onBlur,
|
|
19823
19897
|
trailingAdornment: /* @__PURE__ */ (0, import_jsx_runtime194.jsx)(
|
|
19824
|
-
|
|
19898
|
+
import_lucide_react56.ChevronDown,
|
|
19825
19899
|
{
|
|
19826
19900
|
className: cn(
|
|
19827
19901
|
"h-6 w-6 text-[#1F1F1B] transition-transform",
|
|
@@ -19919,7 +19993,7 @@ function AirbnbSearchableSelectContent({
|
|
|
19919
19993
|
return /* @__PURE__ */ (0, import_jsx_runtime194.jsxs)("div", { className: "p-2", children: [
|
|
19920
19994
|
/* @__PURE__ */ (0, import_jsx_runtime194.jsxs)("div", { className: "relative mb-2", children: [
|
|
19921
19995
|
/* @__PURE__ */ (0, import_jsx_runtime194.jsx)(
|
|
19922
|
-
|
|
19996
|
+
import_lucide_react56.Search,
|
|
19923
19997
|
{
|
|
19924
19998
|
"aria-hidden": "true",
|
|
19925
19999
|
className: "absolute left-4 top-1/2 h-5 w-5 -translate-y-1/2 text-[#9696B9]"
|
|
@@ -20029,13 +20103,13 @@ function getNextEnabledIndex(options, startIndex, step) {
|
|
|
20029
20103
|
// src/airbnb-fields/search-input/SearchInput.tsx
|
|
20030
20104
|
var React82 = __toESM(require("react"), 1);
|
|
20031
20105
|
var import_react_i18next44 = require("react-i18next");
|
|
20032
|
-
var
|
|
20106
|
+
var import_lucide_react57 = require("lucide-react");
|
|
20033
20107
|
var import_jsx_runtime195 = require("react/jsx-runtime");
|
|
20034
20108
|
var AirbnbSearchInput = React82.forwardRef(({ onReset, placeholder, wrapperClassName, ...props }, ref) => {
|
|
20035
20109
|
const { t } = (0, import_react_i18next44.useTranslation)();
|
|
20036
20110
|
const placeholderText = placeholder || t("search_property") + "...";
|
|
20037
20111
|
return /* @__PURE__ */ (0, import_jsx_runtime195.jsxs)("div", { className: cn("input-wrapper relative", wrapperClassName), children: [
|
|
20038
|
-
/* @__PURE__ */ (0, import_jsx_runtime195.jsx)(
|
|
20112
|
+
/* @__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
20113
|
/* @__PURE__ */ (0, import_jsx_runtime195.jsx)(
|
|
20040
20114
|
"input",
|
|
20041
20115
|
{
|
|
@@ -20061,7 +20135,7 @@ var AirbnbSearchInput = React82.forwardRef(({ onReset, placeholder, wrapperClass
|
|
|
20061
20135
|
variant: "ghost",
|
|
20062
20136
|
onClick: onReset,
|
|
20063
20137
|
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)(
|
|
20138
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime195.jsx)(import_lucide_react57.X, { className: "h-5 w-5" })
|
|
20065
20139
|
}
|
|
20066
20140
|
)
|
|
20067
20141
|
] });
|