@laerdal/life-react-components 1.8.0-dev.31.full → 1.8.0-dev.34

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 (67) hide show
  1. package/dist/Button/Iconbutton.cjs +7 -5
  2. package/dist/Button/Iconbutton.cjs.map +1 -1
  3. package/dist/Button/Iconbutton.d.ts +2 -0
  4. package/dist/Button/Iconbutton.js +7 -5
  5. package/dist/Button/Iconbutton.js.map +1 -1
  6. package/dist/ChipsInput/ChipInputField.cjs +2 -3
  7. package/dist/ChipsInput/ChipInputField.cjs.map +1 -1
  8. package/dist/ChipsInput/ChipInputField.js +2 -3
  9. package/dist/ChipsInput/ChipInputField.js.map +1 -1
  10. package/dist/Dropdown/BasicDropdown.cjs +0 -2
  11. package/dist/Dropdown/BasicDropdown.cjs.map +1 -1
  12. package/dist/Dropdown/BasicDropdown.js +0 -2
  13. package/dist/Dropdown/BasicDropdown.js.map +1 -1
  14. package/dist/Dropdown/DropdownFilter.cjs +0 -2
  15. package/dist/Dropdown/DropdownFilter.cjs.map +1 -1
  16. package/dist/Dropdown/DropdownFilter.d.ts +1 -1
  17. package/dist/Dropdown/DropdownFilter.js +0 -2
  18. package/dist/Dropdown/DropdownFilter.js.map +1 -1
  19. package/dist/InputFields/DatepickerField.cjs +2 -3
  20. package/dist/InputFields/DatepickerField.cjs.map +1 -1
  21. package/dist/InputFields/DatepickerField.js +2 -3
  22. package/dist/InputFields/DatepickerField.js.map +1 -1
  23. package/dist/InputFields/Label.cjs +24 -14
  24. package/dist/InputFields/Label.cjs.map +1 -1
  25. package/dist/InputFields/Label.js +24 -16
  26. package/dist/InputFields/Label.js.map +1 -1
  27. package/dist/InputFields/NumberField.cjs +5 -3
  28. package/dist/InputFields/NumberField.cjs.map +1 -1
  29. package/dist/InputFields/NumberField.js +5 -3
  30. package/dist/InputFields/NumberField.js.map +1 -1
  31. package/dist/InputFields/PasswordField.cjs +1 -1
  32. package/dist/InputFields/PasswordField.cjs.map +1 -1
  33. package/dist/InputFields/PasswordField.js +1 -1
  34. package/dist/InputFields/PasswordField.js.map +1 -1
  35. package/dist/InputFields/QuickSearch.cjs +2 -3
  36. package/dist/InputFields/QuickSearch.cjs.map +1 -1
  37. package/dist/InputFields/QuickSearch.js +2 -3
  38. package/dist/InputFields/QuickSearch.js.map +1 -1
  39. package/dist/InputFields/TextField.cjs +26 -16
  40. package/dist/InputFields/TextField.cjs.map +1 -1
  41. package/dist/InputFields/TextField.d.ts +3 -1
  42. package/dist/InputFields/TextField.js +27 -18
  43. package/dist/InputFields/TextField.js.map +1 -1
  44. package/dist/InputFields/Textarea.cjs +26 -20
  45. package/dist/InputFields/Textarea.cjs.map +1 -1
  46. package/dist/InputFields/Textarea.d.ts +1 -11
  47. package/dist/InputFields/Textarea.js +31 -24
  48. package/dist/InputFields/Textarea.js.map +1 -1
  49. package/dist/InputFields/components/SearchBarInput.cjs +1 -1
  50. package/dist/InputFields/components/SearchBarInput.cjs.map +1 -1
  51. package/dist/InputFields/components/SearchBarInput.js +1 -1
  52. package/dist/InputFields/components/SearchBarInput.js.map +1 -1
  53. package/dist/InputFields/components/SearchField.cjs +1 -1
  54. package/dist/InputFields/components/SearchField.cjs.map +1 -1
  55. package/dist/InputFields/components/SearchField.js +1 -1
  56. package/dist/InputFields/components/SearchField.js.map +1 -1
  57. package/dist/InputFields/styling.cjs +15 -13
  58. package/dist/InputFields/styling.cjs.map +1 -1
  59. package/dist/InputFields/styling.d.ts +4 -1
  60. package/dist/InputFields/styling.js +13 -10
  61. package/dist/InputFields/styling.js.map +1 -1
  62. package/dist/InputFields/types.cjs +6 -0
  63. package/dist/InputFields/types.cjs.map +1 -0
  64. package/dist/InputFields/types.d.ts +38 -0
  65. package/dist/InputFields/types.js +2 -0
  66. package/dist/InputFields/types.js.map +1 -0
  67. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/InputFields/QuickSearch.tsx"],"names":["React","styled","IconButton","SearchIconWrapper","StyledIcon","Size","COLORS","LoadingIndicator","Search","SearchIcon","Clear","ClearIcon","SearchBarInput","SearchField","StyledSearchField","Wrapper","div","white","neutral_400","primary_800","QuickSearch","id","searchTerm","setSearchTerm","enterSearch","removeSearch","placeholder","performSearchLabel","disabled","onKeyDown","size","margin","loading","searchFieldRef","useRef","searchFieldInputRef","useState","visible","searchFieldVisible","setSearchFieldVisible","handleClickOutside","e","current","contains","target","length","handleKeyDown","key","handleBlur","relatedTarget","handleSearchIconAction","focus","detail","useEffect","document","addEventListener","removeEventListener","focusVisible","term","neutral_300","neutral_600","Small"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport styled from 'styled-components';\n\nimport IconButton from '../Button/Iconbutton';\nimport {SearchIconWrapper, StyledIcon} from './styling';\nimport {Size} from '../types';\nimport {COLORS, LoadingIndicator} from '..';\nimport {Search as SearchIcon, Clear as ClearIcon} from '../icons/systemicons/SystemIcons';\nimport SearchBarInput from './components/SearchBarInput';\nimport SearchField, {StyledSearchField} from './components/SearchField';\n\nconst Wrapper = styled.div`\n width: 100%;\n\n ${StyledSearchField} {\n transition: box-shadow 0.2s ease-in-out, width 0.2s ease-in-out;\n\n background-color: transparent;\n\n &.small {\n width: 48px;\n }\n\n &.medium {\n width: 56px;\n }\n\n &.expanded {\n width: 100%;\n }\n\n box-shadow: none;\n\n &:hover {\n box-shadow: none;\n }\n\n &.expanded {\n background-color: ${COLORS.white};\n box-shadow: inset 0 0 0 1px ${COLORS.neutral_400};\n }\n\n &.expanded:hover,\n &.expanded:focus-within {\n box-shadow: inset 0 0 0 2px ${COLORS.primary_800};\n }\n }\n`;\n\ntype QuickSearchProps = {\n id: string;\n searchTerm?: string;\n setSearchTerm: (term: string) => void;\n enterSearch: (e: any) => void;\n removeSearch: (e: any) => void;\n placeholder?: string;\n performSearchLabel?: string;\n disabled?: boolean;\n onKeyDown?: (e: React.KeyboardEvent) => void;\n size?: Size.Small | Size.Medium;\n margin?: string;\n loading?: boolean;\n};\n\nconst QuickSearch: React.FunctionComponent<QuickSearchProps> = ({\n id,\n searchTerm,\n setSearchTerm,\n enterSearch,\n removeSearch,\n placeholder,\n performSearchLabel,\n disabled,\n onKeyDown,\n size,\n margin,\n loading,\n }: QuickSearchProps) => {\n const searchFieldRef = React.useRef<HTMLDivElement>(null);\n const searchFieldInputRef = React.useRef<HTMLInputElement>(null);\n\n const [searchFieldVisible, setSearchFieldVisible] = React.useState<{ visible: boolean, focus?: boolean }>({\n visible: false\n });\n\n const handleClickOutside = (e: any) => {\n if (searchFieldRef?.current && !searchFieldRef.current.contains(e.target)) {\n if (searchFieldVisible?.visible && !searchTerm?.length) {\n setSearchFieldVisible({visible: false});\n }\n }\n };\n\n const handleKeyDown = (e: any) => {\n if (onKeyDown) {\n onKeyDown(e);\n }\n if (e.key === 'Escape') {\n if (searchFieldVisible?.visible && !searchTerm?.length) {\n setSearchFieldVisible({visible: false});\n }\n }\n };\n\n const handleBlur = (e: any) => {\n if (!searchTerm && (!e.relatedTarget || !searchFieldRef.current?.contains(e.relatedTarget))) {\n setSearchFieldVisible({visible: false});\n }\n };\n\n const handleSearchIconAction = (e: any) => {\n if (searchFieldVisible?.visible) {\n enterSearch(searchTerm);\n } else {\n setSearchFieldVisible({\n visible: !searchFieldVisible.visible,\n focus: !searchFieldVisible.visible && e?.detail !== 1\n });\n }\n };\n\n // set search field visibility on search term change\n React.useEffect(() => {\n if (!!searchTerm?.length && !searchFieldVisible?.visible) {\n setSearchFieldVisible({visible: true, focus: false});\n }\n }, [searchTerm, searchFieldVisible]);\n\n // register click outside handler\n React.useEffect(() => {\n document.addEventListener('click', handleClickOutside);\n return () => {\n document.removeEventListener('click', handleClickOutside);\n };\n });\n\n // focus search input on visibility change\n React.useEffect(() => {\n if (searchFieldVisible?.visible) {\n searchFieldInputRef?.current?.focus({focusVisible: searchFieldVisible.focus} as any);\n }\n }, [searchFieldVisible.visible, searchFieldInputRef]);\n\n\n return (\n <Wrapper>\n <SearchField ref={searchFieldRef}\n id={id}\n size={size}\n searchTerm={searchTerm}\n style={{\n margin: margin,\n }}\n onBlur={handleBlur}\n className={searchFieldVisible?.visible ? 'expanded' : ''}>\n {searchFieldVisible?.visible && (\n <SearchBarInput\n placeholder={disabled ? '' : placeholder}\n id={id}\n ref={searchFieldInputRef}\n disabled={disabled}\n onKeyDown={handleKeyDown}\n size={size}\n setSearchTerm={(term: string) => setSearchTerm(term)}\n searchTerm={searchTerm}\n enterSearch={enterSearch}\n focusParentRefs={[searchFieldRef]}\n />\n )}\n <SearchIconWrapper className={size ? size : ''} role=\"button\" aria-label={performSearchLabel}>\n <IconButton\n id={`${id}_Searchbutton`}\n variant=\"secondary\"\n shape=\"circular\"\n tabIndex={searchFieldVisible?.visible ? -1 : 0}\n action={handleSearchIconAction}>\n <SearchIcon size=\"24px\" color={disabled ? COLORS.neutral_300 : COLORS.neutral_600}/>\n </IconButton>\n </SearchIconWrapper>\n <StyledIcon className={size ? size : ''} role=\"button\"\n hidden={!searchTerm || !searchFieldVisible?.visible}>\n <IconButton\n id={`${id}_Clearicon`}\n variant=\"secondary\"\n shape=\"circular\"\n action={(e) => {\n removeSearch(e);\n searchFieldInputRef?.current?.focus();\n }}>\n <ClearIcon size=\"24px\" color={disabled ? COLORS.neutral_300 : COLORS.neutral_600}/>\n </IconButton>\n </StyledIcon>\n {loading && searchFieldVisible?.visible && (\n <StyledIcon className={size ? size : ''}>\n <LoadingIndicator size={Size.Small} color={COLORS.neutral_600}/>\n </StyledIcon>\n )}\n </SearchField>\n </Wrapper>\n )\n};\n\nexport default QuickSearch;\n"],"file":"QuickSearch.js"}
1
+ {"version":3,"sources":["../../src/InputFields/QuickSearch.tsx"],"names":["React","styled","IconButton","SearchIconWrapper","StyledIcon","Size","COLORS","LoadingIndicator","Search","SearchIcon","Clear","ClearIcon","SearchBarInput","SearchField","StyledSearchField","Wrapper","div","white","neutral_400","primary_800","QuickSearch","id","searchTerm","setSearchTerm","enterSearch","removeSearch","placeholder","performSearchLabel","disabled","onKeyDown","size","margin","loading","searchFieldRef","useRef","searchFieldInputRef","useState","visible","searchFieldVisible","setSearchFieldVisible","handleClickOutside","e","current","contains","target","length","handleKeyDown","key","handleBlur","relatedTarget","handleSearchIconAction","focus","detail","useEffect","document","addEventListener","removeEventListener","focusVisible","term","neutral_300","neutral_600","Small"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport styled from 'styled-components';\n\nimport IconButton from '../Button/Iconbutton';\nimport { SearchIconWrapper, StyledIcon } from './styling';\nimport { Size } from '../types';\nimport { COLORS, LoadingIndicator } from '..';\nimport { Search as SearchIcon, Clear as ClearIcon } from '../icons/systemicons/SystemIcons';\nimport SearchBarInput from './components/SearchBarInput';\nimport SearchField, { StyledSearchField } from './components/SearchField';\n\nconst Wrapper = styled.div`\n width: 100%;\n\n ${StyledSearchField} {\n transition: box-shadow 0.2s ease-in-out, width 0.2s ease-in-out;\n\n background-color: transparent;\n\n &.small {\n width: 48px;\n }\n\n &.medium {\n width: 56px;\n }\n\n &.expanded {\n width: 100%;\n }\n\n box-shadow: none;\n\n &:hover {\n box-shadow: none;\n }\n\n &.expanded {\n background-color: ${COLORS.white};\n box-shadow: inset 0 0 0 1px ${COLORS.neutral_400};\n }\n\n &.expanded:hover,\n &.expanded:focus-within {\n box-shadow: inset 0 0 0 2px ${COLORS.primary_800};\n }\n }\n`;\n\ntype QuickSearchProps = {\n id: string;\n searchTerm?: string;\n setSearchTerm: (term: string) => void;\n enterSearch: (e: any) => void;\n removeSearch: (e: any) => void;\n placeholder?: string;\n performSearchLabel?: string;\n disabled?: boolean;\n onKeyDown?: (e: React.KeyboardEvent) => void;\n size?: Size.Small | Size.Medium;\n margin?: string;\n loading?: boolean;\n};\n\nconst QuickSearch: React.FunctionComponent<QuickSearchProps> = ({\n id,\n searchTerm,\n setSearchTerm,\n enterSearch,\n removeSearch,\n placeholder,\n performSearchLabel,\n disabled,\n onKeyDown,\n size,\n margin,\n loading,\n}: QuickSearchProps) => {\n const searchFieldRef = React.useRef<HTMLDivElement>(null);\n const searchFieldInputRef = React.useRef<HTMLInputElement>(null);\n\n const [searchFieldVisible, setSearchFieldVisible] = React.useState<{ visible: boolean; focus?: boolean }>({\n visible: false,\n });\n\n const handleClickOutside = (e: any) => {\n if (searchFieldRef?.current && !searchFieldRef.current.contains(e.target)) {\n if (searchFieldVisible?.visible && !searchTerm?.length) {\n setSearchFieldVisible({ visible: false });\n }\n }\n };\n\n const handleKeyDown = (e: any) => {\n if (onKeyDown) {\n onKeyDown(e);\n }\n if (e.key === 'Escape') {\n if (searchFieldVisible?.visible && !searchTerm?.length) {\n setSearchFieldVisible({ visible: false });\n }\n }\n };\n\n const handleBlur = (e: any) => {\n if (!searchTerm && (!e.relatedTarget || !searchFieldRef.current?.contains(e.relatedTarget))) {\n setSearchFieldVisible({ visible: false });\n }\n };\n\n const handleSearchIconAction = (e: any) => {\n if (!searchFieldVisible?.visible) {\n setSearchFieldVisible({\n visible: !searchFieldVisible.visible,\n focus: !searchFieldVisible.visible && e?.detail !== 1,\n });\n }\n };\n\n // set search field visibility on search term change\n React.useEffect(() => {\n if (!!searchTerm?.length && !searchFieldVisible?.visible) {\n setSearchFieldVisible({ visible: true, focus: false });\n }\n }, [searchTerm, searchFieldVisible]);\n\n // register click outside handler\n React.useEffect(() => {\n document.addEventListener('click', handleClickOutside);\n return () => {\n document.removeEventListener('click', handleClickOutside);\n };\n });\n\n // focus search input on visibility change\n React.useEffect(() => {\n if (searchFieldVisible?.visible) {\n searchFieldInputRef?.current?.focus({ focusVisible: searchFieldVisible.focus } as any);\n }\n }, [searchFieldVisible.visible, searchFieldInputRef]);\n\n return (\n <Wrapper>\n <SearchField\n ref={searchFieldRef}\n id={id}\n size={size}\n searchTerm={searchTerm}\n style={{\n margin: margin,\n }}\n onBlur={handleBlur}\n className={searchFieldVisible?.visible ? 'expanded' : ''}>\n {searchFieldVisible?.visible && (\n <SearchBarInput\n placeholder={disabled ? '' : placeholder}\n id={id}\n ref={searchFieldInputRef}\n disabled={disabled}\n onKeyDown={handleKeyDown}\n size={size}\n setSearchTerm={(term: string) => setSearchTerm(term)}\n searchTerm={searchTerm}\n enterSearch={enterSearch}\n focusParentRefs={[searchFieldRef]}\n />\n )}\n <SearchIconWrapper className={size ? size : ''} role=\"button\" aria-label={performSearchLabel}>\n <IconButton\n shouldNotInteract={searchFieldVisible?.visible}\n id={`${id}_Searchbutton`}\n variant=\"secondary\"\n shape=\"circular\"\n tabIndex={searchFieldVisible?.visible ? -1 : 0}\n action={handleSearchIconAction}>\n <SearchIcon size=\"24px\" color={disabled ? COLORS.neutral_300 : COLORS.neutral_600} />\n </IconButton>\n </SearchIconWrapper>\n <StyledIcon className={size ? size : ''} role=\"button\" hidden={!searchTerm || !searchFieldVisible?.visible}>\n <IconButton\n id={`${id}_Clearicon`}\n variant=\"secondary\"\n shape=\"circular\"\n action={(e) => {\n removeSearch(e);\n searchFieldInputRef?.current?.focus();\n }}>\n <ClearIcon size=\"24px\" color={disabled ? COLORS.neutral_300 : COLORS.neutral_600} />\n </IconButton>\n </StyledIcon>\n {loading && searchFieldVisible?.visible && (\n <StyledIcon className={size ? size : ''}>\n <LoadingIndicator size={Size.Small} color={COLORS.neutral_600} />\n </StyledIcon>\n )}\n </SearchField>\n </Wrapper>\n );\n};\n\nexport default QuickSearch;\n"],"file":"QuickSearch.js"}
@@ -17,6 +17,8 @@ var _SystemIcons = require("../icons/systemicons/SystemIcons");
17
17
 
18
18
  var _styles = require("../styles");
19
19
 
20
+ var _types = require("../types");
21
+
20
22
  var _styling = require("./styling");
21
23
 
22
24
  var _common = require("../common");
@@ -44,10 +46,11 @@ var TextField = function TextField(_ref) {
44
46
  state = _ref.state,
45
47
  size = _ref.size,
46
48
  _ref$margin = _ref.margin,
47
- margin = _ref$margin === void 0 ? '4px 0' : _ref$margin;
49
+ margin = _ref$margin === void 0 ? '4px 0' : _ref$margin,
50
+ note = _ref.note;
48
51
  var elementRef = (0, _common.useFocusVisibleRef)();
49
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
50
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_styling.InputWrapper, {
52
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
53
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_styling.InputWrapper, {
51
54
  readOnly: readOnly,
52
55
  disabled: disabled,
53
56
  margin: margin,
@@ -56,15 +59,15 @@ var TextField = function TextField(_ref) {
56
59
  e.preventDefault();
57
60
  }
58
61
  },
59
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_styling.InputFieldStyling, {
62
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_styling.InputFieldStyling, {
60
63
  id: id,
61
64
  ref: elementRef,
62
65
  type: type || 'text',
63
66
  value: value,
64
- className: "".concat(state || '', " ").concat(size || ''),
67
+ className: "".concat(state || (validationMessage ? _types.States.Invalid : ''), " ").concat(size || ''),
65
68
  tabIndex: readOnly || disabled ? -1 : 0,
66
69
  autoComplete: autoComplete,
67
- placeholder: placeholder,
70
+ placeholder: disabled ? undefined : placeholder,
68
71
  disabled: disabled,
69
72
  readOnly: readOnly,
70
73
  onChange: function onChange(e) {
@@ -72,21 +75,28 @@ var TextField = function TextField(_ref) {
72
75
 
73
76
  return _onChange && _onChange((e === null || e === void 0 ? void 0 : (_e$target = e.target) === null || _e$target === void 0 ? void 0 : _e$target.value) || '');
74
77
  },
75
- activeErrorMessage: !!validationMessage,
78
+ activeErrorMessage: !!validationMessage && state !== _types.States.Valid,
76
79
  required: required,
77
80
  pattern: pattern,
78
81
  maxLength: maxLength,
79
82
  withoutBorder: withoutBorder
80
- })
81
- }), validationMessage && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_styling.ErrorMessage, {
82
- className: size || '',
83
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_SystemIcons.TechnicalWarning, {
84
- size: "20px",
85
- color: _styles.COLORS.critical_400
86
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
87
- children: validationMessage
83
+ }), validationMessage && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_styling.ValidationMessage, {
84
+ className: size || '',
85
+ type: state !== null && state !== void 0 ? state : _types.States.Invalid,
86
+ children: [state === _types.States.Valid ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_SystemIcons.CheckMark, {
87
+ color: _styles.COLORS.correct_400
88
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_SystemIcons.TechnicalWarning, {
89
+ color: _styles.COLORS.critical_400
90
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
91
+ children: validationMessage
92
+ })]
93
+ }), note && !disabled && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_styling.NoteMessage, {
94
+ className: size,
95
+ children: [note.icon, /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
96
+ children: note.message
97
+ })]
88
98
  })]
89
- })]
99
+ })
90
100
  });
91
101
  };
92
102
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/InputFields/TextField.tsx"],"names":["TextField","id","disabled","readOnly","onChange","value","validationMessage","type","autoComplete","placeholder","required","pattern","maxLength","withoutBorder","state","size","margin","elementRef","e","preventDefault","target","COLORS","critical_400"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;AACA;;;;;;;;AAqBA,IAAMA,SAAS,GAAG,SAAZA,SAAY,OAiBI;AAAA,MAhBpBC,EAgBoB,QAhBpBA,EAgBoB;AAAA,MAfpBC,QAeoB,QAfpBA,QAeoB;AAAA,MAdpBC,QAcoB,QAdpBA,QAcoB;AAAA,MAbpBC,SAaoB,QAbpBA,QAaoB;AAAA,MAZpBC,KAYoB,QAZpBA,KAYoB;AAAA,MAXpBC,iBAWoB,QAXpBA,iBAWoB;AAAA,MAVpBC,IAUoB,QAVpBA,IAUoB;AAAA,MATpBC,YASoB,QATpBA,YASoB;AAAA,MARpBC,WAQoB,QARpBA,WAQoB;AAAA,MAPpBC,QAOoB,QAPpBA,QAOoB;AAAA,MANpBC,OAMoB,QANpBA,OAMoB;AAAA,MALpBC,SAKoB,QALpBA,SAKoB;AAAA,MAJpBC,aAIoB,QAJpBA,aAIoB;AAAA,MAHpBC,KAGoB,QAHpBA,KAGoB;AAAA,MAFpBC,IAEoB,QAFpBA,IAEoB;AAAA,yBADpBC,MACoB;AAAA,MADpBA,MACoB,4BADX,OACW;AACpB,MAAMC,UAAU,GAAG,iCAAnB;AAEA,sBACE;AAAA,4BACE,qBAAC,qBAAD;AACE,MAAA,QAAQ,EAAEd,QADZ;AAEE,MAAA,QAAQ,EAAED,QAFZ;AAGE,MAAA,MAAM,EAAEc,MAHV;AAIE,MAAA,OAAO,EAAE,iBAACE,CAAD,EAAY;AACnB,YAAIhB,QAAQ,IAAIC,QAAhB,EAA0B;AACxBe,UAAAA,CAAC,CAACC,cAAF;AACD;AACF,OARH;AAAA,6BASE,qBAAC,0BAAD;AACE,QAAA,EAAE,EAAElB,EADN;AAEE,QAAA,GAAG,EAAEgB,UAFP;AAGE,QAAA,IAAI,EAAEV,IAAI,IAAI,MAHhB;AAIE,QAAA,KAAK,EAAEF,KAJT;AAKE,QAAA,SAAS,YAAKS,KAAK,IAAI,EAAd,cAAoBC,IAAI,IAAI,EAA5B,CALX;AAME,QAAA,QAAQ,EAAEZ,QAAQ,IAAID,QAAZ,GAAuB,CAAC,CAAxB,GAA4B,CANxC;AAOE,QAAA,YAAY,EAAEM,YAPhB;AAQE,QAAA,WAAW,EAAEC,WARf;AASE,QAAA,QAAQ,EAAEP,QATZ;AAUE,QAAA,QAAQ,EAAEC,QAVZ;AAWE,QAAA,QAAQ,EAAE,kBAACe,CAAD;AAAA;;AAAA,iBAAYd,SAAQ,IAAIA,SAAQ,CAAC,CAAAc,CAAC,SAAD,IAAAA,CAAC,WAAD,yBAAAA,CAAC,CAAEE,MAAH,wDAAWf,KAAX,KAAoB,EAArB,CAAhC;AAAA,SAXZ;AAYE,QAAA,kBAAkB,EAAE,CAAC,CAACC,iBAZxB;AAaE,QAAA,QAAQ,EAAEI,QAbZ;AAcE,QAAA,OAAO,EAAEC,OAdX;AAeE,QAAA,SAAS,EAAEC,SAfb;AAgBE,QAAA,aAAa,EAAEC;AAhBjB;AATF,MADF,EA6BGP,iBAAiB,iBAChB,sBAAC,qBAAD;AAAc,MAAA,SAAS,EAAES,IAAI,IAAI,EAAjC;AAAA,8BACE,qBAAC,6BAAD;AAAkB,QAAA,IAAI,EAAC,MAAvB;AAA8B,QAAA,KAAK,EAAEM,eAAOC;AAA5C,QADF,eAEE;AAAA,kBAAOhB;AAAP,QAFF;AAAA,MA9BJ;AAAA,IADF;AAsCD,CA1DD;;;AAlBEL,EAAAA,E;AACAC,EAAAA,Q;AACAC,EAAAA,Q;AACAC,EAAAA,Q;AACAC,EAAAA,K;AACAC,EAAAA,iB;AACAC,EAAAA,I;AAEAC,EAAAA,Y;AACAC,EAAAA,W;AACAC,EAAAA,Q;AACAC,EAAAA,O;AACAC,EAAAA,S;AACAC,EAAAA,a;AAEAG,EAAAA,M;;eA+DahB,S","sourcesContent":["import * as React from 'react';\nimport { TechnicalWarning } from '../icons/systemicons/SystemIcons';\nimport { COLORS } from '../styles';\nimport {Size, States} from '../types';\nimport { ErrorMessage, InputFieldStyling, InputWrapper} from './styling';\nimport {useFocusVisibleRef} from '../common';\n\ntype TextFieldProps = {\n id: string;\n disabled?: boolean;\n readOnly?: boolean;\n onChange?: (text: string) => void;\n value?: string;\n validationMessage?: string;\n type?: string;\n state?: States.Invalid | States.Valid;\n autoComplete?: string;\n placeholder?: string;\n required?: boolean;\n pattern?: string;\n maxLength?: number;\n withoutBorder?: boolean;\n size?: Size.Small | Size.Medium;\n margin?: string;\n};\n\nconst TextField = ({\n id,\n disabled,\n readOnly,\n onChange,\n value,\n validationMessage,\n type,\n autoComplete,\n placeholder,\n required,\n pattern,\n maxLength,\n withoutBorder,\n state,\n size,\n margin = '4px 0',\n}: TextFieldProps) => {\n const elementRef = useFocusVisibleRef();\n\n return (\n <>\n <InputWrapper\n readOnly={readOnly}\n disabled={disabled}\n margin={margin}\n onClick={(e: any) => {\n if (disabled || readOnly) {\n e.preventDefault();\n }\n }}>\n <InputFieldStyling\n id={id}\n ref={elementRef}\n type={type || 'text'}\n value={value}\n className={`${state || ''} ${size || ''}`}\n tabIndex={readOnly || disabled ? -1 : 0}\n autoComplete={autoComplete}\n placeholder={placeholder}\n disabled={disabled}\n readOnly={readOnly}\n onChange={(e: any) => onChange && onChange(e?.target?.value || '')}\n activeErrorMessage={!!validationMessage}\n required={required}\n pattern={pattern}\n maxLength={maxLength}\n withoutBorder={withoutBorder}\n />\n </InputWrapper>\n {validationMessage && (\n <ErrorMessage className={size || ''}>\n <TechnicalWarning size=\"20px\" color={COLORS.critical_400} />\n <span>{validationMessage}</span>\n </ErrorMessage>\n )}\n </>\n );\n};\n\nexport default TextField;\n"],"file":"TextField.cjs"}
1
+ {"version":3,"sources":["../../src/InputFields/TextField.tsx"],"names":["TextField","id","disabled","readOnly","onChange","value","validationMessage","type","autoComplete","placeholder","required","pattern","maxLength","withoutBorder","state","size","margin","note","elementRef","e","preventDefault","States","Invalid","undefined","target","Valid","COLORS","correct_400","critical_400","icon","message"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;AAuBA,IAAMA,SAAS,GAAG,SAAZA,SAAY,OAkBI;AAAA,MAjBpBC,EAiBoB,QAjBpBA,EAiBoB;AAAA,MAhBpBC,QAgBoB,QAhBpBA,QAgBoB;AAAA,MAfpBC,QAeoB,QAfpBA,QAeoB;AAAA,MAdpBC,SAcoB,QAdpBA,QAcoB;AAAA,MAbpBC,KAaoB,QAbpBA,KAaoB;AAAA,MAZpBC,iBAYoB,QAZpBA,iBAYoB;AAAA,MAXpBC,IAWoB,QAXpBA,IAWoB;AAAA,MAVpBC,YAUoB,QAVpBA,YAUoB;AAAA,MATpBC,WASoB,QATpBA,WASoB;AAAA,MARpBC,QAQoB,QARpBA,QAQoB;AAAA,MAPpBC,OAOoB,QAPpBA,OAOoB;AAAA,MANpBC,SAMoB,QANpBA,SAMoB;AAAA,MALpBC,aAKoB,QALpBA,aAKoB;AAAA,MAJpBC,KAIoB,QAJpBA,KAIoB;AAAA,MAHpBC,IAGoB,QAHpBA,IAGoB;AAAA,yBAFpBC,MAEoB;AAAA,MAFpBA,MAEoB,4BAFX,OAEW;AAAA,MADpBC,IACoB,QADpBA,IACoB;AACpB,MAAMC,UAAU,GAAG,iCAAnB;AAEA,sBACE;AAAA,2BACE,sBAAC,qBAAD;AACE,MAAA,QAAQ,EAAEf,QADZ;AAEE,MAAA,QAAQ,EAAED,QAFZ;AAGE,MAAA,MAAM,EAAEc,MAHV;AAIE,MAAA,OAAO,EAAE,iBAACG,CAAD,EAAY;AACnB,YAAIjB,QAAQ,IAAIC,QAAhB,EAA0B;AACxBgB,UAAAA,CAAC,CAACC,cAAF;AACD;AACF,OARH;AAAA,8BASE,qBAAC,0BAAD;AACE,QAAA,EAAE,EAAEnB,EADN;AAEE,QAAA,GAAG,EAAEiB,UAFP;AAGE,QAAA,IAAI,EAAEX,IAAI,IAAI,MAHhB;AAIE,QAAA,KAAK,EAAEF,KAJT;AAKE,QAAA,SAAS,YAAKS,KAAK,KAAKR,iBAAiB,GAAGe,cAAOC,OAAV,GAAoB,EAA1C,CAAV,cAA2DP,IAAI,IAAI,EAAnE,CALX;AAME,QAAA,QAAQ,EAAEZ,QAAQ,IAAID,QAAZ,GAAuB,CAAC,CAAxB,GAA4B,CANxC;AAOE,QAAA,YAAY,EAAEM,YAPhB;AAQE,QAAA,WAAW,EAAEN,QAAQ,GAAGqB,SAAH,GAAed,WARtC;AASE,QAAA,QAAQ,EAAEP,QATZ;AAUE,QAAA,QAAQ,EAAEC,QAVZ;AAWE,QAAA,QAAQ,EAAE,kBAACgB,CAAD;AAAA;;AAAA,iBAAYf,SAAQ,IAAIA,SAAQ,CAAC,CAAAe,CAAC,SAAD,IAAAA,CAAC,WAAD,yBAAAA,CAAC,CAAEK,MAAH,wDAAWnB,KAAX,KAAoB,EAArB,CAAhC;AAAA,SAXZ;AAYE,QAAA,kBAAkB,EAAE,CAAC,CAACC,iBAAF,IAAuBQ,KAAK,KAAKO,cAAOI,KAZ9D;AAaE,QAAA,QAAQ,EAAEf,QAbZ;AAcE,QAAA,OAAO,EAAEC,OAdX;AAeE,QAAA,SAAS,EAAEC,SAfb;AAgBE,QAAA,aAAa,EAAEC;AAhBjB,QATF,EA2BGP,iBAAiB,iBAChB,sBAAC,0BAAD;AAAmB,QAAA,SAAS,EAAES,IAAI,IAAI,EAAtC;AAA0C,QAAA,IAAI,EAAED,KAAF,aAAEA,KAAF,cAAEA,KAAF,GAAWO,cAAOC,OAAhE;AAAA,mBACGR,KAAK,KAAKO,cAAOI,KAAjB,gBAAyB,qBAAC,sBAAD;AAAW,UAAA,KAAK,EAAEC,eAAOC;AAAzB,UAAzB,gBAAoE,qBAAC,6BAAD;AAAkB,UAAA,KAAK,EAAED,eAAOE;AAAhC,UADvE,eAEE;AAAA,oBAAOtB;AAAP,UAFF;AAAA,QA5BJ,EAiCGW,IAAI,IAAI,CAACf,QAAT,iBACC,sBAAC,oBAAD;AAAa,QAAA,SAAS,EAAEa,IAAxB;AAAA,mBACGE,IAAI,CAACY,IADR,eAEE;AAAA,oBAAOZ,IAAI,CAACa;AAAZ,UAFF;AAAA,QAlCJ;AAAA;AADF,IADF;AA4CD,CAjED;;;AAnBE7B,EAAAA,E;AACAC,EAAAA,Q;AACAC,EAAAA,Q;AACAC,EAAAA,Q;AACAC,EAAAA,K;AACAC,EAAAA,iB;AACAC,EAAAA,I;AAEAC,EAAAA,Y;AACAC,EAAAA,W;AACAC,EAAAA,Q;AACAC,EAAAA,O;AACAC,EAAAA,S;AACAC,EAAAA,a;AAEAG,EAAAA,M;;eAuEahB,S","sourcesContent":["import * as React from 'react';\nimport { CheckMark, TechnicalWarning } from '../icons/systemicons/SystemIcons';\nimport { COLORS } from '../styles';\nimport { Size, States } from '../types';\nimport { ErrorMessage, InputFieldStyling, InputWrapper, NoteMessage, ValidationMessage } from './styling';\nimport { useFocusVisibleRef } from '../common';\nimport { TextFieldNote } from './types';\n\ntype TextFieldProps = {\n id: string;\n disabled?: boolean;\n readOnly?: boolean;\n onChange?: (text: string) => void;\n value?: string;\n validationMessage?: string;\n type?: string;\n state?: States.Invalid | States.Valid;\n autoComplete?: string;\n placeholder?: string;\n required?: boolean;\n pattern?: string;\n maxLength?: number;\n withoutBorder?: boolean;\n size?: Size.Small | Size.Medium;\n margin?: string;\n note?: TextFieldNote;\n};\n\nconst TextField = ({\n id,\n disabled,\n readOnly,\n onChange,\n value,\n validationMessage,\n type,\n autoComplete,\n placeholder,\n required,\n pattern,\n maxLength,\n withoutBorder,\n state,\n size,\n margin = '4px 0',\n note,\n}: TextFieldProps) => {\n const elementRef = useFocusVisibleRef();\n\n return (\n <>\n <InputWrapper\n readOnly={readOnly}\n disabled={disabled}\n margin={margin}\n onClick={(e: any) => {\n if (disabled || readOnly) {\n e.preventDefault();\n }\n }}>\n <InputFieldStyling\n id={id}\n ref={elementRef}\n type={type || 'text'}\n value={value}\n className={`${state || (validationMessage ? States.Invalid : '')} ${size || ''}`}\n tabIndex={readOnly || disabled ? -1 : 0}\n autoComplete={autoComplete}\n placeholder={disabled ? undefined : placeholder}\n disabled={disabled}\n readOnly={readOnly}\n onChange={(e: any) => onChange && onChange(e?.target?.value || '')}\n activeErrorMessage={!!validationMessage && state !== States.Valid}\n required={required}\n pattern={pattern}\n maxLength={maxLength}\n withoutBorder={withoutBorder}\n />\n {validationMessage && (\n <ValidationMessage className={size || ''} type={state ?? States.Invalid}>\n {state === States.Valid ? <CheckMark color={COLORS.correct_400} /> : <TechnicalWarning color={COLORS.critical_400} />}\n <span>{validationMessage}</span>\n </ValidationMessage>\n )}\n {note && !disabled && (\n <NoteMessage className={size}>\n {note.icon}\n <span>{note.message}</span>\n </NoteMessage>\n )}\n </InputWrapper>\n </>\n );\n};\n\nexport default TextField;\n"],"file":"TextField.cjs"}
@@ -1,4 +1,5 @@
1
1
  import { Size, States } from '../types';
2
+ import { TextFieldNote } from './types';
2
3
  declare type TextFieldProps = {
3
4
  id: string;
4
5
  disabled?: boolean;
@@ -16,6 +17,7 @@ declare type TextFieldProps = {
16
17
  withoutBorder?: boolean;
17
18
  size?: Size.Small | Size.Medium;
18
19
  margin?: string;
20
+ note?: TextFieldNote;
19
21
  };
20
- declare const TextField: ({ id, disabled, readOnly, onChange, value, validationMessage, type, autoComplete, placeholder, required, pattern, maxLength, withoutBorder, state, size, margin, }: TextFieldProps) => JSX.Element;
22
+ declare const TextField: ({ id, disabled, readOnly, onChange, value, validationMessage, type, autoComplete, placeholder, required, pattern, maxLength, withoutBorder, state, size, margin, note, }: TextFieldProps) => JSX.Element;
21
23
  export default TextField;
@@ -1,8 +1,9 @@
1
1
  import _pt from "prop-types";
2
2
  import * as React from 'react';
3
- import { TechnicalWarning } from '../icons/systemicons/SystemIcons';
3
+ import { CheckMark, TechnicalWarning } from '../icons/systemicons/SystemIcons';
4
4
  import { COLORS } from '../styles';
5
- import { ErrorMessage, InputFieldStyling, InputWrapper } from './styling';
5
+ import { States } from '../types';
6
+ import { InputFieldStyling, InputWrapper, NoteMessage, ValidationMessage } from './styling';
6
7
  import { useFocusVisibleRef } from '../common';
7
8
  import { jsx as _jsx } from "react/jsx-runtime";
8
9
  import { jsxs as _jsxs } from "react/jsx-runtime";
@@ -25,10 +26,11 @@ var TextField = function TextField(_ref) {
25
26
  state = _ref.state,
26
27
  size = _ref.size,
27
28
  _ref$margin = _ref.margin,
28
- margin = _ref$margin === void 0 ? '4px 0' : _ref$margin;
29
+ margin = _ref$margin === void 0 ? '4px 0' : _ref$margin,
30
+ note = _ref.note;
29
31
  var elementRef = useFocusVisibleRef();
30
- return /*#__PURE__*/_jsxs(_Fragment, {
31
- children: [/*#__PURE__*/_jsx(InputWrapper, {
32
+ return /*#__PURE__*/_jsx(_Fragment, {
33
+ children: /*#__PURE__*/_jsxs(InputWrapper, {
32
34
  readOnly: readOnly,
33
35
  disabled: disabled,
34
36
  margin: margin,
@@ -37,15 +39,15 @@ var TextField = function TextField(_ref) {
37
39
  e.preventDefault();
38
40
  }
39
41
  },
40
- children: /*#__PURE__*/_jsx(InputFieldStyling, {
42
+ children: [/*#__PURE__*/_jsx(InputFieldStyling, {
41
43
  id: id,
42
44
  ref: elementRef,
43
45
  type: type || 'text',
44
46
  value: value,
45
- className: "".concat(state || '', " ").concat(size || ''),
47
+ className: "".concat(state || (validationMessage ? States.Invalid : ''), " ").concat(size || ''),
46
48
  tabIndex: readOnly || disabled ? -1 : 0,
47
49
  autoComplete: autoComplete,
48
- placeholder: placeholder,
50
+ placeholder: disabled ? undefined : placeholder,
49
51
  disabled: disabled,
50
52
  readOnly: readOnly,
51
53
  onChange: function onChange(e) {
@@ -53,21 +55,28 @@ var TextField = function TextField(_ref) {
53
55
 
54
56
  return _onChange && _onChange((e === null || e === void 0 ? void 0 : (_e$target = e.target) === null || _e$target === void 0 ? void 0 : _e$target.value) || '');
55
57
  },
56
- activeErrorMessage: !!validationMessage,
58
+ activeErrorMessage: !!validationMessage && state !== States.Valid,
57
59
  required: required,
58
60
  pattern: pattern,
59
61
  maxLength: maxLength,
60
62
  withoutBorder: withoutBorder
61
- })
62
- }), validationMessage && /*#__PURE__*/_jsxs(ErrorMessage, {
63
- className: size || '',
64
- children: [/*#__PURE__*/_jsx(TechnicalWarning, {
65
- size: "20px",
66
- color: COLORS.critical_400
67
- }), /*#__PURE__*/_jsx("span", {
68
- children: validationMessage
63
+ }), validationMessage && /*#__PURE__*/_jsxs(ValidationMessage, {
64
+ className: size || '',
65
+ type: state !== null && state !== void 0 ? state : States.Invalid,
66
+ children: [state === States.Valid ? /*#__PURE__*/_jsx(CheckMark, {
67
+ color: COLORS.correct_400
68
+ }) : /*#__PURE__*/_jsx(TechnicalWarning, {
69
+ color: COLORS.critical_400
70
+ }), /*#__PURE__*/_jsx("span", {
71
+ children: validationMessage
72
+ })]
73
+ }), note && !disabled && /*#__PURE__*/_jsxs(NoteMessage, {
74
+ className: size,
75
+ children: [note.icon, /*#__PURE__*/_jsx("span", {
76
+ children: note.message
77
+ })]
69
78
  })]
70
- })]
79
+ })
71
80
  });
72
81
  };
73
82
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/InputFields/TextField.tsx"],"names":["React","TechnicalWarning","COLORS","ErrorMessage","InputFieldStyling","InputWrapper","useFocusVisibleRef","TextField","id","disabled","readOnly","onChange","value","validationMessage","type","autoComplete","placeholder","required","pattern","maxLength","withoutBorder","state","size","margin","elementRef","e","preventDefault","target","critical_400"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { TechnicalWarning } from '../icons/systemicons/SystemIcons';\nimport { COLORS } from '../styles';\nimport {Size, States} from '../types';\nimport { ErrorMessage, InputFieldStyling, InputWrapper} from './styling';\nimport {useFocusVisibleRef} from '../common';\n\ntype TextFieldProps = {\n id: string;\n disabled?: boolean;\n readOnly?: boolean;\n onChange?: (text: string) => void;\n value?: string;\n validationMessage?: string;\n type?: string;\n state?: States.Invalid | States.Valid;\n autoComplete?: string;\n placeholder?: string;\n required?: boolean;\n pattern?: string;\n maxLength?: number;\n withoutBorder?: boolean;\n size?: Size.Small | Size.Medium;\n margin?: string;\n};\n\nconst TextField = ({\n id,\n disabled,\n readOnly,\n onChange,\n value,\n validationMessage,\n type,\n autoComplete,\n placeholder,\n required,\n pattern,\n maxLength,\n withoutBorder,\n state,\n size,\n margin = '4px 0',\n}: TextFieldProps) => {\n const elementRef = useFocusVisibleRef();\n\n return (\n <>\n <InputWrapper\n readOnly={readOnly}\n disabled={disabled}\n margin={margin}\n onClick={(e: any) => {\n if (disabled || readOnly) {\n e.preventDefault();\n }\n }}>\n <InputFieldStyling\n id={id}\n ref={elementRef}\n type={type || 'text'}\n value={value}\n className={`${state || ''} ${size || ''}`}\n tabIndex={readOnly || disabled ? -1 : 0}\n autoComplete={autoComplete}\n placeholder={placeholder}\n disabled={disabled}\n readOnly={readOnly}\n onChange={(e: any) => onChange && onChange(e?.target?.value || '')}\n activeErrorMessage={!!validationMessage}\n required={required}\n pattern={pattern}\n maxLength={maxLength}\n withoutBorder={withoutBorder}\n />\n </InputWrapper>\n {validationMessage && (\n <ErrorMessage className={size || ''}>\n <TechnicalWarning size=\"20px\" color={COLORS.critical_400} />\n <span>{validationMessage}</span>\n </ErrorMessage>\n )}\n </>\n );\n};\n\nexport default TextField;\n"],"file":"TextField.js"}
1
+ {"version":3,"sources":["../../src/InputFields/TextField.tsx"],"names":["React","CheckMark","TechnicalWarning","COLORS","States","InputFieldStyling","InputWrapper","NoteMessage","ValidationMessage","useFocusVisibleRef","TextField","id","disabled","readOnly","onChange","value","validationMessage","type","autoComplete","placeholder","required","pattern","maxLength","withoutBorder","state","size","margin","note","elementRef","e","preventDefault","Invalid","undefined","target","Valid","correct_400","critical_400","icon","message"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { CheckMark, TechnicalWarning } from '../icons/systemicons/SystemIcons';\nimport { COLORS } from '../styles';\nimport { Size, States } from '../types';\nimport { ErrorMessage, InputFieldStyling, InputWrapper, NoteMessage, ValidationMessage } from './styling';\nimport { useFocusVisibleRef } from '../common';\nimport { TextFieldNote } from './types';\n\ntype TextFieldProps = {\n id: string;\n disabled?: boolean;\n readOnly?: boolean;\n onChange?: (text: string) => void;\n value?: string;\n validationMessage?: string;\n type?: string;\n state?: States.Invalid | States.Valid;\n autoComplete?: string;\n placeholder?: string;\n required?: boolean;\n pattern?: string;\n maxLength?: number;\n withoutBorder?: boolean;\n size?: Size.Small | Size.Medium;\n margin?: string;\n note?: TextFieldNote;\n};\n\nconst TextField = ({\n id,\n disabled,\n readOnly,\n onChange,\n value,\n validationMessage,\n type,\n autoComplete,\n placeholder,\n required,\n pattern,\n maxLength,\n withoutBorder,\n state,\n size,\n margin = '4px 0',\n note,\n}: TextFieldProps) => {\n const elementRef = useFocusVisibleRef();\n\n return (\n <>\n <InputWrapper\n readOnly={readOnly}\n disabled={disabled}\n margin={margin}\n onClick={(e: any) => {\n if (disabled || readOnly) {\n e.preventDefault();\n }\n }}>\n <InputFieldStyling\n id={id}\n ref={elementRef}\n type={type || 'text'}\n value={value}\n className={`${state || (validationMessage ? States.Invalid : '')} ${size || ''}`}\n tabIndex={readOnly || disabled ? -1 : 0}\n autoComplete={autoComplete}\n placeholder={disabled ? undefined : placeholder}\n disabled={disabled}\n readOnly={readOnly}\n onChange={(e: any) => onChange && onChange(e?.target?.value || '')}\n activeErrorMessage={!!validationMessage && state !== States.Valid}\n required={required}\n pattern={pattern}\n maxLength={maxLength}\n withoutBorder={withoutBorder}\n />\n {validationMessage && (\n <ValidationMessage className={size || ''} type={state ?? States.Invalid}>\n {state === States.Valid ? <CheckMark color={COLORS.correct_400} /> : <TechnicalWarning color={COLORS.critical_400} />}\n <span>{validationMessage}</span>\n </ValidationMessage>\n )}\n {note && !disabled && (\n <NoteMessage className={size}>\n {note.icon}\n <span>{note.message}</span>\n </NoteMessage>\n )}\n </InputWrapper>\n </>\n );\n};\n\nexport default TextField;\n"],"file":"TextField.js"}
@@ -11,14 +11,14 @@ exports.default = void 0;
11
11
 
12
12
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
13
13
 
14
- var _propTypes = _interopRequireDefault(require("prop-types"));
15
-
16
14
  var React = _interopRequireWildcard(require("react"));
17
15
 
18
16
  var _styles = require("../styles");
19
17
 
20
18
  var _styling = require("./styling");
21
19
 
20
+ var _types = require("../types");
21
+
22
22
  var _SystemIcons = require("../icons/systemicons/SystemIcons");
23
23
 
24
24
  var _styledComponents = _interopRequireDefault(require("styled-components"));
@@ -36,50 +36,56 @@ var TextareaWrapper = _styledComponents.default.div(_templateObject || (_templat
36
36
  return props.margin ? "margin: ".concat(props.margin, ";") : '';
37
37
  });
38
38
 
39
- var TextArea = _styledComponents.default.textarea(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n border: 1px solid ", ";\n background: ", ";\n border-radius: 4px;\n outline: none;\n margin: 1px;\n padding: 16px;\n\n ", "\n\n &.small {\n width: 304px;\n }\n\n &.medium {\n width: 344px;\n }\n\n &:hover {\n border: 2px solid ", ";\n margin: 0px;\n }\n\n &:active,\n &:focus {\n border: 2px solid ", ";\n margin: 0px;\n }\n\n &.invalid,\n &.invalid:hover,\n &.invalid:focus,\n &.invalid:active {\n border: none;\n margin: 1px;\n box-shadow: inset 0px 0px 0px 2px ", ";\n }\n\n &:disabled,\n &:disabled:hover,\n &:disabled:focus {\n cursor: not-allowed;\n border: 1px solid ", ";\n margin: 1px;\n box-shadow: none;\n\n &::placeholder {\n color: ", ";\n }\n }\n\n &::placeholder {\n ", "\n }\n"])), _styles.COLORS.neutral_400, _styles.COLORS.white, (0, _styles.ComponentMStyling)(_styles.ComponentTextStyle.Italic, _styles.COLORS.black), _styles.COLORS.primary_700, _styles.COLORS.primary_800, _styles.COLORS.critical_500, _styles.COLORS.neutral_100, _styles.COLORS.neutral_300, (0, _styles.ComponentMStyling)(_styles.ComponentTextStyle.Italic, _styles.COLORS.neutral_600)); // Add component-specific types
40
-
39
+ var TextArea = _styledComponents.default.textarea(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n border: 1px solid ", ";\n background: ", ";\n border-radius: 4px;\n outline: none;\n margin: 1px;\n padding: 16px;\n\n resize: ", ";\n\n ", "\n\n &.small {\n ", "\n width: 304px;\n &::placeholder {\n ", "\n }\n }\n\n &.medium {\n ", "\n width: 344px;\n }\n\n &:hover {\n border: 2px solid ", ";\n margin: 0px;\n }\n\n &:active,\n &:focus {\n border: 2px solid ", ";\n margin: 0px;\n }\n\n &.invalid,\n &.invalid:hover,\n &.invalid:focus,\n &.invalid:active {\n border: none;\n margin: 1px;\n box-shadow: inset 0px 0px 0px 2px ", ";\n }\n\n &.valid {\n border: none;\n margin: 1px;\n box-shadow: inset 0 0 0 2px ", ";\n }\n\n &:disabled,\n &:disabled:hover,\n &:disabled:focus {\n cursor: not-allowed;\n border: 1px solid ", ";\n margin: 1px;\n box-shadow: none;\n\n &::placeholder {\n color: ", ";\n }\n }\n\n &::placeholder {\n ", "\n }\n"])), _styles.COLORS.neutral_400, _styles.COLORS.white, function (props) {
40
+ return props.autoHeight ? 'none' : '';
41
+ }, (0, _styles.ComponentMStyling)(_styles.ComponentTextStyle.Italic, _styles.COLORS.black), (0, _styles.ComponentSStyling)(_styles.ComponentTextStyle.Italic, _styles.COLORS.black), (0, _styles.ComponentSStyling)(_styles.ComponentTextStyle.Italic, _styles.COLORS.neutral_500), (0, _styles.ComponentMStyling)(_styles.ComponentTextStyle.Italic, _styles.COLORS.black), _styles.COLORS.primary_700, _styles.COLORS.primary_800, _styles.COLORS.critical_500, _styles.COLORS.correct_500, _styles.COLORS.neutral_100, _styles.COLORS.neutral_300, (0, _styles.ComponentMStyling)(_styles.ComponentTextStyle.Italic, _styles.COLORS.neutral_500));
41
42
 
42
43
  var Textarea = function Textarea(_ref) {
43
44
  var id = _ref.id,
44
45
  placeholder = _ref.placeholder,
46
+ state = _ref.state,
45
47
  value = _ref.value,
46
48
  size = _ref.size,
47
49
  disabled = _ref.disabled,
48
50
  validationMessage = _ref.validationMessage,
49
51
  _onChange = _ref.onChange,
50
- margin = _ref.margin;
52
+ margin = _ref.margin,
53
+ autoHeight = _ref.autoHeight,
54
+ note = _ref.note,
55
+ required = _ref.required;
51
56
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(TextareaWrapper, {
52
57
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(TextArea, {
53
58
  id: id,
54
59
  value: value,
55
- placeholder: placeholder,
56
- className: "".concat(size, " ").concat(validationMessage ? 'invalid' : ''),
60
+ placeholder: disabled ? undefined : placeholder,
61
+ autoHeight: autoHeight,
62
+ className: "".concat(size, " ").concat(state || (validationMessage ? _types.States.Invalid : '')),
57
63
  disabled: disabled,
58
64
  onChange: function onChange(e) {
59
65
  var _e$target;
60
66
 
61
67
  return _onChange && _onChange((e === null || e === void 0 ? void 0 : (_e$target = e.target) === null || _e$target === void 0 ? void 0 : _e$target.value) || '');
62
- }
63
- }), validationMessage && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_styling.ErrorMessage, {
64
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_SystemIcons.TechnicalWarning, {
65
- size: "20px",
68
+ },
69
+ required: required
70
+ }), validationMessage && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_styling.ValidationMessage, {
71
+ className: size || '',
72
+ type: state !== null && state !== void 0 ? state : _types.States.Invalid,
73
+ children: [state === _types.States.Valid ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_SystemIcons.CheckMark, {
74
+ color: _styles.COLORS.correct_400
75
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_SystemIcons.TechnicalWarning, {
66
76
  color: _styles.COLORS.critical_400
67
77
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
68
78
  children: validationMessage
69
79
  })]
80
+ }), note && !disabled && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_styling.NoteMessage, {
81
+ className: size,
82
+ children: [note.icon, /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
83
+ children: note.message
84
+ })]
70
85
  })]
71
86
  });
72
87
  };
73
88
 
74
- Textarea.propTypes = {
75
- id: _propTypes.default.string.isRequired,
76
- placeholder: _propTypes.default.string.isRequired,
77
- value: _propTypes.default.string,
78
- disabled: _propTypes.default.bool,
79
- onChange: _propTypes.default.func,
80
- validationMessage: _propTypes.default.string,
81
- margin: _propTypes.default.string
82
- };
83
89
  var _default = Textarea;
84
90
  exports.default = _default;
85
91
  //# sourceMappingURL=Textarea.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/InputFields/Textarea.tsx"],"names":["TextareaWrapper","styled","div","props","margin","TextArea","textarea","COLORS","neutral_400","white","ComponentTextStyle","Italic","black","primary_700","primary_800","critical_500","neutral_100","neutral_300","neutral_600","Textarea","id","placeholder","value","size","disabled","validationMessage","onChange","e","target","critical_400"],"mappings":";;;;;;;;;;;;;;;AAGA;;AAKA;;AACA;;AAMA;;AAKA;;;;;;;;;;AAGA;AACA,IAAMA,eAAe,GAAGC,0BAAOC,GAAV,8GAEjB,UAACC,KAAD;AAAA,SAAYA,KAAK,CAACC,MAAN,qBAA0BD,KAAK,CAACC,MAAhC,SAA4C,EAAxD;AAAA,CAFiB,CAArB;;AAIA,IAAMC,QAAQ,GAAGJ,0BAAOK,QAAV,61BACQC,eAAOC,WADf,EAEED,eAAOE,KAFT,EAQV,+BAAkBC,2BAAmBC,MAArC,EAA6CJ,eAAOK,KAApD,CARU,EAmBUL,eAAOM,WAnBjB,EAyBUN,eAAOO,WAzBjB,EAmC0BP,eAAOQ,YAnCjC,EA0CUR,eAAOS,WA1CjB,EA+CCT,eAAOU,WA/CR,EAoDR,+BAAkBP,2BAAmBC,MAArC,EAA6CJ,eAAOW,WAApD,CApDQ,CAAd,C,CAwDA;;;AAYA,IAAMC,QAAgD,GAAG,SAAnDA,QAAmD,OAAoG;AAAA,MAAjGC,EAAiG,QAAjGA,EAAiG;AAAA,MAA7FC,WAA6F,QAA7FA,WAA6F;AAAA,MAAhFC,KAAgF,QAAhFA,KAAgF;AAAA,MAAzEC,IAAyE,QAAzEA,IAAyE;AAAA,MAAnEC,QAAmE,QAAnEA,QAAmE;AAAA,MAAzDC,iBAAyD,QAAzDA,iBAAyD;AAAA,MAAtCC,SAAsC,QAAtCA,QAAsC;AAAA,MAA5BtB,MAA4B,QAA5BA,MAA4B;AAC3J,sBACE,sBAAC,eAAD;AAAA,4BACE,qBAAC,QAAD;AACE,MAAA,EAAE,EAAEgB,EADN;AAEE,MAAA,KAAK,EAAEE,KAFT;AAGE,MAAA,WAAW,EAAED,WAHf;AAIE,MAAA,SAAS,YAAKE,IAAL,cAAaE,iBAAiB,GAAG,SAAH,GAAe,EAA7C,CAJX;AAKE,MAAA,QAAQ,EAAED,QALZ;AAME,MAAA,QAAQ,EAAE,kBAACG,CAAD;AAAA;;AAAA,eAAYD,SAAQ,IAAIA,SAAQ,CAAC,CAAAC,CAAC,SAAD,IAAAA,CAAC,WAAD,yBAAAA,CAAC,CAAEC,MAAH,wDAAWN,KAAX,KAAoB,EAArB,CAAhC;AAAA;AANZ,MADF,EASGG,iBAAiB,iBAChB,sBAAC,qBAAD;AAAA,8BACE,qBAAC,6BAAD;AAAkB,QAAA,IAAI,EAAC,MAAvB;AAA8B,QAAA,KAAK,EAAElB,eAAOsB;AAA5C,QADF,eAEE;AAAA,kBAAOJ;AAAP,QAFF;AAAA,MAVJ;AAAA,IADF;AAkBD,CAnBD;;;AAVEL,EAAAA,E;AACAC,EAAAA,W;AACAC,EAAAA,K;AACAE,EAAAA,Q;AACAE,EAAAA,Q;AACAD,EAAAA,iB;AAEArB,EAAAA,M;;eAwBae,Q","sourcesContent":["/**\n * Import React libraries.\n */\nimport * as React from 'react';\n\n/**\n * Import custom styles.\n */\nimport { COLORS } from '../styles';\nimport { ErrorMessage } from './styling';\nimport { Size } from '../types';\n\n/**\n * Import custom components.\n */\nimport { TechnicalWarning } from '../icons/systemicons/SystemIcons';\n\n/**\n * Import third-party libraries.\n */\nimport styled from 'styled-components';\nimport { ComponentMStyling, ComponentTextStyle } from '../styles';\n\n// Add component-specific styles.\nconst TextareaWrapper = styled.div<{ margin?: string }>`\n width: 100%;\n ${(props) => (props.margin ? `margin: ${props.margin};` : '')}\n`;\nconst TextArea = styled.textarea`\n border: 1px solid ${COLORS.neutral_400};\n background: ${COLORS.white};\n border-radius: 4px;\n outline: none;\n margin: 1px;\n padding: 16px;\n\n ${ComponentMStyling(ComponentTextStyle.Italic, COLORS.black)}\n\n &.small {\n width: 304px;\n }\n\n &.medium {\n width: 344px;\n }\n\n &:hover {\n border: 2px solid ${COLORS.primary_700};\n margin: 0px;\n }\n\n &:active,\n &:focus {\n border: 2px solid ${COLORS.primary_800};\n margin: 0px;\n }\n\n &.invalid,\n &.invalid:hover,\n &.invalid:focus,\n &.invalid:active {\n border: none;\n margin: 1px;\n box-shadow: inset 0px 0px 0px 2px ${COLORS.critical_500};\n }\n\n &:disabled,\n &:disabled:hover,\n &:disabled:focus {\n cursor: not-allowed;\n border: 1px solid ${COLORS.neutral_100};\n margin: 1px;\n box-shadow: none;\n\n &::placeholder {\n color: ${COLORS.neutral_300};\n }\n }\n\n &::placeholder {\n ${ComponentMStyling(ComponentTextStyle.Italic, COLORS.neutral_600)}\n }\n`;\n\n// Add component-specific types\ntype TextareaProps = {\n id: string;\n placeholder: string;\n value?: string;\n disabled?: boolean;\n onChange?: (text: string) => void;\n validationMessage?: string;\n size: Size.Small | Size.Medium;\n margin?: string;\n};\n\nconst Textarea: React.FunctionComponent<TextareaProps> = ({ id, placeholder, value, size, disabled, validationMessage, onChange, margin }: TextareaProps) => {\n return (\n <TextareaWrapper>\n <TextArea\n id={id}\n value={value}\n placeholder={placeholder}\n className={`${size} ${validationMessage ? 'invalid' : ''}`}\n disabled={disabled}\n onChange={(e: any) => onChange && onChange(e?.target?.value || '')}\n />\n {validationMessage && (\n <ErrorMessage>\n <TechnicalWarning size=\"20px\" color={COLORS.critical_400} />\n <span>{validationMessage}</span>\n </ErrorMessage>\n )}\n </TextareaWrapper>\n );\n};\n\nexport default Textarea;\n"],"file":"Textarea.cjs"}
1
+ {"version":3,"sources":["../../src/InputFields/Textarea.tsx"],"names":["TextareaWrapper","styled","div","props","margin","TextArea","textarea","COLORS","neutral_400","white","autoHeight","ComponentTextStyle","Italic","black","neutral_500","primary_700","primary_800","critical_500","correct_500","neutral_100","neutral_300","Textarea","id","placeholder","state","value","size","disabled","validationMessage","onChange","note","required","undefined","States","Invalid","e","target","Valid","correct_400","critical_400","icon","message"],"mappings":";;;;;;;;;;;;;AAGA;;AAKA;;AACA;;AACA;;AAKA;;AAKA;;;;;;;;;;AAIA;AACA,IAAMA,eAAe,GAAGC,0BAAOC,GAAV,8GAEjB,UAACC,KAAD;AAAA,SAAYA,KAAK,CAACC,MAAN,qBAA0BD,KAAK,CAACC,MAAhC,SAA4C,EAAxD;AAAA,CAFiB,CAArB;;AAIA,IAAMC,QAAQ,GAAGJ,0BAAOK,QAAV,6gCACQC,eAAOC,WADf,EAEED,eAAOE,KAFT,EAQF,UAACN,KAAD;AAAA,SAAYA,KAAK,CAACO,UAAN,GAAmB,MAAnB,GAA4B,EAAxC;AAAA,CARE,EAUV,+BAAkBC,2BAAmBC,MAArC,EAA6CL,eAAOM,KAApD,CAVU,EAaR,+BAAkBF,2BAAmBC,MAArC,EAA6CL,eAAOM,KAApD,CAbQ,EAgBN,+BAAkBF,2BAAmBC,MAArC,EAA6CL,eAAOO,WAApD,CAhBM,EAqBR,+BAAkBH,2BAAmBC,MAArC,EAA6CL,eAAOM,KAApD,CArBQ,EA0BUN,eAAOQ,WA1BjB,EAgCUR,eAAOS,WAhCjB,EA0C0BT,eAAOU,YA1CjC,EAgDoBV,eAAOW,WAhD3B,EAuDUX,eAAOY,WAvDjB,EA4DCZ,eAAOa,WA5DR,EAiER,+BAAkBT,2BAAmBC,MAArC,EAA6CL,eAAOO,WAApD,CAjEQ,CAAd;;AAqEA,IAAMO,QAAgD,GAAG,SAAnDA,QAAmD,OAapC;AAAA,MAZnBC,EAYmB,QAZnBA,EAYmB;AAAA,MAXnBC,WAWmB,QAXnBA,WAWmB;AAAA,MAVnBC,KAUmB,QAVnBA,KAUmB;AAAA,MATnBC,KASmB,QATnBA,KASmB;AAAA,MARnBC,IAQmB,QARnBA,IAQmB;AAAA,MAPnBC,QAOmB,QAPnBA,QAOmB;AAAA,MANnBC,iBAMmB,QANnBA,iBAMmB;AAAA,MALnBC,SAKmB,QALnBA,QAKmB;AAAA,MAJnBzB,MAImB,QAJnBA,MAImB;AAAA,MAHnBM,UAGmB,QAHnBA,UAGmB;AAAA,MAFnBoB,IAEmB,QAFnBA,IAEmB;AAAA,MADnBC,QACmB,QADnBA,QACmB;AACnB,sBACE,sBAAC,eAAD;AAAA,4BACE,qBAAC,QAAD;AACE,MAAA,EAAE,EAAET,EADN;AAEE,MAAA,KAAK,EAAEG,KAFT;AAGE,MAAA,WAAW,EAAEE,QAAQ,GAAGK,SAAH,GAAeT,WAHtC;AAIE,MAAA,UAAU,EAAEb,UAJd;AAKE,MAAA,SAAS,YAAKgB,IAAL,cAAaF,KAAK,KAAKI,iBAAiB,GAAGK,cAAOC,OAAV,GAAoB,EAA1C,CAAlB,CALX;AAME,MAAA,QAAQ,EAAEP,QANZ;AAOE,MAAA,QAAQ,EAAE,kBAACQ,CAAD;AAAA;;AAAA,eAAYN,SAAQ,IAAIA,SAAQ,CAAC,CAAAM,CAAC,SAAD,IAAAA,CAAC,WAAD,yBAAAA,CAAC,CAAEC,MAAH,wDAAWX,KAAX,KAAoB,EAArB,CAAhC;AAAA,OAPZ;AAQE,MAAA,QAAQ,EAAEM;AARZ,MADF,EAWGH,iBAAiB,iBAChB,sBAAC,0BAAD;AAAmB,MAAA,SAAS,EAAEF,IAAI,IAAI,EAAtC;AAA0C,MAAA,IAAI,EAAEF,KAAF,aAAEA,KAAF,cAAEA,KAAF,GAAWS,cAAOC,OAAhE;AAAA,iBACGV,KAAK,KAAKS,cAAOI,KAAjB,gBAAyB,qBAAC,sBAAD;AAAW,QAAA,KAAK,EAAE9B,eAAO+B;AAAzB,QAAzB,gBAAoE,qBAAC,6BAAD;AAAkB,QAAA,KAAK,EAAE/B,eAAOgC;AAAhC,QADvE,eAEE;AAAA,kBAAOX;AAAP,QAFF;AAAA,MAZJ,EAiBGE,IAAI,IAAI,CAACH,QAAT,iBACC,sBAAC,oBAAD;AAAa,MAAA,SAAS,EAAED,IAAxB;AAAA,iBACGI,IAAI,CAACU,IADR,eAEE;AAAA,kBAAOV,IAAI,CAACW;AAAZ,QAFF;AAAA,MAlBJ;AAAA,IADF;AA0BD,CAxCD;;eA0CepB,Q","sourcesContent":["/**\n * Import React libraries.\n */\nimport * as React from 'react';\n\n/**\n * Import custom styles.\n */\nimport { COLORS, ComponentSStyling } from '../styles';\nimport { ErrorMessage, NoteMessage, ValidationMessage } from './styling';\nimport { Size, States } from '../types';\n\n/**\n * Import custom components.\n */\nimport { CheckMark, TechnicalWarning } from '../icons/systemicons/SystemIcons';\n\n/**\n * Import third-party libraries.\n */\nimport styled from 'styled-components';\nimport { ComponentMStyling, ComponentTextStyle } from '../styles';\nimport { TextareaProps, TextFieldNote } from './types';\n\n// Add component-specific styles.\nconst TextareaWrapper = styled.div<{ margin?: string }>`\n width: 100%;\n ${(props) => (props.margin ? `margin: ${props.margin};` : '')}\n`;\nconst TextArea = styled.textarea<{ autoHeight?: boolean }>`\n border: 1px solid ${COLORS.neutral_400};\n background: ${COLORS.white};\n border-radius: 4px;\n outline: none;\n margin: 1px;\n padding: 16px;\n\n resize: ${(props) => (props.autoHeight ? 'none' : '')};\n\n ${ComponentMStyling(ComponentTextStyle.Italic, COLORS.black)}\n\n &.small {\n ${ComponentSStyling(ComponentTextStyle.Italic, COLORS.black)}\n width: 304px;\n &::placeholder {\n ${ComponentSStyling(ComponentTextStyle.Italic, COLORS.neutral_500)}\n }\n }\n\n &.medium {\n ${ComponentMStyling(ComponentTextStyle.Italic, COLORS.black)}\n width: 344px;\n }\n\n &:hover {\n border: 2px solid ${COLORS.primary_700};\n margin: 0px;\n }\n\n &:active,\n &:focus {\n border: 2px solid ${COLORS.primary_800};\n margin: 0px;\n }\n\n &.invalid,\n &.invalid:hover,\n &.invalid:focus,\n &.invalid:active {\n border: none;\n margin: 1px;\n box-shadow: inset 0px 0px 0px 2px ${COLORS.critical_500};\n }\n\n &.valid {\n border: none;\n margin: 1px;\n box-shadow: inset 0 0 0 2px ${COLORS.correct_500};\n }\n\n &:disabled,\n &:disabled:hover,\n &:disabled:focus {\n cursor: not-allowed;\n border: 1px solid ${COLORS.neutral_100};\n margin: 1px;\n box-shadow: none;\n\n &::placeholder {\n color: ${COLORS.neutral_300};\n }\n }\n\n &::placeholder {\n ${ComponentMStyling(ComponentTextStyle.Italic, COLORS.neutral_500)}\n }\n`;\n\nconst Textarea: React.FunctionComponent<TextareaProps> = ({\n id,\n placeholder,\n state,\n value,\n size,\n disabled,\n validationMessage,\n onChange,\n margin,\n autoHeight,\n note,\n required,\n}: TextareaProps) => {\n return (\n <TextareaWrapper>\n <TextArea\n id={id}\n value={value}\n placeholder={disabled ? undefined : placeholder}\n autoHeight={autoHeight}\n className={`${size} ${state || (validationMessage ? States.Invalid : '')}`}\n disabled={disabled}\n onChange={(e: any) => onChange && onChange(e?.target?.value || '')}\n required={required}\n />\n {validationMessage && (\n <ValidationMessage className={size || ''} type={state ?? States.Invalid}>\n {state === States.Valid ? <CheckMark color={COLORS.correct_400} /> : <TechnicalWarning color={COLORS.critical_400} />}\n <span>{validationMessage}</span>\n </ValidationMessage>\n )}\n {note && !disabled && (\n <NoteMessage className={size}>\n {note.icon}\n <span>{note.message}</span>\n </NoteMessage>\n )}\n </TextareaWrapper>\n );\n};\n\nexport default Textarea;\n"],"file":"Textarea.cjs"}
@@ -2,16 +2,6 @@
2
2
  * Import React libraries.
3
3
  */
4
4
  import * as React from 'react';
5
- import { Size } from '../types';
6
- declare type TextareaProps = {
7
- id: string;
8
- placeholder: string;
9
- value?: string;
10
- disabled?: boolean;
11
- onChange?: (text: string) => void;
12
- validationMessage?: string;
13
- size: Size.Small | Size.Medium;
14
- margin?: string;
15
- };
5
+ import { TextareaProps } from './types';
16
6
  declare const Textarea: React.FunctionComponent<TextareaProps>;
17
7
  export default Textarea;
@@ -1,5 +1,4 @@
1
1
  import _taggedTemplateLiteral from "@babel/runtime/helpers/esm/taggedTemplateLiteral";
2
- import _pt from "prop-types";
3
2
 
4
3
  var _templateObject, _templateObject2;
5
4
 
@@ -11,67 +10,75 @@ import * as React from 'react';
11
10
  * Import custom styles.
12
11
  */
13
12
 
14
- import { COLORS } from '../styles';
15
- import { ErrorMessage } from './styling';
16
-
13
+ import { COLORS, ComponentSStyling } from '../styles';
14
+ import { NoteMessage, ValidationMessage } from './styling';
15
+ import { States } from '../types';
17
16
  /**
18
17
  * Import custom components.
19
18
  */
20
- import { TechnicalWarning } from '../icons/systemicons/SystemIcons';
19
+
20
+ import { CheckMark, TechnicalWarning } from '../icons/systemicons/SystemIcons';
21
21
  /**
22
22
  * Import third-party libraries.
23
23
  */
24
24
 
25
25
  import styled from 'styled-components';
26
- import { ComponentMStyling, ComponentTextStyle } from '../styles'; // Add component-specific styles.
27
-
26
+ import { ComponentMStyling, ComponentTextStyle } from '../styles';
28
27
  import { jsx as _jsx } from "react/jsx-runtime";
29
28
  import { jsxs as _jsxs } from "react/jsx-runtime";
29
+ // Add component-specific styles.
30
30
  var TextareaWrapper = styled.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n width: 100%;\n ", "\n"])), function (props) {
31
31
  return props.margin ? "margin: ".concat(props.margin, ";") : '';
32
32
  });
33
- var TextArea = styled.textarea(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n border: 1px solid ", ";\n background: ", ";\n border-radius: 4px;\n outline: none;\n margin: 1px;\n padding: 16px;\n\n ", "\n\n &.small {\n width: 304px;\n }\n\n &.medium {\n width: 344px;\n }\n\n &:hover {\n border: 2px solid ", ";\n margin: 0px;\n }\n\n &:active,\n &:focus {\n border: 2px solid ", ";\n margin: 0px;\n }\n\n &.invalid,\n &.invalid:hover,\n &.invalid:focus,\n &.invalid:active {\n border: none;\n margin: 1px;\n box-shadow: inset 0px 0px 0px 2px ", ";\n }\n\n &:disabled,\n &:disabled:hover,\n &:disabled:focus {\n cursor: not-allowed;\n border: 1px solid ", ";\n margin: 1px;\n box-shadow: none;\n\n &::placeholder {\n color: ", ";\n }\n }\n\n &::placeholder {\n ", "\n }\n"])), COLORS.neutral_400, COLORS.white, ComponentMStyling(ComponentTextStyle.Italic, COLORS.black), COLORS.primary_700, COLORS.primary_800, COLORS.critical_500, COLORS.neutral_100, COLORS.neutral_300, ComponentMStyling(ComponentTextStyle.Italic, COLORS.neutral_600)); // Add component-specific types
33
+ var TextArea = styled.textarea(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n border: 1px solid ", ";\n background: ", ";\n border-radius: 4px;\n outline: none;\n margin: 1px;\n padding: 16px;\n\n resize: ", ";\n\n ", "\n\n &.small {\n ", "\n width: 304px;\n &::placeholder {\n ", "\n }\n }\n\n &.medium {\n ", "\n width: 344px;\n }\n\n &:hover {\n border: 2px solid ", ";\n margin: 0px;\n }\n\n &:active,\n &:focus {\n border: 2px solid ", ";\n margin: 0px;\n }\n\n &.invalid,\n &.invalid:hover,\n &.invalid:focus,\n &.invalid:active {\n border: none;\n margin: 1px;\n box-shadow: inset 0px 0px 0px 2px ", ";\n }\n\n &.valid {\n border: none;\n margin: 1px;\n box-shadow: inset 0 0 0 2px ", ";\n }\n\n &:disabled,\n &:disabled:hover,\n &:disabled:focus {\n cursor: not-allowed;\n border: 1px solid ", ";\n margin: 1px;\n box-shadow: none;\n\n &::placeholder {\n color: ", ";\n }\n }\n\n &::placeholder {\n ", "\n }\n"])), COLORS.neutral_400, COLORS.white, function (props) {
34
+ return props.autoHeight ? 'none' : '';
35
+ }, ComponentMStyling(ComponentTextStyle.Italic, COLORS.black), ComponentSStyling(ComponentTextStyle.Italic, COLORS.black), ComponentSStyling(ComponentTextStyle.Italic, COLORS.neutral_500), ComponentMStyling(ComponentTextStyle.Italic, COLORS.black), COLORS.primary_700, COLORS.primary_800, COLORS.critical_500, COLORS.correct_500, COLORS.neutral_100, COLORS.neutral_300, ComponentMStyling(ComponentTextStyle.Italic, COLORS.neutral_500));
34
36
 
35
37
  var Textarea = function Textarea(_ref) {
36
38
  var id = _ref.id,
37
39
  placeholder = _ref.placeholder,
40
+ state = _ref.state,
38
41
  value = _ref.value,
39
42
  size = _ref.size,
40
43
  disabled = _ref.disabled,
41
44
  validationMessage = _ref.validationMessage,
42
45
  _onChange = _ref.onChange,
43
- margin = _ref.margin;
46
+ margin = _ref.margin,
47
+ autoHeight = _ref.autoHeight,
48
+ note = _ref.note,
49
+ required = _ref.required;
44
50
  return /*#__PURE__*/_jsxs(TextareaWrapper, {
45
51
  children: [/*#__PURE__*/_jsx(TextArea, {
46
52
  id: id,
47
53
  value: value,
48
- placeholder: placeholder,
49
- className: "".concat(size, " ").concat(validationMessage ? 'invalid' : ''),
54
+ placeholder: disabled ? undefined : placeholder,
55
+ autoHeight: autoHeight,
56
+ className: "".concat(size, " ").concat(state || (validationMessage ? States.Invalid : '')),
50
57
  disabled: disabled,
51
58
  onChange: function onChange(e) {
52
59
  var _e$target;
53
60
 
54
61
  return _onChange && _onChange((e === null || e === void 0 ? void 0 : (_e$target = e.target) === null || _e$target === void 0 ? void 0 : _e$target.value) || '');
55
- }
56
- }), validationMessage && /*#__PURE__*/_jsxs(ErrorMessage, {
57
- children: [/*#__PURE__*/_jsx(TechnicalWarning, {
58
- size: "20px",
62
+ },
63
+ required: required
64
+ }), validationMessage && /*#__PURE__*/_jsxs(ValidationMessage, {
65
+ className: size || '',
66
+ type: state !== null && state !== void 0 ? state : States.Invalid,
67
+ children: [state === States.Valid ? /*#__PURE__*/_jsx(CheckMark, {
68
+ color: COLORS.correct_400
69
+ }) : /*#__PURE__*/_jsx(TechnicalWarning, {
59
70
  color: COLORS.critical_400
60
71
  }), /*#__PURE__*/_jsx("span", {
61
72
  children: validationMessage
62
73
  })]
74
+ }), note && !disabled && /*#__PURE__*/_jsxs(NoteMessage, {
75
+ className: size,
76
+ children: [note.icon, /*#__PURE__*/_jsx("span", {
77
+ children: note.message
78
+ })]
63
79
  })]
64
80
  });
65
81
  };
66
82
 
67
- Textarea.propTypes = {
68
- id: _pt.string.isRequired,
69
- placeholder: _pt.string.isRequired,
70
- value: _pt.string,
71
- disabled: _pt.bool,
72
- onChange: _pt.func,
73
- validationMessage: _pt.string,
74
- margin: _pt.string
75
- };
76
83
  export default Textarea;
77
84
  //# sourceMappingURL=Textarea.js.map