@laerdal/life-react-components 1.5.1 → 1.6.0-dev.10

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 (164) hide show
  1. package/dist/Banners/Banner.cjs +21 -5
  2. package/dist/Banners/Banner.cjs.map +1 -1
  3. package/dist/Banners/Banner.js +20 -5
  4. package/dist/Banners/Banner.js.map +1 -1
  5. package/dist/Button/Iconbutton.cjs +16 -14
  6. package/dist/Button/Iconbutton.cjs.map +1 -1
  7. package/dist/Button/Iconbutton.d.ts +2 -0
  8. package/dist/Button/Iconbutton.js +16 -14
  9. package/dist/Button/Iconbutton.js.map +1 -1
  10. package/dist/Card/Card.cjs +101 -0
  11. package/dist/Card/Card.cjs.map +1 -0
  12. package/dist/Card/Card.d.ts +23 -0
  13. package/dist/Card/Card.js +74 -0
  14. package/dist/Card/Card.js.map +1 -0
  15. package/dist/Card/CardBottomSection.cjs +133 -0
  16. package/dist/Card/CardBottomSection.cjs.map +1 -0
  17. package/dist/Card/CardBottomSection.d.ts +22 -0
  18. package/dist/Card/CardBottomSection.js +105 -0
  19. package/dist/Card/CardBottomSection.js.map +1 -0
  20. package/dist/Card/CardMiddleSection.cjs +94 -0
  21. package/dist/Card/CardMiddleSection.cjs.map +1 -0
  22. package/dist/Card/CardMiddleSection.d.ts +14 -0
  23. package/dist/Card/CardMiddleSection.js +71 -0
  24. package/dist/Card/CardMiddleSection.js.map +1 -0
  25. package/dist/Card/CardTopSection.cjs +112 -0
  26. package/dist/Card/CardTopSection.cjs.map +1 -0
  27. package/dist/Card/CardTopSection.d.ts +19 -0
  28. package/dist/Card/CardTopSection.js +85 -0
  29. package/dist/Card/CardTopSection.js.map +1 -0
  30. package/dist/Card/index.cjs +52 -0
  31. package/dist/Card/index.cjs.map +1 -0
  32. package/dist/Card/index.d.ts +5 -0
  33. package/dist/Card/index.js +6 -0
  34. package/dist/Card/index.js.map +1 -0
  35. package/dist/Dropdown/BasicDropdown.cjs +38 -55
  36. package/dist/Dropdown/BasicDropdown.cjs.map +1 -1
  37. package/dist/Dropdown/BasicDropdown.js +36 -53
  38. package/dist/Dropdown/BasicDropdown.js.map +1 -1
  39. package/dist/Dropdown/CommonStyling.cjs +9 -17
  40. package/dist/Dropdown/CommonStyling.cjs.map +1 -1
  41. package/dist/Dropdown/CommonStyling.d.ts +0 -3
  42. package/dist/Dropdown/CommonStyling.js +8 -12
  43. package/dist/Dropdown/CommonStyling.js.map +1 -1
  44. package/dist/Dropdown/DropdownButton.cjs +11 -24
  45. package/dist/Dropdown/DropdownButton.cjs.map +1 -1
  46. package/dist/Dropdown/DropdownButton.js +11 -24
  47. package/dist/Dropdown/DropdownButton.js.map +1 -1
  48. package/dist/Dropdown/DropdownContent.cjs +21 -12
  49. package/dist/Dropdown/DropdownContent.cjs.map +1 -1
  50. package/dist/Dropdown/DropdownContent.js +21 -12
  51. package/dist/Dropdown/DropdownContent.js.map +1 -1
  52. package/dist/Dropdown/DropdownFilter.cjs +43 -46
  53. package/dist/Dropdown/DropdownFilter.cjs.map +1 -1
  54. package/dist/Dropdown/DropdownFilter.js +41 -45
  55. package/dist/Dropdown/DropdownFilter.js.map +1 -1
  56. package/dist/HyperLink/HyperLink.cjs +3 -1
  57. package/dist/HyperLink/HyperLink.cjs.map +1 -1
  58. package/dist/HyperLink/HyperLink.d.ts +4 -0
  59. package/dist/HyperLink/HyperLink.js +1 -1
  60. package/dist/HyperLink/HyperLink.js.map +1 -1
  61. package/dist/HyperLink/styling.cjs +1 -1
  62. package/dist/HyperLink/styling.cjs.map +1 -1
  63. package/dist/HyperLink/styling.js +1 -1
  64. package/dist/HyperLink/styling.js.map +1 -1
  65. package/dist/Image/ImageWithFallbacks.cjs +122 -0
  66. package/dist/Image/ImageWithFallbacks.cjs.map +1 -0
  67. package/dist/Image/ImageWithFallbacks.d.ts +21 -0
  68. package/dist/Image/ImageWithFallbacks.js +109 -0
  69. package/dist/Image/ImageWithFallbacks.js.map +1 -0
  70. package/dist/Image/index.cjs +16 -0
  71. package/dist/Image/index.cjs.map +1 -0
  72. package/dist/Image/index.d.ts +2 -0
  73. package/dist/Image/index.js +3 -0
  74. package/dist/Image/index.js.map +1 -0
  75. package/dist/InputFields/DatepickerField.cjs +53 -17
  76. package/dist/InputFields/DatepickerField.cjs.map +1 -1
  77. package/dist/InputFields/DatepickerField.js +52 -16
  78. package/dist/InputFields/DatepickerField.js.map +1 -1
  79. package/dist/InputFields/styling.cjs +2 -2
  80. package/dist/InputFields/styling.cjs.map +1 -1
  81. package/dist/InputFields/styling.js +2 -2
  82. package/dist/InputFields/styling.js.map +1 -1
  83. package/dist/LinearProgress/LinearProgress.cjs +142 -0
  84. package/dist/LinearProgress/LinearProgress.cjs.map +1 -0
  85. package/dist/LinearProgress/LinearProgress.d.ts +25 -0
  86. package/dist/LinearProgress/LinearProgress.js +111 -0
  87. package/dist/LinearProgress/LinearProgress.js.map +1 -0
  88. package/dist/LinearProgress/index.cjs +32 -0
  89. package/dist/LinearProgress/index.cjs.map +1 -0
  90. package/dist/LinearProgress/index.d.ts +3 -0
  91. package/dist/LinearProgress/index.js +4 -0
  92. package/dist/LinearProgress/index.js.map +1 -0
  93. package/dist/Modals/ModalContainer.cjs +10 -4
  94. package/dist/Modals/ModalContainer.cjs.map +1 -1
  95. package/dist/Modals/ModalContainer.d.ts +1 -0
  96. package/dist/Modals/ModalContainer.js +10 -4
  97. package/dist/Modals/ModalContainer.js.map +1 -1
  98. package/dist/Modals/ModalContent.cjs +235 -0
  99. package/dist/Modals/ModalContent.cjs.map +1 -0
  100. package/dist/Modals/ModalContent.d.ts +18 -0
  101. package/dist/Modals/ModalContent.js +204 -0
  102. package/dist/Modals/ModalContent.js.map +1 -0
  103. package/dist/Modals/ModalDialog.cjs +71 -8
  104. package/dist/Modals/ModalDialog.cjs.map +1 -1
  105. package/dist/Modals/ModalDialog.d.ts +8 -1
  106. package/dist/Modals/ModalDialog.js +74 -11
  107. package/dist/Modals/ModalDialog.js.map +1 -1
  108. package/dist/Modals/ModalStyles.cjs +3 -3
  109. package/dist/Modals/ModalStyles.cjs.map +1 -1
  110. package/dist/Modals/ModalStyles.js +3 -3
  111. package/dist/Modals/ModalStyles.js.map +1 -1
  112. package/dist/Modals/ModalTypes.d.ts +5 -0
  113. package/dist/Modals/index.cjs +8 -0
  114. package/dist/Modals/index.cjs.map +1 -1
  115. package/dist/Modals/index.d.ts +3 -2
  116. package/dist/Modals/index.js +2 -1
  117. package/dist/Modals/index.js.map +1 -1
  118. package/dist/SegmentControl/SegmentControl.cjs +99 -0
  119. package/dist/SegmentControl/SegmentControl.cjs.map +1 -0
  120. package/dist/SegmentControl/SegmentControl.d.ts +19 -0
  121. package/dist/SegmentControl/SegmentControl.js +71 -0
  122. package/dist/SegmentControl/SegmentControl.js.map +1 -0
  123. package/dist/SegmentControl/index.cjs +16 -0
  124. package/dist/SegmentControl/index.cjs.map +1 -0
  125. package/dist/SegmentControl/index.d.ts +3 -0
  126. package/dist/SegmentControl/index.js +3 -0
  127. package/dist/SegmentControl/index.js.map +1 -0
  128. package/dist/SkipToContent/SkipToContent.cjs +2 -2
  129. package/dist/SkipToContent/SkipToContent.cjs.map +1 -1
  130. package/dist/SkipToContent/SkipToContent.js +2 -2
  131. package/dist/SkipToContent/SkipToContent.js.map +1 -1
  132. package/dist/Table/TableFooter.cjs +1 -1
  133. package/dist/Table/TableFooter.cjs.map +1 -1
  134. package/dist/Table/TableFooter.js +1 -1
  135. package/dist/Table/TableFooter.js.map +1 -1
  136. package/dist/Table/TableStyles.cjs +1 -1
  137. package/dist/Table/TableStyles.cjs.map +1 -1
  138. package/dist/Table/TableStyles.js +1 -1
  139. package/dist/Table/TableStyles.js.map +1 -1
  140. package/dist/Tag/Tag.cjs +95 -0
  141. package/dist/Tag/Tag.cjs.map +1 -0
  142. package/dist/Tag/Tag.d.ts +9 -0
  143. package/dist/Tag/Tag.js +73 -0
  144. package/dist/Tag/Tag.js.map +1 -0
  145. package/dist/Tag/index.cjs +16 -0
  146. package/dist/Tag/index.cjs.map +1 -0
  147. package/dist/Tag/index.d.ts +2 -0
  148. package/dist/Tag/index.js +2 -0
  149. package/dist/Tag/index.js.map +1 -0
  150. package/dist/common/InputStyling.cjs +1 -1
  151. package/dist/common/InputStyling.cjs.map +1 -1
  152. package/dist/common/InputStyling.js +1 -1
  153. package/dist/common/InputStyling.js.map +1 -1
  154. package/dist/index.cjs +113 -0
  155. package/dist/index.cjs.map +1 -1
  156. package/dist/index.d.ts +6 -0
  157. package/dist/index.js +6 -0
  158. package/dist/index.js.map +1 -1
  159. package/dist/types.cjs +9 -1
  160. package/dist/types.cjs.map +1 -1
  161. package/dist/types.d.ts +4 -0
  162. package/dist/types.js +7 -0
  163. package/dist/types.js.map +1 -1
  164. package/package.json +4 -3
@@ -15,9 +15,6 @@ export declare const StyledField: import("styled-components").StyledComponent<"d
15
15
  minWidth?: string | undefined;
16
16
  }, never>;
17
17
  export declare const ButtonDropdownContentStyling: import("styled-components").FlattenSimpleInterpolation;
18
- export declare const DropdownContentStyling: import("styled-components").StyledComponent<"div", any, {
19
- isButton: boolean;
20
- }, never>;
21
18
  export declare const ButtonDropdownWrapper: import("styled-components").StyledComponent<"div", any, {
22
19
  locked?: boolean | undefined;
23
20
  disabled?: boolean | undefined;
@@ -1,12 +1,11 @@
1
1
  import _taggedTemplateLiteral from "@babel/runtime/helpers/esm/taggedTemplateLiteral";
2
2
 
3
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10;
3
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9;
4
4
 
5
5
  import styled, { css } from 'styled-components';
6
6
  import { CommonInteractionStyling } from '../common';
7
7
  import { BREAKPOINTS, COLORS, ComponentTextStyle } from '../styles';
8
8
  import { ComponentMStyling, ComponentSStyling, ComponentXSStyling, ComponentXXSStyling } from '../styles/typography';
9
- import { Z_INDEXES } from '../styles/z-indexes';
10
9
  export var Dropdown = styled.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n position: relative;\n display: inline-block;\n ", "\n ", "\n ", "\n\n .show {\n display: block;\n }\n\n .value {\n flex-grow: 1;\n }\n\n input:hover + div {\n color: ", ";\n }\n\n input:active + div {\n color: ", ";\n }\n"])), function (props) {
11
10
  return !props.isButton && (props !== null && props !== void 0 && props.minWidth ? "width: 100%; min-width: ".concat(props.minWidth, ";") : 'width: 100%; min-width: 344px;');
12
11
  }, function (props) {
@@ -14,14 +13,16 @@ export var Dropdown = styled.div(_templateObject || (_templateObject = _taggedTe
14
13
  }, function (props) {
15
14
  return props.margin ? "margin: ".concat(props.margin, ";") : '';
16
15
  }, COLORS.primary_600, COLORS.primary_800);
17
- var lockedState = css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n background-color: ", ";\n box-shadow: inset 0px 0px 0px 1px ", ";\n color: ", ";\n pointer-events: none;\n cursor: not-allowed;\n input {\n color: ", " !important;\n }\n"])), COLORS.neutral_100, COLORS.neutral_300, COLORS.neutral_600, COLORS.neutral_600);
18
- var disabledState = css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n background-color: ", ";\n box-shadow: inset 0px 0px 0px 1px ", ";\n color: ", ";\n pointer-events: none;\n cursor: not-allowed;\n svg {\n color: ", " !important;\n }\n input {\n color: ", " !important;\n ::placeholder {\n color: ", " !important;\n }\n }\n"])), COLORS.white, COLORS.neutral_100, COLORS.neutral_300, COLORS.neutral_300, COLORS.neutral_300, COLORS.neutral_300);
16
+ var lockedState = css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n background-color: ", ";\n box-shadow: inset 0px 0px 0px 1px ", ";\n color: ", ";\n pointer-events: none;\n cursor: not-allowed;\n input {\n color: ", " !important;\n }\n\n .dropdown-arrow{\n color: ", " !important;\n }\n"])), COLORS.neutral_100, COLORS.neutral_300, COLORS.neutral_600, COLORS.neutral_600, COLORS.neutral_300);
17
+ var disabledState = css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n background-color: ", ";\n box-shadow: inset 0px 0px 0px 1px ", ";\n color: ", ";\n pointer-events: none;\n cursor: not-allowed;\n\n .dropdown-arrow {\n color: ", " !important;\n }\n\n input {\n color: ", " !important;\n ::placeholder {\n color: ", " !important;\n }\n }\n"])), COLORS.white, COLORS.neutral_100, COLORS.neutral_300, COLORS.neutral_300, COLORS.neutral_300, COLORS.neutral_300);
19
18
  var activeValidationMessage = css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n -webkit-box-shadow: inset 0px 0px 0px 2px ", ";\n -moz-box-shadow: inset 0px 0px 0px 2px ", ";\n box-shadow: inset 0px 0px 0px 2px ", ";\n"])), COLORS.warning_400, COLORS.warning_400, COLORS.warning_400);
20
19
  var placeholderStyling = css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n ", "\n"])), ComponentMStyling(ComponentTextStyle.Italic, COLORS.neutral_600));
21
20
  export var InputField = styled.input(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n ", "\n border: none;\n outline: none;\n background-color: inherit;\n cursor: pointer;\n color: ", " !important;\n padding: 0;\n ::-webkit-search-decoration,\n ::-webkit-search-cancel-button,\n ::-webkit-search-results-button,\n ::-webkit-search-results-decoration {\n -webkit-appearance: none;\n }\n ::placeholder {\n ", "\n\n ", " {\n ", "\n }\n &.small {\n ", "\n }\n &.medium {\n ", "\n }\n }\n"])), ComponentMStyling(ComponentTextStyle.Regular, COLORS.black), COLORS.black, ComponentSStyling(ComponentTextStyle.Italic, COLORS.neutral_600), BREAKPOINTS.MEDIUM, ComponentMStyling(ComponentTextStyle.Italic, COLORS.neutral_600), ComponentSStyling(ComponentTextStyle.Italic, COLORS.neutral_600), ComponentMStyling(ComponentTextStyle.Italic, COLORS.neutral_600));
22
- export var StyledField = styled.div(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n ", "\n\n padding: 12px 16px;\n height: 48px;\n min-width: ", ";\n width: 100%;\n\n background: ", ";\n box-shadow: inset 0px 0px 0px 1px ", ";\n box-sizing: border-box;\n border-radius: 4px;\n cursor: pointer;\n\n display: flex;\n align-items: center;\n gap: 4px;\n\n input {\n font-size: inherit;\n line-height: inherit;\n color: inherit;\n }\n\n &::placeholder {\n ", "\n }\n\n ", " {\n ", "\n padding: 16px;\n height: 56px;\n &::placeholder {\n ", "\n }\n }\n\n &.small {\n ", "\n padding: 12px 16px;\n height: 48px;\n &::placeholder {\n ", "\n }\n }\n &.medium {\n ", "\n height: 56px;\n padding: 16px;\n &::placeholder {\n ", "\n }\n }\n\n &:focus {\n outline: 3px solid #ddd;\n }\n &:focus-within {\n -webkit-box-shadow: inset 0px 0px 0px 2px ", ";\n -moz-box-shadow: inset 0px 0px 0px 2px ", ";\n box-shadow: inset 0px 0px 0px 2px ", ";\n }\n &:hover {\n box-shadow: inset 0px 0px 0px 1px ", ";\n input {\n ::placeholder {\n color: ", ";\n }\n }\n cursor: pointer;\n }\n &:active {\n box-shadow: inset 0px 0px 0px 1px ", ";\n input {\n ::placeholder {\n color: ", ";\n }\n }\n }\n\n &.button {\n ", "\n\n box-sizing: border-box;\n height: 32px;\n padding: 0 8px;\n width: initial;\n min-width: initial;\n border: none !important;\n box-shadow: none;\n border-radius: 4px;\n\n &.expanded {\n color: ", ";\n background: ", ";\n }\n }\n\n ", "\n ", "\n ", "\n ", "\n\n ", ";\n"])), ComponentSStyling(ComponentTextStyle.Regular, 'inherit'), function (props) {
21
+ export var StyledField = styled.div(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n ", "\n\n padding: 12px 16px;\n height: 48px;\n min-width: ", ";\n width: 100%;\n\n background: ", ";\n box-shadow: inset 0px 0px 0px 1px ", ";\n box-sizing: border-box;\n border-radius: 4px;\n cursor: pointer;\n\n display: flex;\n align-items: center;\n gap: 4px;\n\n input {\n font-size: inherit;\n line-height: inherit;\n color: inherit;\n }\n\n &::placeholder {\n ", "\n }\n\n ", " {\n ", "\n padding: 16px;\n height: 56px;\n &::placeholder {\n ", "\n }\n }\n\n &.small {\n ", "\n padding: 12px 16px;\n height: 48px;\n &::placeholder {\n ", "\n }\n }\n &.medium {\n ", "\n height: 56px;\n padding: 16px;\n &::placeholder {\n ", "\n }\n }\n\n .dropdown-arrow{\n width: 24px;\n height: 24px;\n color: ", ";\n }\n \n &:focus {\n outline: 3px solid #ddd;\n }\n \n &:focus-within,\n &.focus-visible-within{\n box-shadow: inset 0px 0px 0px 2px ", ";\n }\n \n &:hover {\n box-shadow: inset 0px 0px 0px 1px ", ";\n input {\n ::placeholder {\n color: ", ";\n }\n }\n .dropdown-arrow{\n color: ", ";\n }\n cursor: pointer;\n }\n \n &:active {\n box-shadow: inset 0px 0px 0px 1px ", ";\n input {\n ::placeholder {\n color: ", ";\n }\n }\n .dropdown-arrow{\n color: ", ";\n }\n }\n\n &.button {\n ", "\n\n box-sizing: border-box;\n height: 32px;\n padding: 0 8px;\n width: initial;\n min-width: initial;\n border: none !important;\n box-shadow: none;\n border-radius: 4px;\n\n &.expanded {\n color: ", ";\n background: ", ";\n }\n }\n\n ", "\n ", "\n ", "\n ", "\n\n ", ";\n"])), ComponentSStyling(ComponentTextStyle.Regular, 'inherit'), function (props) {
23
22
  return props.minWidth ? "".concat(props.minWidth) : '344px';
24
- }, COLORS.white, COLORS.neutral_400, ComponentXXSStyling(ComponentTextStyle.Italic, COLORS.neutral_600), BREAKPOINTS.MEDIUM, ComponentMStyling(ComponentTextStyle.Regular, 'inherit'), ComponentXSStyling(ComponentTextStyle.Italic, COLORS.neutral_600), ComponentSStyling(ComponentTextStyle.Regular, 'inherit'), ComponentXXSStyling(ComponentTextStyle.Italic, COLORS.neutral_600), ComponentMStyling(ComponentTextStyle.Regular, 'inherit'), ComponentXSStyling(ComponentTextStyle.Italic, COLORS.neutral_600), COLORS.primary_800, COLORS.primary_800, COLORS.primary_800, COLORS.primary_200, COLORS.primary_600, COLORS.primary_300, COLORS.primary_800, function (props) {
23
+ }, COLORS.white, COLORS.neutral_400, ComponentXXSStyling(ComponentTextStyle.Italic, COLORS.neutral_600), BREAKPOINTS.MEDIUM, ComponentMStyling(ComponentTextStyle.Regular, 'inherit'), ComponentXSStyling(ComponentTextStyle.Italic, COLORS.neutral_600), ComponentSStyling(ComponentTextStyle.Regular, 'inherit'), ComponentXXSStyling(ComponentTextStyle.Italic, COLORS.neutral_600), ComponentMStyling(ComponentTextStyle.Regular, 'inherit'), ComponentXSStyling(ComponentTextStyle.Italic, COLORS.neutral_600), function (props) {
24
+ return props.isPlaceholder ? COLORS.neutral_600 : undefined;
25
+ }, COLORS.primary_800, COLORS.primary_200, COLORS.primary_600, COLORS.primary_600, COLORS.primary_300, COLORS.primary_800, COLORS.primary_800, function (props) {
25
26
  return ComponentSStyling(ComponentTextStyle.Bold, props.disabled ? COLORS.neutral_300 : COLORS.neutral_600);
26
27
  }, COLORS.neutral_800, COLORS.neutral_20, function (props) {
27
28
  return props.disabled ? disabledState : '';
@@ -33,12 +34,7 @@ export var StyledField = styled.div(_templateObject7 || (_templateObject7 = _tag
33
34
  return props.isPlaceholder ? placeholderStyling : '';
34
35
  }, CommonInteractionStyling);
35
36
  export var ButtonDropdownContentStyling = css(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["\n min-width: 344px;\n right: 0;\n"])));
36
- export var DropdownContentStyling = styled.div(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["\n display: none;\n position: absolute;\n background-color: ", ";\n width: 100%;\n z-index: ", ";\n margin-top: ", ";\n\n &.show {\n display: block;\n }\n\n &.up {\n top: auto;\n bottom: 100%;\n }\n\n ", ";\n\n border: 1px solid ", ";\n box-sizing: border-box;\n box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.15);\n border-radius: 4px;\n padding: 4px 0;\n\n max-height: 240px;\n overflow-y: auto;\n\n /* width */\n ::-webkit-scrollbar {\n width: 4px;\n cursor: pointer;\n }\n\n /* Track */\n ::-webkit-scrollbar-track {\n background: ", ";\n }\n\n /* Handle */\n ::-webkit-scrollbar-thumb {\n background: ", ";\n border-radius: 8px;\n }\n\n /* Handle on hover */\n ::-webkit-scrollbar-thumb:hover {\n background: ", ";\n }\n"])), COLORS.white, Z_INDEXES.dropdown, function (props) {
37
- return props.isButton ? '-4px' : '2px';
38
- }, function (props) {
39
- return props.isButton ? ButtonDropdownContentStyling : '';
40
- }, COLORS.neutral_100, COLORS.white, COLORS.neutral_200, COLORS.neutral_400);
41
- export var ButtonDropdownWrapper = styled.div(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral(["\n box-sizing: border-box;\n min-height: 48px;\n display: flex;\n align-items: center;\n width: fit-content;\n\n .button {\n min-width: 64px;\n }\n\n .value {\n flex-grow: 1;\n display: flex;\n justify-content: center;\n }\n\n .dropdown-arrow {\n width: 24px;\n height: 24px;\n }\n\n ", "\n ", "\n \n &:hover .button,\n & > .button:hover {\n background-color: ", ";\n color: ", ";\n }\n\n &:focus .button,\n & > .button:focus {\n box-shadow: 0 4px 12px rgba(46, 127, 161, 0.25), 0 0 8px #2e7fa1;\n outline: none;\n }\n\n &:active .button,\n & > .button:active {\n box-shadow: none;\n background-color: ", ";\n color: ", ";\n }\n\n}"])), function (props) {
37
+ export var ButtonDropdownWrapper = styled.div(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["\n box-sizing: border-box;\n min-height: 48px;\n display: flex;\n align-items: center;\n width: fit-content;\n\n .button {\n min-width: 64px;\n }\n\n .value {\n flex-grow: 1;\n display: flex;\n justify-content: center;\n }\n\n .dropdown-arrow {\n width: 24px;\n height: 24px;\n }\n\n ", "\n ", "\n \n &:hover .button,\n & > .button:hover {\n background-color: ", ";\n color: ", ";\n }\n\n &:focus .button,\n & > .button:focus {\n box-shadow: 0 4px 12px rgba(46, 127, 161, 0.25), 0 0 8px #2e7fa1;\n outline: none;\n }\n\n &:active .button,\n & > .button:active {\n box-shadow: none;\n background-color: ", ";\n color: ", ";\n }\n\n}"])), function (props) {
42
38
  return props.locked || props.disabled ? 'cursor: not-allowed;' : 'cursor: pointer;';
43
39
  }, function (props) {
44
40
  return props.disabled ? 'pointer-events: none;' : '';
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Dropdown/CommonStyling.tsx"],"names":["styled","css","CommonInteractionStyling","BREAKPOINTS","COLORS","ComponentTextStyle","ComponentMStyling","ComponentSStyling","ComponentXSStyling","ComponentXXSStyling","Z_INDEXES","Dropdown","div","props","isButton","minWidth","locked","disabled","margin","primary_600","primary_800","lockedState","neutral_100","neutral_300","neutral_600","disabledState","white","activeValidationMessage","warning_400","placeholderStyling","Italic","InputField","input","Regular","black","MEDIUM","StyledField","neutral_400","primary_200","primary_300","Bold","neutral_800","neutral_20","showValidationMessage","isPlaceholder","ButtonDropdownContentStyling","DropdownContentStyling","dropdown","neutral_200","ButtonDropdownWrapper","primary_20","primary_700","primary_100"],"mappings":"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","sourcesContent":["import styled, { css } from 'styled-components';\nimport { CommonInteractionStyling } from '../common';\nimport { BREAKPOINTS, COLORS, ComponentTextStyle } from '../styles';\nimport { ComponentMStyling, ComponentLStyling, ComponentSStyling, ComponentXSStyling, ComponentXXSStyling } from '../styles/typography';\nimport { Size } from '../types';\nimport { Z_INDEXES } from '../styles/z-indexes';\n\nexport const Dropdown = styled.div<{ isButton: boolean; locked?: boolean; disabled?: boolean; margin?: string; minWidth?: string }>`\n position: relative;\n display: inline-block;\n ${(props) => !props.isButton && (props?.minWidth ? `width: 100%; min-width: ${props.minWidth};` : 'width: 100%; min-width: 344px;')}\n ${(props) => (props.locked || props.disabled ? 'cursor: not-allowed;' : '')}\n ${(props) => (props.margin ? `margin: ${props.margin};` : '')}\n\n .show {\n display: block;\n }\n\n .value {\n flex-grow: 1;\n }\n\n input:hover + div {\n color: ${COLORS.primary_600};\n }\n\n input:active + div {\n color: ${COLORS.primary_800};\n }\n`;\n\nconst lockedState = css`\n background-color: ${COLORS.neutral_100};\n box-shadow: inset 0px 0px 0px 1px ${COLORS.neutral_300};\n color: ${COLORS.neutral_600};\n pointer-events: none;\n cursor: not-allowed;\n input {\n color: ${COLORS.neutral_600} !important;\n }\n`;\n\nconst disabledState = css`\n background-color: ${COLORS.white};\n box-shadow: inset 0px 0px 0px 1px ${COLORS.neutral_100};\n color: ${COLORS.neutral_300};\n pointer-events: none;\n cursor: not-allowed;\n svg {\n color: ${COLORS.neutral_300} !important;\n }\n input {\n color: ${COLORS.neutral_300} !important;\n ::placeholder {\n color: ${COLORS.neutral_300} !important;\n }\n }\n`;\n\nconst activeValidationMessage = css`\n -webkit-box-shadow: inset 0px 0px 0px 2px ${COLORS.warning_400};\n -moz-box-shadow: inset 0px 0px 0px 2px ${COLORS.warning_400};\n box-shadow: inset 0px 0px 0px 2px ${COLORS.warning_400};\n`;\n\nconst placeholderStyling = css`\n ${ComponentMStyling(ComponentTextStyle.Italic, COLORS.neutral_600)}\n`;\n\nexport const InputField = styled.input`\n ${ComponentMStyling(ComponentTextStyle.Regular, COLORS.black)}\n border: none;\n outline: none;\n background-color: inherit;\n cursor: pointer;\n color: ${COLORS.black} !important;\n padding: 0;\n ::-webkit-search-decoration,\n ::-webkit-search-cancel-button,\n ::-webkit-search-results-button,\n ::-webkit-search-results-decoration {\n -webkit-appearance: none;\n }\n ::placeholder {\n ${ComponentSStyling(ComponentTextStyle.Italic, COLORS.neutral_600)}\n\n ${BREAKPOINTS.MEDIUM} {\n ${ComponentMStyling(ComponentTextStyle.Italic, COLORS.neutral_600)}\n }\n &.small {\n ${ComponentSStyling(ComponentTextStyle.Italic, COLORS.neutral_600)}\n }\n &.medium {\n ${ComponentMStyling(ComponentTextStyle.Italic, COLORS.neutral_600)}\n }\n }\n`;\n\nexport const StyledField = styled.div<{ disabled: boolean; locked: boolean; showValidationMessage?: boolean; isPlaceholder?: boolean; fontSize?: string; minWidth?: string }>`\n ${ComponentSStyling(ComponentTextStyle.Regular, 'inherit')}\n\n padding: 12px 16px;\n height: 48px;\n min-width: ${(props) => (props.minWidth ? `${props.minWidth}` : '344px')};\n width: 100%;\n\n background: ${COLORS.white};\n box-shadow: inset 0px 0px 0px 1px ${COLORS.neutral_400};\n box-sizing: border-box;\n border-radius: 4px;\n cursor: pointer;\n\n display: flex;\n align-items: center;\n gap: 4px;\n\n input {\n font-size: inherit;\n line-height: inherit;\n color: inherit;\n }\n\n &::placeholder {\n ${ComponentXXSStyling(ComponentTextStyle.Italic, COLORS.neutral_600)}\n }\n\n ${BREAKPOINTS.MEDIUM} {\n ${ComponentMStyling(ComponentTextStyle.Regular, 'inherit')}\n padding: 16px;\n height: 56px;\n &::placeholder {\n ${ComponentXSStyling(ComponentTextStyle.Italic, COLORS.neutral_600)}\n }\n }\n\n &.small {\n ${ComponentSStyling(ComponentTextStyle.Regular, 'inherit')}\n padding: 12px 16px;\n height: 48px;\n &::placeholder {\n ${ComponentXXSStyling(ComponentTextStyle.Italic, COLORS.neutral_600)}\n }\n }\n &.medium {\n ${ComponentMStyling(ComponentTextStyle.Regular, 'inherit')}\n height: 56px;\n padding: 16px;\n &::placeholder {\n ${ComponentXSStyling(ComponentTextStyle.Italic, COLORS.neutral_600)}\n }\n }\n\n &:focus {\n outline: 3px solid #ddd;\n }\n &:focus-within {\n -webkit-box-shadow: inset 0px 0px 0px 2px ${COLORS.primary_800};\n -moz-box-shadow: inset 0px 0px 0px 2px ${COLORS.primary_800};\n box-shadow: inset 0px 0px 0px 2px ${COLORS.primary_800};\n }\n &:hover {\n box-shadow: inset 0px 0px 0px 1px ${COLORS.primary_200};\n input {\n ::placeholder {\n color: ${COLORS.primary_600};\n }\n }\n cursor: pointer;\n }\n &:active {\n box-shadow: inset 0px 0px 0px 1px ${COLORS.primary_300};\n input {\n ::placeholder {\n color: ${COLORS.primary_800};\n }\n }\n }\n\n &.button {\n ${(props) => ComponentSStyling(ComponentTextStyle.Bold, props.disabled ? COLORS.neutral_300 : COLORS.neutral_600)}\n\n box-sizing: border-box;\n height: 32px;\n padding: 0 8px;\n width: initial;\n min-width: initial;\n border: none !important;\n box-shadow: none;\n border-radius: 4px;\n\n &.expanded {\n color: ${COLORS.neutral_800};\n background: ${COLORS.neutral_20};\n }\n }\n\n ${(props) => (props.disabled ? disabledState : '')}\n ${(props) => (props.locked ? lockedState : '')}\n ${(props) => (props.showValidationMessage ? activeValidationMessage : '')}\n ${(props) => (props.isPlaceholder ? placeholderStyling : '')}\n\n ${CommonInteractionStyling};\n`;\n\nexport const ButtonDropdownContentStyling = css`\n min-width: 344px;\n right: 0;\n`;\n\nexport const DropdownContentStyling = styled.div<{ isButton: boolean }>`\n display: none;\n position: absolute;\n background-color: ${COLORS.white};\n width: 100%;\n z-index: ${Z_INDEXES.dropdown};\n margin-top: ${(props) => (props.isButton ? '-4px' : '2px')};\n\n &.show {\n display: block;\n }\n\n &.up {\n top: auto;\n bottom: 100%;\n }\n\n ${(props) => (props.isButton ? ButtonDropdownContentStyling : '')};\n\n border: 1px solid ${COLORS.neutral_100};\n box-sizing: border-box;\n box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.15);\n border-radius: 4px;\n padding: 4px 0;\n\n max-height: 240px;\n overflow-y: auto;\n\n /* width */\n ::-webkit-scrollbar {\n width: 4px;\n cursor: pointer;\n }\n\n /* Track */\n ::-webkit-scrollbar-track {\n background: ${COLORS.white};\n }\n\n /* Handle */\n ::-webkit-scrollbar-thumb {\n background: ${COLORS.neutral_200};\n border-radius: 8px;\n }\n\n /* Handle on hover */\n ::-webkit-scrollbar-thumb:hover {\n background: ${COLORS.neutral_400};\n }\n`;\n\n\nexport const ButtonDropdownWrapper = styled.div<{ locked?: boolean; disabled?: boolean }>`\n box-sizing: border-box;\n min-height: 48px;\n display: flex;\n align-items: center;\n width: fit-content;\n\n .button {\n min-width: 64px;\n }\n\n .value {\n flex-grow: 1;\n display: flex;\n justify-content: center;\n }\n\n .dropdown-arrow {\n width: 24px;\n height: 24px;\n }\n\n ${(props) => (props.locked || props.disabled ? 'cursor: not-allowed;' : 'cursor: pointer;')}\n ${(props) => (props.disabled ? 'pointer-events: none;' : '')}\n \n &:hover .button,\n & > .button:hover {\n background-color: ${COLORS.primary_20};\n color: ${COLORS.primary_700};\n }\n\n &:focus .button,\n & > .button:focus {\n box-shadow: 0 4px 12px rgba(46, 127, 161, 0.25), 0 0 8px #2e7fa1;\n outline: none;\n }\n\n &:active .button,\n & > .button:active {\n box-shadow: none;\n background-color: ${COLORS.primary_100};\n color: ${COLORS.primary_800};\n }\n\n}`;\n"],"file":"CommonStyling.js"}
1
+ {"version":3,"sources":["../../src/Dropdown/CommonStyling.tsx"],"names":["styled","css","CommonInteractionStyling","BREAKPOINTS","COLORS","ComponentTextStyle","ComponentMStyling","ComponentSStyling","ComponentXSStyling","ComponentXXSStyling","Dropdown","div","props","isButton","minWidth","locked","disabled","margin","primary_600","primary_800","lockedState","neutral_100","neutral_300","neutral_600","disabledState","white","activeValidationMessage","warning_400","placeholderStyling","Italic","InputField","input","Regular","black","MEDIUM","StyledField","neutral_400","isPlaceholder","undefined","primary_200","primary_300","Bold","neutral_800","neutral_20","showValidationMessage","ButtonDropdownContentStyling","ButtonDropdownWrapper","primary_20","primary_700","primary_100"],"mappings":";;;;AAAA,OAAOA,MAAP,IAAiBC,GAAjB,QAA4B,mBAA5B;AACA,SAASC,wBAAT,QAAyC,WAAzC;AACA,SAASC,WAAT,EAAsBC,MAAtB,EAA8BC,kBAA9B,QAAwD,WAAxD;AACA,SAASC,iBAAT,EAA+CC,iBAA/C,EAAkEC,kBAAlE,EAAsFC,mBAAtF,QAAiH,sBAAjH;AAIA,OAAO,IAAMC,QAAQ,GAAGV,MAAM,CAACW,GAAV,+TAGjB,UAACC,KAAD;AAAA,SAAW,CAACA,KAAK,CAACC,QAAP,KAAoBD,KAAK,SAAL,IAAAA,KAAK,WAAL,IAAAA,KAAK,CAAEE,QAAP,qCAA6CF,KAAK,CAACE,QAAnD,SAAiE,gCAArF,CAAX;AAAA,CAHiB,EAIjB,UAACF,KAAD;AAAA,SAAYA,KAAK,CAACG,MAAN,IAAgBH,KAAK,CAACI,QAAtB,GAAiC,sBAAjC,GAA0D,EAAtE;AAAA,CAJiB,EAKjB,UAACJ,KAAD;AAAA,SAAYA,KAAK,CAACK,MAAN,qBAA0BL,KAAK,CAACK,MAAhC,SAA4C,EAAxD;AAAA,CALiB,EAgBRb,MAAM,CAACc,WAhBC,EAoBRd,MAAM,CAACe,WApBC,CAAd;AAwBP,IAAMC,WAAW,GAAGnB,GAAH,sTACKG,MAAM,CAACiB,WADZ,EAEqBjB,MAAM,CAACkB,WAF5B,EAGNlB,MAAM,CAACmB,WAHD,EAOJnB,MAAM,CAACmB,WAPH,EAWJnB,MAAM,CAACkB,WAXH,CAAjB;AAeA,IAAME,aAAa,GAAGvB,GAAH,oXACGG,MAAM,CAACqB,KADV,EAEmBrB,MAAM,CAACiB,WAF1B,EAGRjB,MAAM,CAACkB,WAHC,EAQNlB,MAAM,CAACkB,WARD,EAYNlB,MAAM,CAACkB,WAZD,EAcJlB,MAAM,CAACkB,WAdH,CAAnB;AAmBA,IAAMI,uBAAuB,GAAGzB,GAAH,wNACiBG,MAAM,CAACuB,WADxB,EAEcvB,MAAM,CAACuB,WAFrB,EAGSvB,MAAM,CAACuB,WAHhB,CAA7B;AAMA,IAAMC,kBAAkB,GAAG3B,GAAH,kFACpBK,iBAAiB,CAACD,kBAAkB,CAACwB,MAApB,EAA4BzB,MAAM,CAACmB,WAAnC,CADG,CAAxB;AAIA,OAAO,IAAMO,UAAU,GAAG9B,MAAM,CAAC+B,KAAV,6gBACnBzB,iBAAiB,CAACD,kBAAkB,CAAC2B,OAApB,EAA6B5B,MAAM,CAAC6B,KAApC,CADE,EAMZ7B,MAAM,CAAC6B,KANK,EAejB1B,iBAAiB,CAACF,kBAAkB,CAACwB,MAApB,EAA4BzB,MAAM,CAACmB,WAAnC,CAfA,EAiBjBpB,WAAW,CAAC+B,MAjBK,EAkBf5B,iBAAiB,CAACD,kBAAkB,CAACwB,MAApB,EAA4BzB,MAAM,CAACmB,WAAnC,CAlBF,EAqBfhB,iBAAiB,CAACF,kBAAkB,CAACwB,MAApB,EAA4BzB,MAAM,CAACmB,WAAnC,CArBF,EAwBfjB,iBAAiB,CAACD,kBAAkB,CAACwB,MAApB,EAA4BzB,MAAM,CAACmB,WAAnC,CAxBF,CAAhB;AA6BP,OAAO,IAAMY,WAAW,GAAGnC,MAAM,CAACW,GAAV,gwDACpBJ,iBAAiB,CAACF,kBAAkB,CAAC2B,OAApB,EAA6B,SAA7B,CADG,EAKT,UAACpB,KAAD;AAAA,SAAYA,KAAK,CAACE,QAAN,aAAoBF,KAAK,CAACE,QAA1B,IAAuC,OAAnD;AAAA,CALS,EAQRV,MAAM,CAACqB,KARC,EAScrB,MAAM,CAACgC,WATrB,EAyBlB3B,mBAAmB,CAACJ,kBAAkB,CAACwB,MAApB,EAA4BzB,MAAM,CAACmB,WAAnC,CAzBD,EA4BpBpB,WAAW,CAAC+B,MA5BQ,EA6BlB5B,iBAAiB,CAACD,kBAAkB,CAAC2B,OAApB,EAA6B,SAA7B,CA7BC,EAiChBxB,kBAAkB,CAACH,kBAAkB,CAACwB,MAApB,EAA4BzB,MAAM,CAACmB,WAAnC,CAjCF,EAsClBhB,iBAAiB,CAACF,kBAAkB,CAAC2B,OAApB,EAA6B,SAA7B,CAtCC,EA0ChBvB,mBAAmB,CAACJ,kBAAkB,CAACwB,MAApB,EAA4BzB,MAAM,CAACmB,WAAnC,CA1CH,EA8ClBjB,iBAAiB,CAACD,kBAAkB,CAAC2B,OAApB,EAA6B,SAA7B,CA9CC,EAkDhBxB,kBAAkB,CAACH,kBAAkB,CAACwB,MAApB,EAA4BzB,MAAM,CAACmB,WAAnC,CAlDF,EAyDX,UAACX,KAAD;AAAA,SAAWA,KAAK,CAACyB,aAAN,GAAsBjC,MAAM,CAACmB,WAA7B,GAA2Ce,SAAtD;AAAA,CAzDW,EAkEgBlC,MAAM,CAACe,WAlEvB,EAsEgBf,MAAM,CAACmC,WAtEvB,EAyEPnC,MAAM,CAACc,WAzEA,EA6ETd,MAAM,CAACc,WA7EE,EAmFgBd,MAAM,CAACoC,WAnFvB,EAsFPpC,MAAM,CAACe,WAtFA,EA0FTf,MAAM,CAACe,WA1FE,EA+FlB,UAACP,KAAD;AAAA,SAAWL,iBAAiB,CAACF,kBAAkB,CAACoC,IAApB,EAA0B7B,KAAK,CAACI,QAAN,GAAiBZ,MAAM,CAACkB,WAAxB,GAAsClB,MAAM,CAACmB,WAAvE,CAA5B;AAAA,CA/FkB,EA2GTnB,MAAM,CAACsC,WA3GE,EA4GJtC,MAAM,CAACuC,UA5GH,EAgHpB,UAAC/B,KAAD;AAAA,SAAYA,KAAK,CAACI,QAAN,GAAiBQ,aAAjB,GAAiC,EAA7C;AAAA,CAhHoB,EAiHpB,UAACZ,KAAD;AAAA,SAAYA,KAAK,CAACG,MAAN,GAAeK,WAAf,GAA6B,EAAzC;AAAA,CAjHoB,EAkHpB,UAACR,KAAD;AAAA,SAAYA,KAAK,CAACgC,qBAAN,GAA8BlB,uBAA9B,GAAwD,EAApE;AAAA,CAlHoB,EAmHpB,UAACd,KAAD;AAAA,SAAYA,KAAK,CAACyB,aAAN,GAAsBT,kBAAtB,GAA2C,EAAvD;AAAA,CAnHoB,EAqHpB1B,wBArHoB,CAAjB;AAwHP,OAAO,IAAM2C,4BAA4B,GAAG5C,GAAH,2GAAlC;AAKP,OAAO,IAAM6C,qBAAqB,GAAG9C,MAAM,CAACW,GAAV,6vBAsB9B,UAACC,KAAD;AAAA,SAAYA,KAAK,CAACG,MAAN,IAAgBH,KAAK,CAACI,QAAtB,GAAiC,sBAAjC,GAA0D,kBAAtE;AAAA,CAtB8B,EAuB9B,UAACJ,KAAD;AAAA,SAAYA,KAAK,CAACI,QAAN,GAAiB,uBAAjB,GAA2C,EAAvD;AAAA,CAvB8B,EA2BVZ,MAAM,CAAC2C,UA3BG,EA4BrB3C,MAAM,CAAC4C,WA5Bc,EAwCV5C,MAAM,CAAC6C,WAxCG,EAyCrB7C,MAAM,CAACe,WAzCc,CAA3B","sourcesContent":["import styled, { css } from 'styled-components';\nimport { CommonInteractionStyling } from '../common';\nimport { BREAKPOINTS, COLORS, ComponentTextStyle } from '../styles';\nimport { ComponentMStyling, ComponentLStyling, ComponentSStyling, ComponentXSStyling, ComponentXXSStyling } from '../styles/typography';\nimport { Size } from '../types';\nimport { Z_INDEXES } from '../styles/z-indexes';\n\nexport const Dropdown = styled.div<{ isButton: boolean; locked?: boolean; disabled?: boolean; margin?: string; minWidth?: string }>`\n position: relative;\n display: inline-block;\n ${(props) => !props.isButton && (props?.minWidth ? `width: 100%; min-width: ${props.minWidth};` : 'width: 100%; min-width: 344px;')}\n ${(props) => (props.locked || props.disabled ? 'cursor: not-allowed;' : '')}\n ${(props) => (props.margin ? `margin: ${props.margin};` : '')}\n\n .show {\n display: block;\n }\n\n .value {\n flex-grow: 1;\n }\n\n input:hover + div {\n color: ${COLORS.primary_600};\n }\n\n input:active + div {\n color: ${COLORS.primary_800};\n }\n`;\n\nconst lockedState = css`\n background-color: ${COLORS.neutral_100};\n box-shadow: inset 0px 0px 0px 1px ${COLORS.neutral_300};\n color: ${COLORS.neutral_600};\n pointer-events: none;\n cursor: not-allowed;\n input {\n color: ${COLORS.neutral_600} !important;\n }\n\n .dropdown-arrow{\n color: ${COLORS.neutral_300} !important;\n }\n`;\n\nconst disabledState = css`\n background-color: ${COLORS.white};\n box-shadow: inset 0px 0px 0px 1px ${COLORS.neutral_100};\n color: ${COLORS.neutral_300};\n pointer-events: none;\n cursor: not-allowed;\n\n .dropdown-arrow {\n color: ${COLORS.neutral_300} !important;\n }\n\n input {\n color: ${COLORS.neutral_300} !important;\n ::placeholder {\n color: ${COLORS.neutral_300} !important;\n }\n }\n`;\n\nconst activeValidationMessage = css`\n -webkit-box-shadow: inset 0px 0px 0px 2px ${COLORS.warning_400};\n -moz-box-shadow: inset 0px 0px 0px 2px ${COLORS.warning_400};\n box-shadow: inset 0px 0px 0px 2px ${COLORS.warning_400};\n`;\n\nconst placeholderStyling = css`\n ${ComponentMStyling(ComponentTextStyle.Italic, COLORS.neutral_600)}\n`;\n\nexport const InputField = styled.input`\n ${ComponentMStyling(ComponentTextStyle.Regular, COLORS.black)}\n border: none;\n outline: none;\n background-color: inherit;\n cursor: pointer;\n color: ${COLORS.black} !important;\n padding: 0;\n ::-webkit-search-decoration,\n ::-webkit-search-cancel-button,\n ::-webkit-search-results-button,\n ::-webkit-search-results-decoration {\n -webkit-appearance: none;\n }\n ::placeholder {\n ${ComponentSStyling(ComponentTextStyle.Italic, COLORS.neutral_600)}\n\n ${BREAKPOINTS.MEDIUM} {\n ${ComponentMStyling(ComponentTextStyle.Italic, COLORS.neutral_600)}\n }\n &.small {\n ${ComponentSStyling(ComponentTextStyle.Italic, COLORS.neutral_600)}\n }\n &.medium {\n ${ComponentMStyling(ComponentTextStyle.Italic, COLORS.neutral_600)}\n }\n }\n`;\n\nexport const StyledField = styled.div<{ disabled: boolean; locked: boolean; showValidationMessage?: boolean; isPlaceholder?: boolean; fontSize?: string; minWidth?: string }>`\n ${ComponentSStyling(ComponentTextStyle.Regular, 'inherit')}\n\n padding: 12px 16px;\n height: 48px;\n min-width: ${(props) => (props.minWidth ? `${props.minWidth}` : '344px')};\n width: 100%;\n\n background: ${COLORS.white};\n box-shadow: inset 0px 0px 0px 1px ${COLORS.neutral_400};\n box-sizing: border-box;\n border-radius: 4px;\n cursor: pointer;\n\n display: flex;\n align-items: center;\n gap: 4px;\n\n input {\n font-size: inherit;\n line-height: inherit;\n color: inherit;\n }\n\n &::placeholder {\n ${ComponentXXSStyling(ComponentTextStyle.Italic, COLORS.neutral_600)}\n }\n\n ${BREAKPOINTS.MEDIUM} {\n ${ComponentMStyling(ComponentTextStyle.Regular, 'inherit')}\n padding: 16px;\n height: 56px;\n &::placeholder {\n ${ComponentXSStyling(ComponentTextStyle.Italic, COLORS.neutral_600)}\n }\n }\n\n &.small {\n ${ComponentSStyling(ComponentTextStyle.Regular, 'inherit')}\n padding: 12px 16px;\n height: 48px;\n &::placeholder {\n ${ComponentXXSStyling(ComponentTextStyle.Italic, COLORS.neutral_600)}\n }\n }\n &.medium {\n ${ComponentMStyling(ComponentTextStyle.Regular, 'inherit')}\n height: 56px;\n padding: 16px;\n &::placeholder {\n ${ComponentXSStyling(ComponentTextStyle.Italic, COLORS.neutral_600)}\n }\n }\n\n .dropdown-arrow{\n width: 24px;\n height: 24px;\n color: ${(props) => props.isPlaceholder ? COLORS.neutral_600 : undefined};\n }\n \n &:focus {\n outline: 3px solid #ddd;\n }\n \n &:focus-within,\n &.focus-visible-within{\n box-shadow: inset 0px 0px 0px 2px ${COLORS.primary_800};\n }\n \n &:hover {\n box-shadow: inset 0px 0px 0px 1px ${COLORS.primary_200};\n input {\n ::placeholder {\n color: ${COLORS.primary_600};\n }\n }\n .dropdown-arrow{\n color: ${COLORS.primary_600};\n }\n cursor: pointer;\n }\n \n &:active {\n box-shadow: inset 0px 0px 0px 1px ${COLORS.primary_300};\n input {\n ::placeholder {\n color: ${COLORS.primary_800};\n }\n }\n .dropdown-arrow{\n color: ${COLORS.primary_800};\n }\n }\n\n &.button {\n ${(props) => ComponentSStyling(ComponentTextStyle.Bold, props.disabled ? COLORS.neutral_300 : COLORS.neutral_600)}\n\n box-sizing: border-box;\n height: 32px;\n padding: 0 8px;\n width: initial;\n min-width: initial;\n border: none !important;\n box-shadow: none;\n border-radius: 4px;\n\n &.expanded {\n color: ${COLORS.neutral_800};\n background: ${COLORS.neutral_20};\n }\n }\n\n ${(props) => (props.disabled ? disabledState : '')}\n ${(props) => (props.locked ? lockedState : '')}\n ${(props) => (props.showValidationMessage ? activeValidationMessage : '')}\n ${(props) => (props.isPlaceholder ? placeholderStyling : '')}\n\n ${CommonInteractionStyling};\n`;\n\nexport const ButtonDropdownContentStyling = css`\n min-width: 344px;\n right: 0;\n`;\n\nexport const ButtonDropdownWrapper = styled.div<{ locked?: boolean; disabled?: boolean }>`\n box-sizing: border-box;\n min-height: 48px;\n display: flex;\n align-items: center;\n width: fit-content;\n\n .button {\n min-width: 64px;\n }\n\n .value {\n flex-grow: 1;\n display: flex;\n justify-content: center;\n }\n\n .dropdown-arrow {\n width: 24px;\n height: 24px;\n }\n\n ${(props) => (props.locked || props.disabled ? 'cursor: not-allowed;' : 'cursor: pointer;')}\n ${(props) => (props.disabled ? 'pointer-events: none;' : '')}\n \n &:hover .button,\n & > .button:hover {\n background-color: ${COLORS.primary_20};\n color: ${COLORS.primary_700};\n }\n\n &:focus .button,\n & > .button:focus {\n box-shadow: 0 4px 12px rgba(46, 127, 161, 0.25), 0 0 8px #2e7fa1;\n outline: none;\n }\n\n &:active .button,\n & > .button:active {\n box-shadow: none;\n background-color: ${COLORS.primary_100};\n color: ${COLORS.primary_800};\n }\n\n}`;\n"],"file":"CommonStyling.js"}
@@ -72,49 +72,36 @@ var DropdownButton = function DropdownButton(_ref) {
72
72
  focused = _React$useState6[0],
73
73
  setFocused = _React$useState6[1];
74
74
 
75
- var buttonRef = React.useRef(null);
76
-
77
75
  var handleValueSelect = function handleValueSelect(values) {
78
76
  // Do all required actions
79
77
  onClick(values);
80
78
  };
81
79
 
82
- var handleKeyDown = function handleKeyDown(e) {
83
- if (buttonRef !== null && buttonRef !== void 0 && buttonRef.current && buttonRef.current.contains(e.target)) {
84
- if (e.keyCode === 13 || e.keyCode === 40 || e.keyCode === 32) {
85
- if (!dropdownOpen) setFocused(0);
86
-
87
- if (e.keyCode != 40) {
88
- e.preventDefault();
89
- buttonRef === null || buttonRef === void 0 ? void 0 : buttonRef.current.click();
90
- }
80
+ var handeKeyPress = function handeKeyPress(e) {
81
+ if (e.key === 'Enter' || e.key === ' ') {
82
+ if (!dropdownOpen) {
83
+ setFocused(0);
91
84
  }
85
+
86
+ setDropdownOpen(!dropdownOpen);
92
87
  }
93
88
  };
94
-
95
- React.useEffect(function () {
96
- document.addEventListener('keydown', handleKeyDown);
97
- return function () {
98
- document.removeEventListener('keydown', handleKeyDown);
99
- };
100
- });
101
89
  /**
102
90
  * Renders Icon Button dropdown menu.
103
91
  * @returns HTML View for the Icon button dropdown menu.
104
92
  */
105
93
 
94
+
106
95
  var renderIconButton = function renderIconButton() {
107
96
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.IconButton, {
108
- ref: buttonRef,
109
97
  variant: "secondary",
110
98
  shape: "circular",
99
+ onKeyPress: handeKeyPress,
111
100
  action: function action(event) {
112
- if (!event) {
113
- //if no event details passed, then this means that user pressed 'enter'
114
- if (!dropdownOpen) setFocused(0);
101
+ if ((event === null || event === void 0 ? void 0 : event.detail) === 1) {
102
+ // Only if the click is triggered by a mouse click this will be one
103
+ setDropdownOpen(!dropdownOpen);
115
104
  }
116
-
117
- setDropdownOpen(!dropdownOpen);
118
105
  },
119
106
  disabled: disabled,
120
107
  children: icon
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Dropdown/DropdownButton.tsx"],"names":["Wrapper","styled","div","DropdownButton","items","icon","disabled","onClick","itemsType","action","actionLabel","actionVariant","actionIcon","actionLoading","width","size","alignLeft","multiSelect","scrollable","pinTopItem","maxHeight","className","React","useState","dropdownOpen","setDropdownOpen","selectedValues","setSelectedValues","focused","setFocused","buttonRef","useRef","handleValueSelect","values","handleKeyDown","e","current","contains","target","keyCode","preventDefault","click","useEffect","document","addEventListener","removeEventListener","renderIconButton","event","onValueUpdate"],"mappings":"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","sourcesContent":["/**\n * Import React libraries.\n */\nimport * as React from 'react';\n\n/**\n * Import custom components.\n */\nimport { IconButton } from '../Button';\nimport DropdownContent from './DropdownContent';\nimport styled from 'styled-components';\n\n/**\n * Import custom types.\n */\nimport { DropdownButtonProps } from './DropdownButtonTypes';\n\nconst Wrapper = styled.div`\n position: relative;\n display: inline-block;\n`;\n\nconst DropdownButton = ({ \n items, \n icon, \n disabled,\n onClick,\n itemsType = 'normal',\n action,\n actionLabel = '',\n actionVariant,\n actionIcon,\n actionLoading,\n width,\n size,\n alignLeft,\n multiSelect = false,\n scrollable = false,\n pinTopItem = false,\n maxHeight,\n className }: DropdownButtonProps) => {\n // Globally used variables within the view.\n const [dropdownOpen, setDropdownOpen] = React.useState<boolean>(false);\n const [selectedValues, setSelectedValues] = React.useState<string[]>([]);\n const [focused, setFocused] = React.useState<number | null>(null);\n const buttonRef = React.useRef<HTMLButtonElement>(null);\n\n const handleValueSelect = (values: string[]) => {\n // Do all required actions\n onClick(values);\n };\n\n \n const handleKeyDown = (e: any) => {\n if (buttonRef?.current && buttonRef.current.contains(e.target)) {\n if (e.keyCode === 13 || e.keyCode === 40 || e.keyCode === 32) {\n if(!dropdownOpen)\n setFocused(0);\n \n if(e.keyCode != 40)\n {\n e.preventDefault();\n buttonRef?.current.click();\n }\n }\n }\n };\n\n React.useEffect(() => {\n document.addEventListener('keydown', handleKeyDown);\n return () => {\n document.removeEventListener('keydown', handleKeyDown); \n };\n });\n\n /**\n * Renders Icon Button dropdown menu.\n * @returns HTML View for the Icon button dropdown menu.\n */\n const renderIconButton = () => {\n return (\n <IconButton ref={buttonRef} variant=\"secondary\" shape=\"circular\" action={(event: any) => \n {\n if(!event) { //if no event details passed, then this means that user pressed 'enter'\n if(!dropdownOpen)\n setFocused(0);\n }\n setDropdownOpen(!dropdownOpen);\n }} disabled={disabled}>\n {icon}\n </IconButton>\n );\n };\n\n return (\n <Wrapper className={className}>\n {renderIconButton()}\n <DropdownContent\n customizationProps={{\n itemsType: itemsType,\n action: action ?? (() => {}),\n actionLabel: actionLabel,\n actionVariant: actionVariant,\n onValueUpdate: handleValueSelect,\n multiSelect: multiSelect,\n actionIcon: actionIcon,\n actionLoading: actionLoading,\n scrollable: scrollable,\n pinTopItem: pinTopItem,\n maxHeight: maxHeight,\n items: items\n }}\n focused={focused}\n setFocused={setFocused}\n size={size}\n width={width}\n alignLeft={alignLeft}\n isOpen={dropdownOpen}\n setIsOpen={setDropdownOpen}\n hideOnClickOutside={true}\n filter=''\n selectedValues={itemsType == 'normal' ? [] : selectedValues}\n setSelectedValues={setSelectedValues}\n messageOnNoResults='No results'\n isButton={true}\n id='dropdown-content'\n />\n </Wrapper>\n );\n};\n\nexport default DropdownButton;\n"],"file":"DropdownButton.cjs"}
1
+ {"version":3,"sources":["../../src/Dropdown/DropdownButton.tsx"],"names":["Wrapper","styled","div","DropdownButton","items","icon","disabled","onClick","itemsType","action","actionLabel","actionVariant","actionIcon","actionLoading","width","size","alignLeft","multiSelect","scrollable","pinTopItem","maxHeight","className","React","useState","dropdownOpen","setDropdownOpen","selectedValues","setSelectedValues","focused","setFocused","handleValueSelect","values","handeKeyPress","e","key","renderIconButton","event","detail","onValueUpdate"],"mappings":"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","sourcesContent":["/**\n * Import React libraries.\n */\nimport * as React from 'react';\n\n/**\n * Import custom components.\n */\nimport {IconButton} from '../Button';\nimport DropdownContent from './DropdownContent';\nimport styled from 'styled-components';\n\n/**\n * Import custom types.\n */\nimport {DropdownButtonProps} from './DropdownButtonTypes';\n\nconst Wrapper = styled.div`\n position: relative;\n display: inline-block;\n`;\n\nconst DropdownButton = ({\n items,\n icon,\n disabled,\n onClick,\n itemsType = 'normal',\n action,\n actionLabel = '',\n actionVariant,\n actionIcon,\n actionLoading,\n width,\n size,\n alignLeft,\n multiSelect = false,\n scrollable = false,\n pinTopItem = false,\n maxHeight,\n className\n }: DropdownButtonProps) => {\n // Globally used variables within the view.\n const [dropdownOpen, setDropdownOpen] = React.useState<boolean>(false);\n const [selectedValues, setSelectedValues] = React.useState<string[]>([]);\n const [focused, setFocused] = React.useState<number | null>(null);\n\n const handleValueSelect = (values: string[]) => {\n // Do all required actions\n onClick(values);\n };\n\n\n const handeKeyPress = (e: React.KeyboardEvent<any>) => {\n if (e.key === 'Enter' || e.key === ' ') {\n if (!dropdownOpen) {\n setFocused(0);\n }\n setDropdownOpen(!dropdownOpen);\n }\n };\n\n /**\n * Renders Icon Button dropdown menu.\n * @returns HTML View for the Icon button dropdown menu.\n */\n const renderIconButton = () => {\n return (\n <IconButton variant=\"secondary\"\n shape=\"circular\"\n onKeyPress={handeKeyPress}\n action={(event: any) => {\n if (event?.detail === 1) { // Only if the click is triggered by a mouse click this will be one\n setDropdownOpen(!dropdownOpen);\n }\n }}\n disabled={disabled}>\n {icon}\n </IconButton>\n );\n };\n\n return (\n <Wrapper className={className}>\n {renderIconButton()}\n <DropdownContent\n customizationProps={{\n itemsType: itemsType,\n action: action ?? (() => {\n }),\n actionLabel: actionLabel,\n actionVariant: actionVariant,\n onValueUpdate: handleValueSelect,\n multiSelect: multiSelect,\n actionIcon: actionIcon,\n actionLoading: actionLoading,\n scrollable: scrollable,\n pinTopItem: pinTopItem,\n maxHeight: maxHeight,\n items: items\n }}\n focused={focused}\n setFocused={setFocused}\n size={size}\n width={width}\n alignLeft={alignLeft}\n isOpen={dropdownOpen}\n setIsOpen={setDropdownOpen}\n hideOnClickOutside={true}\n filter=\"\"\n selectedValues={itemsType == 'normal' ? [] : selectedValues}\n setSelectedValues={setSelectedValues}\n messageOnNoResults=\"No results\"\n isButton={true}\n id=\"dropdown-content\"\n />\n </Wrapper>\n );\n};\n\nexport default DropdownButton;\n"],"file":"DropdownButton.cjs"}
@@ -63,49 +63,36 @@ var DropdownButton = function DropdownButton(_ref) {
63
63
  focused = _React$useState6[0],
64
64
  setFocused = _React$useState6[1];
65
65
 
66
- var buttonRef = React.useRef(null);
67
-
68
66
  var handleValueSelect = function handleValueSelect(values) {
69
67
  // Do all required actions
70
68
  onClick(values);
71
69
  };
72
70
 
73
- var handleKeyDown = function handleKeyDown(e) {
74
- if (buttonRef !== null && buttonRef !== void 0 && buttonRef.current && buttonRef.current.contains(e.target)) {
75
- if (e.keyCode === 13 || e.keyCode === 40 || e.keyCode === 32) {
76
- if (!dropdownOpen) setFocused(0);
77
-
78
- if (e.keyCode != 40) {
79
- e.preventDefault();
80
- buttonRef === null || buttonRef === void 0 ? void 0 : buttonRef.current.click();
81
- }
71
+ var handeKeyPress = function handeKeyPress(e) {
72
+ if (e.key === 'Enter' || e.key === ' ') {
73
+ if (!dropdownOpen) {
74
+ setFocused(0);
82
75
  }
76
+
77
+ setDropdownOpen(!dropdownOpen);
83
78
  }
84
79
  };
85
-
86
- React.useEffect(function () {
87
- document.addEventListener('keydown', handleKeyDown);
88
- return function () {
89
- document.removeEventListener('keydown', handleKeyDown);
90
- };
91
- });
92
80
  /**
93
81
  * Renders Icon Button dropdown menu.
94
82
  * @returns HTML View for the Icon button dropdown menu.
95
83
  */
96
84
 
85
+
97
86
  var renderIconButton = function renderIconButton() {
98
87
  return /*#__PURE__*/_jsx(IconButton, {
99
- ref: buttonRef,
100
88
  variant: "secondary",
101
89
  shape: "circular",
90
+ onKeyPress: handeKeyPress,
102
91
  action: function action(event) {
103
- if (!event) {
104
- //if no event details passed, then this means that user pressed 'enter'
105
- if (!dropdownOpen) setFocused(0);
92
+ if ((event === null || event === void 0 ? void 0 : event.detail) === 1) {
93
+ // Only if the click is triggered by a mouse click this will be one
94
+ setDropdownOpen(!dropdownOpen);
106
95
  }
107
-
108
- setDropdownOpen(!dropdownOpen);
109
96
  },
110
97
  disabled: disabled,
111
98
  children: icon
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Dropdown/DropdownButton.tsx"],"names":["React","IconButton","DropdownContent","styled","Wrapper","div","DropdownButton","items","icon","disabled","onClick","itemsType","action","actionLabel","actionVariant","actionIcon","actionLoading","width","size","alignLeft","multiSelect","scrollable","pinTopItem","maxHeight","className","useState","dropdownOpen","setDropdownOpen","selectedValues","setSelectedValues","focused","setFocused","buttonRef","useRef","handleValueSelect","values","handleKeyDown","e","current","contains","target","keyCode","preventDefault","click","useEffect","document","addEventListener","removeEventListener","renderIconButton","event","onValueUpdate"],"mappings":"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","sourcesContent":["/**\n * Import React libraries.\n */\nimport * as React from 'react';\n\n/**\n * Import custom components.\n */\nimport { IconButton } from '../Button';\nimport DropdownContent from './DropdownContent';\nimport styled from 'styled-components';\n\n/**\n * Import custom types.\n */\nimport { DropdownButtonProps } from './DropdownButtonTypes';\n\nconst Wrapper = styled.div`\n position: relative;\n display: inline-block;\n`;\n\nconst DropdownButton = ({ \n items, \n icon, \n disabled,\n onClick,\n itemsType = 'normal',\n action,\n actionLabel = '',\n actionVariant,\n actionIcon,\n actionLoading,\n width,\n size,\n alignLeft,\n multiSelect = false,\n scrollable = false,\n pinTopItem = false,\n maxHeight,\n className }: DropdownButtonProps) => {\n // Globally used variables within the view.\n const [dropdownOpen, setDropdownOpen] = React.useState<boolean>(false);\n const [selectedValues, setSelectedValues] = React.useState<string[]>([]);\n const [focused, setFocused] = React.useState<number | null>(null);\n const buttonRef = React.useRef<HTMLButtonElement>(null);\n\n const handleValueSelect = (values: string[]) => {\n // Do all required actions\n onClick(values);\n };\n\n \n const handleKeyDown = (e: any) => {\n if (buttonRef?.current && buttonRef.current.contains(e.target)) {\n if (e.keyCode === 13 || e.keyCode === 40 || e.keyCode === 32) {\n if(!dropdownOpen)\n setFocused(0);\n \n if(e.keyCode != 40)\n {\n e.preventDefault();\n buttonRef?.current.click();\n }\n }\n }\n };\n\n React.useEffect(() => {\n document.addEventListener('keydown', handleKeyDown);\n return () => {\n document.removeEventListener('keydown', handleKeyDown); \n };\n });\n\n /**\n * Renders Icon Button dropdown menu.\n * @returns HTML View for the Icon button dropdown menu.\n */\n const renderIconButton = () => {\n return (\n <IconButton ref={buttonRef} variant=\"secondary\" shape=\"circular\" action={(event: any) => \n {\n if(!event) { //if no event details passed, then this means that user pressed 'enter'\n if(!dropdownOpen)\n setFocused(0);\n }\n setDropdownOpen(!dropdownOpen);\n }} disabled={disabled}>\n {icon}\n </IconButton>\n );\n };\n\n return (\n <Wrapper className={className}>\n {renderIconButton()}\n <DropdownContent\n customizationProps={{\n itemsType: itemsType,\n action: action ?? (() => {}),\n actionLabel: actionLabel,\n actionVariant: actionVariant,\n onValueUpdate: handleValueSelect,\n multiSelect: multiSelect,\n actionIcon: actionIcon,\n actionLoading: actionLoading,\n scrollable: scrollable,\n pinTopItem: pinTopItem,\n maxHeight: maxHeight,\n items: items\n }}\n focused={focused}\n setFocused={setFocused}\n size={size}\n width={width}\n alignLeft={alignLeft}\n isOpen={dropdownOpen}\n setIsOpen={setDropdownOpen}\n hideOnClickOutside={true}\n filter=''\n selectedValues={itemsType == 'normal' ? [] : selectedValues}\n setSelectedValues={setSelectedValues}\n messageOnNoResults='No results'\n isButton={true}\n id='dropdown-content'\n />\n </Wrapper>\n );\n};\n\nexport default DropdownButton;\n"],"file":"DropdownButton.js"}
1
+ {"version":3,"sources":["../../src/Dropdown/DropdownButton.tsx"],"names":["React","IconButton","DropdownContent","styled","Wrapper","div","DropdownButton","items","icon","disabled","onClick","itemsType","action","actionLabel","actionVariant","actionIcon","actionLoading","width","size","alignLeft","multiSelect","scrollable","pinTopItem","maxHeight","className","useState","dropdownOpen","setDropdownOpen","selectedValues","setSelectedValues","focused","setFocused","handleValueSelect","values","handeKeyPress","e","key","renderIconButton","event","detail","onValueUpdate"],"mappings":"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","sourcesContent":["/**\n * Import React libraries.\n */\nimport * as React from 'react';\n\n/**\n * Import custom components.\n */\nimport {IconButton} from '../Button';\nimport DropdownContent from './DropdownContent';\nimport styled from 'styled-components';\n\n/**\n * Import custom types.\n */\nimport {DropdownButtonProps} from './DropdownButtonTypes';\n\nconst Wrapper = styled.div`\n position: relative;\n display: inline-block;\n`;\n\nconst DropdownButton = ({\n items,\n icon,\n disabled,\n onClick,\n itemsType = 'normal',\n action,\n actionLabel = '',\n actionVariant,\n actionIcon,\n actionLoading,\n width,\n size,\n alignLeft,\n multiSelect = false,\n scrollable = false,\n pinTopItem = false,\n maxHeight,\n className\n }: DropdownButtonProps) => {\n // Globally used variables within the view.\n const [dropdownOpen, setDropdownOpen] = React.useState<boolean>(false);\n const [selectedValues, setSelectedValues] = React.useState<string[]>([]);\n const [focused, setFocused] = React.useState<number | null>(null);\n\n const handleValueSelect = (values: string[]) => {\n // Do all required actions\n onClick(values);\n };\n\n\n const handeKeyPress = (e: React.KeyboardEvent<any>) => {\n if (e.key === 'Enter' || e.key === ' ') {\n if (!dropdownOpen) {\n setFocused(0);\n }\n setDropdownOpen(!dropdownOpen);\n }\n };\n\n /**\n * Renders Icon Button dropdown menu.\n * @returns HTML View for the Icon button dropdown menu.\n */\n const renderIconButton = () => {\n return (\n <IconButton variant=\"secondary\"\n shape=\"circular\"\n onKeyPress={handeKeyPress}\n action={(event: any) => {\n if (event?.detail === 1) { // Only if the click is triggered by a mouse click this will be one\n setDropdownOpen(!dropdownOpen);\n }\n }}\n disabled={disabled}>\n {icon}\n </IconButton>\n );\n };\n\n return (\n <Wrapper className={className}>\n {renderIconButton()}\n <DropdownContent\n customizationProps={{\n itemsType: itemsType,\n action: action ?? (() => {\n }),\n actionLabel: actionLabel,\n actionVariant: actionVariant,\n onValueUpdate: handleValueSelect,\n multiSelect: multiSelect,\n actionIcon: actionIcon,\n actionLoading: actionLoading,\n scrollable: scrollable,\n pinTopItem: pinTopItem,\n maxHeight: maxHeight,\n items: items\n }}\n focused={focused}\n setFocused={setFocused}\n size={size}\n width={width}\n alignLeft={alignLeft}\n isOpen={dropdownOpen}\n setIsOpen={setDropdownOpen}\n hideOnClickOutside={true}\n filter=\"\"\n selectedValues={itemsType == 'normal' ? [] : selectedValues}\n setSelectedValues={setSelectedValues}\n messageOnNoResults=\"No results\"\n isButton={true}\n id=\"dropdown-content\"\n />\n </Wrapper>\n );\n};\n\nexport default DropdownButton;\n"],"file":"DropdownButton.js"}
@@ -57,10 +57,14 @@ var DDContainer = _styledComponents.default.div(_templateObject || (_templateObj
57
57
 
58
58
  exports.DDContainer = DDContainer;
59
59
 
60
- var ItemsContainer = _styledComponents.default.div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n > *:hover {\n z-index: ", ";\n }\n > *:active,\n > *.active{\n z-index: ", ";\n }\n > *:focus {\n z-index: ", ";\n }\n"])), _zIndexes.Z_INDEXES.hover, _zIndexes.Z_INDEXES.active, _zIndexes.Z_INDEXES.focus);
60
+ var ItemsContainer = _styledComponents.default.div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n > *:hover {\n z-index: ", ";\n }\n\n > *:active,\n > *.active {\n z-index: ", ";\n }\n\n > *:focus {\n z-index: ", ";\n }\n"])), _zIndexes.Z_INDEXES.hover, _zIndexes.Z_INDEXES.active, _zIndexes.Z_INDEXES.focus);
61
61
 
62
- var ListContainer = _styledComponents.default.div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n ", "\n ", "\n\n\n div.divider {\n display: block;\n width: calc(100% - 40px);\n margin-left: 16px;\n border-top: 1px solid #e5e5e5;\n position: absolute;\n top: 0px;\n }\n\n ", " {\n padding-top: ", ";\n padding-bottom: ", ";\n }\n\n /* width */\n ::-webkit-scrollbar {\n width: 4px;\n margin: 0 6px;\n cursor: pointer;\n }\n\n /* Track */\n ::-webkit-scrollbar-track {\n background: ", ";\n border-radius: 8px;\n }\n\n /* Handle */\n ::-webkit-scrollbar-thumb {\n background: ", ";\n border-radius: 8px;\n }\n\n /* Handle on hover */\n ::-webkit-scrollbar-thumb:hover {\n background: ", ";\n }\n"])), function (props) {
62
+ var ListContainer = _styledComponents.default.div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n ", "\n ", "\n ", "\n ", "\n div.divider {\n display: block;\n width: calc(100% - 40px);\n margin-left: 16px;\n border-top: 1px solid #e5e5e5;\n position: absolute;\n top: 0px;\n }\n\n ", " {\n padding-top: ", ";\n padding-bottom: ", ";\n\n word-break: break-word;\n }\n\n /* width */\n\n ::-webkit-scrollbar {\n width: 4px;\n cursor: pointer;\n }\n\n /* Track */\n\n ::-webkit-scrollbar-track {\n background: ", ";\n border-radius: 8px;\n }\n\n /* Handle */\n\n ::-webkit-scrollbar-thumb {\n background: ", ";\n border-radius: 8px;\n }\n\n /* Handle on hover */\n\n ::-webkit-scrollbar-thumb:hover {\n background: ", ";\n }\n"])), function (props) {
63
63
  return props.scrollable ? 'overflow-y: scroll;' : '';
64
+ }, function (props) {
65
+ return props.scrollable ? 'margin-right: 6px;' : '';
66
+ }, function (props) {
67
+ return props.scrollable ? 'padding-right: 6px;' : '';
64
68
  }, function (props) {
65
69
  return props.itemsType != 'normal' ? 'margin-left: 4px;' : '';
66
70
  }, ItemsContainer, function (props) {
@@ -93,8 +97,12 @@ var DividerContainer = _styledComponents.default.div(_templateObject5 || (_templ
93
97
 
94
98
  var TopItemContainer = _styledComponents.default.div(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2.default)(["\n border-bottom-style: solid;\n border-bottom-color: ", ";\n border-bottom-width: 1px;\n margin-right: 22px;\n"])), _styles.COLORS.neutral_200);
95
99
 
96
- var ActionButtonContainer = _styledComponents.default.div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2.default)(["\n border-top-style: solid;\n border-top-color: ", ";\n border-top-width: 1px;\n \n padding: ", ";\n\n button {\n width: 100%;\n }\n"])), _styles.COLORS.neutral_200, function (props) {
97
- return props.size == _types.Size.Small || !props.size ? '0px 16px' : '8px 16px';
100
+ var ActionButtonContainer = _styledComponents.default.div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2.default)(["\n ", "\n ", "\n\n padding: ", ";\n\n button {\n width: 100%;\n }\n"])), function (props) {
101
+ return props.scrollable ? "border-top: 1px solid ".concat(_styles.COLORS.neutral_200, ";") : '';
102
+ }, function (props) {
103
+ return props.scrollable ? 'margin-top: 4px;' : '';
104
+ }, function (props) {
105
+ return props.size === _types.Size.Small || !props.size ? '4px 16px 0px' : props.size === _types.Size.Medium ? '12px 16px 8px' : '16px 16px 12px';
98
106
  });
99
107
 
100
108
  var MAX_MENU_HEIGHT = 240;
@@ -163,7 +171,7 @@ var DropdownContent = function DropdownContent(_ref) {
163
171
 
164
172
  var handleKeyDown = function handleKeyDown(e) {
165
173
  if (isOpen) {
166
- if (e.keyCode === 38) {
174
+ if (e.key === 'ArrowUp' || e.key === 'Up') {
167
175
  e.preventDefault();
168
176
  var focusedNow = focused;
169
177
 
@@ -181,7 +189,7 @@ var DropdownContent = function DropdownContent(_ref) {
181
189
  }
182
190
  setNewFocusedElement(focusedNow);
183
191
  }
184
- } else if (e.keyCode === 40) {
192
+ } else if (e.key === 'ArrowDown' || e.key === 'Down') {
185
193
  e.preventDefault();
186
194
  var focusedNow = focused;
187
195
 
@@ -201,12 +209,12 @@ var DropdownContent = function DropdownContent(_ref) {
201
209
  }
202
210
 
203
211
  setNewFocusedElement(focusedNow);
204
- } else if (e.keyCode === 9) {
212
+ } else if (e.key === 'Tab') {
205
213
  e.preventDefault();
206
214
  var focusedNow = focused;
207
215
 
208
216
  if (focusedNow !== undefined && focusedNow !== null) {
209
- focusedNow++;
217
+ e.shiftKey ? focusedNow-- : focusedNow++;
210
218
  var newFocusedElement = document.getElementById("".concat(id, "_").concat(focusedNow));
211
219
 
212
220
  if (!newFocusedElement) {
@@ -217,7 +225,7 @@ var DropdownContent = function DropdownContent(_ref) {
217
225
  } else {
218
226
  setFocused(null);
219
227
  }
220
- } else if (e.keyCode === 27) {
228
+ } else if (e.key === 'Escape' || e.key === 'Esc') {
221
229
  setIsOpen(false);
222
230
  setFocused(null); //TODO: add onEscapehandler
223
231
 
@@ -313,13 +321,13 @@ var DropdownContent = function DropdownContent(_ref) {
313
321
  if (isOpen && (focused || focused === 0)) {
314
322
  var _newFocusedElement$cu2;
315
323
 
316
- var focusThis = focused == 0 && !haveTopItem() ? 1 : focused;
317
- if (focusThis != focused) setFocused(focusThis);
324
+ var focusThis = focused === 0 && !haveTopItem() ? 1 : focused;
325
+ if (focusThis !== focused) setFocused(focusThis);
318
326
  var newFocusedElement = elRefs[focusThis];
319
327
  newFocusedElement === null || newFocusedElement === void 0 ? void 0 : (_newFocusedElement$cu2 = newFocusedElement.current) === null || _newFocusedElement$cu2 === void 0 ? void 0 : _newFocusedElement$cu2.focus();
320
328
  } else setFocused(null); //if the dropdown is closed, we don't to keep saved the focused item
321
329
 
322
- }, [isOpen]);
330
+ }, [isOpen, focused]);
323
331
 
324
332
  var handleItemClick = function handleItemClick(selected, item) {
325
333
  var newValue = [];
@@ -496,6 +504,7 @@ var DropdownContent = function DropdownContent(_ref) {
496
504
  }), customizationProps.pinTopItem && getTopItem(), getElements()]
497
505
  }), customizationProps.action && customizationProps.actionLabel && /*#__PURE__*/(0, _jsxRuntime.jsx)(ActionButtonContainer, {
498
506
  size: size,
507
+ scrollable: customizationProps.scrollable,
499
508
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, {
500
509
  width: "100%",
501
510
  icon: customizationProps.actionIcon,