@seij/common-ui 0.1.10 → 0.1.11

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.
@@ -27,6 +27,10 @@ export interface InputComboboxProps<T> {
27
27
  * The function to call when the user selects an option from the dropdown.
28
28
  */
29
29
  onValueChange: (value: string) => void;
30
+ /**
31
+ * Called when the user presses Enter inside the combobox input.
32
+ */
33
+ onEnter?: () => void;
30
34
  }
31
35
  /**
32
36
  * A text input combobox with a dropdown list of options.
@@ -40,10 +44,11 @@ export interface InputComboboxProps<T> {
40
44
  * noOptionsMessage="No options found"
41
45
  * onValueChangeQuery={(value) => setSearchQuery(value)}
42
46
  * onValueChange={(value) => setSelectedOption(value)}
47
+ * onEnter={()=>{}}
43
48
  * />
44
49
  */
45
50
  export declare function InputCombobox<T extends {
46
51
  code: string;
47
52
  label: string;
48
- }>({ searchQuery, placeholder, disabled, options, noOptionsMessage, onValueChangeQuery, onValueChange, }: InputComboboxProps<T>): import("react/jsx-runtime").JSX.Element;
53
+ }>({ searchQuery, placeholder, disabled, options, noOptionsMessage, onValueChangeQuery, onValueChange, onEnter, }: InputComboboxProps<T>): import("react/jsx-runtime").JSX.Element;
49
54
  //# sourceMappingURL=InputCombobox.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"InputCombobox.d.ts","sourceRoot":"","sources":["../../../src/lib/select/InputCombobox.tsx"],"names":[],"mappings":"AAEA,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACnC;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,OAAO,EAAE,CAAC,EAAE,CAAC;IACb;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;OAEG;IACH,kBAAkB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C;;OAEG;IACH,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC;AACD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,EACvE,WAAW,EACX,WAAW,EACX,QAAQ,EACR,OAAO,EACP,gBAAgB,EAChB,kBAAkB,EAClB,aAAa,GACd,EAAE,kBAAkB,CAAC,CAAC,CAAC,2CA4BvB"}
1
+ {"version":3,"file":"InputCombobox.d.ts","sourceRoot":"","sources":["../../../src/lib/select/InputCombobox.tsx"],"names":[],"mappings":"AAIA,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACnC;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,OAAO,EAAE,CAAC,EAAE,CAAC;IACb;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;OAEG;IACH,kBAAkB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C;;OAEG;IACH,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AACD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,EACvE,WAAW,EACX,WAAW,EACX,QAAQ,EACR,OAAO,EACP,gBAAgB,EAChB,kBAAkB,EAClB,aAAa,EACb,OAAO,GACR,EAAE,kBAAkB,CAAC,CAAC,CAAC,2CA4CvB"}
@@ -1,32 +1,40 @@
1
- import { jsx as s } from "react/jsx-runtime";
2
- import { Combobox as c, useComboboxFilter as a } from "@fluentui/react-components";
3
- import { useI18n as x } from "../i18n/i18n.react.js";
4
- function C({
5
- searchQuery: e,
1
+ import { jsx as f } from "react/jsx-runtime";
2
+ import { Combobox as x, useComboboxFilter as C } from "@fluentui/react-components";
3
+ import { useState as d } from "react";
4
+ import "../i18n/i18n.service.js";
5
+ import { useI18n as h } from "../i18n/i18n.react.js";
6
+ function w({
7
+ searchQuery: t,
6
8
  placeholder: r,
7
9
  disabled: l,
8
- options: i,
10
+ options: s,
9
11
  noOptionsMessage: p,
10
- onValueChangeQuery: t,
11
- onValueChange: m
12
+ onValueChangeQuery: e,
13
+ onValueChange: m,
14
+ onEnter: a
12
15
  }) {
13
- const { t: u } = x(), b = u("InputCombobox_noresult");
14
- return /* @__PURE__ */ s(
15
- c,
16
+ const { t: u } = h(), [c, n] = d(!1), b = u("InputCombobox_noresult");
17
+ return /* @__PURE__ */ f(
18
+ x,
16
19
  {
17
20
  style: { width: "100%" },
18
- value: e,
19
- onOptionSelect: (o, n) => {
20
- t(n.optionText ?? ""), m(n.optionValue ?? "");
21
+ value: t,
22
+ onOptionSelect: (o, i) => {
23
+ e(i.optionText ?? ""), m(i.optionValue ?? "");
24
+ },
25
+ onChange: (o) => e(o.target.value),
26
+ onCompositionStart: () => n(!0),
27
+ onCompositionEnd: () => n(!1),
28
+ onKeyDown: (o) => {
29
+ o.key === "Enter" && !c && a?.();
21
30
  },
22
- onChange: (o) => t(o.target.value),
23
31
  clearable: !0,
24
32
  placeholder: r,
25
33
  disabled: l,
26
34
  freeform: !0,
27
- children: a(
28
- e,
29
- i.map((o) => ({ children: o.label, value: o.code })),
35
+ children: C(
36
+ t,
37
+ s.map((o) => ({ children: o.label, value: o.code })),
30
38
  {
31
39
  optionToReactKey: (o) => o.value,
32
40
  optionToText: (o) => o.children,
@@ -37,6 +45,6 @@ function C({
37
45
  );
38
46
  }
39
47
  export {
40
- C as InputCombobox
48
+ w as InputCombobox
41
49
  };
42
50
  //# sourceMappingURL=InputCombobox.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"InputCombobox.js","sources":["../../../src/lib/select/InputCombobox.tsx"],"sourcesContent":["import { Combobox, useComboboxFilter } from \"@fluentui/react-components\";\nimport { useI18n } from \"../i18n/i18n.react\";\nexport interface InputComboboxProps<T> {\n /**\n * The value of the text input.\n */\n searchQuery: string;\n /**\n * The placeholder text to display when the input is empty.\n */\n placeholder: string;\n /**\n * Indicates whether the input is disabled.\n */\n disabled: boolean;\n /**\n * The list of options to display in the dropdown.\n */\n options: T[];\n /**\n * The message to display when no option is found.\n */\n noOptionsMessage?: string;\n /**\n * The function to call when the input value changes.\n */\n onValueChangeQuery: (value: string) => void;\n /**\n * The function to call when the user selects an option from the dropdown.\n */\n onValueChange: (value: string) => void;\n}\n/**\n * A text input combobox with a dropdown list of options.\n * @returns A textbox component with a dropdown list of options.\n * @example\n * <InputCombobox\n * searchQuery={searchQuery}\n * placeholder=\"Select an option\"\n * disabled={false}\n * options={[{ code: \"1\", label: \"Option 1\" }, { code: \"2\", label: \"Option 2\" }]}\n * noOptionsMessage=\"No options found\"\n * onValueChangeQuery={(value) => setSearchQuery(value)}\n * onValueChange={(value) => setSelectedOption(value)}\n * />\n */\nexport function InputCombobox<T extends { code: string; label: string }>({\n searchQuery,\n placeholder,\n disabled,\n options,\n noOptionsMessage,\n onValueChangeQuery,\n onValueChange,\n}: InputComboboxProps<T>) {\n const { t } = useI18n();\n const noresult = t(\"InputCombobox_noresult\");\n return (\n <Combobox\n style={{ width: \"100%\" }}\n value={searchQuery}\n onOptionSelect={(event, data) => {\n onValueChangeQuery(data.optionText ?? \"\");\n onValueChange(data.optionValue ?? \"\");\n }}\n onChange={(ev) => onValueChangeQuery(ev.target.value)}\n clearable\n placeholder={placeholder}\n disabled={disabled}\n freeform={true}\n >\n {useComboboxFilter(\n searchQuery,\n options.map((o) => ({ children: o.label, value: o.code })),\n {\n optionToReactKey: (option) => option.value,\n optionToText: (option) => option.children,\n noOptionsMessage: noOptionsMessage ?? noresult,\n },\n )}\n </Combobox>\n );\n}\n"],"names":["InputCombobox","searchQuery","placeholder","disabled","options","noOptionsMessage","onValueChangeQuery","onValueChange","t","useI18n","noresult","jsx","Combobox","event","data","ev","useComboboxFilter","option"],"mappings":";;;AA8CO,SAASA,EAAyD;AAAA,EACvE,aAAAC;AAAA,EACA,aAAAC;AAAA,EACA,UAAAC;AAAA,EACA,SAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,oBAAAC;AAAA,EACA,eAAAC;AACF,GAA0B;AACxB,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAA,GACRC,IAAWF,EAAE,wBAAwB;AAC3C,SACE,gBAAAG;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,OAAO,EAAE,OAAO,OAAA;AAAA,MAChB,OAAOX;AAAA,MACP,gBAAgB,CAACY,GAAOC,MAAS;AAC/B,QAAAR,EAAmBQ,EAAK,cAAc,EAAE,GACxCP,EAAcO,EAAK,eAAe,EAAE;AAAA,MACtC;AAAA,MACA,UAAU,CAACC,MAAOT,EAAmBS,EAAG,OAAO,KAAK;AAAA,MACpD,WAAS;AAAA,MACT,aAAAb;AAAA,MACA,UAAAC;AAAA,MACA,UAAU;AAAA,MAET,UAAAa;AAAA,QACCf;AAAA,QACAG,EAAQ,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,OAAO,EAAE,KAAA,EAAO;AAAA,QACzD;AAAA,UACE,kBAAkB,CAACa,MAAWA,EAAO;AAAA,UACrC,cAAc,CAACA,MAAWA,EAAO;AAAA,UACjC,kBAAkBZ,KAAoBK;AAAA,QAAA;AAAA,MACxC;AAAA,IACF;AAAA,EAAA;AAGN;"}
1
+ {"version":3,"file":"InputCombobox.js","sources":["../../../src/lib/select/InputCombobox.tsx"],"sourcesContent":["import { Combobox, type ComboboxProps, useComboboxFilter } from \"@fluentui/react-components\";\nimport { useState } from \"react\";\nimport { useI18n } from \"../i18n\";\n\nexport interface InputComboboxProps<T> {\n /**\n * The value of the text input.\n */\n searchQuery: string;\n /**\n * The placeholder text to display when the input is empty.\n */\n placeholder: string;\n /**\n * Indicates whether the input is disabled.\n */\n disabled: boolean;\n /**\n * The list of options to display in the dropdown.\n */\n options: T[];\n /**\n * The message to display when no option is found.\n */\n noOptionsMessage?: string;\n /**\n * The function to call when the input value changes.\n */\n onValueChangeQuery: (value: string) => void;\n /**\n * The function to call when the user selects an option from the dropdown.\n */\n onValueChange: (value: string) => void;\n /**\n * Called when the user presses Enter inside the combobox input.\n */\n onEnter?: () => void;\n}\n/**\n * A text input combobox with a dropdown list of options.\n * @returns A textbox component with a dropdown list of options.\n * @example\n * <InputCombobox\n * searchQuery={searchQuery}\n * placeholder=\"Select an option\"\n * disabled={false}\n * options={[{ code: \"1\", label: \"Option 1\" }, { code: \"2\", label: \"Option 2\" }]}\n * noOptionsMessage=\"No options found\"\n * onValueChangeQuery={(value) => setSearchQuery(value)}\n * onValueChange={(value) => setSelectedOption(value)}\n * onEnter={()=>{}}\n * />\n */\nexport function InputCombobox<T extends { code: string; label: string }>({\n searchQuery,\n placeholder,\n disabled,\n options,\n noOptionsMessage,\n onValueChangeQuery,\n onValueChange,\n onEnter,\n}: InputComboboxProps<T>) {\n const { t } = useI18n();\n\n // Some keyboards used to compose characters in languages as Japaneses send and event\n // that tells that the user is composing a character. We must take that in account\n // when managing the Enter key\n const [isComposing, setIsComposing] = useState(false);\n\n const noresult = t(\"InputCombobox_noresult\");\n\n const handleOptionSelect: ComboboxProps[\"onOptionSelect\"] = (_, data) => {\n onValueChangeQuery(data.optionText ?? \"\");\n onValueChange(data.optionValue ?? \"\");\n };\n\n return (\n <Combobox\n style={{ width: \"100%\" }}\n value={searchQuery}\n onOptionSelect={handleOptionSelect}\n onChange={(ev) => onValueChangeQuery(ev.target.value)}\n onCompositionStart={() => setIsComposing(true)}\n onCompositionEnd={() => setIsComposing(false)}\n onKeyDown={(event) => {\n if (event.key === \"Enter\" && !isComposing) {\n onEnter?.();\n }\n }}\n clearable\n placeholder={placeholder}\n disabled={disabled}\n freeform={true}\n >\n {useComboboxFilter(\n searchQuery,\n options.map((o) => ({ children: o.label, value: o.code })),\n {\n optionToReactKey: (option) => option.value,\n optionToText: (option) => option.children,\n noOptionsMessage: noOptionsMessage ?? noresult,\n },\n )}\n </Combobox>\n );\n}\n"],"names":["InputCombobox","searchQuery","placeholder","disabled","options","noOptionsMessage","onValueChangeQuery","onValueChange","onEnter","t","useI18n","isComposing","setIsComposing","useState","noresult","jsx","Combobox","_","data","ev","event","useComboboxFilter","option"],"mappings":";;;;;AAqDO,SAASA,EAAyD;AAAA,EACvE,aAAAC;AAAA,EACA,aAAAC;AAAA,EACA,UAAAC;AAAA,EACA,SAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,oBAAAC;AAAA,EACA,eAAAC;AAAA,EACA,SAAAC;AACF,GAA0B;AACxB,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAA,GAKR,CAACC,GAAaC,CAAc,IAAIC,EAAS,EAAK,GAE9CC,IAAWL,EAAE,wBAAwB;AAO3C,SACE,gBAAAM;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,OAAO,EAAE,OAAO,OAAA;AAAA,MAChB,OAAOf;AAAA,MACP,gBATwD,CAACgB,GAAGC,MAAS;AACvE,QAAAZ,EAAmBY,EAAK,cAAc,EAAE,GACxCX,EAAcW,EAAK,eAAe,EAAE;AAAA,MACtC;AAAA,MAOI,UAAU,CAACC,MAAOb,EAAmBa,EAAG,OAAO,KAAK;AAAA,MACpD,oBAAoB,MAAMP,EAAe,EAAI;AAAA,MAC7C,kBAAkB,MAAMA,EAAe,EAAK;AAAA,MAC5C,WAAW,CAACQ,MAAU;AACpB,QAAIA,EAAM,QAAQ,WAAW,CAACT,KAC5BH,IAAA;AAAA,MAEJ;AAAA,MACA,WAAS;AAAA,MACT,aAAAN;AAAA,MACA,UAAAC;AAAA,MACA,UAAU;AAAA,MAET,UAAAkB;AAAA,QACCpB;AAAA,QACAG,EAAQ,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,OAAO,EAAE,KAAA,EAAO;AAAA,QACzD;AAAA,UACE,kBAAkB,CAACkB,MAAWA,EAAO;AAAA,UACrC,cAAc,CAACA,MAAWA,EAAO;AAAA,UACjC,kBAAkBjB,KAAoBS;AAAA,QAAA;AAAA,MACxC;AAAA,IACF;AAAA,EAAA;AAGN;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seij/common-ui",
3
- "version": "0.1.10",
3
+ "version": "0.1.11",
4
4
  "type": "module",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -8,22 +8,22 @@
8
8
  "url": "https://github.com/seij-net/seij-commons-js.git"
9
9
  },
10
10
  "dependencies": {
11
- "@fluentui/react-components": "9.72.9",
12
- "@seij/common-ui-icons": "0.1.3",
13
- "i18next-browser-languagedetector": "8.2.0",
14
- "i18next": "25.7.3",
15
- "@seij/common-types": "0.1.3",
16
- "date-fns": "4.1.0",
17
- "i18next-icu": "2.4.1",
18
- "lodash-es": "4.17.22",
19
- "rifm": "0.12.1"
11
+ "@fluentui/react-components": "^9.73.2",
12
+ "@seij/common-types": "^0.1.5",
13
+ "@seij/common-ui-icons": "^0.1.4",
14
+ "i18next-browser-languagedetector": "^8.2.0",
15
+ "i18next": "^25.7.3",
16
+ "lodash-es": "^4.17.23",
17
+ "date-fns": "^4.1.0",
18
+ "rifm": "^0.12.1",
19
+ "i18next-icu": "^2.4.1"
20
20
  },
21
21
  "devDependencies": {
22
- "@types/lodash-es": "4.17.12"
22
+ "@types/lodash-es": "^4.17.12"
23
23
  },
24
24
  "peerDependencies": {
25
- "react": "19.2.3",
26
- "react-dom": "19.2.3"
25
+ "react": "^19.2.4",
26
+ "react-dom": "^19.2.4"
27
27
  },
28
28
  "exports": {
29
29
  ".": {