@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.cjs +217 -106
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +14 -8
- package/dist/index.d.ts +14 -8
- package/dist/index.js +280 -170
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
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-
|
|
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
|
|
12950
|
-
/* @__PURE__ */ jsx149("span", { className: "
|
|
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-
|
|
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
|
-
|
|
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
|
-
|
|
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(
|
|
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(
|
|
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(
|
|
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
|
-
|
|
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 {
|
|
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
|
-
|
|
13679
|
-
|
|
13680
|
-
|
|
13681
|
-
|
|
13682
|
-
|
|
13683
|
-
|
|
13684
|
-
|
|
13685
|
-
|
|
13686
|
-
|
|
13687
|
-
|
|
13688
|
-
|
|
13689
|
-
|
|
13690
|
-
|
|
13691
|
-
|
|
13692
|
-
|
|
13693
|
-
|
|
13694
|
-
|
|
13695
|
-
|
|
13696
|
-
|
|
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
|
|
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
|
-
|
|
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
|
|
13945
|
-
|
|
13946
|
-
|
|
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__ */
|
|
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:
|
|
14028
|
-
label
|
|
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__ */
|
|
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:
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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:
|
|
14368
|
+
label: prefixLabel,
|
|
14268
14369
|
placeholder: codePlaceholder,
|
|
14269
|
-
disabled
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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
|
|
14915
|
+
import { jsx as jsx166, jsxs as jsxs105 } from "react/jsx-runtime";
|
|
14808
14916
|
function SelectAllRow({ label, checked, disabled, onToggle }) {
|
|
14809
|
-
return /* @__PURE__ */
|
|
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
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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
|
|
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__ */
|
|
15708
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
16210
|
-
/* @__PURE__ */
|
|
16211
|
-
isMobile3 ? /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
16661
|
-
import { jsx as jsx172, jsxs as
|
|
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__ */
|
|
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__ */
|
|
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(
|
|
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
|
|
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__ */
|
|
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
|
|
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__ */
|
|
17066
|
-
/* @__PURE__ */
|
|
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
|
|
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
|
|
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__ */
|
|
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__ */
|
|
17438
|
-
/* @__PURE__ */
|
|
17439
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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(
|
|
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
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
17818
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
19847
|
-
/* @__PURE__ */
|
|
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
|
|
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__ */
|
|
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
|
|
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__ */
|
|
20062
|
-
/* @__PURE__ */
|
|
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,
|