@edifice.io/react 2.2.3-develop-b2school.20250416152157 → 2.2.3-develop-b2school.20250416174212

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.
@@ -1,4 +1,4 @@
1
- import { ChangeEvent, ReactNode } from 'react';
1
+ import { ChangeEvent, KeyboardEvent, ReactNode } from 'react';
2
2
  export interface ComboboxProps extends React.InputHTMLAttributes<HTMLInputElement> {
3
3
  onSearchInputChange: (event: ChangeEvent<HTMLInputElement>) => void;
4
4
  options: OptionListItemType[];
@@ -6,6 +6,7 @@ export interface ComboboxProps extends React.InputHTMLAttributes<HTMLInputElemen
6
6
  isLoading: boolean;
7
7
  noResult: boolean;
8
8
  onSearchResultsChange?: (model: (string | number)[]) => void;
9
+ onSearchInputKeyUp?: (event: KeyboardEvent<HTMLInputElement>) => void;
9
10
  searchMinLength?: number;
10
11
  placeholder?: string;
11
12
  variant?: 'outline' | 'ghost';
@@ -74,8 +75,8 @@ export interface OptionListItemType {
74
75
  * @extends {React.InputHTMLAttributes<HTMLInputElement>}
75
76
  */
76
77
  declare const Combobox: {
77
- ({ onSearchResultsChange, onSearchInputChange, options, value, isLoading, noResult, searchMinLength, placeholder, variant, renderInputGroup, renderList, renderListItem, renderSelectedItems, renderNoResult, }: ComboboxProps): import("react/jsx-runtime").JSX.Element;
78
- Trigger: ({ placeholder, value, searchMinLength, handleSearchInputChange, renderInputGroup, variant, renderSelectedItems, hasDefault, }: import('./ComboboxTrigger').ComboboxTriggerProps) => import("react/jsx-runtime").JSX.Element;
78
+ ({ onSearchResultsChange, onSearchInputChange, onSearchInputKeyUp, options, value, isLoading, noResult, searchMinLength, placeholder, variant, renderInputGroup, renderList, renderListItem, renderSelectedItems, renderNoResult, }: ComboboxProps): import("react/jsx-runtime").JSX.Element;
79
+ Trigger: ({ placeholder, value, searchMinLength, handleSearchInputChange, handleSearchInputKeyUp, renderInputGroup, variant, renderSelectedItems, hasDefault, }: import('./ComboboxTrigger').ComboboxTriggerProps) => import("react/jsx-runtime").JSX.Element;
79
80
  displayName: string;
80
81
  };
81
82
  export default Combobox;
@@ -7,6 +7,7 @@ import Loading from "../Loading/Loading.js";
7
7
  const Combobox = ({
8
8
  onSearchResultsChange,
9
9
  onSearchInputChange,
10
+ onSearchInputKeyUp,
10
11
  options,
11
12
  value,
12
13
  isLoading,
@@ -36,7 +37,9 @@ const Combobox = ({
36
37
  (option.withSeparator || option.withSeparator === void 0) && index < options.length - 1 && /* @__PURE__ */ jsx(Dropdown.Separator, {})
37
38
  ] }, index));
38
39
  return /* @__PURE__ */ jsxs(Dropdown, { block: !0, focusOnVisible: !1, openOnSpace: !1, children: [
39
- /* @__PURE__ */ jsx(Combobox.Trigger, { placeholder, searchMinLength, handleSearchInputChange: onSearchInputChange, value, variant, renderInputGroup, renderSelectedItems, hasDefault: !!options.length }),
40
+ /* @__PURE__ */ jsx(Combobox.Trigger, { placeholder, searchMinLength, handleSearchInputChange: onSearchInputChange, handleSearchInputKeyUp: (event) => {
41
+ onSearchInputKeyUp == null || onSearchInputKeyUp(event);
42
+ }, value, variant, renderInputGroup, renderSelectedItems, hasDefault: !!options.length }),
40
43
  /* @__PURE__ */ jsx(Dropdown.Menu, { children: renderContent() })
41
44
  ] });
42
45
  };
@@ -1,13 +1,14 @@
1
- import { ChangeEvent, ReactNode } from 'react';
1
+ import { ChangeEvent, KeyboardEvent, ReactNode } from 'react';
2
2
  export interface ComboboxTriggerProps extends React.ComponentPropsWithRef<'button'> {
3
3
  handleSearchInputChange: (event: ChangeEvent<HTMLInputElement>) => void;
4
+ handleSearchInputKeyUp: (event: KeyboardEvent<HTMLInputElement>) => void;
4
5
  value: string;
5
6
  searchMinLength?: number;
6
7
  placeholder?: string;
7
8
  renderInputGroup?: React.ReactNode;
8
9
  variant?: 'outline' | 'ghost';
9
10
  renderSelectedItems?: ReactNode;
10
- hasDefault?: boolean;
11
+ hasDefault: boolean;
11
12
  }
12
13
  /**
13
14
  * A trigger component for the Combobox that handles user input and displays selected items.
@@ -33,5 +34,5 @@ export interface ComboboxTriggerProps extends React.ComponentPropsWithRef<'butto
33
34
  *
34
35
  * @returns {JSX.Element} A form control containing an input field with optional input group and selected items
35
36
  */
36
- declare const ComboboxTrigger: ({ placeholder, value, searchMinLength, handleSearchInputChange, renderInputGroup, variant, renderSelectedItems, hasDefault, }: ComboboxTriggerProps) => import("react/jsx-runtime").JSX.Element;
37
+ declare const ComboboxTrigger: ({ placeholder, value, searchMinLength, handleSearchInputChange, handleSearchInputKeyUp, renderInputGroup, variant, renderSelectedItems, hasDefault, }: ComboboxTriggerProps) => import("react/jsx-runtime").JSX.Element;
37
38
  export default ComboboxTrigger;
@@ -9,6 +9,7 @@ const ComboboxTrigger = ({
9
9
  value = "",
10
10
  searchMinLength = 3,
11
11
  handleSearchInputChange,
12
+ handleSearchInputKeyUp,
12
13
  renderInputGroup,
13
14
  variant = "outline",
14
15
  renderSelectedItems,
@@ -31,7 +32,10 @@ const ComboboxTrigger = ({
31
32
  },
32
33
  onClick: (event) => {
33
34
  const input = event.target;
34
- setVisible(input.value.length >= searchMinLength || !!hasDefault), input.focus();
35
+ setVisible(input.value.length >= searchMinLength || hasDefault), input.focus();
36
+ },
37
+ onKeyUp: (event) => {
38
+ handleSearchInputKeyUp == null || handleSearchInputKeyUp(event);
35
39
  }
36
40
  }, classNameVariant = variant === "ghost" ? " border-0" : "", classNameInput = clsx(classNameVariant, renderSelectedItems ? "flex-fill w-auto " : "");
37
41
  return useEffect(() => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@edifice.io/react",
3
- "version": "2.2.3-develop-b2school.20250416152157",
3
+ "version": "2.2.3-develop-b2school.20250416174212",
4
4
  "description": "Edifice React Library",
5
5
  "keywords": [
6
6
  "react",
@@ -118,9 +118,9 @@
118
118
  "react-slugify": "^3.0.3",
119
119
  "swiper": "^10.1.0",
120
120
  "ua-parser-js": "^1.0.36",
121
- "@edifice.io/bootstrap": "2.2.3-develop-b2school.20250416152157",
122
- "@edifice.io/tiptap-extensions": "2.2.3-develop-b2school.20250416152157",
123
- "@edifice.io/utilities": "2.2.3-develop-b2school.20250416152157"
121
+ "@edifice.io/bootstrap": "2.2.3-develop-b2school.20250416174212",
122
+ "@edifice.io/tiptap-extensions": "2.2.3-develop-b2school.20250416174212",
123
+ "@edifice.io/utilities": "2.2.3-develop-b2school.20250416174212"
124
124
  },
125
125
  "devDependencies": {
126
126
  "@babel/plugin-transform-react-pure-annotations": "^7.23.3",
@@ -151,8 +151,8 @@
151
151
  "vite": "^5.4.11",
152
152
  "vite-plugin-dts": "^4.1.0",
153
153
  "vite-tsconfig-paths": "^5.0.1",
154
- "@edifice.io/client": "2.2.3-develop-b2school.20250416152157",
155
- "@edifice.io/config": "2.2.3-develop-b2school.20250416152157"
154
+ "@edifice.io/client": "2.2.3-develop-b2school.20250416174212",
155
+ "@edifice.io/config": "2.2.3-develop-b2school.20250416174212"
156
156
  },
157
157
  "peerDependencies": {
158
158
  "@react-spring/web": "^9.7.5",