react-better-html 1.1.210 → 1.1.212

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 CHANGED
@@ -42,6 +42,7 @@ type TextAs = "h1" | "h2" | "h3" | "h4" | "h5" | "h6" | "p" | "span" | "label";
42
42
  type TextProps<As extends TextAs = "p"> = {
43
43
  /** @default "p" */
44
44
  as?: As;
45
+ htmlContentTranslate?: React.ComponentProps<"div">["translate"];
45
46
  } & OmitProps<React.ComponentProps<As>, "style"> & ComponentStyle & ComponentHoverStyle;
46
47
  type TextComponentType = {
47
48
  <As extends TextAs>(props: ComponentPropWithRef<HTMLParagraphElement, TextProps<As>>): React.ReactElement;
package/dist/index.d.ts CHANGED
@@ -42,6 +42,7 @@ type TextAs = "h1" | "h2" | "h3" | "h4" | "h5" | "h6" | "p" | "span" | "label";
42
42
  type TextProps<As extends TextAs = "p"> = {
43
43
  /** @default "p" */
44
44
  as?: As;
45
+ htmlContentTranslate?: React.ComponentProps<"div">["translate"];
45
46
  } & OmitProps<React.ComponentProps<As>, "style"> & ComponentStyle & ComponentHoverStyle;
46
47
  type TextComponentType = {
47
48
  <As extends TextAs>(props: ComponentPropWithRef<HTMLParagraphElement, TextProps<As>>): React.ReactElement;
package/dist/index.js CHANGED
@@ -1766,7 +1766,7 @@ var TextStyledComponent = import_styled_components2.default.p.withConfig({
1766
1766
  ${(props) => props.hoverStyle}
1767
1767
  }
1768
1768
  `;
1769
- var TextComponent = (0, import_react3.forwardRef)(function Text({ children, ...props }, ref) {
1769
+ var TextComponent = (0, import_react3.forwardRef)(function Text({ htmlContentTranslate, children, ...props }, ref) {
1770
1770
  const theme2 = useTheme();
1771
1771
  const styledComponentStyles = useStyledComponentStyles(props, theme2);
1772
1772
  const dataProps = useComponentPropsWithPrefix(props, "data");
@@ -1776,6 +1776,7 @@ var TextComponent = (0, import_react3.forwardRef)(function Text({ children, ...p
1776
1776
  TextStyledComponent,
1777
1777
  {
1778
1778
  as: props.as,
1779
+ translate: htmlContentTranslate,
1779
1780
  ...styledComponentStyles,
1780
1781
  ...dataProps,
1781
1782
  ...ariaProps,
@@ -3046,7 +3047,7 @@ function useForm(options) {
3046
3047
  errorText: errors[field]
3047
3048
  };
3048
3049
  },
3049
- [values, setFieldValue, inputTypes, errors]
3050
+ [values, setFieldValue, inputTypes, errors, requiredFields]
3050
3051
  );
3051
3052
  const getTextAreaProps = (0, import_react10.useCallback)(
3052
3053
  (field) => {
@@ -3064,7 +3065,7 @@ function useForm(options) {
3064
3065
  errorText: errors[field]
3065
3066
  };
3066
3067
  },
3067
- [values, setFieldValue, inputTypes, errors]
3068
+ [values, setFieldValue, inputTypes, errors, requiredFields]
3068
3069
  );
3069
3070
  const getDropdownFieldProps = (0, import_react10.useCallback)(
3070
3071
  (field) => {
@@ -3082,7 +3083,7 @@ function useForm(options) {
3082
3083
  errorText: errors[field]
3083
3084
  };
3084
3085
  },
3085
- [values, errors, setFieldValue]
3086
+ [values, errors, setFieldValue, requiredFields]
3086
3087
  );
3087
3088
  const getCheckboxProps = (0, import_react10.useCallback)(
3088
3089
  (field) => {
@@ -3100,7 +3101,7 @@ function useForm(options) {
3100
3101
  errorText: errors[field]
3101
3102
  };
3102
3103
  },
3103
- [values, errors, setFieldValue]
3104
+ [values, errors, setFieldValue, requiredFields]
3104
3105
  );
3105
3106
  const getRadioButtonProps = (0, import_react10.useCallback)(
3106
3107
  (field, value) => {
@@ -3119,7 +3120,7 @@ function useForm(options) {
3119
3120
  errorText: errors[field]
3120
3121
  };
3121
3122
  },
3122
- [values, errors, setFieldValue]
3123
+ [values, errors, setFieldValue, requiredFields]
3123
3124
  );
3124
3125
  const getSwitchProps = (0, import_react10.useCallback)(
3125
3126
  (field) => {
@@ -3137,7 +3138,7 @@ function useForm(options) {
3137
3138
  errorText: errors[field]
3138
3139
  };
3139
3140
  },
3140
- [values, errors, setFieldValue]
3141
+ [values, errors, setFieldValue, requiredFields]
3141
3142
  );
3142
3143
  const focusField = (0, import_react10.useCallback)((field) => {
3143
3144
  inputFieldRefs.current[field]?.focus();
@@ -4045,6 +4046,94 @@ var desaturateColor = (hexColor, amount) => {
4045
4046
  return `#${rHex}${gHex}${bHex}`;
4046
4047
  };
4047
4048
 
4049
+ // src/utils/variableFunctions.ts
4050
+ var checkBetterHtmlContextValue = (value, functionsName) => {
4051
+ if (value === void 0) {
4052
+ throw new Error(
4053
+ `\`${functionsName}()\` must be used within a \`<BetterHtmlProvider>\`. Make sure to add one at the root of your component tree.`
4054
+ );
4055
+ }
4056
+ return value !== void 0;
4057
+ };
4058
+ var loaderControls = {
4059
+ startLoading: (loaderName) => {
4060
+ if (!checkBetterHtmlContextValue(externalBetterHtmlContextValue, "loaderControls.startLoading")) return;
4061
+ externalBetterHtmlContextValue.setLoaders((oldValue) => ({
4062
+ ...oldValue,
4063
+ [loaderName.toString()]: true
4064
+ }));
4065
+ },
4066
+ stopLoading: (loaderName) => {
4067
+ if (!checkBetterHtmlContextValue(externalBetterHtmlContextValue, "loaderControls.stopLoading")) return;
4068
+ externalBetterHtmlContextValue.setLoaders((oldValue) => ({
4069
+ ...oldValue,
4070
+ [loaderName.toString()]: false
4071
+ }));
4072
+ }
4073
+ };
4074
+ var alertControls = {
4075
+ createAlert: (alert) => {
4076
+ if (!checkBetterHtmlContextValue(externalBetterHtmlContextValue, "alertControls.createAlert"))
4077
+ return void 0;
4078
+ const readyAlert = {
4079
+ id: crypto.randomUUID(),
4080
+ ...alert
4081
+ };
4082
+ externalBetterHtmlContextValue.setAlerts((oldValue) => [...oldValue, readyAlert]);
4083
+ return readyAlert;
4084
+ },
4085
+ removeAlert: (alertId) => {
4086
+ if (!checkBetterHtmlContextValue(externalBetterHtmlContextValue, "alertControls.removeAlert")) return;
4087
+ externalBetterHtmlContextValue.setAlerts((oldValue) => oldValue.filter((alert) => alert.id !== alertId));
4088
+ }
4089
+ };
4090
+ var sideMenuControls = {
4091
+ expand: () => {
4092
+ if (!checkBetterHtmlContextValue(externalBetterHtmlContextValue, "sideMenuControls.expand")) return;
4093
+ externalBetterHtmlContextValue.setSideMenuIsCollapsed.setFalse();
4094
+ },
4095
+ collapse: () => {
4096
+ if (!checkBetterHtmlContextValue(externalBetterHtmlContextValue, "sideMenuControls.collapse")) return;
4097
+ externalBetterHtmlContextValue.setSideMenuIsCollapsed.setTrue();
4098
+ },
4099
+ toggleExpanded: () => {
4100
+ if (!checkBetterHtmlContextValue(externalBetterHtmlContextValue, "sideMenuControls.toggleExpanded")) return;
4101
+ externalBetterHtmlContextValue.setSideMenuIsCollapsed.toggle();
4102
+ },
4103
+ open: () => {
4104
+ if (!checkBetterHtmlContextValue(externalBetterHtmlContextValue, "sideMenuControls.open")) return;
4105
+ externalBetterHtmlContextValue.setSideMenuIsOpenMobile.setTrue();
4106
+ },
4107
+ close: () => {
4108
+ if (!checkBetterHtmlContextValue(externalBetterHtmlContextValue, "sideMenuControls.close")) return;
4109
+ externalBetterHtmlContextValue.setSideMenuIsOpenMobile.setFalse();
4110
+ },
4111
+ toggleOpened: () => {
4112
+ if (!checkBetterHtmlContextValue(externalBetterHtmlContextValue, "sideMenuControls.toggleOpened")) return;
4113
+ externalBetterHtmlContextValue.setSideMenuIsOpenMobile.toggle();
4114
+ }
4115
+ };
4116
+ var colorThemeControls = {
4117
+ toggleTheme: (theme2) => {
4118
+ if (!checkBetterHtmlContextValue(externalBetterHtmlContextValue, "colorThemeControls.toggleTheme")) return;
4119
+ const currentColorTheme = externalBetterHtmlContextValue.colorTheme;
4120
+ const newColorTheme = theme2 ?? (currentColorTheme === "dark" ? "light" : "dark");
4121
+ setTimeout(() => {
4122
+ window.document.body.parentElement?.setAttribute("data-theme", newColorTheme);
4123
+ localStorage.setItem("theme", newColorTheme);
4124
+ }, 0.01 * 1e3);
4125
+ }
4126
+ };
4127
+ var filterHover = () => {
4128
+ if (!checkBetterHtmlContextValue(externalBetterHtmlContextValue, "filterHover")) return void 0;
4129
+ return {
4130
+ z05: externalBetterHtmlContextValue.colorTheme === "dark" ? "brightness(1.2)" : "brightness(0.95)",
4131
+ z1: externalBetterHtmlContextValue.colorTheme === "dark" ? "brightness(1.3)" : "brightness(0.9)",
4132
+ z2: externalBetterHtmlContextValue.colorTheme === "dark" ? "brightness(1.6)" : "brightness(0.8)",
4133
+ z3: externalBetterHtmlContextValue.colorTheme === "dark" ? "brightness(1.9)" : "brightness(0.7)"
4134
+ };
4135
+ };
4136
+
4048
4137
  // src/components/Chip.tsx
4049
4138
  var import_jsx_runtime14 = require("react/jsx-runtime");
4050
4139
  var ChipComponent = (0, import_react16.forwardRef)(function Chip({
@@ -4074,7 +4163,9 @@ var ChipComponent = (0, import_react16.forwardRef)(function Chip({
4074
4163
  borderRadius: isCircle ? 999 : borderRadius ?? theme2.styles.borderRadius / 1.3,
4075
4164
  paddingBlock: theme2.styles.gap / 2,
4076
4165
  paddingInline: theme2.styles.space / 1.5,
4166
+ filterHover: onClick || onClickWithValue ? filterHover().z1 : void 0,
4077
4167
  onClick: onClickElement,
4168
+ cursor: onClick || onClickWithValue ? "pointer" : void 0,
4078
4169
  ...props,
4079
4170
  ref,
4080
4171
  children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Text_default, { color: color ?? theme2.colors.textPrimary, children: text })
@@ -5589,96 +5680,6 @@ var countries = [
5589
5680
 
5590
5681
  // src/utils/functions.ts
5591
5682
  var import_crypto_js = __toESM(require("crypto-js"));
5592
-
5593
- // src/utils/variableFunctions.ts
5594
- var checkBetterHtmlContextValue = (value, functionsName) => {
5595
- if (value === void 0) {
5596
- throw new Error(
5597
- `\`${functionsName}()\` must be used within a \`<BetterHtmlProvider>\`. Make sure to add one at the root of your component tree.`
5598
- );
5599
- }
5600
- return value !== void 0;
5601
- };
5602
- var loaderControls = {
5603
- startLoading: (loaderName) => {
5604
- if (!checkBetterHtmlContextValue(externalBetterHtmlContextValue, "loaderControls.startLoading")) return;
5605
- externalBetterHtmlContextValue.setLoaders((oldValue) => ({
5606
- ...oldValue,
5607
- [loaderName.toString()]: true
5608
- }));
5609
- },
5610
- stopLoading: (loaderName) => {
5611
- if (!checkBetterHtmlContextValue(externalBetterHtmlContextValue, "loaderControls.stopLoading")) return;
5612
- externalBetterHtmlContextValue.setLoaders((oldValue) => ({
5613
- ...oldValue,
5614
- [loaderName.toString()]: false
5615
- }));
5616
- }
5617
- };
5618
- var alertControls = {
5619
- createAlert: (alert) => {
5620
- if (!checkBetterHtmlContextValue(externalBetterHtmlContextValue, "alertControls.createAlert"))
5621
- return void 0;
5622
- const readyAlert = {
5623
- id: crypto.randomUUID(),
5624
- ...alert
5625
- };
5626
- externalBetterHtmlContextValue.setAlerts((oldValue) => [...oldValue, readyAlert]);
5627
- return readyAlert;
5628
- },
5629
- removeAlert: (alertId) => {
5630
- if (!checkBetterHtmlContextValue(externalBetterHtmlContextValue, "alertControls.removeAlert")) return;
5631
- externalBetterHtmlContextValue.setAlerts((oldValue) => oldValue.filter((alert) => alert.id !== alertId));
5632
- }
5633
- };
5634
- var sideMenuControls = {
5635
- expand: () => {
5636
- if (!checkBetterHtmlContextValue(externalBetterHtmlContextValue, "sideMenuControls.expand")) return;
5637
- externalBetterHtmlContextValue.setSideMenuIsCollapsed.setFalse();
5638
- },
5639
- collapse: () => {
5640
- if (!checkBetterHtmlContextValue(externalBetterHtmlContextValue, "sideMenuControls.collapse")) return;
5641
- externalBetterHtmlContextValue.setSideMenuIsCollapsed.setTrue();
5642
- },
5643
- toggleExpanded: () => {
5644
- if (!checkBetterHtmlContextValue(externalBetterHtmlContextValue, "sideMenuControls.toggleExpanded")) return;
5645
- externalBetterHtmlContextValue.setSideMenuIsCollapsed.toggle();
5646
- },
5647
- open: () => {
5648
- if (!checkBetterHtmlContextValue(externalBetterHtmlContextValue, "sideMenuControls.open")) return;
5649
- externalBetterHtmlContextValue.setSideMenuIsOpenMobile.setTrue();
5650
- },
5651
- close: () => {
5652
- if (!checkBetterHtmlContextValue(externalBetterHtmlContextValue, "sideMenuControls.close")) return;
5653
- externalBetterHtmlContextValue.setSideMenuIsOpenMobile.setFalse();
5654
- },
5655
- toggleOpened: () => {
5656
- if (!checkBetterHtmlContextValue(externalBetterHtmlContextValue, "sideMenuControls.toggleOpened")) return;
5657
- externalBetterHtmlContextValue.setSideMenuIsOpenMobile.toggle();
5658
- }
5659
- };
5660
- var colorThemeControls = {
5661
- toggleTheme: (theme2) => {
5662
- if (!checkBetterHtmlContextValue(externalBetterHtmlContextValue, "colorThemeControls.toggleTheme")) return;
5663
- const currentColorTheme = externalBetterHtmlContextValue.colorTheme;
5664
- const newColorTheme = theme2 ?? (currentColorTheme === "dark" ? "light" : "dark");
5665
- setTimeout(() => {
5666
- window.document.body.parentElement?.setAttribute("data-theme", newColorTheme);
5667
- localStorage.setItem("theme", newColorTheme);
5668
- }, 0.01 * 1e3);
5669
- }
5670
- };
5671
- var filterHover = () => {
5672
- if (!checkBetterHtmlContextValue(externalBetterHtmlContextValue, "filterHover")) return void 0;
5673
- return {
5674
- z05: externalBetterHtmlContextValue.colorTheme === "dark" ? "brightness(1.2)" : "brightness(0.95)",
5675
- z1: externalBetterHtmlContextValue.colorTheme === "dark" ? "brightness(1.3)" : "brightness(0.9)",
5676
- z2: externalBetterHtmlContextValue.colorTheme === "dark" ? "brightness(1.6)" : "brightness(0.8)",
5677
- z3: externalBetterHtmlContextValue.colorTheme === "dark" ? "brightness(1.9)" : "brightness(0.7)"
5678
- };
5679
- };
5680
-
5681
- // src/utils/functions.ts
5682
5683
  var generateRandomString = (stringLength, options) => {
5683
5684
  const capitals = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
5684
5685
  const lowers = "abcdefghijklmnopqrstuvwxyz";
@@ -5876,7 +5877,8 @@ var DropdownComponent = (0, import_react18.forwardRef)(function Dropdown({
5876
5877
  if (event.key === "Enter" || !withSearch && event.key === " ") {
5877
5878
  event.preventDefault();
5878
5879
  if (!disabled) {
5879
- setIsOpen.toggle();
5880
+ if (withMultiselect) setIsOpen.setTrue();
5881
+ else setIsOpen.toggle();
5880
5882
  if (isOpen && filteredOptions.length > 0 && focusedOptionIndex !== void 0) {
5881
5883
  const option = filteredOptions[focusedOptionIndex];
5882
5884
  if (!option.disabled) {
@@ -5884,10 +5886,12 @@ var DropdownComponent = (0, import_react18.forwardRef)(function Dropdown({
5884
5886
  const newValue = withMultiselect ? Array.isArray(internalValue) ? internalValue?.includes(clickedValue) ? internalValue.filter((value2) => value2 !== clickedValue) : [...internalValue, clickedValue] : [clickedValue] : clickedValue;
5885
5887
  if (controlledValue === void 0) setInternalValue(newValue);
5886
5888
  onChange?.(newValue);
5887
- setIsOpen.setFalse();
5888
- inputRef.current?.blur();
5889
- setSearchQuery("");
5890
- setFocusedOptionIndex(void 0);
5889
+ if (!withMultiselect) {
5890
+ setIsOpen.setFalse();
5891
+ inputRef.current?.blur();
5892
+ setSearchQuery("");
5893
+ setFocusedOptionIndex(void 0);
5894
+ }
5891
5895
  }
5892
5896
  }
5893
5897
  }
@@ -5931,10 +5935,12 @@ var DropdownComponent = (0, import_react18.forwardRef)(function Dropdown({
5931
5935
  const newValue = withMultiselect ? Array.isArray(internalValue) ? internalValue?.includes(clickedValue) ? internalValue.filter((value2) => value2 !== clickedValue) : [...internalValue, clickedValue] : [clickedValue] : clickedValue;
5932
5936
  if (controlledValue === void 0) setInternalValue(newValue);
5933
5937
  onChange?.(newValue);
5934
- setIsOpen.setFalse();
5935
- inputRef.current?.blur();
5936
- setSearchQuery("");
5937
- setFocusedOptionIndex(void 0);
5938
+ if (!withMultiselect) {
5939
+ setIsOpen.setFalse();
5940
+ inputRef.current?.blur();
5941
+ setSearchQuery("");
5942
+ setFocusedOptionIndex(void 0);
5943
+ }
5938
5944
  }
5939
5945
  },
5940
5946
  [onChange, internalValue, controlledValue, withMultiselect]