@activecollab/components 1.0.139 → 1.0.142

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 (78) hide show
  1. package/dist/cjs/components/Autocomplete/Autocomplete.js +60 -27
  2. package/dist/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
  3. package/dist/cjs/components/Autocomplete/Styles.js +9 -11
  4. package/dist/cjs/components/Autocomplete/Styles.js.map +1 -1
  5. package/dist/cjs/components/GlobalStyle.js +1 -1
  6. package/dist/cjs/components/GlobalStyle.js.map +1 -1
  7. package/dist/cjs/components/Select/Option/Option.js +7 -2
  8. package/dist/cjs/components/Select/Option/Option.js.map +1 -1
  9. package/dist/cjs/components/Select/Option/Styles.js +1 -1
  10. package/dist/cjs/components/Select/Option/Styles.js.map +1 -1
  11. package/dist/cjs/components/Select/OptionGroup/OptionGroup.js +34 -9
  12. package/dist/cjs/components/Select/OptionGroup/OptionGroup.js.map +1 -1
  13. package/dist/cjs/components/Select/OptionGroup/Styles.js +2 -2
  14. package/dist/cjs/components/Select/OptionGroup/Styles.js.map +1 -1
  15. package/dist/cjs/components/Select/Select.js +12 -36
  16. package/dist/cjs/components/Select/Select.js.map +1 -1
  17. package/dist/cjs/components/SelectTrigger/SelectTrigger.js +3 -2
  18. package/dist/cjs/components/SelectTrigger/SelectTrigger.js.map +1 -1
  19. package/dist/cjs/components/Tooltip/Styles.js +3 -1
  20. package/dist/cjs/components/Tooltip/Styles.js.map +1 -1
  21. package/dist/cjs/components/Tooltip/Tooltip.js +5 -2
  22. package/dist/cjs/components/Tooltip/Tooltip.js.map +1 -1
  23. package/dist/cjs/components/Typography/Styles.js +3 -0
  24. package/dist/cjs/components/Typography/Styles.js.map +1 -1
  25. package/dist/cjs/components/Typography/Typography.js.map +1 -1
  26. package/dist/esm/components/Autocomplete/Autocomplete.d.ts.map +1 -1
  27. package/dist/esm/components/Autocomplete/Autocomplete.js +60 -27
  28. package/dist/esm/components/Autocomplete/Autocomplete.js.map +1 -1
  29. package/dist/esm/components/Autocomplete/Styles.d.ts +6 -4
  30. package/dist/esm/components/Autocomplete/Styles.d.ts.map +1 -1
  31. package/dist/esm/components/Autocomplete/Styles.js +7 -6
  32. package/dist/esm/components/Autocomplete/Styles.js.map +1 -1
  33. package/dist/esm/components/GlobalStyle.d.ts.map +1 -1
  34. package/dist/esm/components/GlobalStyle.js +1 -1
  35. package/dist/esm/components/GlobalStyle.js.map +1 -1
  36. package/dist/esm/components/Select/Option/Option.d.ts +3 -2
  37. package/dist/esm/components/Select/Option/Option.d.ts.map +1 -1
  38. package/dist/esm/components/Select/Option/Option.js +7 -2
  39. package/dist/esm/components/Select/Option/Option.js.map +1 -1
  40. package/dist/esm/components/Select/Option/Styles.d.ts +1 -1
  41. package/dist/esm/components/Select/Option/Styles.js +1 -1
  42. package/dist/esm/components/Select/Option/Styles.js.map +1 -1
  43. package/dist/esm/components/Select/OptionGroup/OptionGroup.d.ts +2 -4
  44. package/dist/esm/components/Select/OptionGroup/OptionGroup.d.ts.map +1 -1
  45. package/dist/esm/components/Select/OptionGroup/OptionGroup.js +21 -9
  46. package/dist/esm/components/Select/OptionGroup/OptionGroup.js.map +1 -1
  47. package/dist/esm/components/Select/OptionGroup/Styles.d.ts +1 -1
  48. package/dist/esm/components/Select/OptionGroup/Styles.d.ts.map +1 -1
  49. package/dist/esm/components/Select/OptionGroup/Styles.js +2 -2
  50. package/dist/esm/components/Select/OptionGroup/Styles.js.map +1 -1
  51. package/dist/esm/components/Select/Select.d.ts +2 -5
  52. package/dist/esm/components/Select/Select.d.ts.map +1 -1
  53. package/dist/esm/components/Select/Select.js +12 -36
  54. package/dist/esm/components/Select/Select.js.map +1 -1
  55. package/dist/esm/components/SelectTrigger/SelectTrigger.d.ts +1 -0
  56. package/dist/esm/components/SelectTrigger/SelectTrigger.d.ts.map +1 -1
  57. package/dist/esm/components/SelectTrigger/SelectTrigger.js +3 -2
  58. package/dist/esm/components/SelectTrigger/SelectTrigger.js.map +1 -1
  59. package/dist/esm/components/Tooltip/Styles.d.ts +1 -0
  60. package/dist/esm/components/Tooltip/Styles.d.ts.map +1 -1
  61. package/dist/esm/components/Tooltip/Styles.js +3 -1
  62. package/dist/esm/components/Tooltip/Styles.js.map +1 -1
  63. package/dist/esm/components/Tooltip/Tooltip.d.ts +1 -0
  64. package/dist/esm/components/Tooltip/Tooltip.d.ts.map +1 -1
  65. package/dist/esm/components/Tooltip/Tooltip.js +5 -2
  66. package/dist/esm/components/Tooltip/Tooltip.js.map +1 -1
  67. package/dist/esm/components/Typography/Styles.d.ts +1 -1
  68. package/dist/esm/components/Typography/Styles.d.ts.map +1 -1
  69. package/dist/esm/components/Typography/Styles.js +3 -0
  70. package/dist/esm/components/Typography/Styles.js.map +1 -1
  71. package/dist/esm/components/Typography/Typography.d.ts +1 -1
  72. package/dist/esm/components/Typography/Typography.d.ts.map +1 -1
  73. package/dist/esm/components/Typography/Typography.js.map +1 -1
  74. package/dist/index.js +122 -88
  75. package/dist/index.js.map +1 -1
  76. package/dist/index.min.js +1 -1
  77. package/dist/index.min.js.map +1 -1
  78. package/package.json +1 -1
@@ -2,6 +2,7 @@ import React, { useCallback, useEffect, useMemo } from "react";
2
2
  import classNames from "classnames";
3
3
  import { Checkbox } from "../../Checkbox/Checkbox";
4
4
  import { StyledOptionGroup, StyledOptionGroupHeader, StyledOptionGroupOption } from "./Styles";
5
+ import { List } from "../../List";
5
6
  export var OptionGroup = function OptionGroup(_ref) {
6
7
  var id = _ref.id,
7
8
  name = _ref.name,
@@ -45,24 +46,35 @@ export var OptionGroup = function OptionGroup(_ref) {
45
46
  e.stopPropagation();
46
47
 
47
48
  if (onChange) {
48
- onChange(allOptionValues);
49
+ if (isAllOptionsChecked) {
50
+ onChange(checked.filter(function (i) {
51
+ return allOptionValues.includes(i) === false;
52
+ }));
53
+ } else {
54
+ var values = [].concat(checked, allOptionValues);
55
+ var unique = values.filter(function (item, pos) {
56
+ return values.indexOf(item) === pos;
57
+ });
58
+ onChange(unique);
59
+ }
49
60
  }
50
- }, [allOptionValues, onChange]);
51
- return /*#__PURE__*/React.createElement(StyledOptionGroup, {
61
+ }, [allOptionValues, checked, isAllOptionsChecked, onChange]);
62
+ return /*#__PURE__*/React.createElement("li", {
52
63
  key: id,
53
- className: classNames("c-option-group", optionGroupClassName)
64
+ className: classNames("c-option-group tw-flex-col", optionGroupClassName)
65
+ }, /*#__PURE__*/React.createElement(StyledOptionGroup, {
66
+ key: id
54
67
  }, /*#__PURE__*/React.createElement(StyledOptionGroupOption, {
55
- title: name,
56
68
  onMouseEnter: handleHover,
57
69
  hover: hover === id && type === "multiple"
58
- }, /*#__PURE__*/React.createElement(StyledOptionGroupHeader, null, /*#__PURE__*/React.createElement("div", null, name), type === "multiple" && /*#__PURE__*/React.createElement(Checkbox, {
70
+ }, /*#__PURE__*/React.createElement(StyledOptionGroupHeader, null, name, type === "multiple" && /*#__PURE__*/React.createElement(Checkbox, {
59
71
  id: "" + id,
60
72
  checked: isAllOptionsChecked,
61
73
  onChange: handleClick,
62
74
  type: "checkbox"
63
- }))), list.map(function (item) {
64
- return renderOptions && renderOptions(item);
65
- }));
75
+ }))), /*#__PURE__*/React.createElement(List, null, list.map(function (item, index) {
76
+ return typeof renderOptions === "function" ? renderOptions(item, index) : item.name;
77
+ }))));
66
78
  };
67
79
  OptionGroup.displayName = "OptionGroup";
68
80
  //# sourceMappingURL=OptionGroup.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/Select/OptionGroup/OptionGroup.tsx"],"names":["React","useCallback","useEffect","useMemo","classNames","Checkbox","StyledOptionGroup","StyledOptionGroupHeader","StyledOptionGroupOption","OptionGroup","id","name","options","type","hover","filter","checked","onChange","setHover","renderOptions","optionGroupClassName","list","v","toLowerCase","includes","trim","document","getElementById","focus","isAllOptionsChecked","every","option","handleHover","undefined","allOptionValues","map","handleClick","e","stopPropagation","item","displayName"],"mappings":"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","sourcesContent":["import React, { useCallback, useEffect, useMemo, FC } from \"react\";\nimport classNames from \"classnames\";\nimport { IOptionItemProps } from \"../Option/Option\";\nimport { Checkbox } from \"../../Checkbox/Checkbox\";\nimport {\n StyledOptionGroup,\n StyledOptionGroupHeader,\n StyledOptionGroupOption,\n} from \"./Styles\";\n\nexport interface IOptionGroupProps {\n /** Group value */\n id?: string | number;\n /** Group label */\n name: string;\n /** Options items list */\n options: IOptionItemProps[];\n}\n\ninterface IAdditionalOptionGroupProps {\n /** Select type: single or multiple */\n type?: \"single\" | \"multiple\";\n /** Value of hovered element */\n hover?: number | string | null;\n /** Filter for labels */\n filter?: string;\n /** Checked values */\n checked: (string | number)[];\n /** onChange callback */\n onChange?: (e: (string | number)[]) => void;\n /** Set value of hovered element */\n setHover?: (e: number | string | undefined) => void;\n /** Render function */\n renderOptions?: (item: IOptionItemProps) => void;\n /** Value that represent class names */\n optionGroupClassName?: string;\n}\n\nexport const OptionGroup: FC<\n IOptionGroupProps & IAdditionalOptionGroupProps\n> = ({\n id,\n name,\n options,\n type,\n hover,\n filter,\n checked,\n onChange,\n setHover,\n renderOptions,\n optionGroupClassName,\n}) => {\n const list = useMemo(\n () =>\n filter\n ? options.filter((v) =>\n v.name.toLowerCase().includes(filter.trim().toLowerCase())\n )\n : options,\n [filter, options]\n );\n\n useEffect(() => {\n if (hover === id && type !== \"single\") {\n document.getElementById(`${id}`)?.focus();\n }\n }, [hover, type, id]);\n\n const isAllOptionsChecked = useMemo(\n () => options.every((option) => checked.includes(option.id)),\n [options, checked]\n );\n\n const handleHover = useCallback(() => {\n if (setHover) {\n setHover(type === \"single\" ? undefined : id);\n }\n }, [setHover, type, id]);\n\n const allOptionValues = useMemo(\n () => options.map((option) => option.id),\n [options]\n );\n\n const handleClick = useCallback(\n (e) => {\n e.stopPropagation();\n if (onChange) {\n onChange(allOptionValues);\n }\n },\n [allOptionValues, onChange]\n );\n\n return (\n <StyledOptionGroup\n key={id}\n className={classNames(\"c-option-group\", optionGroupClassName)}\n >\n <StyledOptionGroupOption\n title={name}\n onMouseEnter={handleHover}\n hover={hover === id && type === \"multiple\"}\n >\n <StyledOptionGroupHeader>\n <div>{name}</div>\n {type === \"multiple\" && (\n <Checkbox\n id={`${id}`}\n checked={isAllOptionsChecked}\n onChange={handleClick}\n type=\"checkbox\"\n />\n )}\n </StyledOptionGroupHeader>\n </StyledOptionGroupOption>\n {list.map(\n (item: IOptionItemProps) => renderOptions && renderOptions(item)\n )}\n </StyledOptionGroup>\n );\n};\n\nOptionGroup.displayName = \"OptionGroup\";\n"],"file":"OptionGroup.js"}
1
+ {"version":3,"sources":["../../../../../src/components/Select/OptionGroup/OptionGroup.tsx"],"names":["React","useCallback","useEffect","useMemo","classNames","Checkbox","StyledOptionGroup","StyledOptionGroupHeader","StyledOptionGroupOption","List","OptionGroup","id","name","options","type","hover","filter","checked","onChange","setHover","renderOptions","optionGroupClassName","list","v","toLowerCase","includes","trim","document","getElementById","focus","isAllOptionsChecked","every","option","handleHover","undefined","allOptionValues","map","handleClick","e","stopPropagation","i","values","unique","item","pos","indexOf","index","displayName"],"mappings":"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","sourcesContent":["import React, { useCallback, useEffect, useMemo, FC } from \"react\";\nimport classNames from \"classnames\";\nimport { IOptionItemProps } from \"../Option/Option\";\nimport { Checkbox } from \"../../Checkbox/Checkbox\";\nimport {\n StyledOptionGroup,\n StyledOptionGroupHeader,\n StyledOptionGroupOption,\n} from \"./Styles\";\nimport { List } from \"../../List\";\n\nexport interface IOptionGroupProps extends IOptionItemProps {\n /** Options items list */\n options: IOptionItemProps[];\n}\n\ninterface IAdditionalOptionGroupProps {\n /** Select type: single or multiple */\n type?: \"single\" | \"multiple\";\n /** Value of hovered element */\n hover?: number | string | null;\n /** Filter for labels */\n filter?: string;\n /** Checked values */\n checked: (string | number)[];\n /** onChange callback */\n onChange?: (e: (string | number)[]) => void;\n /** Set value of hovered element */\n setHover?: (e: number | string | undefined) => void;\n /** Render function */\n renderOptions?: (item: IOptionItemProps, index: number) => void;\n /** Value that represent class names */\n optionGroupClassName?: string;\n}\n\nexport const OptionGroup: FC<\n IOptionGroupProps & IAdditionalOptionGroupProps\n> = ({\n id,\n name,\n options,\n type,\n hover,\n filter,\n checked,\n onChange,\n setHover,\n renderOptions,\n optionGroupClassName,\n}) => {\n const list = useMemo(\n () =>\n filter\n ? options.filter((v) =>\n v.name.toLowerCase().includes(filter.trim().toLowerCase())\n )\n : options,\n [filter, options]\n );\n\n useEffect(() => {\n if (hover === id && type !== \"single\") {\n document.getElementById(`${id}`)?.focus();\n }\n }, [hover, type, id]);\n\n const isAllOptionsChecked = useMemo(\n () => options.every((option) => checked.includes(option.id)),\n [options, checked]\n );\n\n const handleHover = useCallback(() => {\n if (setHover) {\n setHover(type === \"single\" ? undefined : id);\n }\n }, [setHover, type, id]);\n\n const allOptionValues = useMemo(\n () => options.map((option) => option.id),\n [options]\n );\n\n const handleClick = useCallback(\n (e) => {\n e.stopPropagation();\n if (onChange) {\n if (isAllOptionsChecked) {\n onChange(\n checked.filter((i) => allOptionValues.includes(i) === false)\n );\n } else {\n const values = [...checked, ...allOptionValues];\n const unique = values.filter((item, pos) => {\n return values.indexOf(item) === pos;\n });\n onChange(unique);\n }\n }\n },\n [allOptionValues, checked, isAllOptionsChecked, onChange]\n );\n\n return (\n <li\n key={id}\n className={classNames(\"c-option-group tw-flex-col\", optionGroupClassName)}\n >\n <StyledOptionGroup key={id}>\n <StyledOptionGroupOption\n onMouseEnter={handleHover}\n hover={hover === id && type === \"multiple\"}\n >\n <StyledOptionGroupHeader>\n {name}\n {type === \"multiple\" && (\n <Checkbox\n id={`${id}`}\n checked={isAllOptionsChecked}\n onChange={handleClick}\n type=\"checkbox\"\n />\n )}\n </StyledOptionGroupHeader>\n </StyledOptionGroupOption>\n <List>\n {list.map((item: IOptionItemProps, index) => {\n return typeof renderOptions === \"function\"\n ? renderOptions(item, index)\n : item.name;\n })}\n </List>\n </StyledOptionGroup>\n </li>\n );\n};\n\nOptionGroup.displayName = \"OptionGroup\";\n"],"file":"OptionGroup.js"}
@@ -1,6 +1,6 @@
1
1
  export declare const StyledOptionGroup: import("styled-components").StyledComponent<"div", any, {}, never>;
2
2
  export declare const StyledOptionGroupHeader: import("styled-components").StyledComponent<"h3", any, {}, never>;
3
- export declare const StyledOptionGroupOption: import("styled-components").StyledComponent<"label", any, {
3
+ export declare const StyledOptionGroupOption: import("styled-components").StyledComponent<"div", any, {
4
4
  hover?: boolean | undefined;
5
5
  }, never>;
6
6
  //# sourceMappingURL=Styles.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Styles.d.ts","sourceRoot":"","sources":["../../../../../src/components/Select/OptionGroup/Styles.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,iBAAiB,oEAI7B,CAAC;AAIF,eAAO,MAAM,uBAAuB,mEAUnC,CAAC;AAIF,eAAO,MAAM,uBAAuB;;SAMnC,CAAC"}
1
+ {"version":3,"file":"Styles.d.ts","sourceRoot":"","sources":["../../../../../src/components/Select/OptionGroup/Styles.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,iBAAiB,oEAI7B,CAAC;AAIF,eAAO,MAAM,uBAAuB,mEAWnC,CAAC;AAIF,eAAO,MAAM,uBAAuB;;SAMnC,CAAC"}
@@ -11,9 +11,9 @@ StyledOptionGroup.displayName = "StyledOptionGroup";
11
11
  export var StyledOptionGroupHeader = styled.h3.withConfig({
12
12
  displayName: "Styles__StyledOptionGroupHeader",
13
13
  componentId: "sc-16v5afu-1"
14
- })(["height:28px;display:flex;justify-content:space-between;padding:0 16px;color:var(--color-theme-900);margin:6px 0;*{margin:auto 0;}"]);
14
+ })(["height:28px;display:flex;justify-content:space-between;align-items:center;padding:0 16px;color:var(--color-theme-900);margin:6px 0;*{margin:auto 0;}"]);
15
15
  StyledOptionGroupHeader.displayName = "StyledOptionGroupHeader";
16
- export var StyledOptionGroupOption = styled.label.withConfig({
16
+ export var StyledOptionGroupOption = styled.div.withConfig({
17
17
  displayName: "Styles__StyledOptionGroupOption",
18
18
  componentId: "sc-16v5afu-2"
19
19
  })(["", ""], function (props) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/Select/OptionGroup/Styles.ts"],"names":["styled","css","BoxSizingStyle","FontStyle","StyledOptionGroup","div","displayName","StyledOptionGroupHeader","h3","StyledOptionGroupOption","label","props","hover"],"mappings":"AAAA,OAAOA,MAAP,IAAiBC,GAAjB,QAA4B,mBAA5B;AAEA,SAASC,cAAT,QAA+B,sBAA/B;AACA,SAASC,SAAT,QAA0B,iBAA1B;AAEA,OAAO,IAAMC,iBAAiB,GAAGJ,MAAM,CAACK,GAAV;AAAA;AAAA;AAAA,uBACxB;AAAA;AAAA,CADwB,EAE1BF,SAF0B,EAG1BD,cAH0B,CAAvB;AAMPE,iBAAiB,CAACE,WAAlB,GAAgC,mBAAhC;AAEA,OAAO,IAAMC,uBAAuB,GAAGP,MAAM,CAACQ,EAAV;AAAA;AAAA;AAAA,yIAA7B;AAYPD,uBAAuB,CAACD,WAAxB,GAAsC,yBAAtC;AAEA,OAAO,IAAMG,uBAAuB,GAAGT,MAAM,CAACU,KAAV;AAAA;AAAA;AAAA,aAChC,UAACC,KAAD;AAAA,SACAA,KAAK,CAACC,KAAN,IACAX,GADA,8CADA;AAAA,CADgC,CAA7B;AAQPQ,uBAAuB,CAACH,WAAxB,GAAsC,yBAAtC","sourcesContent":["import styled, { css } from \"styled-components\";\nimport tw from \"twin.macro\";\nimport { BoxSizingStyle } from \"../../BoxSizingStyle\";\nimport { FontStyle } from \"../../FontStyle\";\n\nexport const StyledOptionGroup = styled.div`\n ${tw`tw-select-none`}\n ${FontStyle}\n ${BoxSizingStyle}\n`;\n\nStyledOptionGroup.displayName = \"StyledOptionGroup\";\n\nexport const StyledOptionGroupHeader = styled.h3`\n height: 28px;\n display: flex;\n justify-content: space-between;\n padding: 0 16px;\n color: var(--color-theme-900);\n margin: 6px 0;\n * {\n margin: auto 0;\n }\n`;\n\nStyledOptionGroupHeader.displayName = \"StyledOptionGroupHeader\";\n\nexport const StyledOptionGroupOption = styled.label<{ hover?: boolean }>`\n ${(props) =>\n props.hover &&\n css`\n background-color: var(--color-theme-200);\n `}\n`;\n\nStyledOptionGroupOption.displayName = \"StyledOptionGroupOption\";\n"],"file":"Styles.js"}
1
+ {"version":3,"sources":["../../../../../src/components/Select/OptionGroup/Styles.ts"],"names":["styled","css","BoxSizingStyle","FontStyle","StyledOptionGroup","div","displayName","StyledOptionGroupHeader","h3","StyledOptionGroupOption","props","hover"],"mappings":"AAAA,OAAOA,MAAP,IAAiBC,GAAjB,QAA4B,mBAA5B;AAEA,SAASC,cAAT,QAA+B,sBAA/B;AACA,SAASC,SAAT,QAA0B,iBAA1B;AAEA,OAAO,IAAMC,iBAAiB,GAAGJ,MAAM,CAACK,GAAV;AAAA;AAAA;AAAA,uBACxB;AAAA;AAAA,CADwB,EAE1BF,SAF0B,EAG1BD,cAH0B,CAAvB;AAMPE,iBAAiB,CAACE,WAAlB,GAAgC,mBAAhC;AAEA,OAAO,IAAMC,uBAAuB,GAAGP,MAAM,CAACQ,EAAV;AAAA;AAAA;AAAA,4JAA7B;AAaPD,uBAAuB,CAACD,WAAxB,GAAsC,yBAAtC;AAEA,OAAO,IAAMG,uBAAuB,GAAGT,MAAM,CAACK,GAAV;AAAA;AAAA;AAAA,aAChC,UAACK,KAAD;AAAA,SACAA,KAAK,CAACC,KAAN,IACAV,GADA,8CADA;AAAA,CADgC,CAA7B;AAQPQ,uBAAuB,CAACH,WAAxB,GAAsC,yBAAtC","sourcesContent":["import styled, { css } from \"styled-components\";\nimport tw from \"twin.macro\";\nimport { BoxSizingStyle } from \"../../BoxSizingStyle\";\nimport { FontStyle } from \"../../FontStyle\";\n\nexport const StyledOptionGroup = styled.div`\n ${tw`tw-select-none`}\n ${FontStyle}\n ${BoxSizingStyle}\n`;\n\nStyledOptionGroup.displayName = \"StyledOptionGroup\";\n\nexport const StyledOptionGroupHeader = styled.h3`\n height: 28px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 0 16px;\n color: var(--color-theme-900);\n margin: 6px 0;\n * {\n margin: auto 0;\n }\n`;\n\nStyledOptionGroupHeader.displayName = \"StyledOptionGroupHeader\";\n\nexport const StyledOptionGroupOption = styled.div<{ hover?: boolean }>`\n ${(props) =>\n props.hover &&\n css`\n background-color: var(--color-theme-200);\n `}\n`;\n\nStyledOptionGroupOption.displayName = \"StyledOptionGroupOption\";\n"],"file":"Styles.js"}
@@ -4,11 +4,9 @@ import { IAutocompleteProps } from "../Autocomplete/Autocomplete";
4
4
  interface ElementWithRef<T> extends ReactElement {
5
5
  ref?: Ref<T>;
6
6
  }
7
- interface ISelectProps {
8
- type?: "single" | "multiple";
7
+ export interface ISelectProps extends Omit<IAutocompleteProps, "handleChange" | "preselectDefaultValue" | "handleDefaultOptionChange"> {
9
8
  mode?: "normal" | "wider" | "tiny";
10
9
  target?: ElementWithRef<Element>;
11
- selected?: (string | number)[] | string | number;
12
10
  position?: Placement;
13
11
  onChange?: (e: (string | number)[] | string | number) => void;
14
12
  actionIcon?: ReactElement;
@@ -18,10 +16,9 @@ interface ISelectProps {
18
16
  disableSearch?: boolean;
19
17
  forceCloseMenu?: boolean;
20
18
  selectClassName?: string;
21
- keepSameOptionsOrder?: boolean;
22
19
  onSelectOpen?: () => void;
23
20
  onSelectClose?: () => void;
24
21
  }
25
- export declare const Select: FC<ISelectProps & IAutocompleteProps>;
22
+ export declare const Select: FC<ISelectProps>;
26
23
  export {};
27
24
  //# sourceMappingURL=Select.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../../src/components/Select/Select.tsx"],"names":[],"mappings":"AAAA,OAAc,EACZ,EAAE,EAGF,YAAY,EAIZ,GAAG,EACJ,MAAM,OAAO,CAAC;AAOf,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAUlE,UAAU,cAAc,CAAC,CAAC,CAAE,SAAQ,YAAY;IAC9C,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;CACd;AAED,UAAU,YAAY;IAEpB,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IAE7B,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;IAEnC,MAAM,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IAEjC,QAAQ,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,MAAM,GAAG,MAAM,CAAC;IAEjD,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IAE9D,UAAU,CAAC,EAAE,YAAY,CAAC;IAE1B,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAE9C,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAE1B,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;CAC5B;AAED,eAAO,MAAM,MAAM,EAAE,EAAE,CAAC,YAAY,GAAG,kBAAkB,CAgOxD,CAAC"}
1
+ {"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../../src/components/Select/Select.tsx"],"names":[],"mappings":"AAAA,OAAc,EACZ,EAAE,EAGF,YAAY,EAIZ,GAAG,EACJ,MAAM,OAAO,CAAC;AAOf,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAUlE,UAAU,cAAc,CAAC,CAAC,CAAE,SAAQ,YAAY;IAC9C,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;CACd;AAED,MAAM,WAAW,YACf,SAAQ,IAAI,CACV,kBAAkB,EAClB,cAAc,GAAG,uBAAuB,GAAG,2BAA2B,CACvE;IAED,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;IAEnC,MAAM,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IAEjC,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IAE9D,UAAU,CAAC,EAAE,YAAY,CAAC;IAE1B,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAE9C,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAE1B,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;CAC5B;AAED,eAAO,MAAM,MAAM,EAAE,EAAE,CAAC,YAAY,CAkNnC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
- var _excluded = ["type", "mode", "target", "options", "selected", "position", "onChange", "actionIcon", "actionLabel", "placeholder", "emptyAction", "disableSearch", "forceCloseMenu", "selectClassName", "keepSameOptionsOrder", "onSelectOpen", "onSelectClose"];
3
+ var _excluded = ["type", "mode", "target", "options", "selected", "position", "onChange", "actionIcon", "actionLabel", "placeholder", "emptyAction", "disableSearch", "forceCloseMenu", "selectClassName", "keepSameOptionsOrder", "onSelectOpen", "onSelectClose", "renderOption"];
4
4
  import React, { useCallback, useState, useMemo, useEffect, useRef } from "react";
5
5
  import { Autocomplete } from "../Autocomplete";
6
6
  import { Tooltip } from "../Tooltip";
@@ -38,6 +38,7 @@ export var Select = function Select(_ref) {
38
38
  keepSameOptionsOrder = _ref$keepSameOptionsO === void 0 ? false : _ref$keepSameOptionsO,
39
39
  onSelectOpen = _ref.onSelectOpen,
40
40
  onSelectClose = _ref.onSelectClose,
41
+ renderOption = _ref.renderOption,
41
42
  prop = _objectWithoutPropertiesLoose(_ref, _excluded);
42
43
 
43
44
  var _useState = useState(),
@@ -88,41 +89,12 @@ export var Select = function Select(_ref) {
88
89
  open && (childNode == null ? void 0 : childNode.focus());
89
90
  }, [childNode, open]);
90
91
  var handleChange = useCallback(function (selectedValue) {
91
- if (selectedValue !== null) {
92
- if (type === "single") {
93
- if (forceCloseMenu) {
94
- setOpen(false);
95
- }
96
-
97
- return onChange(selectedValue);
98
- } // multiple
99
-
100
-
101
- var value = function value() {
102
- if (selectedValue instanceof Array) {
103
- if (selectedValue.every(function (v) {
104
- return selectedOptions.includes(v);
105
- })) {
106
- return selectedOptions.filter(function (v) {
107
- return !selectedValue.includes(v);
108
- });
109
- }
110
-
111
- return selectedValue.concat(selectedOptions);
112
- }
113
-
114
- if (selectedOptions.includes(selectedValue)) {
115
- return selectedOptions.filter(function (option) {
116
- return option !== selectedValue;
117
- });
118
- }
119
-
120
- return [].concat(selectedOptions, [selectedValue]);
121
- };
122
-
123
- return onChange(value());
92
+ if (forceCloseMenu) {
93
+ setOpen(false);
124
94
  }
125
- }, [onChange, type, forceCloseMenu, selectedOptions]);
95
+
96
+ onChange(selectedValue);
97
+ }, [onChange, forceCloseMenu]);
126
98
  var onClose = useCallback(function () {
127
99
  setOpen(false);
128
100
 
@@ -181,6 +153,10 @@ export var Select = function Select(_ref) {
181
153
  }
182
154
  }, [onChange, type, forceCloseMenu, selectedOptions.length, allOptionValues]);
183
155
  var handleRenderOption = useCallback(function (option, props) {
156
+ if (typeof renderOption === "function") {
157
+ return renderOption(option, props);
158
+ }
159
+
184
160
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(OptionContent, {
185
161
  imageUrl: option.image,
186
162
  color: option.color,
@@ -192,7 +168,7 @@ export var Select = function Select(_ref) {
192
168
  }, props)) : /*#__PURE__*/React.createElement(StyledRadioButton, _extends({
193
169
  checked: selectedOptions.length < 1 || !selectedOptions[0]
194
170
  }, props)) : type === "multiple" ? /*#__PURE__*/React.createElement(StyledCheckbox, props) : /*#__PURE__*/React.createElement(StyledRadioButton, props));
195
- }, [isAllOptionsChecked, selectedOptions, type]);
171
+ }, [isAllOptionsChecked, renderOption, selectedOptions, type]);
196
172
  return /*#__PURE__*/React.createElement(Tag, props, /*#__PURE__*/React.createElement("div", null, !disableSearch ? /*#__PURE__*/React.createElement(StyledSelectForm, {
197
173
  ref: formRef
198
174
  }, /*#__PURE__*/React.createElement(StyledSelectInput, {
@@ -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","renderOption","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","onClose","onOpen","props","menuClassName","className","handleEmptyAction","value","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\nexport interface ISelectProps\n extends Omit<\n IAutocompleteProps,\n \"handleChange\" | \"preselectDefaultValue\" | \"handleDefaultOptionChange\"\n > {\n /** Menu width mode */\n mode?: \"normal\" | \"wider\" | \"tiny\";\n /** Set select target element */\n target?: ElementWithRef<Element>;\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 /** 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> = ({\n type = \"single\",\n mode,\n target,\n options,\n selected = [],\n position = \"bottom-start\",\n onChange = () => 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 renderOption,\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 (forceCloseMenu) {\n setOpen(false);\n }\n onChange(selectedValue);\n },\n [onChange, forceCloseMenu]\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 if (typeof renderOption === \"function\") {\n return renderOption(option, props);\n }\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, renderOption, 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"}
@@ -3,6 +3,7 @@ export declare type Size = "regular" | "big" | "small";
3
3
  export interface SelectTriggerProps extends ComponentPropsWithoutRef<"button"> {
4
4
  size?: Size;
5
5
  invalid?: boolean;
6
+ endAdornment?: JSX.Element;
6
7
  }
7
8
  export declare const SelectTrigger: React.ForwardRefExoticComponent<SelectTriggerProps & React.RefAttributes<HTMLButtonElement>>;
8
9
  //# sourceMappingURL=SelectTrigger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SelectTrigger.d.ts","sourceRoot":"","sources":["../../../../src/components/SelectTrigger/SelectTrigger.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAc,wBAAwB,EAAE,MAAM,OAAO,CAAC;AAIpE,oBAAY,IAAI,GAAG,SAAS,GAAG,KAAK,GAAG,OAAO,CAAC;AAE/C,MAAM,WAAW,kBAAmB,SAAQ,wBAAwB,CAAC,QAAQ,CAAC;IAC5E,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,eAAO,MAAM,aAAa,8FA2BzB,CAAC"}
1
+ {"version":3,"file":"SelectTrigger.d.ts","sourceRoot":"","sources":["../../../../src/components/SelectTrigger/SelectTrigger.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAc,wBAAwB,EAAE,MAAM,OAAO,CAAC;AAIpE,oBAAY,IAAI,GAAG,SAAS,GAAG,KAAK,GAAG,OAAO,CAAC;AAE/C,MAAM,WAAW,kBAAmB,SAAQ,wBAAwB,CAAC,QAAQ,CAAC;IAC5E,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;CAC5B;AAED,eAAO,MAAM,aAAa,8FAkCzB,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
- var _excluded = ["children", "type", "size", "invalid"];
3
+ var _excluded = ["children", "type", "size", "invalid", "endAdornment"];
4
4
  import React, { forwardRef } from "react";
5
5
  import { Typography } from "../Typography/Typography";
6
6
  import { StyledCaretIcon, StyledSelectTrigger } from "./Styles";
@@ -12,6 +12,7 @@ export var SelectTrigger = /*#__PURE__*/forwardRef(function (_ref, ref) {
12
12
  size = _ref$size === void 0 ? "regular" : _ref$size,
13
13
  _ref$invalid = _ref.invalid,
14
14
  invalid = _ref$invalid === void 0 ? false : _ref$invalid,
15
+ endAdornment = _ref.endAdornment,
15
16
  rest = _objectWithoutPropertiesLoose(_ref, _excluded);
16
17
 
17
18
  return /*#__PURE__*/React.createElement(StyledSelectTrigger, _extends({
@@ -25,7 +26,7 @@ export var SelectTrigger = /*#__PURE__*/forwardRef(function (_ref, ref) {
25
26
  overflow: "truncate",
26
27
  whitespace: "no-wrap",
27
28
  variant: size === "small" || size === "regular" ? "Body 2" : "Body 1"
28
- }, children), /*#__PURE__*/React.createElement(StyledCaretIcon, null));
29
+ }, children), endAdornment ? endAdornment : /*#__PURE__*/React.createElement(StyledCaretIcon, null));
29
30
  });
30
31
  SelectTrigger.displayName = "SelectTrigger";
31
32
  //# sourceMappingURL=SelectTrigger.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/SelectTrigger/SelectTrigger.tsx"],"names":["React","forwardRef","Typography","StyledCaretIcon","StyledSelectTrigger","SelectTrigger","ref","children","type","size","invalid","rest","displayName"],"mappings":";;;AAAA,OAAOA,KAAP,IAAgBC,UAAhB,QAA4D,OAA5D;AACA,SAASC,UAAT,QAA2B,0BAA3B;AACA,SAASC,eAAT,EAA0BC,mBAA1B,QAAqD,UAArD;AASA,OAAO,IAAMC,aAAa,gBAAGJ,UAAU,CACrC,gBAEEK,GAFF,EAGK;AAAA,MAFDC,QAEC,QAFDA,QAEC;AAAA,uBAFSC,IAET;AAAA,MAFSA,IAET,0BAFgB,QAEhB;AAAA,uBAF0BC,IAE1B;AAAA,MAF0BA,IAE1B,0BAFiC,SAEjC;AAAA,0BAF4CC,OAE5C;AAAA,MAF4CA,OAE5C,6BAFsD,KAEtD;AAAA,MAFgEC,IAEhE;;AACH,sBACE,oBAAC,mBAAD;AACE,IAAA,GAAG,EAAEL,GADP;AAEE,IAAA,IAAI,EAAC,QAFP;AAGE,IAAA,IAAI,EAAEE,IAHR;AAIE,IAAA,KAAK,EAAEC,IAJT;AAKE,IAAA,QAAQ,EAAEC;AALZ,KAMMC,IANN,gBAQE,oBAAC,UAAD;AACE,IAAA,EAAE,EAAC,KADL;AAEE,IAAA,QAAQ,EAAC,UAFX;AAGE,IAAA,UAAU,EAAC,SAHb;AAIE,IAAA,OAAO,EAAEF,IAAI,KAAK,OAAT,IAAoBA,IAAI,KAAK,SAA7B,GAAyC,QAAzC,GAAoD;AAJ/D,KAMGF,QANH,CARF,eAiBE,oBAAC,eAAD,OAjBF,CADF;AAqBD,CA1BoC,CAAhC;AA6BPF,aAAa,CAACO,WAAd,GAA4B,eAA5B","sourcesContent":["import React, { forwardRef, ComponentPropsWithoutRef } from \"react\";\nimport { Typography } from \"../Typography/Typography\";\nimport { StyledCaretIcon, StyledSelectTrigger } from \"./Styles\";\n\nexport type Size = \"regular\" | \"big\" | \"small\";\n\nexport interface SelectTriggerProps extends ComponentPropsWithoutRef<\"button\"> {\n size?: Size;\n invalid?: boolean;\n}\n\nexport const SelectTrigger = forwardRef<HTMLButtonElement, SelectTriggerProps>(\n (\n { children, type = \"button\", size = \"regular\", invalid = false, ...rest },\n ref\n ) => {\n return (\n <StyledSelectTrigger\n ref={ref}\n role=\"button\"\n type={type}\n $size={size}\n $invalid={invalid}\n {...rest}\n >\n <Typography\n as=\"div\"\n overflow=\"truncate\"\n whitespace=\"no-wrap\"\n variant={size === \"small\" || size === \"regular\" ? \"Body 2\" : \"Body 1\"}\n >\n {children}\n </Typography>\n\n <StyledCaretIcon />\n </StyledSelectTrigger>\n );\n }\n);\n\nSelectTrigger.displayName = \"SelectTrigger\";\n"],"file":"SelectTrigger.js"}
1
+ {"version":3,"sources":["../../../../src/components/SelectTrigger/SelectTrigger.tsx"],"names":["React","forwardRef","Typography","StyledCaretIcon","StyledSelectTrigger","SelectTrigger","ref","children","type","size","invalid","endAdornment","rest","displayName"],"mappings":";;;AAAA,OAAOA,KAAP,IAAgBC,UAAhB,QAA4D,OAA5D;AACA,SAASC,UAAT,QAA2B,0BAA3B;AACA,SAASC,eAAT,EAA0BC,mBAA1B,QAAqD,UAArD;AAUA,OAAO,IAAMC,aAAa,gBAAGJ,UAAU,CACrC,gBASEK,GATF,EAUK;AAAA,MARDC,QAQC,QARDA,QAQC;AAAA,uBAPDC,IAOC;AAAA,MAPDA,IAOC,0BAPM,QAON;AAAA,uBANDC,IAMC;AAAA,MANDA,IAMC,0BANM,SAMN;AAAA,0BALDC,OAKC;AAAA,MALDA,OAKC,6BALS,KAKT;AAAA,MAJDC,YAIC,QAJDA,YAIC;AAAA,MAHEC,IAGF;;AACH,sBACE,oBAAC,mBAAD;AACE,IAAA,GAAG,EAAEN,GADP;AAEE,IAAA,IAAI,EAAC,QAFP;AAGE,IAAA,IAAI,EAAEE,IAHR;AAIE,IAAA,KAAK,EAAEC,IAJT;AAKE,IAAA,QAAQ,EAAEC;AALZ,KAMME,IANN,gBAQE,oBAAC,UAAD;AACE,IAAA,EAAE,EAAC,KADL;AAEE,IAAA,QAAQ,EAAC,UAFX;AAGE,IAAA,UAAU,EAAC,SAHb;AAIE,IAAA,OAAO,EAAEH,IAAI,KAAK,OAAT,IAAoBA,IAAI,KAAK,SAA7B,GAAyC,QAAzC,GAAoD;AAJ/D,KAMGF,QANH,CARF,EAiBGI,YAAY,GAAGA,YAAH,gBAAkB,oBAAC,eAAD,OAjBjC,CADF;AAqBD,CAjCoC,CAAhC;AAoCPN,aAAa,CAACQ,WAAd,GAA4B,eAA5B","sourcesContent":["import React, { forwardRef, ComponentPropsWithoutRef } from \"react\";\nimport { Typography } from \"../Typography/Typography\";\nimport { StyledCaretIcon, StyledSelectTrigger } from \"./Styles\";\n\nexport type Size = \"regular\" | \"big\" | \"small\";\n\nexport interface SelectTriggerProps extends ComponentPropsWithoutRef<\"button\"> {\n size?: Size;\n invalid?: boolean;\n endAdornment?: JSX.Element;\n}\n\nexport const SelectTrigger = forwardRef<HTMLButtonElement, SelectTriggerProps>(\n (\n {\n children,\n type = \"button\",\n size = \"regular\",\n invalid = false,\n endAdornment,\n ...rest\n },\n ref\n ) => {\n return (\n <StyledSelectTrigger\n ref={ref}\n role=\"button\"\n type={type}\n $size={size}\n $invalid={invalid}\n {...rest}\n >\n <Typography\n as=\"div\"\n overflow=\"truncate\"\n whitespace=\"no-wrap\"\n variant={size === \"small\" || size === \"regular\" ? \"Body 2\" : \"Body 1\"}\n >\n {children}\n </Typography>\n\n {endAdornment ? endAdornment : <StyledCaretIcon />}\n </StyledSelectTrigger>\n );\n }\n);\n\nSelectTrigger.displayName = \"SelectTrigger\";\n"],"file":"SelectTrigger.js"}
@@ -1,4 +1,5 @@
1
1
  export declare const StyledTooltip: import("styled-components").StyledComponent<"div", any, {
2
2
  $isLight: boolean;
3
+ $width: number;
3
4
  }, never>;
4
5
  //# sourceMappingURL=Styles.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Styles.d.ts","sourceRoot":"","sources":["../../../../src/components/Tooltip/Styles.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,aAAa;cAA0B,OAAO;SAsB1D,CAAC"}
1
+ {"version":3,"file":"Styles.d.ts","sourceRoot":"","sources":["../../../../src/components/Tooltip/Styles.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,aAAa;cAA0B,OAAO;YAAU,MAAM;SA2B1E,CAAC"}
@@ -4,7 +4,9 @@ import { FontStyle } from "../FontStyle";
4
4
  export var StyledTooltip = styled.div.withConfig({
5
5
  displayName: "Styles__StyledTooltip",
6
6
  componentId: "sc-rur9b5-0"
7
- })(["", " ", " border-radius:8px;max-width:200px;padding:4px 10px;text-align:center;background-color:rgba(0,0,0,0.9);font-size:12px;font-weight:500;line-height:normal;color:#fff;margin:4px;", ""], BoxSizingStyle, FontStyle, function (props) {
7
+ })(["", " ", " border-radius:8px;padding:4px 10px;text-align:center;background-color:rgba(0,0,0,0.9);font-size:12px;font-weight:500;line-height:normal;color:#fff;margin:4px;", " ", ""], BoxSizingStyle, FontStyle, function (props) {
8
8
  return props.$isLight && css(["background-color:var(--page-paper-main);box-shadow:var(--shadow-secondary);color:var(--color-theme-700);"]);
9
+ }, function (props) {
10
+ return props.$width && css(["width:", "px;"], props.$width);
9
11
  });
10
12
  //# sourceMappingURL=Styles.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Tooltip/Styles.ts"],"names":["styled","css","BoxSizingStyle","FontStyle","StyledTooltip","div","props","$isLight"],"mappings":"AAAA,OAAOA,MAAP,IAAiBC,GAAjB,QAA4B,mBAA5B;AACA,SAASC,cAAT,QAA+B,mBAA/B;AACA,SAASC,SAAT,QAA0B,cAA1B;AAEA,OAAO,IAAMC,aAAa,GAAGJ,MAAM,CAACK,GAAV;AAAA;AAAA;AAAA,qMACtBH,cADsB,EAEtBC,SAFsB,EAetB,UAACG,KAAD;AAAA,SACAA,KAAK,CAACC,QAAN,IACAN,GADA,8GADA;AAAA,CAfsB,CAAnB","sourcesContent":["import styled, { css } from \"styled-components\";\nimport { BoxSizingStyle } from \"../BoxSizingStyle\";\nimport { FontStyle } from \"../FontStyle\";\n\nexport const StyledTooltip = styled.div<{ $isLight: boolean }>`\n ${BoxSizingStyle}\n ${FontStyle}\n\n border-radius: 8px;\n max-width: 200px;\n padding: 4px 10px;\n text-align: center;\n background-color: rgba(0, 0, 0, 0.9);\n font-size: 12px;\n font-weight: 500;\n line-height: normal;\n color: #fff;\n margin: 4px;\n\n ${(props) =>\n props.$isLight &&\n css`\n background-color: var(--page-paper-main);\n box-shadow: var(--shadow-secondary);\n color: var(--color-theme-700);\n `}\n`;\n"],"file":"Styles.js"}
1
+ {"version":3,"sources":["../../../../src/components/Tooltip/Styles.ts"],"names":["styled","css","BoxSizingStyle","FontStyle","StyledTooltip","div","props","$isLight","$width"],"mappings":"AAAA,OAAOA,MAAP,IAAiBC,GAAjB,QAA4B,mBAA5B;AACA,SAASC,cAAT,QAA+B,mBAA/B;AACA,SAASC,SAAT,QAA0B,cAA1B;AAEA,OAAO,IAAMC,aAAa,GAAGJ,MAAM,CAACK,GAAV;AAAA;AAAA;AAAA,0LACtBH,cADsB,EAEtBC,SAFsB,EActB,UAACG,KAAD;AAAA,SACAA,KAAK,CAACC,QAAN,IACAN,GADA,8GADA;AAAA,CAdsB,EAsBtB,UAACK,KAAD;AAAA,SACAA,KAAK,CAACE,MAAN,IACAP,GADA,oBAEWK,KAAK,CAACE,MAFjB,CADA;AAAA,CAtBsB,CAAnB","sourcesContent":["import styled, { css } from \"styled-components\";\nimport { BoxSizingStyle } from \"../BoxSizingStyle\";\nimport { FontStyle } from \"../FontStyle\";\n\nexport const StyledTooltip = styled.div<{ $isLight: boolean; $width: number }>`\n ${BoxSizingStyle}\n ${FontStyle}\n\n border-radius: 8px;\n padding: 4px 10px;\n text-align: center;\n background-color: rgba(0, 0, 0, 0.9);\n font-size: 12px;\n font-weight: 500;\n line-height: normal;\n color: #fff;\n margin: 4px;\n\n ${(props) =>\n props.$isLight &&\n css`\n background-color: var(--page-paper-main);\n box-shadow: var(--shadow-secondary);\n color: var(--color-theme-700);\n `}\n\n ${(props) =>\n props.$width &&\n css`\n width: ${props.$width}px;\n `}\n`;\n"],"file":"Styles.js"}
@@ -16,6 +16,7 @@ export interface ITooltipProps {
16
16
  popperTooltipStyle?: CSSProperties;
17
17
  popperTooltipClassName?: string;
18
18
  disable?: boolean;
19
+ width?: number;
19
20
  }
20
21
  export declare const Tooltip: React.ForwardRefExoticComponent<ITooltipProps & React.RefAttributes<HTMLElement>>;
21
22
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"Tooltip.d.ts","sourceRoot":"","sources":["../../../../src/components/Tooltip/Tooltip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EACZ,YAAY,EAEZ,aAAa,EAGb,GAAG,EAEJ,MAAM,OAAO,CAAC;AAEf,OAAO,EAAU,SAAS,EAAE,MAAM,WAAW,CAAC;AAG9C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAKjD,UAAU,cAAc,CAAC,CAAC,CAAE,SAAQ,YAAY;IAC9C,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;CACd;AAED,MAAM,WAAW,aAAa;IAE5B,QAAQ,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;IAEtC,KAAK,EAAE,YAAY,GAAG,MAAM,CAAC;IAE7B,KAAK,CAAC,EAAE,aAAa,CAAC;IAEtB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB,mBAAmB,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC;IAEhD,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,kBAAkB,CAAC,EAAE,aAAa,CAAC;IAEnC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAcD,eAAO,MAAM,OAAO,mFAqFnB,CAAC"}
1
+ {"version":3,"file":"Tooltip.d.ts","sourceRoot":"","sources":["../../../../src/components/Tooltip/Tooltip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EACZ,YAAY,EAEZ,aAAa,EAGb,GAAG,EAEJ,MAAM,OAAO,CAAC;AAEf,OAAO,EAAU,SAAS,EAAE,MAAM,WAAW,CAAC;AAG9C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAKjD,UAAU,cAAc,CAAC,CAAC,CAAE,SAAQ,YAAY;IAC9C,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;CACd;AAED,MAAM,WAAW,aAAa;IAE5B,QAAQ,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;IAEtC,KAAK,EAAE,YAAY,GAAG,MAAM,CAAC;IAE7B,KAAK,CAAC,EAAE,aAAa,CAAC;IAEtB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB,mBAAmB,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC;IAEhD,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,kBAAkB,CAAC,EAAE,aAAa,CAAC;IAEnC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAcD,eAAO,MAAM,OAAO,mFAuFnB,CAAC"}
@@ -32,7 +32,9 @@ export var Tooltip = /*#__PURE__*/forwardRef(function (_ref2, ref) {
32
32
  TransitionComponent = _ref2$TransitionCompo === void 0 ? TooltipAnimation : _ref2$TransitionCompo,
33
33
  popperTooltipStyle = _ref2.popperTooltipStyle,
34
34
  popperTooltipClassName = _ref2.popperTooltipClassName,
35
- disable = _ref2.disable;
35
+ disable = _ref2.disable,
36
+ _ref2$width = _ref2.width,
37
+ width = _ref2$width === void 0 ? 200 : _ref2$width;
36
38
 
37
39
  var _useLayerContext = useLayerContext(),
38
40
  _useLayerContext$zInd = _useLayerContext.zIndex,
@@ -91,7 +93,8 @@ export var Tooltip = /*#__PURE__*/forwardRef(function (_ref2, ref) {
91
93
  style: style
92
94
  }), /*#__PURE__*/React.createElement(StyledTooltip, {
93
95
  className: classnames("c-tooltip-ds", className),
94
- $isLight: isLight
96
+ $isLight: isLight,
97
+ $width: width
95
98
  }, title));
96
99
  })));
97
100
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Tooltip/Tooltip.tsx"],"names":["React","useState","forwardRef","classnames","Popper","FromElement","useForkRef","Portal","useLayerContext","StyledTooltip","layers","TooltipAnimation","children","props","Tooltip","ref","title","className","style","isLight","placement","TransitionComponent","popperTooltipStyle","popperTooltipClassName","disable","zIndex","skyscraper","open","setOpen","childNode","setChildNode","handleEnter","event","childrenProps","type","onMouseOver","removeAttribute","handleLeave","onMouseLeave","currentTarget","handleOwnRef","handleRef","cloneElement","transitionProps","displayName"],"mappings":"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","sourcesContent":["import React, {\n ReactElement,\n useState,\n CSSProperties,\n MouseEvent,\n forwardRef,\n Ref,\n FC,\n} from \"react\";\nimport classnames from \"classnames\";\nimport { Popper, Placement } from \"../Popper\";\nimport { FromElement } from \"../Transitions/FromElement\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport { TransitionProps } from \"../Transitions\";\nimport { Portal, useLayerContext } from \"../../helpers\";\nimport { StyledTooltip } from \"./Styles\";\nimport { layers } from \"../../utils\";\n\ninterface ElementWithRef<T> extends ReactElement {\n ref?: Ref<T>;\n}\n\nexport interface ITooltipProps {\n /** Children element. */\n children: ElementWithRef<HTMLElement>;\n /** Title element. */\n title: ReactElement | string;\n /** Applies passed styles */\n style?: CSSProperties;\n /** Applies passed classes */\n className?: string;\n /** Open */\n open?: boolean;\n /** Placement */\n placement?: Placement;\n /** Transition component */\n TransitionComponent?: React.FC<TransitionProps>;\n /** Light tooltip */\n isLight?: boolean;\n /** Popper Tooltip style */\n popperTooltipStyle?: CSSProperties;\n /** Popper Tooltip class name*/\n popperTooltipClassName?: string;\n /** Remove tooltip */\n disable?: boolean;\n}\n\ninterface ITooltipAnimation extends TransitionProps {\n children: ReactElement;\n}\n\nconst TooltipAnimation: FC<ITooltipAnimation> = ({ children, ...props }) => {\n return (\n <FromElement timeout={0} {...props}>\n {children}\n </FromElement>\n );\n};\n\nexport const Tooltip = forwardRef<HTMLElement, ITooltipProps>(\n (\n {\n children,\n title,\n className,\n style,\n isLight = false,\n placement = \"top\",\n TransitionComponent = TooltipAnimation,\n popperTooltipStyle,\n popperTooltipClassName,\n disable,\n },\n ref\n ) => {\n const { zIndex = layers.skyscraper } = useLayerContext();\n const [open, setOpen] = useState(false);\n const [childNode, setChildNode] = useState<HTMLElement | null>();\n\n const handleEnter = (event: MouseEvent<HTMLElement>): void => {\n const childrenProps = children.props;\n\n if (event.type === \"mouseover\" && childrenProps.onMouseOver) {\n childrenProps.onMouseOver(event);\n }\n\n childNode && childNode.removeAttribute(\"title\");\n\n setOpen(true);\n };\n\n const handleLeave = (event: MouseEvent<HTMLElement>): void => {\n const childrenProps = children.props;\n\n if (\n event.type === \"mouseleave\" &&\n childrenProps.onMouseLeave &&\n event.currentTarget === childNode\n ) {\n childrenProps.onMouseLeave(event);\n }\n\n setOpen(false);\n };\n\n const handleOwnRef = useForkRef(children.ref, ref);\n const handleRef = useForkRef(setChildNode, handleOwnRef);\n\n const childrenProps = {\n onMouseOver: handleEnter,\n onMouseLeave: handleLeave,\n ref: handleRef,\n };\n\n return (\n <>\n {React.cloneElement(children, childrenProps)}\n {!disable && (\n <Portal>\n <Popper\n anchorEl={childNode}\n open={childNode ? open : false}\n placement={placement}\n transition\n className={popperTooltipClassName}\n style={{ zIndex, ...popperTooltipStyle }}\n role=\"tooltip\"\n >\n {({ transitionProps = {} }): ReactElement => (\n <TransitionComponent {...transitionProps} style={style}>\n <StyledTooltip\n className={classnames(\"c-tooltip-ds\", className)}\n $isLight={isLight}\n >\n {title}\n </StyledTooltip>\n </TransitionComponent>\n )}\n </Popper>\n </Portal>\n )}\n </>\n );\n }\n);\n\nTooltip.displayName = \"Tooltip\";\n"],"file":"Tooltip.js"}
1
+ {"version":3,"sources":["../../../../src/components/Tooltip/Tooltip.tsx"],"names":["React","useState","forwardRef","classnames","Popper","FromElement","useForkRef","Portal","useLayerContext","StyledTooltip","layers","TooltipAnimation","children","props","Tooltip","ref","title","className","style","isLight","placement","TransitionComponent","popperTooltipStyle","popperTooltipClassName","disable","width","zIndex","skyscraper","open","setOpen","childNode","setChildNode","handleEnter","event","childrenProps","type","onMouseOver","removeAttribute","handleLeave","onMouseLeave","currentTarget","handleOwnRef","handleRef","cloneElement","transitionProps","displayName"],"mappings":"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","sourcesContent":["import React, {\n ReactElement,\n useState,\n CSSProperties,\n MouseEvent,\n forwardRef,\n Ref,\n FC,\n} from \"react\";\nimport classnames from \"classnames\";\nimport { Popper, Placement } from \"../Popper\";\nimport { FromElement } from \"../Transitions/FromElement\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport { TransitionProps } from \"../Transitions\";\nimport { Portal, useLayerContext } from \"../../helpers\";\nimport { StyledTooltip } from \"./Styles\";\nimport { layers } from \"../../utils\";\n\ninterface ElementWithRef<T> extends ReactElement {\n ref?: Ref<T>;\n}\n\nexport interface ITooltipProps {\n /** Children element. */\n children: ElementWithRef<HTMLElement>;\n /** Title element. */\n title: ReactElement | string;\n /** Applies passed styles */\n style?: CSSProperties;\n /** Applies passed classes */\n className?: string;\n /** Open */\n open?: boolean;\n /** Placement */\n placement?: Placement;\n /** Transition component */\n TransitionComponent?: React.FC<TransitionProps>;\n /** Light tooltip */\n isLight?: boolean;\n /** Popper Tooltip style */\n popperTooltipStyle?: CSSProperties;\n /** Popper Tooltip class name*/\n popperTooltipClassName?: string;\n /** Remove tooltip */\n disable?: boolean;\n /** Tooltip width */\n width?: number;\n}\n\ninterface ITooltipAnimation extends TransitionProps {\n children: ReactElement;\n}\n\nconst TooltipAnimation: FC<ITooltipAnimation> = ({ children, ...props }) => {\n return (\n <FromElement timeout={0} {...props}>\n {children}\n </FromElement>\n );\n};\n\nexport const Tooltip = forwardRef<HTMLElement, ITooltipProps>(\n (\n {\n children,\n title,\n className,\n style,\n isLight = false,\n placement = \"top\",\n TransitionComponent = TooltipAnimation,\n popperTooltipStyle,\n popperTooltipClassName,\n disable,\n width = 200,\n },\n ref\n ) => {\n const { zIndex = layers.skyscraper } = useLayerContext();\n const [open, setOpen] = useState(false);\n const [childNode, setChildNode] = useState<HTMLElement | null>();\n\n const handleEnter = (event: MouseEvent<HTMLElement>): void => {\n const childrenProps = children.props;\n\n if (event.type === \"mouseover\" && childrenProps.onMouseOver) {\n childrenProps.onMouseOver(event);\n }\n\n childNode && childNode.removeAttribute(\"title\");\n\n setOpen(true);\n };\n\n const handleLeave = (event: MouseEvent<HTMLElement>): void => {\n const childrenProps = children.props;\n\n if (\n event.type === \"mouseleave\" &&\n childrenProps.onMouseLeave &&\n event.currentTarget === childNode\n ) {\n childrenProps.onMouseLeave(event);\n }\n\n setOpen(false);\n };\n\n const handleOwnRef = useForkRef(children.ref, ref);\n const handleRef = useForkRef(setChildNode, handleOwnRef);\n\n const childrenProps = {\n onMouseOver: handleEnter,\n onMouseLeave: handleLeave,\n ref: handleRef,\n };\n\n return (\n <>\n {React.cloneElement(children, childrenProps)}\n {!disable && (\n <Portal>\n <Popper\n anchorEl={childNode}\n open={childNode ? open : false}\n placement={placement}\n transition\n className={popperTooltipClassName}\n style={{ zIndex, ...popperTooltipStyle }}\n role=\"tooltip\"\n >\n {({ transitionProps = {} }): ReactElement => (\n <TransitionComponent {...transitionProps} style={style}>\n <StyledTooltip\n className={classnames(\"c-tooltip-ds\", className)}\n $isLight={isLight}\n $width={width}\n >\n {title}\n </StyledTooltip>\n </TransitionComponent>\n )}\n </Popper>\n </Portal>\n )}\n </>\n );\n }\n);\n\nTooltip.displayName = \"Tooltip\";\n"],"file":"Tooltip.js"}
@@ -10,7 +10,7 @@ interface IStyledTypographyProps {
10
10
  $overflow: "truncate" | "ellipsis" | "visible";
11
11
  $whitespace?: "regular" | "no-wrap" | "pre" | "pre-wrap" | "pre-line" | "break-spaces";
12
12
  $wordBreak: "regular" | "smart" | "all";
13
- $color: "primary" | "secondary" | "tertiary" | "quaternary" | "theme-primary" | "theme-secondary" | "only-white" | "only-black" | "page-paper" | "success" | "alert";
13
+ $color: "primary" | "secondary" | "tertiary" | "quaternary" | "theme-primary" | "theme-secondary" | "only-white" | "only-black" | "page-paper" | "success" | "alert" | "warning";
14
14
  $weight?: "light" | "regular" | "medium" | "bold";
15
15
  }
16
16
  export declare const StyledTypography: import("styled-components").StyledComponent<"div", any, IStyledTypographyProps, never>;
@@ -1 +1 @@
1
- {"version":3,"file":"Styles.d.ts","sourceRoot":"","sources":["../../../../src/components/Typography/Styles.ts"],"names":[],"mappings":"AAKA,UAAU,sBAAsB;IAC9B,QAAQ,EACJ,SAAS,GACT,SAAS,GACT,UAAU,GACV,UAAU,GACV,QAAQ,GACR,QAAQ,GACR,WAAW,GACX,WAAW,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,cAAc,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IAC7C,WAAW,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;IAC3C,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;IAChD,WAAW,EAAE,WAAW,GAAG,cAAc,GAAG,MAAM,CAAC;IACnD,UAAU,EAAE,WAAW,GAAG,WAAW,GAAG,YAAY,GAAG,SAAS,CAAC;IACjE,SAAS,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC;IAC/C,WAAW,CAAC,EACR,SAAS,GACT,SAAS,GACT,KAAK,GACL,UAAU,GACV,UAAU,GACV,cAAc,CAAC;IACnB,UAAU,EAAE,SAAS,GAAG,OAAO,GAAG,KAAK,CAAC;IACxC,MAAM,EACF,SAAS,GACT,WAAW,GACX,UAAU,GACV,YAAY,GACZ,eAAe,GACf,iBAAiB,GACjB,YAAY,GACZ,YAAY,GACZ,YAAY,GACZ,SAAS,GACT,OAAO,CAAC;IACZ,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;CACnD;AAgBD,eAAO,MAAM,gBAAgB,wFAyP5B,CAAC"}
1
+ {"version":3,"file":"Styles.d.ts","sourceRoot":"","sources":["../../../../src/components/Typography/Styles.ts"],"names":[],"mappings":"AAKA,UAAU,sBAAsB;IAC9B,QAAQ,EACJ,SAAS,GACT,SAAS,GACT,UAAU,GACV,UAAU,GACV,QAAQ,GACR,QAAQ,GACR,WAAW,GACX,WAAW,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,cAAc,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IAC7C,WAAW,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;IAC3C,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;IAChD,WAAW,EAAE,WAAW,GAAG,cAAc,GAAG,MAAM,CAAC;IACnD,UAAU,EAAE,WAAW,GAAG,WAAW,GAAG,YAAY,GAAG,SAAS,CAAC;IACjE,SAAS,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC;IAC/C,WAAW,CAAC,EACR,SAAS,GACT,SAAS,GACT,KAAK,GACL,UAAU,GACV,UAAU,GACV,cAAc,CAAC;IACnB,UAAU,EAAE,SAAS,GAAG,OAAO,GAAG,KAAK,CAAC;IACxC,MAAM,EACF,SAAS,GACT,WAAW,GACX,UAAU,GACV,YAAY,GACZ,eAAe,GACf,iBAAiB,GACjB,YAAY,GACZ,YAAY,GACZ,YAAY,GACZ,SAAS,GACT,OAAO,GACP,SAAS,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;CACnD;AAiBD,eAAO,MAAM,gBAAgB,wFAyP5B,CAAC"}
@@ -34,6 +34,9 @@ var colors = {
34
34
  },
35
35
  alert: {
36
36
  "color": "var(--red-alert)"
37
+ },
38
+ warning: {
39
+ "color": "var(--warning)"
37
40
  }
38
41
  };
39
42
  export var StyledTypography = styled.div.withConfig({