react-better-html 1.1.93 → 1.1.94
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.d.mts +2 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +35 -26
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +39 -30
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -4866,7 +4866,7 @@ var Label_default = memo13(Label);
|
|
|
4866
4866
|
|
|
4867
4867
|
// src/components/Dropdown.tsx
|
|
4868
4868
|
import { forwardRef as forwardRef7, memo as memo14, useCallback as useCallback6, useEffect as useEffect5, useMemo as useMemo3, useRef as useRef3, useState as useState4 } from "react";
|
|
4869
|
-
import { jsx as jsx13, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
4869
|
+
import { Fragment as Fragment3, jsx as jsx13, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
4870
4870
|
var DropdownComponent = forwardRef7(function Dropdown({
|
|
4871
4871
|
label,
|
|
4872
4872
|
labelColor,
|
|
@@ -4887,6 +4887,7 @@ var DropdownComponent = forwardRef7(function Dropdown({
|
|
|
4887
4887
|
debounceIsLoading,
|
|
4888
4888
|
debounceMinimumSymbolsRequired,
|
|
4889
4889
|
withoutClearButton,
|
|
4890
|
+
withoutRenderingOptionsWhenClosed,
|
|
4890
4891
|
onChange,
|
|
4891
4892
|
onChangeSearch,
|
|
4892
4893
|
renderOption,
|
|
@@ -4895,6 +4896,7 @@ var DropdownComponent = forwardRef7(function Dropdown({
|
|
|
4895
4896
|
}, ref) {
|
|
4896
4897
|
const theme2 = useTheme();
|
|
4897
4898
|
const inputFieldHolderRef = useRef3(null);
|
|
4899
|
+
const buttonsRef = useRef3(null);
|
|
4898
4900
|
const inputRef = useRef3(null);
|
|
4899
4901
|
const [isOpen, setIsOpen] = useBooleanState();
|
|
4900
4902
|
const [isOpenLate, setIsOpenLate] = useBooleanState();
|
|
@@ -4989,6 +4991,33 @@ var DropdownComponent = forwardRef7(function Dropdown({
|
|
|
4989
4991
|
[withDebounce, onChangeSearch]
|
|
4990
4992
|
);
|
|
4991
4993
|
const selectedOption = useMemo3(() => options.find((option) => option.value === value), [options, value]);
|
|
4994
|
+
const renderedOptions = useMemo3(
|
|
4995
|
+
() => filteredOptions.map((option, index) => {
|
|
4996
|
+
const isSelected = option.value === value;
|
|
4997
|
+
const isDisabled = option.disabled;
|
|
4998
|
+
const isFocused2 = index === focusedOptionIndex;
|
|
4999
|
+
return /* @__PURE__ */ jsx13(
|
|
5000
|
+
Div_default,
|
|
5001
|
+
{
|
|
5002
|
+
color: isDisabled ? theme2.colors.textSecondary + "80" : isSelected ? theme2.colors.base : theme2.colors.textPrimary,
|
|
5003
|
+
backgroundColor: isSelected ? theme2.colors.primary : theme2.colors.backgroundContent,
|
|
5004
|
+
filter: isFocused2 ? isDisabled ? "brightness(0.95)" : "brightness(0.9)" : void 0,
|
|
5005
|
+
filterHover: focusedOptionIndex === void 0 && !isDisabled ? "brightness(0.9)" : void 0,
|
|
5006
|
+
cursor: isDisabled ? "not-allowed" : "pointer",
|
|
5007
|
+
padding: `${theme2.styles.space / 2}px ${theme2.styles.space + theme2.styles.gap}px`,
|
|
5008
|
+
value: option,
|
|
5009
|
+
onClickWithValue: onClickOption,
|
|
5010
|
+
onMouseMove: () => setFocusedOptionIndex(void 0),
|
|
5011
|
+
role: "option",
|
|
5012
|
+
"aria-selected": isSelected,
|
|
5013
|
+
"aria-disabled": isDisabled,
|
|
5014
|
+
children: renderOption ? renderOption(option, index, isSelected) : /* @__PURE__ */ jsx13(Text_default, { children: option.label })
|
|
5015
|
+
},
|
|
5016
|
+
JSON.stringify(option)
|
|
5017
|
+
);
|
|
5018
|
+
}),
|
|
5019
|
+
[filteredOptions, value, focusedOptionIndex, theme2.colors, onClickOption, renderOption]
|
|
5020
|
+
);
|
|
4992
5021
|
useEffect5(() => {
|
|
4993
5022
|
if (isOpen) {
|
|
4994
5023
|
setIsOpenLate.setTrue();
|
|
@@ -5005,7 +5034,7 @@ var DropdownComponent = forwardRef7(function Dropdown({
|
|
|
5005
5034
|
}, [filteredOptions]);
|
|
5006
5035
|
useEffect5(() => {
|
|
5007
5036
|
const handleClickOutside = (event) => {
|
|
5008
|
-
if (inputFieldHolderRef.current && !inputFieldHolderRef.current.contains(event.target)) {
|
|
5037
|
+
if (inputFieldHolderRef.current && buttonsRef.current && !inputFieldHolderRef.current.contains(event.target) && !buttonsRef.current.contains(event.target)) {
|
|
5009
5038
|
setIsOpen.setFalse();
|
|
5010
5039
|
setSearchQuery("");
|
|
5011
5040
|
setFocusedOptionIndex(void 0);
|
|
@@ -5025,7 +5054,7 @@ var DropdownComponent = forwardRef7(function Dropdown({
|
|
|
5025
5054
|
const displayValue = withSearch && isFocused ? searchQuery : selectedOption?.label ?? "";
|
|
5026
5055
|
const withClearButton = isOpen && selectedOption;
|
|
5027
5056
|
const readyPlaceholder = placeholder ? placeholder : `Select an ${label?.toLowerCase() ?? "option"}`;
|
|
5028
|
-
return /* @__PURE__ */ jsx13(Div_default.column, { width: "100%", position: "relative", userSelect: "none", ...props, children: /* @__PURE__ */ jsxs8(Div_default.row, { position: "relative", width: "100%",
|
|
5057
|
+
return /* @__PURE__ */ jsx13(Div_default.column, { width: "100%", position: "relative", userSelect: "none", ...props, children: /* @__PURE__ */ jsxs8(Div_default.row, { position: "relative", width: "100%", children: [
|
|
5029
5058
|
/* @__PURE__ */ jsx13(
|
|
5030
5059
|
InputField_default,
|
|
5031
5060
|
{
|
|
@@ -5070,30 +5099,7 @@ var DropdownComponent = forwardRef7(function Dropdown({
|
|
|
5070
5099
|
transition: theme2.styles.transition,
|
|
5071
5100
|
role: "listbox",
|
|
5072
5101
|
"aria-label": label,
|
|
5073
|
-
children: isLoadingDebouncedSearchQuery || debounceIsLoading ? /* @__PURE__ */ jsx13(Div_default, { padding: `${theme2.styles.space / 2}px ${theme2.styles.space + theme2.styles.gap}px`, children: /* @__PURE__ */ jsx13(Loader_default.text, {}) }) : filteredOptions.length ?
|
|
5074
|
-
const isSelected = option.value === value;
|
|
5075
|
-
const isDisabled = option.disabled;
|
|
5076
|
-
const isFocused2 = index === focusedOptionIndex;
|
|
5077
|
-
return /* @__PURE__ */ jsx13(
|
|
5078
|
-
Div_default,
|
|
5079
|
-
{
|
|
5080
|
-
color: isDisabled ? theme2.colors.textSecondary + "80" : isSelected ? theme2.colors.base : theme2.colors.textPrimary,
|
|
5081
|
-
backgroundColor: isSelected ? theme2.colors.primary : theme2.colors.backgroundContent,
|
|
5082
|
-
filter: isFocused2 ? isDisabled ? "brightness(0.95)" : "brightness(0.9)" : void 0,
|
|
5083
|
-
filterHover: focusedOptionIndex === void 0 && !isDisabled ? "brightness(0.9)" : void 0,
|
|
5084
|
-
cursor: isDisabled ? "not-allowed" : "pointer",
|
|
5085
|
-
padding: `${theme2.styles.space / 2}px ${theme2.styles.space + theme2.styles.gap}px`,
|
|
5086
|
-
value: option,
|
|
5087
|
-
onClickWithValue: onClickOption,
|
|
5088
|
-
onMouseMove: () => setFocusedOptionIndex(void 0),
|
|
5089
|
-
role: "option",
|
|
5090
|
-
"aria-selected": isSelected,
|
|
5091
|
-
"aria-disabled": isDisabled,
|
|
5092
|
-
children: renderOption ? renderOption(option, index, isSelected) : /* @__PURE__ */ jsx13(Text_default, { children: option.label })
|
|
5093
|
-
},
|
|
5094
|
-
JSON.stringify(option)
|
|
5095
|
-
);
|
|
5096
|
-
}) : /* @__PURE__ */ jsx13(Div_default, { padding: `${theme2.styles.space / 2}px ${theme2.styles.space + theme2.styles.gap}px`, children: /* @__PURE__ */ jsx13(Text_default.unknown, { textAlign: "left", children: debounceMinimumSymbolsRequired !== void 0 && searchQuery.length < debounceMinimumSymbolsRequired ? `Enter at least ${debounceMinimumSymbolsRequired} characters` : "No options" }) })
|
|
5102
|
+
children: isLoadingDebouncedSearchQuery || debounceIsLoading ? /* @__PURE__ */ jsx13(Div_default, { padding: `${theme2.styles.space / 2}px ${theme2.styles.space + theme2.styles.gap}px`, children: /* @__PURE__ */ jsx13(Loader_default.text, {}) }) : filteredOptions.length ? /* @__PURE__ */ jsx13(Fragment3, { children: (withoutRenderingOptionsWhenClosed ? isOpen || isOpenLate : true) ? renderedOptions : void 0 }) : /* @__PURE__ */ jsx13(Div_default, { padding: `${theme2.styles.space / 2}px ${theme2.styles.space + theme2.styles.gap}px`, children: /* @__PURE__ */ jsx13(Text_default.unknown, { textAlign: "left", children: debounceMinimumSymbolsRequired !== void 0 && searchQuery.length < debounceMinimumSymbolsRequired ? `Enter at least ${debounceMinimumSymbolsRequired} characters` : "No options" }) })
|
|
5097
5103
|
}
|
|
5098
5104
|
),
|
|
5099
5105
|
role: "combobox",
|
|
@@ -5101,6 +5107,7 @@ var DropdownComponent = forwardRef7(function Dropdown({
|
|
|
5101
5107
|
"aria-controls": "dropdown-list",
|
|
5102
5108
|
"aria-haspopup": "listbox",
|
|
5103
5109
|
"aria-label": label,
|
|
5110
|
+
holderRef: inputFieldHolderRef,
|
|
5104
5111
|
ref: inputRef
|
|
5105
5112
|
}
|
|
5106
5113
|
),
|
|
@@ -5117,6 +5124,7 @@ var DropdownComponent = forwardRef7(function Dropdown({
|
|
|
5117
5124
|
filter: disabled ? "brightness(0.9)" : void 0,
|
|
5118
5125
|
opacity: disabled ? 0.6 : void 0,
|
|
5119
5126
|
zIndex: isOpen || isOpenLate ? 1001 : void 0,
|
|
5127
|
+
ref: buttonsRef,
|
|
5120
5128
|
children: [
|
|
5121
5129
|
!withoutClearButton && /* @__PURE__ */ jsx13(
|
|
5122
5130
|
Button_default.icon,
|
|
@@ -5175,6 +5183,7 @@ DropdownComponent.countries = forwardRef7(function Countries({ ...props }, ref)
|
|
|
5175
5183
|
placeholder: "Select a country",
|
|
5176
5184
|
options,
|
|
5177
5185
|
renderOption,
|
|
5186
|
+
withoutRenderingOptionsWhenClosed: true,
|
|
5178
5187
|
ref,
|
|
5179
5188
|
...props
|
|
5180
5189
|
}
|
|
@@ -6647,7 +6656,7 @@ var ColorThemeSwitch_default = ColorThemeSwitch2;
|
|
|
6647
6656
|
// src/components/Table.tsx
|
|
6648
6657
|
import { forwardRef as forwardRef11, memo as memo20, useCallback as useCallback10, useMemo as useMemo7, useState as useState8 } from "react";
|
|
6649
6658
|
import styled10, { css as css2 } from "styled-components";
|
|
6650
|
-
import { Fragment as
|
|
6659
|
+
import { Fragment as Fragment4, jsx as jsx20, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
6651
6660
|
var defaultImageWidth = 120;
|
|
6652
6661
|
var TableStyledComponent = styled10.table.withConfig({
|
|
6653
6662
|
shouldForwardProp: (prop) => !["isStriped", "withHover", "withStickyHeader", "colorTheme", "theme"].includes(prop)
|
|
@@ -6734,7 +6743,7 @@ var TableComponent = forwardRef11(function Table({
|
|
|
6734
6743
|
return column.format ? column.format(item, index) : String(value ?? "");
|
|
6735
6744
|
}
|
|
6736
6745
|
case "element": {
|
|
6737
|
-
return column.render?.(item, index) ?? /* @__PURE__ */ jsx20(
|
|
6746
|
+
return column.render?.(item, index) ?? /* @__PURE__ */ jsx20(Fragment4, {});
|
|
6738
6747
|
}
|
|
6739
6748
|
case "image": {
|
|
6740
6749
|
const { type, keyName, ...props2 } = column;
|
|
@@ -6759,7 +6768,7 @@ var TableComponent = forwardRef11(function Table({
|
|
|
6759
6768
|
);
|
|
6760
6769
|
}
|
|
6761
6770
|
default: {
|
|
6762
|
-
return /* @__PURE__ */ jsx20(
|
|
6771
|
+
return /* @__PURE__ */ jsx20(Fragment4, {});
|
|
6763
6772
|
}
|
|
6764
6773
|
}
|
|
6765
6774
|
},
|