@activecollab/components 1.0.121 → 1.0.122

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.
Files changed (62) hide show
  1. package/dist/cjs/components/Autocomplete/Styles.js +4 -2
  2. package/dist/cjs/components/Autocomplete/Styles.js.map +1 -1
  3. package/dist/cjs/components/ComboBox/ComboBox.js +28 -30
  4. package/dist/cjs/components/ComboBox/ComboBox.js.map +1 -1
  5. package/dist/cjs/components/ComboBox/Styles.js +16 -37
  6. package/dist/cjs/components/ComboBox/Styles.js.map +1 -1
  7. package/dist/cjs/components/Input/Input.js +28 -8
  8. package/dist/cjs/components/Input/Input.js.map +1 -1
  9. package/dist/cjs/components/Input/InputAdornment.js +57 -0
  10. package/dist/cjs/components/Input/InputAdornment.js.map +1 -0
  11. package/dist/cjs/components/Input/Styles.js +40 -18
  12. package/dist/cjs/components/Input/Styles.js.map +1 -1
  13. package/dist/cjs/components/Input/index.js +13 -0
  14. package/dist/cjs/components/Input/index.js.map +1 -1
  15. package/dist/cjs/components/Input/types.js +6 -0
  16. package/dist/cjs/components/Input/types.js.map +1 -0
  17. package/dist/cjs/components/Select/Select.js +1 -1
  18. package/dist/cjs/components/Select/Select.js.map +1 -1
  19. package/dist/cjs/components/Select/Styles.js +1 -1
  20. package/dist/cjs/components/Select/Styles.js.map +1 -1
  21. package/dist/esm/components/Autocomplete/Styles.d.ts.map +1 -1
  22. package/dist/esm/components/Autocomplete/Styles.js +3 -2
  23. package/dist/esm/components/Autocomplete/Styles.js.map +1 -1
  24. package/dist/esm/components/ComboBox/ComboBox.d.ts +1 -1
  25. package/dist/esm/components/ComboBox/ComboBox.d.ts.map +1 -1
  26. package/dist/esm/components/ComboBox/ComboBox.js +28 -31
  27. package/dist/esm/components/ComboBox/ComboBox.js.map +1 -1
  28. package/dist/esm/components/ComboBox/Styles.d.ts +4 -10
  29. package/dist/esm/components/ComboBox/Styles.d.ts.map +1 -1
  30. package/dist/esm/components/ComboBox/Styles.js +13 -27
  31. package/dist/esm/components/ComboBox/Styles.js.map +1 -1
  32. package/dist/esm/components/Input/Input.d.ts +6 -3
  33. package/dist/esm/components/Input/Input.d.ts.map +1 -1
  34. package/dist/esm/components/Input/Input.js +28 -10
  35. package/dist/esm/components/Input/Input.js.map +1 -1
  36. package/dist/esm/components/Input/InputAdornment.d.ts +12 -0
  37. package/dist/esm/components/Input/InputAdornment.d.ts.map +1 -0
  38. package/dist/esm/components/Input/InputAdornment.js +32 -0
  39. package/dist/esm/components/Input/InputAdornment.js.map +1 -0
  40. package/dist/esm/components/Input/Styles.d.ts +12 -5
  41. package/dist/esm/components/Input/Styles.d.ts.map +1 -1
  42. package/dist/esm/components/Input/Styles.js +36 -17
  43. package/dist/esm/components/Input/Styles.js.map +1 -1
  44. package/dist/esm/components/Input/index.d.ts +1 -0
  45. package/dist/esm/components/Input/index.d.ts.map +1 -1
  46. package/dist/esm/components/Input/index.js +1 -0
  47. package/dist/esm/components/Input/index.js.map +1 -1
  48. package/dist/esm/components/Input/types.d.ts +2 -0
  49. package/dist/esm/components/Input/types.d.ts.map +1 -0
  50. package/dist/esm/components/Input/types.js +2 -0
  51. package/dist/esm/components/Input/types.js.map +1 -0
  52. package/dist/esm/components/Select/Select.js +1 -1
  53. package/dist/esm/components/Select/Select.js.map +1 -1
  54. package/dist/esm/components/Select/Styles.d.ts +1 -1
  55. package/dist/esm/components/Select/Styles.d.ts.map +1 -1
  56. package/dist/esm/components/Select/Styles.js +1 -1
  57. package/dist/esm/components/Select/Styles.js.map +1 -1
  58. package/dist/index.js +210 -161
  59. package/dist/index.js.map +1 -1
  60. package/dist/index.min.js +1 -1
  61. package/dist/index.min.js.map +1 -1
  62. package/package.json +1 -1
@@ -1,12 +1,14 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
- var _excluded = ["className", "type", "disabled", "size", "invalid"];
4
- import React, { forwardRef } from "react";
3
+ var _excluded = ["className", "style", "type", "disabled", "size", "invalid", "startAdornment", "endAdornment", "inputRef"];
4
+ import React, { useCallback, useRef } from "react";
5
5
  import classnames from "classnames";
6
- import { StyledInput } from "./Styles";
7
- export var Input = /*#__PURE__*/forwardRef(function (_ref, ref) {
6
+ import { StyledInput, StyledInputWrapper } from "./Styles";
7
+ import useForkRef from "../../utils/useForkRef";
8
+ export var Input = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
8
9
  var _ref$className = _ref.className,
9
10
  className = _ref$className === void 0 ? "" : _ref$className,
11
+ style = _ref.style,
10
12
  _ref$type = _ref.type,
11
13
  type = _ref$type === void 0 ? "text" : _ref$type,
12
14
  _ref$disabled = _ref.disabled,
@@ -15,16 +17,32 @@ export var Input = /*#__PURE__*/forwardRef(function (_ref, ref) {
15
17
  size = _ref$size === void 0 ? "regular" : _ref$size,
16
18
  _ref$invalid = _ref.invalid,
17
19
  invalid = _ref$invalid === void 0 ? false : _ref$invalid,
20
+ startAdornment = _ref.startAdornment,
21
+ endAdornment = _ref.endAdornment,
22
+ inputRef = _ref.inputRef,
18
23
  rest = _objectWithoutPropertiesLoose(_ref, _excluded);
19
24
 
20
- return /*#__PURE__*/React.createElement(StyledInput, _extends({
21
- ref: ref,
22
- type: type,
23
- disabled: disabled,
25
+ var intInputRef = useRef(null);
26
+ var handleRef = useForkRef(inputRef, intInputRef);
27
+ var handleWrapperClick = useCallback(function () {
28
+ var _intInputRef$current;
29
+
30
+ (_intInputRef$current = intInputRef.current) == null ? void 0 : _intInputRef$current.focus();
31
+ }, []);
32
+ return /*#__PURE__*/React.createElement(StyledInputWrapper, {
33
+ $size: size,
34
+ $invalid: invalid,
35
+ $disabled: disabled,
24
36
  className: classnames("c-input", className),
37
+ style: style,
38
+ onClick: handleWrapperClick,
39
+ ref: ref
40
+ }, startAdornment, /*#__PURE__*/React.createElement(StyledInput, _extends({
41
+ ref: handleRef,
42
+ type: type,
25
43
  $size: size,
26
- $invalid: invalid
27
- }, rest));
44
+ disabled: disabled
45
+ }, rest)), endAdornment);
28
46
  });
29
47
  Input.displayName = "Input";
30
48
  //# sourceMappingURL=Input.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Input/Input.tsx"],"names":["React","forwardRef","classnames","StyledInput","Input","ref","className","type","disabled","size","invalid","rest","displayName"],"mappings":";;;AAAA,OAAOA,KAAP,IAAgBC,UAAhB,QAAkC,OAAlC;AACA,OAAOC,UAAP,MAAuB,YAAvB;AACA,SAASC,WAAT,QAA4B,UAA5B;AASA,OAAO,IAAMC,KAAK,gBAAGH,UAAU,CAI7B,gBASEI,GATF,EAUK;AAAA,4BARDC,SAQC;AAAA,MARDA,SAQC,+BARW,EAQX;AAAA,uBAPDC,IAOC;AAAA,MAPDA,IAOC,0BAPM,MAON;AAAA,2BANDC,QAMC;AAAA,MANDA,QAMC,8BANU,KAMV;AAAA,uBALDC,IAKC;AAAA,MALDA,IAKC,0BALM,SAKN;AAAA,0BAJDC,OAIC;AAAA,MAJDA,OAIC,6BAJS,KAIT;AAAA,MAHEC,IAGF;;AACH,sBACE,oBAAC,WAAD;AACE,IAAA,GAAG,EAAEN,GADP;AAEE,IAAA,IAAI,EAAEE,IAFR;AAGE,IAAA,QAAQ,EAAEC,QAHZ;AAIE,IAAA,SAAS,EAAEN,UAAU,CAAC,SAAD,EAAYI,SAAZ,CAJvB;AAKE,IAAA,KAAK,EAAEG,IALT;AAME,IAAA,QAAQ,EAAEC;AANZ,KAOMC,IAPN,EADF;AAWD,CA1B4B,CAAxB;AA6BPP,KAAK,CAACQ,WAAN,GAAoB,OAApB","sourcesContent":["import React, { forwardRef } from \"react\";\nimport classnames from \"classnames\";\nimport { StyledInput } from \"./Styles\";\n\nexport type InputSize = \"small\" | \"regular\" | \"big\";\nexport interface InputProps {\n /** Velicina inputa koja definse font-size i border radius */\n size?: InputSize;\n invalid?: boolean;\n}\n\nexport const Input = forwardRef<\n HTMLInputElement,\n InputProps & Omit<React.ComponentPropsWithoutRef<\"input\">, keyof InputProps>\n>(\n (\n {\n className = \"\",\n type = \"text\",\n disabled = false,\n size = \"regular\",\n invalid = false,\n ...rest\n },\n ref\n ) => {\n return (\n <StyledInput\n ref={ref}\n type={type}\n disabled={disabled}\n className={classnames(\"c-input\", className)}\n $size={size}\n $invalid={invalid}\n {...rest}\n />\n );\n }\n);\n\nInput.displayName = \"Input\";\n"],"file":"Input.js"}
1
+ {"version":3,"sources":["../../../../src/components/Input/Input.tsx"],"names":["React","useCallback","useRef","classnames","StyledInput","StyledInputWrapper","useForkRef","Input","forwardRef","ref","className","style","type","disabled","size","invalid","startAdornment","endAdornment","inputRef","rest","intInputRef","handleRef","handleWrapperClick","current","focus","displayName"],"mappings":";;;AAAA,OAAOA,KAAP,IAAgCC,WAAhC,EAA6CC,MAA7C,QAA2D,OAA3D;AACA,OAAOC,UAAP,MAAuB,YAAvB;AACA,SAASC,WAAT,EAAsBC,kBAAtB,QAAgD,UAAhD;AACA,OAAOC,UAAP,MAAuB,wBAAvB;AAWA,OAAO,IAAMC,KAAK,gBAAGP,KAAK,CAACQ,UAAN,CAInB,gBAaEC,GAbF,EAcK;AAAA,4BAZDC,SAYC;AAAA,MAZDA,SAYC,+BAZW,EAYX;AAAA,MAXDC,KAWC,QAXDA,KAWC;AAAA,uBAVDC,IAUC;AAAA,MAVDA,IAUC,0BAVM,MAUN;AAAA,2BATDC,QASC;AAAA,MATDA,QASC,8BATU,KASV;AAAA,uBARDC,IAQC;AAAA,MARDA,IAQC,0BARM,SAQN;AAAA,0BAPDC,OAOC;AAAA,MAPDA,OAOC,6BAPS,KAOT;AAAA,MANDC,cAMC,QANDA,cAMC;AAAA,MALDC,YAKC,QALDA,YAKC;AAAA,MAJDC,QAIC,QAJDA,QAIC;AAAA,MAHEC,IAGF;;AACH,MAAMC,WAAW,GAAGlB,MAAM,CAAmB,IAAnB,CAA1B;AACA,MAAMmB,SAAS,GAAGf,UAAU,CAACY,QAAD,EAAWE,WAAX,CAA5B;AAEA,MAAME,kBAAkB,GAAGrB,WAAW,CAAC,YAAM;AAAA;;AAC3C,4BAAAmB,WAAW,CAACG,OAAZ,0CAAqBC,KAArB;AACD,GAFqC,EAEnC,EAFmC,CAAtC;AAIA,sBACE,oBAAC,kBAAD;AACE,IAAA,KAAK,EAAEV,IADT;AAEE,IAAA,QAAQ,EAAEC,OAFZ;AAGE,IAAA,SAAS,EAAEF,QAHb;AAIE,IAAA,SAAS,EAAEV,UAAU,CAAC,SAAD,EAAYO,SAAZ,CAJvB;AAKE,IAAA,KAAK,EAAEC,KALT;AAME,IAAA,OAAO,EAAEW,kBANX;AAOE,IAAA,GAAG,EAAEb;AAPP,KASGO,cATH,eAUE,oBAAC,WAAD;AACE,IAAA,GAAG,EAAEK,SADP;AAEE,IAAA,IAAI,EAAET,IAFR;AAGE,IAAA,KAAK,EAAEE,IAHT;AAIE,IAAA,QAAQ,EAAED;AAJZ,KAKMM,IALN,EAVF,EAiBGF,YAjBH,CADF;AAqBD,CA/CkB,CAAd;AAkDPV,KAAK,CAACkB,WAAN,GAAoB,OAApB","sourcesContent":["import React, { ReactNode, Ref, useCallback, useRef } from \"react\";\nimport classnames from \"classnames\";\nimport { StyledInput, StyledInputWrapper } from \"./Styles\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport { InputSize } from \"./types\";\nexport interface InputProps {\n /** Velicina inputa koja definse font-size i border radius */\n size?: InputSize;\n invalid?: boolean;\n startAdornment?: ReactNode;\n endAdornment?: ReactNode;\n inputRef?: Ref<HTMLInputElement>;\n}\n\nexport const Input = React.forwardRef<\n HTMLDivElement,\n InputProps & Omit<React.ComponentPropsWithoutRef<\"input\">, keyof InputProps>\n>(\n (\n {\n className = \"\",\n style,\n type = \"text\",\n disabled = false,\n size = \"regular\",\n invalid = false,\n startAdornment,\n endAdornment,\n inputRef,\n ...rest\n },\n ref\n ) => {\n const intInputRef = useRef<HTMLInputElement>(null);\n const handleRef = useForkRef(inputRef, intInputRef);\n\n const handleWrapperClick = useCallback(() => {\n intInputRef.current?.focus();\n }, []);\n\n return (\n <StyledInputWrapper\n $size={size}\n $invalid={invalid}\n $disabled={disabled}\n className={classnames(\"c-input\", className)}\n style={style}\n onClick={handleWrapperClick}\n ref={ref}\n >\n {startAdornment}\n <StyledInput\n ref={handleRef}\n type={type}\n $size={size}\n disabled={disabled}\n {...rest}\n />\n {endAdornment}\n </StyledInputWrapper>\n );\n }\n);\n\nInput.displayName = \"Input\";\n"],"file":"Input.js"}
@@ -0,0 +1,12 @@
1
+ import React from "react";
2
+ import { PolymorphicComponentPropsWithRef } from "../../utils/types";
3
+ interface BaseInputAdornmentProps {
4
+ disablePointerEvents?: boolean;
5
+ }
6
+ export declare type InputAdornmentProps<C extends React.ElementType> = PolymorphicComponentPropsWithRef<C, BaseInputAdornmentProps>;
7
+ export declare type InputAdornmentComponent = <C extends React.ElementType = "div">(props: InputAdornmentProps<C>) => React.ReactElement | null;
8
+ export declare const InputAdornment: InputAdornmentComponent & {
9
+ displayName?: string;
10
+ };
11
+ export {};
12
+ //# sourceMappingURL=InputAdornment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InputAdornment.d.ts","sourceRoot":"","sources":["../../../../src/components/Input/InputAdornment.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EACL,gCAAgC,EAEjC,MAAM,mBAAmB,CAAC;AAE3B,UAAU,uBAAuB;IAC/B,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAaD,oBAAY,mBAAmB,CAAC,CAAC,SAAS,KAAK,CAAC,WAAW,IACzD,gCAAgC,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAC;AAE/D,oBAAY,uBAAuB,GAAG,CAAC,CAAC,SAAS,KAAK,CAAC,WAAW,GAAG,KAAK,EACxE,KAAK,EAAE,mBAAmB,CAAC,CAAC,CAAC,KAC1B,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;AAE/B,eAAO,MAAM,cAAc,EAAE,uBAAuB,GAAG;IACrD,WAAW,CAAC,EAAE,MAAM,CAAC;CAkBtB,CAAC"}
@@ -0,0 +1,32 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
+ var _excluded = ["children", "as", "disablePointerEvents"];
4
+ import React from "react";
5
+ import styled, { css } from "styled-components";
6
+ var InputAdornmentBase = styled.div.withConfig({
7
+ displayName: "InputAdornment__InputAdornmentBase",
8
+ componentId: "sc-1xfjx1z-0"
9
+ })(["", " ", " ", ""], {
10
+ "display": "flex"
11
+ }, {
12
+ "alignItems": "center"
13
+ }, function (props) {
14
+ return props.$disablePointerEvents && css(["", ""], {
15
+ "pointerEvents": "none"
16
+ });
17
+ });
18
+ export var InputAdornment = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
19
+ var children = _ref.children,
20
+ as = _ref.as,
21
+ disablePointerEvents = _ref.disablePointerEvents,
22
+ rest = _objectWithoutPropertiesLoose(_ref, _excluded);
23
+
24
+ var Component = as || "div";
25
+ return /*#__PURE__*/React.createElement(InputAdornmentBase, _extends({}, rest, {
26
+ as: Component,
27
+ $disablePointerEvents: disablePointerEvents,
28
+ ref: ref
29
+ }), children);
30
+ });
31
+ InputAdornment.displayName = "InputAdornment";
32
+ //# sourceMappingURL=InputAdornment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/Input/InputAdornment.tsx"],"names":["React","styled","css","InputAdornmentBase","div","props","$disablePointerEvents","InputAdornment","forwardRef","ref","children","as","disablePointerEvents","rest","Component","displayName"],"mappings":";;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,MAAP,IAAiBC,GAAjB,QAA4B,mBAA5B;AAWA,IAAMC,kBAAkB,GAAGF,MAAM,CAACG,GAAV;AAAA;AAAA;AAAA,uBAClB;AAAA;AAAA,CADkB,EAElB;AAAA;AAAA,CAFkB,EAIpB,UAACC,KAAD;AAAA,SACAA,KAAK,CAACC,qBAAN,IACAJ,GADA,WAEM;AAAA;AAAA,GAFN,CADA;AAAA,CAJoB,CAAxB;AAkBA,OAAO,IAAMK,cAEZ,gBAAGP,KAAK,CAACQ,UAAN,CACF,gBAEEC,GAFF,EAGK;AAAA,MAFDC,QAEC,QAFDA,QAEC;AAAA,MAFSC,EAET,QAFSA,EAET;AAAA,MAFaC,oBAEb,QAFaA,oBAEb;AAAA,MAFsCC,IAEtC;;AACH,MAAMC,SAAS,GAAGH,EAAE,IAAI,KAAxB;AACA,sBACE,oBAAC,kBAAD,eACME,IADN;AAEE,IAAA,EAAE,EAAEC,SAFN;AAGE,IAAA,qBAAqB,EAAEF,oBAHzB;AAIE,IAAA,GAAG,EAAEH;AAJP,MAMGC,QANH,CADF;AAUD,CAhBC,CAFG;AAqBPH,cAAc,CAACQ,WAAf,GAA6B,gBAA7B","sourcesContent":["import React from \"react\";\nimport styled, { css } from \"styled-components\";\nimport tw from \"twin.macro\";\nimport {\n PolymorphicComponentPropsWithRef,\n PolymorphicRef,\n} from \"../../utils/types\";\n\ninterface BaseInputAdornmentProps {\n disablePointerEvents?: boolean;\n}\n\nconst InputAdornmentBase = styled.div<{ $disablePointerEvents?: boolean }>`\n ${tw`tw-flex`}\n ${tw`tw-items-center`}\n\n ${(props) =>\n props.$disablePointerEvents &&\n css`\n ${tw`tw-pointer-events-none`}\n `}\n`;\n\nexport type InputAdornmentProps<C extends React.ElementType> =\n PolymorphicComponentPropsWithRef<C, BaseInputAdornmentProps>;\n\nexport type InputAdornmentComponent = <C extends React.ElementType = \"div\">(\n props: InputAdornmentProps<C>\n) => React.ReactElement | null;\n\nexport const InputAdornment: InputAdornmentComponent & {\n displayName?: string;\n} = React.forwardRef(\n <C extends React.ElementType = \"div\">(\n { children, as, disablePointerEvents, ...rest }: InputAdornmentProps<C>,\n ref: PolymorphicRef<C>\n ) => {\n const Component = as || \"div\";\n return (\n <InputAdornmentBase\n {...rest}\n as={Component}\n $disablePointerEvents={disablePointerEvents}\n ref={ref}\n >\n {children}\n </InputAdornmentBase>\n );\n }\n);\n\nInputAdornment.displayName = \"InputAdornment\";\n"],"file":"InputAdornment.js"}
@@ -1,6 +1,13 @@
1
- import { InputSize } from "./Input";
2
- export declare const StyledInput: import("styled-components").StyledComponent<"input", any, {
3
- $size?: InputSize | undefined;
4
- $invalid?: boolean | undefined;
5
- }, never>;
1
+ import { InputSize } from "./types";
2
+ interface StyledInputWrapperProps {
3
+ $size?: InputSize;
4
+ $invalid?: boolean;
5
+ $disabled?: boolean;
6
+ }
7
+ export declare const StyledInputWrapper: import("styled-components").StyledComponent<"div", any, StyledInputWrapperProps, never>;
8
+ interface StyledInputProps {
9
+ $size?: InputSize;
10
+ }
11
+ export declare const StyledInput: import("styled-components").StyledComponent<"input", any, StyledInputProps, never>;
12
+ export {};
6
13
  //# sourceMappingURL=Styles.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Styles.d.ts","sourceRoot":"","sources":["../../../../src/components/Input/Styles.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAIpC,eAAO,MAAM,WAAW;;;SAgEvB,CAAC"}
1
+ {"version":3,"file":"Styles.d.ts","sourceRoot":"","sources":["../../../../src/components/Input/Styles.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGpC,UAAU,uBAAuB;IAC/B,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,eAAO,MAAM,kBAAkB,yFAoD9B,CAAC;AAIF,UAAU,gBAAgB;IACxB,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AAED,eAAO,MAAM,WAAW,oFA8BvB,CAAC"}
@@ -1,41 +1,60 @@
1
1
  import styled, { css } from "styled-components";
2
2
  import { BoxSizingStyle } from "../BoxSizingStyle";
3
3
  import { FontStyle } from "../FontStyle";
4
- export var StyledInput = styled.input.withConfig({
5
- displayName: "Styles__StyledInput",
4
+ export var StyledInputWrapper = styled.div.withConfig({
5
+ displayName: "Styles__StyledInputWrapper",
6
6
  componentId: "sc-ce8kcp-0"
7
- })(["", " ", " ", " ", " ", " border-width:1px;border-style:solid;", " border-radius:8px;padding:4px 8px 6px 8px;height:32px;background-color:var(--input-background-color);transition:all 0.3s ease;width:360px;outline:none;", " ", " ", " ", " ", " ", " &::placeholder{", "}", ""], {
8
- "fontSize": "0.875rem"
7
+ })(["", " ", " ", " border-width:1px;border-style:solid;", " border-radius:8px;padding:4px;height:32px;background-color:var(--input-background-color);transition:all 0.3s ease;width:360px;", " ", " ", " ", " ", " ", " ", ""], {
8
+ "cursor": "text"
9
9
  }, {
10
- "color": "var(--color-theme-900)"
10
+ "display": "flex"
11
11
  }, {
12
- "lineHeight": "1.375"
13
- }, {
14
- "letterSpacing": "0.02em"
15
- }, {
16
- "fontWeight": "400"
12
+ "alignItems": "center"
17
13
  }, {
18
14
  "borderColor": "var(--color-theme-500)"
19
15
  }, FontStyle, BoxSizingStyle, function (props) {
20
16
  return props.$size === "small" && css(["border-radius:6px;height:24px;"]);
21
17
  }, function (props) {
22
- return props.$size === "big" && css(["", " height:40px;"], {
23
- "fontSize": "1rem"
24
- });
18
+ return props.$size === "big" && css(["height:40px;"]);
25
19
  }, function (props) {
26
- return props.disabled && css(["", ""], {
20
+ return props.$disabled && css(["", ""], {
27
21
  "cursor": "not-allowed",
28
22
  "opacity": "0.5"
29
23
  });
30
24
  }, function (props) {
31
- return !props.disabled && !props.$invalid && css(["&:active,&:focus,&:hover{", "}"], {
25
+ return !props.$disabled && !props.$invalid && css(["&:focus-within,&:hover{", "}"], {
32
26
  "borderColor": "var(--color-primary)"
33
27
  });
28
+ }, function (props) {
29
+ return !props.$disabled && props.$invalid && css(["", ""], {
30
+ "borderColor": "var(--red-alert)"
31
+ });
32
+ });
33
+ StyledInputWrapper.displayName = "StyledInputWrapper";
34
+ export var StyledInput = styled.input.withConfig({
35
+ displayName: "Styles__StyledInput",
36
+ componentId: "sc-ce8kcp-1"
37
+ })(["", " ", " ", " ", " ", " ", " padding:0px;margin:0 4px;background-color:var(--input-background-color);border:none;outline:none;&::placeholder{", "}", " ", ""], {
38
+ "fontSize": "0.875rem"
39
+ }, {
40
+ "color": "var(--color-theme-900)"
41
+ }, {
42
+ "lineHeight": "1.375"
43
+ }, {
44
+ "letterSpacing": "0.02em"
45
+ }, {
46
+ "fontWeight": "400"
47
+ }, {
48
+ "width": "100%"
34
49
  }, {
35
50
  "color": "var(--color-theme-transparent-500)"
36
51
  }, function (props) {
37
- return !props.disabled && props.$invalid && css(["", ""], {
38
- "borderColor": "var(--red-alert)"
52
+ return props.$size === "big" && css(["", ""], {
53
+ "fontSize": "1rem"
54
+ });
55
+ }, function (props) {
56
+ return props.disabled && css(["", ""], {
57
+ "cursor": "not-allowed"
39
58
  });
40
59
  });
41
60
  StyledInput.displayName = "StyledInput";
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Input/Styles.ts"],"names":["styled","css","BoxSizingStyle","FontStyle","StyledInput","input","props","$size","disabled","$invalid","displayName"],"mappings":"AAAA,OAAOA,MAAP,IAAiBC,GAAjB,QAA4B,mBAA5B;AAGA,SAASC,cAAT,QAA+B,mBAA/B;AACA,SAASC,SAAT,QAA0B,cAA1B;AAEA,OAAO,IAAMC,WAAW,GAAGJ,MAAM,CAACK,KAAV;AAAA;AAAA;AAAA,wRAIlB;AAAA;AAAA,CAJkB,EAKlB;AAAA;AAAA,CALkB,EAMlB;AAAA;AAAA,CANkB,EAOlB;AAAA;AAAA,CAPkB,EAQlB;AAAA;AAAA,CARkB,EAWlB;AAAA;AAAA,CAXkB,EAoBpBF,SApBoB,EAqBpBD,cArBoB,EAuBpB,UAACI,KAAD;AAAA,SACAA,KAAK,CAACC,KAAN,KAAgB,OAAhB,IACAN,GADA,oCADA;AAAA,CAvBoB,EA8BpB,UAACK,KAAD;AAAA,SACAA,KAAK,CAACC,KAAN,KAAgB,KAAhB,IACAN,GADA,wBAEM;AAAA;AAAA,GAFN,CADA;AAAA,CA9BoB,EAqCpB,UAACK,KAAD;AAAA,SACAA,KAAK,CAACE,QAAN,IACAP,GADA,WAEM;AAAA;AAAA;AAAA,GAFN,CADA;AAAA,CArCoB,EA2CpB,UAACK,KAAD;AAAA,SACA,CAACA,KAAK,CAACE,QAAP,IACA,CAACF,KAAK,CAACG,QADP,IAEAR,GAFA,qCAMQ;AAAA;AAAA,GANR,CADA;AAAA,CA3CoB,EAuDhB;AAAA;AAAA,CAvDgB,EA0DpB,UAACK,KAAD;AAAA,SACA,CAACA,KAAK,CAACE,QAAP,IACAF,KAAK,CAACG,QADN,IAEAR,GAFA,WAGM;AAAA;AAAA,GAHN,CADA;AAAA,CA1DoB,CAAjB;AAkEPG,WAAW,CAACM,WAAZ,GAA0B,aAA1B","sourcesContent":["import styled, { css } from \"styled-components\";\nimport tw from \"twin.macro\";\nimport { InputSize } from \"./Input\";\nimport { BoxSizingStyle } from \"../BoxSizingStyle\";\nimport { FontStyle } from \"../FontStyle\";\n\nexport const StyledInput = styled.input<{\n $size?: InputSize;\n $invalid?: boolean;\n}>`\n ${tw`tw-text-body-2`}\n ${tw`tw-text-theme-900`}\n ${tw`tw-leading-regular`}\n ${tw`tw-tracking-regular`}\n ${tw`tw-font-regular`}\n border-width: 1px;\n border-style: solid;\n ${tw`tw-border-theme-500`}\n border-radius: 8px;\n padding: 4px 8px 6px 8px;\n height: 32px;\n background-color: var(--input-background-color);\n transition: all 0.3s ease;\n width: 360px;\n outline: none;\n\n ${FontStyle}\n ${BoxSizingStyle}\n\n ${(props) =>\n props.$size === \"small\" &&\n css`\n border-radius: 6px;\n height: 24px;\n `}\n\n ${(props) =>\n props.$size === \"big\" &&\n css`\n ${tw`tw-text-body-1`}\n height: 40px;\n `}\n\n ${(props) =>\n props.disabled &&\n css`\n ${tw`tw-cursor-not-allowed tw-opacity-50`}\n `}\n\n ${(props) =>\n !props.disabled &&\n !props.$invalid &&\n css`\n &:active,\n &:focus,\n &:hover {\n ${tw`tw-border-primary`}\n }\n `}\n\n &::placeholder {\n ${tw`tw-text-theme-transparent-500`}\n }\n\n ${(props) =>\n !props.disabled &&\n props.$invalid &&\n css`\n ${tw`tw-border-alert`}\n `}\n`;\n\nStyledInput.displayName = \"StyledInput\";\n"],"file":"Styles.js"}
1
+ {"version":3,"sources":["../../../../src/components/Input/Styles.ts"],"names":["styled","css","BoxSizingStyle","FontStyle","StyledInputWrapper","div","props","$size","$disabled","$invalid","displayName","StyledInput","input","disabled"],"mappings":"AAAA,OAAOA,MAAP,IAAiBC,GAAjB,QAA4B,mBAA5B;AAGA,SAASC,cAAT,QAA+B,mBAA/B;AACA,SAASC,SAAT,QAA0B,cAA1B;AAOA,OAAO,IAAMC,kBAAkB,GAAGJ,MAAM,CAACK,GAAV;AAAA;AAAA;AAAA,iOACzB;AAAA;AAAA,CADyB,EAEzB;AAAA;AAAA,CAFyB,EAGzB;AAAA;AAAA,CAHyB,EAMzB;AAAA;AAAA,CANyB,EAc3BF,SAd2B,EAe3BD,cAf2B,EAiB3B,UAACI,KAAD;AAAA,SACAA,KAAK,CAACC,KAAN,KAAgB,OAAhB,IACAN,GADA,oCADA;AAAA,CAjB2B,EAwB3B,UAACK,KAAD;AAAA,SACAA,KAAK,CAACC,KAAN,KAAgB,KAAhB,IACAN,GADA,kBADA;AAAA,CAxB2B,EA8B3B,UAACK,KAAD;AAAA,SACAA,KAAK,CAACE,SAAN,IACAP,GADA,WAEM;AAAA;AAAA;AAAA,GAFN,CADA;AAAA,CA9B2B,EAoC3B,UAACK,KAAD;AAAA,SACA,CAACA,KAAK,CAACE,SAAP,IACA,CAACF,KAAK,CAACG,QADP,IAEAR,GAFA,mCAKQ;AAAA;AAAA,GALR,CADA;AAAA,CApC2B,EA8C3B,UAACK,KAAD;AAAA,SACA,CAACA,KAAK,CAACE,SAAP,IACAF,KAAK,CAACG,QADN,IAEAR,GAFA,WAGM;AAAA;AAAA,GAHN,CADA;AAAA,CA9C2B,CAAxB;AAsDPG,kBAAkB,CAACM,WAAnB,GAAiC,oBAAjC;AAMA,OAAO,IAAMC,WAAW,GAAGX,MAAM,CAACY,KAAV;AAAA;AAAA;AAAA,qKAClB;AAAA;AAAA,CADkB,EAElB;AAAA;AAAA,CAFkB,EAGlB;AAAA;AAAA,CAHkB,EAIlB;AAAA;AAAA,CAJkB,EAKlB;AAAA;AAAA,CALkB,EAMlB;AAAA;AAAA,CANkB,EAgBhB;AAAA;AAAA,CAhBgB,EAmBpB,UAACN,KAAD;AAAA,SACAA,KAAK,CAACC,KAAN,KAAgB,KAAhB,IACAN,GADA,WAEM;AAAA;AAAA,GAFN,CADA;AAAA,CAnBoB,EAyBpB,UAACK,KAAD;AAAA,SACAA,KAAK,CAACO,QAAN,IACAZ,GADA,WAEM;AAAA;AAAA,GAFN,CADA;AAAA,CAzBoB,CAAjB;AAgCPU,WAAW,CAACD,WAAZ,GAA0B,aAA1B","sourcesContent":["import styled, { css } from \"styled-components\";\nimport tw from \"twin.macro\";\nimport { InputSize } from \"./types\";\nimport { BoxSizingStyle } from \"../BoxSizingStyle\";\nimport { FontStyle } from \"../FontStyle\";\ninterface StyledInputWrapperProps {\n $size?: InputSize;\n $invalid?: boolean;\n $disabled?: boolean;\n}\n\nexport const StyledInputWrapper = styled.div<StyledInputWrapperProps>`\n ${tw`tw-cursor-text`}\n ${tw`tw-flex`}\n ${tw`tw-items-center`}\n border-width: 1px;\n border-style: solid;\n ${tw`tw-border-theme-500`}\n border-radius: 8px;\n padding: 4px;\n height: 32px;\n background-color: var(--input-background-color);\n transition: all 0.3s ease;\n width: 360px;\n\n ${FontStyle}\n ${BoxSizingStyle}\n\n ${(props) =>\n props.$size === \"small\" &&\n css`\n border-radius: 6px;\n height: 24px;\n `}\n\n ${(props) =>\n props.$size === \"big\" &&\n css`\n height: 40px;\n `}\n\n ${(props) =>\n props.$disabled &&\n css`\n ${tw`tw-cursor-not-allowed tw-opacity-50`}\n `}\n\n ${(props) =>\n !props.$disabled &&\n !props.$invalid &&\n css`\n &:focus-within,\n &:hover {\n ${tw`tw-border-primary`}\n }\n `}\n\n ${(props) =>\n !props.$disabled &&\n props.$invalid &&\n css`\n ${tw`tw-border-alert`}\n `}\n`;\n\nStyledInputWrapper.displayName = \"StyledInputWrapper\";\n\ninterface StyledInputProps {\n $size?: InputSize;\n}\n\nexport const StyledInput = styled.input<StyledInputProps>`\n ${tw`tw-text-body-2`}\n ${tw`tw-text-theme-900`}\n ${tw`tw-leading-regular`}\n ${tw`tw-tracking-regular`}\n ${tw`tw-font-regular`}\n ${tw`tw-w-full`}\n\n padding: 0px;\n margin: 0 4px;\n\n background-color: var(--input-background-color);\n border: none;\n outline: none;\n\n &::placeholder {\n ${tw`tw-text-theme-transparent-500`}\n }\n\n ${(props) =>\n props.$size === \"big\" &&\n css`\n ${tw`tw-text-body-1`}\n `}\n\n ${(props) =>\n props.disabled &&\n css`\n ${tw`tw-cursor-not-allowed`}\n `}\n`;\n\nStyledInput.displayName = \"StyledInput\";\n"],"file":"Styles.js"}
@@ -1,2 +1,3 @@
1
1
  export * from "./Input";
2
+ export * from "./InputAdornment";
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Input/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Input/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,kBAAkB,CAAC"}
@@ -1,2 +1,3 @@
1
1
  export * from "./Input";
2
+ export * from "./InputAdornment";
2
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Input/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAd","sourcesContent":["export * from \"./Input\";\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../../src/components/Input/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAd;AACA,cAAc,kBAAd","sourcesContent":["export * from \"./Input\";\nexport * from \"./InputAdornment\";\n"],"file":"index.js"}
@@ -0,0 +1,2 @@
1
+ export declare type InputSize = "small" | "regular" | "big";
2
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/Input/types.ts"],"names":[],"mappings":"AAAA,oBAAY,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,KAAK,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[],"file":"types.js"}
@@ -196,7 +196,7 @@ export var Select = function Select(_ref) {
196
196
  return /*#__PURE__*/React.createElement(Tag, props, /*#__PURE__*/React.createElement("div", null, !disableSearch ? /*#__PURE__*/React.createElement(StyledSelectForm, {
197
197
  ref: formRef
198
198
  }, /*#__PURE__*/React.createElement(StyledSelectInput, {
199
- ref: handleRef,
199
+ inputRef: handleRef,
200
200
  autoFocus: true,
201
201
  placeholder: placeholder
202
202
  }), actionIcon && actionLabel && /*#__PURE__*/React.createElement(Tooltip, {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Select/Select.tsx"],"names":["React","useCallback","useState","useMemo","useEffect","useRef","Autocomplete","Tooltip","Menu","classNames","useForkRef","StyledSelectForm","StyledSelectInput","StyledCheckbox","StyledRadioButton","OptionContent","Select","type","mode","target","options","selected","position","onChange","actionIcon","actionLabel","placeholder","emptyAction","disableSearch","forceCloseMenu","selectClassName","keepSameOptionsOrder","onSelectOpen","onSelectClose","prop","childNode","setChildNode","elementRef","handleRef","Tag","formRef","open","setOpen","isGroup","item","undefined","selectedOptions","Array","selectOptions","allOptionValues","reduce","acc","option","id","allGroupOptions","map","isAllOptionsChecked","every","includes","focus","handleChange","selectedValue","value","v","filter","concat","onClose","onOpen","props","menuClassName","className","handleEmptyAction","current","reset","handleDefaultOptionChange","length","handleRenderOption","image","color","textColor","name","additionalInfo","zIndex","displayName"],"mappings":"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","sourcesContent":["import React, {\n FC,\n useCallback,\n useState,\n ReactElement,\n useMemo,\n useEffect,\n useRef,\n Ref,\n} from \"react\";\nimport { Autocomplete } from \"../Autocomplete\";\nimport { Tooltip } from \"../Tooltip\";\nimport { Menu } from \"../Menu/Menu\";\nimport { IOptionItemProps } from \"../Select/Option\";\nimport { IOptionGroupProps } from \"../Select/OptionGroup\";\nimport classNames from \"classnames\";\nimport { Placement } from \"@popperjs/core\";\nimport { IAutocompleteProps } from \"../Autocomplete/Autocomplete\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport {\n StyledSelectForm,\n StyledSelectInput,\n StyledCheckbox,\n StyledRadioButton,\n} from \"./Styles\";\nimport { OptionContent } from \"./OptionContent/OptionContent\";\n\ninterface ElementWithRef<T> extends ReactElement {\n ref?: Ref<T>;\n}\n\ninterface ISelectProps {\n /** Select type: single or multiple */\n type?: \"single\" | \"multiple\";\n /** Menu width mode */\n mode?: \"normal\" | \"wider\" | \"tiny\";\n /** Set select target element */\n target?: ElementWithRef<Element>;\n /** Set selected items */\n selected?: (string | number)[] | string | number;\n /** Set Select position */\n position?: Placement;\n /** onChange callback */\n onChange?: (e: (string | number)[] | string | number) => void;\n /** Set action icon in select */\n actionIcon?: ReactElement;\n /** Set label for action icon */\n actionLabel?: string;\n /** Placeholder for Select input */\n placeholder?: string;\n /** Function that triggers when empty is clicked */\n emptyAction?: (e: string | undefined) => void;\n /** Removes input from Select */\n disableSearch?: boolean;\n /** Close menu on select */\n forceCloseMenu?: boolean;\n /** Set select classNames */\n selectClassName?: string;\n /** Should the order stay the same after choosing an option */\n keepSameOptionsOrder?: boolean;\n /** Callback called when the Select menu is opened */\n onSelectOpen?: () => void;\n /** Callback called when the Select menu is closed */\n onSelectClose?: () => void;\n}\n\nexport const Select: FC<ISelectProps & IAutocompleteProps> = ({\n type = \"single\",\n mode,\n target,\n options,\n selected = [],\n position = \"bottom-start\",\n onChange = (): null => null,\n actionIcon,\n actionLabel,\n placeholder,\n emptyAction = (): null => null,\n disableSearch = false,\n forceCloseMenu,\n selectClassName,\n keepSameOptionsOrder = false,\n onSelectOpen,\n onSelectClose,\n ...prop\n}) => {\n const [childNode, setChildNode] = useState<HTMLInputElement | null>();\n const elementRef = useRef<HTMLInputElement | null>(null);\n\n const handleRef = useForkRef(setChildNode, elementRef);\n\n const Tag = !target ? \"div\" : Menu;\n const formRef = useRef<HTMLFormElement | null>(null);\n\n const [open, setOpen] = useState(false);\n\n function isGroup(\n item: IOptionGroupProps | IOptionItemProps\n ): item is IOptionGroupProps {\n return (item as IOptionGroupProps).options !== undefined;\n }\n\n const selectedOptions = useMemo(\n () => (selected instanceof Array ? selected : [selected]),\n [selected]\n );\n\n const selectOptions = useMemo(() => {\n if (!options) {\n return [];\n }\n return options;\n }, [options]);\n\n const allOptionValues = useMemo(() => {\n return selectOptions.reduce(\n (\n acc: (string | number)[],\n option: IOptionGroupProps | IOptionItemProps\n ) => {\n if (!isGroup(option)) {\n return [...acc, option.id];\n }\n const allGroupOptions = option.options.map((option) => option.id);\n return [...acc, ...allGroupOptions];\n },\n []\n );\n }, [selectOptions]);\n\n const isAllOptionsChecked = useMemo(\n () => allOptionValues.every((option) => selectedOptions.includes(option)),\n [allOptionValues, selectedOptions]\n );\n\n useEffect(() => {\n open && childNode?.focus();\n }, [childNode, open]);\n\n const handleChange = useCallback(\n (selectedValue) => {\n if (selectedValue !== null) {\n if (type === \"single\") {\n if (forceCloseMenu) {\n setOpen(false);\n }\n return onChange(selectedValue);\n }\n // multiple\n const value = (): (string | number)[] => {\n if (selectedValue instanceof Array) {\n if (selectedValue.every((v) => selectedOptions.includes(v))) {\n return selectedOptions.filter((v) => !selectedValue.includes(v));\n }\n return selectedValue.concat(selectedOptions);\n }\n if (selectedOptions.includes(selectedValue)) {\n return selectedOptions.filter((option) => option !== selectedValue);\n }\n return [...selectedOptions, selectedValue];\n };\n return onChange(value());\n }\n },\n [onChange, type, forceCloseMenu, selectedOptions]\n );\n\n const onClose = useCallback(() => {\n setOpen(false);\n if (onSelectClose) {\n onSelectClose();\n }\n }, [onSelectClose]);\n\n const onOpen = useCallback(() => {\n setOpen(true);\n if (onSelectOpen) {\n onSelectOpen();\n }\n }, [onSelectOpen]);\n\n const props = useMemo(() => {\n if (target) {\n return {\n menuClassName: classNames(\"c-select\", selectClassName),\n onClose,\n onOpen,\n target,\n mode,\n open,\n position,\n };\n }\n return { className: classNames(\"c-select\", selectClassName) };\n }, [target, selectClassName, onClose, onOpen, mode, open, position]);\n\n const handleEmptyAction = useCallback(\n (value) => {\n emptyAction(value);\n if (forceCloseMenu) {\n setOpen(false);\n }\n formRef.current?.reset();\n },\n [emptyAction, forceCloseMenu]\n );\n\n const handleDefaultOptionChange = useCallback(() => {\n if (type === \"multiple\") {\n if (selectedOptions.length === allOptionValues.length) {\n onChange([]);\n } else {\n onChange(allOptionValues);\n }\n } else {\n onChange(\"\");\n if (forceCloseMenu) {\n setOpen(false);\n }\n }\n }, [onChange, type, forceCloseMenu, selectedOptions.length, allOptionValues]);\n\n const handleRenderOption = useCallback(\n (option, props) => {\n return (\n <>\n <OptionContent\n imageUrl={option.image}\n color={option.color}\n textColor={option.textColor}\n name={option.name}\n additionalInfo={option.additionalInfo}\n />\n {option.id === null ? (\n type === \"multiple\" ? (\n <StyledCheckbox checked={isAllOptionsChecked} {...props} />\n ) : (\n <StyledRadioButton\n checked={selectedOptions.length < 1 || !selectedOptions[0]}\n {...props}\n />\n )\n ) : type === \"multiple\" ? (\n <StyledCheckbox {...props} />\n ) : (\n <StyledRadioButton {...props} />\n )}\n </>\n );\n },\n [isAllOptionsChecked, selectedOptions, type]\n );\n\n return (\n <Tag {...props}>\n <div>\n {!disableSearch ? (\n <StyledSelectForm ref={formRef}>\n <StyledSelectInput\n ref={handleRef}\n autoFocus\n placeholder={placeholder}\n />\n {actionIcon && actionLabel && (\n <Tooltip\n popperTooltipStyle={{ zIndex: 1301 }}\n title={actionLabel}\n >\n <div>{actionIcon}</div>\n </Tooltip>\n )}\n {actionIcon && !actionLabel && actionIcon}\n </StyledSelectForm>\n ) : null}\n <Autocomplete\n {...prop}\n inputEl={childNode}\n handleEmptyAction={handleEmptyAction}\n selected={selected}\n handleChange={handleChange}\n renderOption={handleRenderOption}\n options={options}\n handleDefaultOptionChange={handleDefaultOptionChange}\n type={type}\n preselectDefaultValue={type === \"single\"}\n keepSameOptionsOrder={keepSameOptionsOrder}\n />\n </div>\n </Tag>\n );\n};\n\nSelect.displayName = \"Select\";\n"],"file":"Select.js"}
1
+ {"version":3,"sources":["../../../../src/components/Select/Select.tsx"],"names":["React","useCallback","useState","useMemo","useEffect","useRef","Autocomplete","Tooltip","Menu","classNames","useForkRef","StyledSelectForm","StyledSelectInput","StyledCheckbox","StyledRadioButton","OptionContent","Select","type","mode","target","options","selected","position","onChange","actionIcon","actionLabel","placeholder","emptyAction","disableSearch","forceCloseMenu","selectClassName","keepSameOptionsOrder","onSelectOpen","onSelectClose","prop","childNode","setChildNode","elementRef","handleRef","Tag","formRef","open","setOpen","isGroup","item","undefined","selectedOptions","Array","selectOptions","allOptionValues","reduce","acc","option","id","allGroupOptions","map","isAllOptionsChecked","every","includes","focus","handleChange","selectedValue","value","v","filter","concat","onClose","onOpen","props","menuClassName","className","handleEmptyAction","current","reset","handleDefaultOptionChange","length","handleRenderOption","image","color","textColor","name","additionalInfo","zIndex","displayName"],"mappings":"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","sourcesContent":["import React, {\n FC,\n useCallback,\n useState,\n ReactElement,\n useMemo,\n useEffect,\n useRef,\n Ref,\n} from \"react\";\nimport { Autocomplete } from \"../Autocomplete\";\nimport { Tooltip } from \"../Tooltip\";\nimport { Menu } from \"../Menu/Menu\";\nimport { IOptionItemProps } from \"../Select/Option\";\nimport { IOptionGroupProps } from \"../Select/OptionGroup\";\nimport classNames from \"classnames\";\nimport { Placement } from \"@popperjs/core\";\nimport { IAutocompleteProps } from \"../Autocomplete/Autocomplete\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport {\n StyledSelectForm,\n StyledSelectInput,\n StyledCheckbox,\n StyledRadioButton,\n} from \"./Styles\";\nimport { OptionContent } from \"./OptionContent/OptionContent\";\n\ninterface ElementWithRef<T> extends ReactElement {\n ref?: Ref<T>;\n}\n\ninterface ISelectProps {\n /** Select type: single or multiple */\n type?: \"single\" | \"multiple\";\n /** Menu width mode */\n mode?: \"normal\" | \"wider\" | \"tiny\";\n /** Set select target element */\n target?: ElementWithRef<Element>;\n /** Set selected items */\n selected?: (string | number)[] | string | number;\n /** Set Select position */\n position?: Placement;\n /** onChange callback */\n onChange?: (e: (string | number)[] | string | number) => void;\n /** Set action icon in select */\n actionIcon?: ReactElement;\n /** Set label for action icon */\n actionLabel?: string;\n /** Placeholder for Select input */\n placeholder?: string;\n /** Function that triggers when empty is clicked */\n emptyAction?: (e: string | undefined) => void;\n /** Removes input from Select */\n disableSearch?: boolean;\n /** Close menu on select */\n forceCloseMenu?: boolean;\n /** Set select classNames */\n selectClassName?: string;\n /** Should the order stay the same after choosing an option */\n keepSameOptionsOrder?: boolean;\n /** Callback called when the Select menu is opened */\n onSelectOpen?: () => void;\n /** Callback called when the Select menu is closed */\n onSelectClose?: () => void;\n}\n\nexport const Select: FC<ISelectProps & IAutocompleteProps> = ({\n type = \"single\",\n mode,\n target,\n options,\n selected = [],\n position = \"bottom-start\",\n onChange = (): null => null,\n actionIcon,\n actionLabel,\n placeholder,\n emptyAction = (): null => null,\n disableSearch = false,\n forceCloseMenu,\n selectClassName,\n keepSameOptionsOrder = false,\n onSelectOpen,\n onSelectClose,\n ...prop\n}) => {\n const [childNode, setChildNode] = useState<HTMLInputElement | null>();\n const elementRef = useRef<HTMLInputElement | null>(null);\n\n const handleRef = useForkRef(setChildNode, elementRef);\n\n const Tag = !target ? \"div\" : Menu;\n const formRef = useRef<HTMLFormElement | null>(null);\n\n const [open, setOpen] = useState(false);\n\n function isGroup(\n item: IOptionGroupProps | IOptionItemProps\n ): item is IOptionGroupProps {\n return (item as IOptionGroupProps).options !== undefined;\n }\n\n const selectedOptions = useMemo(\n () => (selected instanceof Array ? selected : [selected]),\n [selected]\n );\n\n const selectOptions = useMemo(() => {\n if (!options) {\n return [];\n }\n return options;\n }, [options]);\n\n const allOptionValues = useMemo(() => {\n return selectOptions.reduce(\n (\n acc: (string | number)[],\n option: IOptionGroupProps | IOptionItemProps\n ) => {\n if (!isGroup(option)) {\n return [...acc, option.id];\n }\n const allGroupOptions = option.options.map((option) => option.id);\n return [...acc, ...allGroupOptions];\n },\n []\n );\n }, [selectOptions]);\n\n const isAllOptionsChecked = useMemo(\n () => allOptionValues.every((option) => selectedOptions.includes(option)),\n [allOptionValues, selectedOptions]\n );\n\n useEffect(() => {\n open && childNode?.focus();\n }, [childNode, open]);\n\n const handleChange = useCallback(\n (selectedValue) => {\n if (selectedValue !== null) {\n if (type === \"single\") {\n if (forceCloseMenu) {\n setOpen(false);\n }\n return onChange(selectedValue);\n }\n // multiple\n const value = (): (string | number)[] => {\n if (selectedValue instanceof Array) {\n if (selectedValue.every((v) => selectedOptions.includes(v))) {\n return selectedOptions.filter((v) => !selectedValue.includes(v));\n }\n return selectedValue.concat(selectedOptions);\n }\n if (selectedOptions.includes(selectedValue)) {\n return selectedOptions.filter((option) => option !== selectedValue);\n }\n return [...selectedOptions, selectedValue];\n };\n return onChange(value());\n }\n },\n [onChange, type, forceCloseMenu, selectedOptions]\n );\n\n const onClose = useCallback(() => {\n setOpen(false);\n if (onSelectClose) {\n onSelectClose();\n }\n }, [onSelectClose]);\n\n const onOpen = useCallback(() => {\n setOpen(true);\n if (onSelectOpen) {\n onSelectOpen();\n }\n }, [onSelectOpen]);\n\n const props = useMemo(() => {\n if (target) {\n return {\n menuClassName: classNames(\"c-select\", selectClassName),\n onClose,\n onOpen,\n target,\n mode,\n open,\n position,\n };\n }\n return { className: classNames(\"c-select\", selectClassName) };\n }, [target, selectClassName, onClose, onOpen, mode, open, position]);\n\n const handleEmptyAction = useCallback(\n (value) => {\n emptyAction(value);\n if (forceCloseMenu) {\n setOpen(false);\n }\n formRef.current?.reset();\n },\n [emptyAction, forceCloseMenu]\n );\n\n const handleDefaultOptionChange = useCallback(() => {\n if (type === \"multiple\") {\n if (selectedOptions.length === allOptionValues.length) {\n onChange([]);\n } else {\n onChange(allOptionValues);\n }\n } else {\n onChange(\"\");\n if (forceCloseMenu) {\n setOpen(false);\n }\n }\n }, [onChange, type, forceCloseMenu, selectedOptions.length, allOptionValues]);\n\n const handleRenderOption = useCallback(\n (option, props) => {\n return (\n <>\n <OptionContent\n imageUrl={option.image}\n color={option.color}\n textColor={option.textColor}\n name={option.name}\n additionalInfo={option.additionalInfo}\n />\n {option.id === null ? (\n type === \"multiple\" ? (\n <StyledCheckbox checked={isAllOptionsChecked} {...props} />\n ) : (\n <StyledRadioButton\n checked={selectedOptions.length < 1 || !selectedOptions[0]}\n {...props}\n />\n )\n ) : type === \"multiple\" ? (\n <StyledCheckbox {...props} />\n ) : (\n <StyledRadioButton {...props} />\n )}\n </>\n );\n },\n [isAllOptionsChecked, selectedOptions, type]\n );\n\n return (\n <Tag {...props}>\n <div>\n {!disableSearch ? (\n <StyledSelectForm ref={formRef}>\n <StyledSelectInput\n inputRef={handleRef}\n autoFocus\n placeholder={placeholder}\n />\n {actionIcon && actionLabel && (\n <Tooltip\n popperTooltipStyle={{ zIndex: 1301 }}\n title={actionLabel}\n >\n <div>{actionIcon}</div>\n </Tooltip>\n )}\n {actionIcon && !actionLabel && actionIcon}\n </StyledSelectForm>\n ) : null}\n <Autocomplete\n {...prop}\n inputEl={childNode}\n handleEmptyAction={handleEmptyAction}\n selected={selected}\n handleChange={handleChange}\n renderOption={handleRenderOption}\n options={options}\n handleDefaultOptionChange={handleDefaultOptionChange}\n type={type}\n preselectDefaultValue={type === \"single\"}\n keepSameOptionsOrder={keepSameOptionsOrder}\n />\n </div>\n </Tag>\n );\n};\n\nSelect.displayName = \"Select\";\n"],"file":"Select.js"}
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
- export declare const StyledSelectInput: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<import("../Input").InputProps & Omit<Pick<import("react").DetailedHTMLProps<import("react").InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "key" | keyof import("react").InputHTMLAttributes<HTMLInputElement>>, keyof import("../Input").InputProps> & import("react").RefAttributes<HTMLInputElement>>, any, {}, never>;
2
+ export declare const StyledSelectInput: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<import("../Input/Input").InputProps & Omit<Pick<import("react").DetailedHTMLProps<import("react").InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "key" | keyof import("react").InputHTMLAttributes<HTMLInputElement>>, keyof import("../Input/Input").InputProps> & import("react").RefAttributes<HTMLDivElement>>, any, {}, never>;
3
3
  export declare const StyledSelectForm: import("styled-components").StyledComponent<"form", any, {}, never>;
4
4
  export declare const StyledCheckbox: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<import("react").InputHTMLAttributes<HTMLInputElement> & import("../Checkbox").ICheckboxProps & import("react").RefAttributes<HTMLInputElement>>, any, {}, never>;
5
5
  export declare const StyledRadioButton: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<import("react").InputHTMLAttributes<HTMLInputElement> & import("../RadioButton").IRadioButtonProps & import("react").RefAttributes<HTMLInputElement>>, any, {}, never>;
@@ -1 +1 @@
1
- {"version":3,"file":"Styles.d.ts","sourceRoot":"","sources":["../../../../src/components/Select/Styles.ts"],"names":[],"mappings":";AAKA,eAAO,MAAM,iBAAiB,4ZAAkB,CAAC;AAIjD,eAAO,MAAM,gBAAgB,qEAY5B,CAAC;AAIF,eAAO,MAAM,cAAc,wPAE1B,CAAC;AAIF,eAAO,MAAM,iBAAiB,8PAE7B,CAAC"}
1
+ {"version":3,"file":"Styles.d.ts","sourceRoot":"","sources":["../../../../src/components/Select/Styles.ts"],"names":[],"mappings":";AAKA,eAAO,MAAM,iBAAiB,saAAkB,CAAC;AAIjD,eAAO,MAAM,gBAAgB,qEAY5B,CAAC;AAIF,eAAO,MAAM,cAAc,wPAE1B,CAAC;AAIF,eAAO,MAAM,iBAAiB,8PAE7B,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import styled from "styled-components";
2
- import { Input } from "../Input";
2
+ import { Input } from "../Input/Input";
3
3
  import { Checkbox } from "../Checkbox";
4
4
  import { RadioButton } from "../RadioButton";
5
5
  export var StyledSelectInput = styled(Input).withConfig({
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Select/Styles.ts"],"names":["styled","Input","Checkbox","RadioButton","StyledSelectInput","displayName","StyledSelectForm","form","StyledCheckbox","StyledRadioButton"],"mappings":"AAAA,OAAOA,MAAP,MAAmB,mBAAnB;AACA,SAASC,KAAT,QAAsB,UAAtB;AACA,SAASC,QAAT,QAAyB,aAAzB;AACA,SAASC,WAAT,QAA4B,gBAA5B;AAEA,OAAO,IAAMC,iBAAiB,GAAGJ,MAAM,CAACC,KAAD,CAAT;AAAA;AAAA;AAAA,QAAvB;AAEPG,iBAAiB,CAACC,WAAlB,GAAgC,mBAAhC;AAEA,OAAO,IAAMC,gBAAgB,GAAGN,MAAM,CAACO,IAAV;AAAA;AAAA;AAAA,kGAIzBH,iBAJyB,CAAtB;AAcPE,gBAAgB,CAACD,WAAjB,GAA+B,kBAA/B;AAEA,OAAO,IAAMG,cAAc,GAAGR,MAAM,CAACE,QAAD,CAAT;AAAA;AAAA;AAAA,yBAApB;AAIPM,cAAc,CAACH,WAAf,GAA6B,gBAA7B;AAEA,OAAO,IAAMI,iBAAiB,GAAGT,MAAM,CAACG,WAAD,CAAT;AAAA;AAAA;AAAA,yBAAvB;AAIPM,iBAAiB,CAACJ,WAAlB,GAAgC,mBAAhC","sourcesContent":["import styled from \"styled-components\";\nimport { Input } from \"../Input\";\nimport { Checkbox } from \"../Checkbox\";\nimport { RadioButton } from \"../RadioButton\";\n\nexport const StyledSelectInput = styled(Input)``;\n\nStyledSelectInput.displayName = \"StyledSelectInput\";\n\nexport const StyledSelectForm = styled.form`\n margin: 12px 12px 0 12px;\n display: flex;\n\n ${StyledSelectInput} {\n width: 100%;\n border-radius: 4px;\n }\n\n * {\n margin: auto 0;\n }\n`;\n\nStyledSelectForm.displayName = \"StyledSelectForm\";\n\nexport const StyledCheckbox = styled(Checkbox)`\n margin-left: 12px;\n`;\n\nStyledCheckbox.displayName = \"StyledCheckbox\";\n\nexport const StyledRadioButton = styled(RadioButton)`\n margin-left: 12px;\n`;\n\nStyledRadioButton.displayName = \"StyledRadioButton\";\n"],"file":"Styles.js"}
1
+ {"version":3,"sources":["../../../../src/components/Select/Styles.ts"],"names":["styled","Input","Checkbox","RadioButton","StyledSelectInput","displayName","StyledSelectForm","form","StyledCheckbox","StyledRadioButton"],"mappings":"AAAA,OAAOA,MAAP,MAAmB,mBAAnB;AACA,SAASC,KAAT,QAAsB,gBAAtB;AACA,SAASC,QAAT,QAAyB,aAAzB;AACA,SAASC,WAAT,QAA4B,gBAA5B;AAEA,OAAO,IAAMC,iBAAiB,GAAGJ,MAAM,CAACC,KAAD,CAAT;AAAA;AAAA;AAAA,QAAvB;AAEPG,iBAAiB,CAACC,WAAlB,GAAgC,mBAAhC;AAEA,OAAO,IAAMC,gBAAgB,GAAGN,MAAM,CAACO,IAAV;AAAA;AAAA;AAAA,kGAIzBH,iBAJyB,CAAtB;AAcPE,gBAAgB,CAACD,WAAjB,GAA+B,kBAA/B;AAEA,OAAO,IAAMG,cAAc,GAAGR,MAAM,CAACE,QAAD,CAAT;AAAA;AAAA;AAAA,yBAApB;AAIPM,cAAc,CAACH,WAAf,GAA6B,gBAA7B;AAEA,OAAO,IAAMI,iBAAiB,GAAGT,MAAM,CAACG,WAAD,CAAT;AAAA;AAAA;AAAA,yBAAvB;AAIPM,iBAAiB,CAACJ,WAAlB,GAAgC,mBAAhC","sourcesContent":["import styled from \"styled-components\";\nimport { Input } from \"../Input/Input\";\nimport { Checkbox } from \"../Checkbox\";\nimport { RadioButton } from \"../RadioButton\";\n\nexport const StyledSelectInput = styled(Input)``;\n\nStyledSelectInput.displayName = \"StyledSelectInput\";\n\nexport const StyledSelectForm = styled.form`\n margin: 12px 12px 0 12px;\n display: flex;\n\n ${StyledSelectInput} {\n width: 100%;\n border-radius: 4px;\n }\n\n * {\n margin: auto 0;\n }\n`;\n\nStyledSelectForm.displayName = \"StyledSelectForm\";\n\nexport const StyledCheckbox = styled(Checkbox)`\n margin-left: 12px;\n`;\n\nStyledCheckbox.displayName = \"StyledCheckbox\";\n\nexport const StyledRadioButton = styled(RadioButton)`\n margin-left: 12px;\n`;\n\nStyledRadioButton.displayName = \"StyledRadioButton\";\n"],"file":"Styles.js"}