@laerdal/life-react-components 1.9.3 → 1.9.4-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.
- package/dist/Button/Button.cjs +3 -3
- package/dist/Button/Button.cjs.map +1 -1
- package/dist/Button/Button.js +3 -3
- package/dist/Button/Button.js.map +1 -1
- package/dist/Dropdown/DropdownContent.cjs +10 -11
- package/dist/Dropdown/DropdownContent.cjs.map +1 -1
- package/dist/Dropdown/DropdownContent.js +10 -11
- package/dist/Dropdown/DropdownContent.js.map +1 -1
- package/dist/InputFields/NumberField.cjs +4 -4
- package/dist/InputFields/NumberField.cjs.map +1 -1
- package/dist/InputFields/NumberField.js +4 -4
- package/dist/InputFields/NumberField.js.map +1 -1
- package/dist/List/ListRow.cjs +24 -3
- package/dist/List/ListRow.cjs.map +1 -1
- package/dist/List/ListRow.d.ts +3 -0
- package/dist/List/ListRow.js +22 -3
- package/dist/List/ListRow.js.map +1 -1
- package/dist/Modals/ModalDialog.cjs +1 -0
- package/dist/Modals/ModalDialog.cjs.map +1 -1
- package/dist/Modals/ModalDialog.js +1 -0
- package/dist/Modals/ModalDialog.js.map +1 -1
- package/package.json +1 -1
package/dist/Button/Button.cjs
CHANGED
|
@@ -60,7 +60,7 @@ var getBorderRadius = function getBorderRadius(flatEdge, radius) {
|
|
|
60
60
|
}
|
|
61
61
|
};
|
|
62
62
|
|
|
63
|
-
var Primary = _styledComponents.default.button(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n border: none;\n background-color: transparent;\n cursor: pointer;\n padding: 0;\n margin: 0;\n position: relative;\n box-sizing: border-box;\n min-height: ", ";\n &.loading-state {\n cursor: wait;\n }\n div.button-content {\n ", ";\n\n background-color: ", ";\n border-radius: ", ";\n border-width: 2px;\n border-style: solid;\n border-color: ", ";\n\n width: ", ";\n position: relative;\n\n min-height: ", ";\n min-width: ", ";\n\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 4px;\n
|
|
63
|
+
var Primary = _styledComponents.default.button(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n border: none;\n background-color: transparent;\n cursor: pointer;\n padding: 0;\n margin: 0;\n position: relative;\n box-sizing: border-box;\n min-height: ", ";\n &.loading-state {\n cursor: wait;\n }\n div.button-content {\n ", ";\n\n background-color: ", ";\n border-radius: ", ";\n border-width: 2px;\n border-style: solid;\n border-color: ", ";\n\n width: ", ";\n position: relative;\n\n min-height: ", ";\n min-width: ", ";\n\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 4px;\n padding: ", ";\n\n span.loading {\n opacity: 0;\n }\n\n .icon {\n margin: ", ";\n width: ", ";\n height: ", ";\n svg {\n width: ", " !important;\n height: ", " !important;\n }\n }\n\n .label {\n margin: 0 4px;\n }\n\n div {\n position: absolute;\n width: 100%;\n svg {\n height: ", ";\n width: ", ";\n path {\n fill: ", ";\n }\n }\n }\n }\n &:hover > div.button-content,\n &.hover-state > div.button-content {\n background-color: ", ";\n border-color: ", ";\n color: ", ";\n }\n &:active > div.button-content,\n &.active-state > div.button-content {\n background-color: ", ";\n border-color: ", ";\n color: ", ";\n }\n\n &:focus,\n &.focus-state {\n ", "\n }\n &:disabled,\n &.disabled-state {\n cursor: not-allowed;\n }\n &:disabled > div.button-content,\n &.disabled-state > div.button-content {\n pointer-events: none;\n background-color: ", ";\n color: ", ";\n border-color: ", ";\n }\n"])), function (props) {
|
|
64
64
|
return props.size === _types.Size.Large ? '56px' : '48px';
|
|
65
65
|
}, function (props) {
|
|
66
66
|
return props.size === _types.Size.Large ? (0, _typography.ComponentLStyling)(_typography.ComponentTextStyle.Bold, (props === null || props === void 0 ? void 0 : props.colorTheme) === 'dark' ? _styles.COLORS.primary_800 : _styles.COLORS.white) : props.size === _types.Size.Small ? (0, _typography.ComponentSStyling)(_typography.ComponentTextStyle.Bold, (props === null || props === void 0 ? void 0 : props.colorTheme) === 'dark' ? _styles.COLORS.primary_800 : _styles.COLORS.white) : (0, _typography.ComponentMStyling)(_typography.ComponentTextStyle.Bold, (props === null || props === void 0 ? void 0 : props.colorTheme) === 'dark' ? _styles.COLORS.primary_800 : _styles.COLORS.white);
|
|
@@ -77,9 +77,9 @@ var Primary = _styledComponents.default.button(_templateObject || (_templateObje
|
|
|
77
77
|
}, function (props) {
|
|
78
78
|
return props.minWidth;
|
|
79
79
|
}, function (props) {
|
|
80
|
-
return props.size === _types.Size.Large ? '14px
|
|
80
|
+
return props.size === _types.Size.Large ? '14px 16px' : props.size === _types.Size.Small ? '6px 8px' : '8px 12px';
|
|
81
81
|
}, function (props) {
|
|
82
|
-
return props.size === _types.Size.Medium ? props.iconOnly ? '-2px -8px' : '
|
|
82
|
+
return props.size === _types.Size.Medium ? props.iconOnly ? '-2px -8px' : '' : props.size === _types.Size.Small ? props.iconOnly ? '-2px -6px' : '' : '-2px -8px';
|
|
83
83
|
}, function (props) {
|
|
84
84
|
return props.size === _types.Size.Large ? '28px' : props.size === _types.Size.Small ? '20px' : '24px';
|
|
85
85
|
}, function (props) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Button/Button.tsx"],"names":["getBorderRadius","flatEdge","radius","Primary","styled","button","props","size","Size","Large","ComponentTextStyle","Bold","colorTheme","COLORS","primary_800","white","Small","accent1","primary","width","minWidth","Medium","iconOnly","accent1_700","primary_100","primary_700","primary_600","accent1_800","primary_200","invertFocus","undefined","invertedFocusStyles","focusStyles","neutral_100","neutral_300","Secondary","primary_300","Tertiary","primary_500","accent1_20","primary_20","accent1_100","Positive","correct_500","correct_700","correct_800","Critical","critical_500","critical_700","critical_800","Button","React","forwardRef","ref","children","variant","type","testId","disabled","icon","loading","renderProps","renderContent","ButtonStyled","className","defaultOnMouseDownHandler","role","title"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport styled, { css } from 'styled-components';\nimport { LoadingIndicator } from '../LoadingIndicator';\nimport { ComponentLStyling, ComponentMStyling, ComponentSStyling, ComponentTextStyle } from '../styles/typography';\nimport {COLORS, focusStyles, invertedFocusStyles} from '../styles';\nimport { Size } from '../types';\nimport {defaultOnMouseDownHandler} from '../common';\n\nconst getBorderRadius = (flatEdge : string | undefined, radius: number) => {\n switch(flatEdge)\n {\n case 'left':\n return `0px ${radius}px ${radius}px 0px`;\n \n case 'right':\n return `${radius}px 0px 0px ${radius}px`;\n\n case 'none':\n default:\n return `${radius}px`;\n }\n}\n\nconst Primary = styled.button<ButtonProps>`\n border: none;\n background-color: transparent;\n cursor: pointer;\n padding: 0;\n margin: 0;\n position: relative;\n box-sizing: border-box;\n min-height: ${(props) => (props.size === Size.Large ? '56px' : '48px')};\n &.loading-state {\n cursor: wait;\n }\n div.button-content {\n ${(props) =>\n props.size === Size.Large\n ? ComponentLStyling(ComponentTextStyle.Bold, props?.colorTheme === 'dark' ? COLORS.primary_800 : COLORS.white)\n : props.size === Size.Small\n ? ComponentSStyling(ComponentTextStyle.Bold, props?.colorTheme === 'dark' ? COLORS.primary_800 : COLORS.white)\n : ComponentMStyling(ComponentTextStyle.Bold, props?.colorTheme === 'dark' ? COLORS.primary_800 : COLORS.white)};\n\n background-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : props?.colorTheme === 'dark' ? COLORS.white : COLORS.primary)};\n border-radius: ${props => getBorderRadius(props.flatEdge, 8)};\n border-width: 2px;\n border-style: solid;\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : props?.colorTheme === 'dark' ? COLORS.white : COLORS.primary)};\n\n width: ${(props) => props.width};\n position: relative;\n\n min-height: ${(props) => (props.size === Size.Large ? '56px' : props.size === Size.Small ? '32px' : '40px')};\n min-width: ${props => props.minWidth};\n\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 4px;\n // paddings have -2px for border\n padding: ${(props) => (props.size === Size.Large ? '14px 18px' : props.size === Size.Small ? '4px 10px' : '6px 14px')};\n\n span.loading {\n opacity: 0;\n }\n .icon {\n margin: ${(props) => (props.size === Size.Medium ? props.iconOnly ? '-2px -8px' : '-2px -4px' : (props.size === Size.Small ? props.iconOnly ? '-2px -6px' : '-2px -4px' : '-2px -8px' ))};\n width: ${(props) => (props.size === Size.Large ? '28px' : props.size === Size.Small ? '20px' : '24px')};\n height: ${(props) => (props.size === Size.Large ? '28px' : props.size === Size.Small ? '20px' : '24px')};\n svg {\n width: ${(props) => (props.size === Size.Large ? '28px' : props.size === Size.Small ? '20px' : '24px')} !important;\n height: ${(props) => (props.size === Size.Large ? '28px' : props.size === Size.Small ? '20px' : '24px')} !important;\n }\n }\n\n .extramargin {\n margin-right: 4px;\n }\n\n div {\n position: absolute;\n width: 100%;\n svg {\n height: ${(props) => (props.size === Size.Large ? '28px' : props.size === Size.Small ? '20px' : '24px')};\n width: ${(props) => (props.size === Size.Large ? '28px' : props.size === Size.Small ? '20px' : '24px')};\n path {\n fill: ${(props) => (props.colorTheme === 'dark' ? COLORS.primary : COLORS.white)};\n }\n }\n }\n }\n &:hover > div.button-content,\n &.hover-state > div.button-content {\n background-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : props?.colorTheme === 'dark' ? COLORS.primary_100 : COLORS.primary_700)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : props?.colorTheme === 'dark' ? COLORS.primary_100 : COLORS.primary_700)};\n color: ${(props) => (props?.colorTheme === 'dark' ? COLORS.primary_600 : COLORS.white)};\n }\n &:active > div.button-content,\n &.active-state > div.button-content {\n background-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : props?.colorTheme === 'dark' ? COLORS.primary_200 : COLORS.primary_800)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : props?.colorTheme === 'dark' ? COLORS.primary_200 : COLORS.primary_800)};\n color: ${(props) => (props?.colorTheme === 'dark' ? COLORS.primary_800 : COLORS.white)};\n }\n\n &:focus,\n &.focus-state {\n ${props => props.invertFocus || (props.invertFocus === undefined && props.colorTheme === 'dark') ? invertedFocusStyles : focusStyles}\n }\n &:disabled,\n &.disabled-state {\n cursor: not-allowed;\n }\n &:disabled > div.button-content,\n &.disabled-state > div.button-content {\n pointer-events: none;\n background-color: ${(props) => (props.colorTheme === 'dark' ? COLORS.primary_700 : COLORS.neutral_100)};\n color: ${(props) => (props.colorTheme === 'dark' ? COLORS.primary_800 : COLORS.neutral_300)};\n border-color: ${(props) => (props.colorTheme === 'dark' ? COLORS.primary_700 : COLORS.neutral_100)};\n }\n`;\n\nconst Secondary = styled(Primary)<ButtonProps>`\n div.button-content {\n color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : props?.colorTheme === 'dark' ? COLORS.white : COLORS.primary)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : props?.colorTheme === 'dark' ? COLORS.white : COLORS.primary)};\n background-color: transparent;\n div svg path {\n fill: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : COLORS.primary)};\n }\n }\n\n &:hover > div.button-content,\n &.hover-state > div.button-content {\n color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : props?.colorTheme === 'dark' ? COLORS.primary_200 : COLORS.primary_700)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : props?.colorTheme === 'dark' ? COLORS.primary_200 : COLORS.primary_700)};\n background-color: transparent;\n div {\n svg {\n path {\n fill: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : COLORS.primary_700)};\n }\n }\n }\n }\n &:active > div.button-content,\n &.active-state > div.button-content {\n color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : props?.colorTheme === 'dark' ? COLORS.primary_300 : COLORS.primary_800)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : props?.colorTheme === 'dark' ? COLORS.primary_300 : COLORS.primary_800)};\n background-color: transparent;\n div {\n svg {\n path {\n fill: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : props?.colorTheme === 'dark' ? COLORS.white : COLORS.primary_800)};\n }\n }\n }\n }\n\n &:disabled > div.button-content,\n &.disabled-state > div.button-content {\n background-color: transparent;\n color: ${(props) => (props?.colorTheme === 'dark' ? COLORS.primary_700 : COLORS.neutral_300)};\n border-color: ${(props) => (props?.colorTheme === 'dark' ? COLORS.primary_700 : COLORS.neutral_100)};\n }\n`;\n\nconst Tertiary = styled(Primary)<ButtonProps>`\n div.button-content {\n color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : COLORS.primary_500)};\n border-color: transparent;\n background-color: transparent;\n border-width: 1px;\n div svg path {\n fill: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : COLORS.primary)};\n }\n }\n &:hover > div.button-content,\n &.hover-state > div.button-content {\n background-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_20 : COLORS.primary_20)};\n color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : COLORS.primary_700)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_20 : COLORS.primary_20)};\n div {\n svg {\n path {\n fill: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : COLORS.primary_700)};\n }\n }\n }\n }\n &:active > div.button-content,\n &.active-state > div.button-content {\n background-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_100 : COLORS.primary_100)};\n color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : COLORS.primary_800)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_100 : COLORS.primary_100)};\n div {\n svg {\n path {\n fill: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : COLORS.primary_800)};\n }\n }\n }\n }\n\n &:disabled > div.button-content,\n &.disabled-state > div.button-content {\n background-color: white !important;\n color: ${COLORS.neutral_300};\n border-color: transparent !important;\n }\n`;\n\nconst Positive = styled(Primary)<ButtonProps>`\n div.button-content {\n color: white;\n border-color: ${COLORS.correct_500};\n background-color: ${COLORS.correct_500};\n }\n &:hover > div.button-content,\n &.hover-state > div.button-content {\n border-color: ${COLORS.correct_700};\n background-color: ${COLORS.correct_700};\n }\n &:active > div.button-content,\n &.active-state > div.button-content {\n border-color: ${COLORS.correct_800};\n background-color: ${COLORS.correct_800};\n }\n\n &:disabled > div.button-content,\n &.disabled-state > div.button-content {\n background-color: ${COLORS.neutral_100};\n color: ${COLORS.neutral_300};\n border-color: ${COLORS.neutral_100};\n }\n`;\n\nconst Critical = styled(Primary)<ButtonProps>`\n div.button-content {\n color: white;\n border-color: ${COLORS.critical_500};\n background-color: ${COLORS.critical_500};\n }\n &:hover > div.button-content,\n &.hover-state > div.button-content {\n border-color: ${COLORS.critical_700};\n background-color: ${COLORS.critical_700};\n }\n &:active > div.button-content,\n &.active-state > div.button-content {\n border-color: ${COLORS.critical_800};\n background-color: ${COLORS.critical_800};\n }\n\n &:disabled > div.button-content,\n &.disabled-state > div.button-content {\n background-color: ${COLORS.neutral_100};\n color: ${COLORS.neutral_300};\n border-color: ${COLORS.neutral_100};\n }\n`;\n\nexport interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n variant?: 'primary' | 'secondary' | 'tertiary' | 'positive' | 'critical';\n flatEdge?: 'right' | 'left' | 'none' | undefined;\n role?: 'button' | string;\n title?: string;\n size?: Size;\n colorTheme?: 'teal' | 'dark';\n invertFocus?: boolean;\n width?: 'auto' | string;\n loading?: boolean;\n testId?: string;\n icon?: React.ReactNode;\n minWidth?: string;\n iconOnly?: boolean;\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>( ({\n children = '',\n variant = 'primary',\n type = 'button',\n size = Size.Medium,\n width = 'auto',\n minWidth = '64px',\n testId,\n disabled,\n flatEdge,\n icon,\n ...props\n}, ref) => {\n // Let's filter out properties that we don't need to render.\n const { loading, ...renderProps } = props;\n\n const renderContent = () => (\n <>\n {icon && <span className={(children ? 'extramargin ' : '') + (loading ? 'icon loading' : 'icon')}>{icon}</span>}\n {children && <span className={loading ? 'label loading' : 'label'}>{children}</span>}\n {loading && <LoadingIndicator/>}\n </>\n );\n\n let ButtonStyled = Primary;\n switch(variant)\n {\n case 'secondary':\n ButtonStyled = Secondary;\n break;\n case 'tertiary':\n ButtonStyled = Tertiary;\n break;\n case 'positive':\n ButtonStyled = Positive;\n break;\n case 'critical':\n ButtonStyled = Critical;\n break;\n }\n\n return (\n <ButtonStyled\n {...renderProps}\n ref={ref}\n disabled={disabled}\n iconOnly={!children}\n type={type}\n size={size}\n flatEdge={flatEdge}\n width={width}\n minWidth={minWidth}\n data-testid={testId}\n className={props.loading ? 'loading-state ' + props.className : ' ' + props.className}\n onMouseDown={defaultOnMouseDownHandler}>\n <div className=\"button-content\">{renderContent()}</div>\n </ButtonStyled>\n );\n});\n\nexport default Button;\n"],"file":"Button.cjs"}
|
|
1
|
+
{"version":3,"sources":["../../src/Button/Button.tsx"],"names":["getBorderRadius","flatEdge","radius","Primary","styled","button","props","size","Size","Large","ComponentTextStyle","Bold","colorTheme","COLORS","primary_800","white","Small","accent1","primary","width","minWidth","Medium","iconOnly","accent1_700","primary_100","primary_700","primary_600","accent1_800","primary_200","invertFocus","undefined","invertedFocusStyles","focusStyles","neutral_100","neutral_300","Secondary","primary_300","Tertiary","primary_500","accent1_20","primary_20","accent1_100","Positive","correct_500","correct_700","correct_800","Critical","critical_500","critical_700","critical_800","Button","React","forwardRef","ref","children","variant","type","testId","disabled","icon","loading","renderProps","renderContent","ButtonStyled","className","defaultOnMouseDownHandler","role","title"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport styled, { css } from 'styled-components';\nimport { LoadingIndicator } from '../LoadingIndicator';\nimport { ComponentLStyling, ComponentMStyling, ComponentSStyling, ComponentTextStyle } from '../styles/typography';\nimport {COLORS, focusStyles, invertedFocusStyles} from '../styles';\nimport { Size } from '../types';\nimport {defaultOnMouseDownHandler} from '../common';\n\nconst getBorderRadius = (flatEdge : string | undefined, radius: number) => {\n switch(flatEdge)\n {\n case 'left':\n return `0px ${radius}px ${radius}px 0px`;\n \n case 'right':\n return `${radius}px 0px 0px ${radius}px`;\n\n case 'none':\n default:\n return `${radius}px`;\n }\n}\n\nconst Primary = styled.button<ButtonProps>`\n border: none;\n background-color: transparent;\n cursor: pointer;\n padding: 0;\n margin: 0;\n position: relative;\n box-sizing: border-box;\n min-height: ${(props) => (props.size === Size.Large ? '56px' : '48px')};\n &.loading-state {\n cursor: wait;\n }\n div.button-content {\n ${(props) =>\n props.size === Size.Large\n ? ComponentLStyling(ComponentTextStyle.Bold, props?.colorTheme === 'dark' ? COLORS.primary_800 : COLORS.white)\n : props.size === Size.Small\n ? ComponentSStyling(ComponentTextStyle.Bold, props?.colorTheme === 'dark' ? COLORS.primary_800 : COLORS.white)\n : ComponentMStyling(ComponentTextStyle.Bold, props?.colorTheme === 'dark' ? COLORS.primary_800 : COLORS.white)};\n\n background-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : props?.colorTheme === 'dark' ? COLORS.white : COLORS.primary)};\n border-radius: ${props => getBorderRadius(props.flatEdge, 8)};\n border-width: 2px;\n border-style: solid;\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : props?.colorTheme === 'dark' ? COLORS.white : COLORS.primary)};\n\n width: ${(props) => props.width};\n position: relative;\n\n min-height: ${(props) => (props.size === Size.Large ? '56px' : props.size === Size.Small ? '32px' : '40px')};\n min-width: ${props => props.minWidth};\n\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 4px;\n padding: ${(props) => (props.size === Size.Large ? '14px 16px' : props.size === Size.Small ? '6px 8px' : '8px 12px')};\n\n span.loading {\n opacity: 0;\n }\n\n .icon {\n margin: ${(props) => (props.size === Size.Medium ? props.iconOnly ? '-2px -8px' : '' : (props.size === Size.Small ? props.iconOnly ? '-2px -6px' : '' : '-2px -8px' ))};\n width: ${(props) => (props.size === Size.Large ? '28px' : props.size === Size.Small ? '20px' : '24px')};\n height: ${(props) => (props.size === Size.Large ? '28px' : props.size === Size.Small ? '20px' : '24px')};\n svg {\n width: ${(props) => (props.size === Size.Large ? '28px' : props.size === Size.Small ? '20px' : '24px')} !important;\n height: ${(props) => (props.size === Size.Large ? '28px' : props.size === Size.Small ? '20px' : '24px')} !important;\n }\n }\n\n .label {\n margin: 0 4px;\n }\n\n div {\n position: absolute;\n width: 100%;\n svg {\n height: ${(props) => (props.size === Size.Large ? '28px' : props.size === Size.Small ? '20px' : '24px')};\n width: ${(props) => (props.size === Size.Large ? '28px' : props.size === Size.Small ? '20px' : '24px')};\n path {\n fill: ${(props) => (props.colorTheme === 'dark' ? COLORS.primary : COLORS.white)};\n }\n }\n }\n }\n &:hover > div.button-content,\n &.hover-state > div.button-content {\n background-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : props?.colorTheme === 'dark' ? COLORS.primary_100 : COLORS.primary_700)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : props?.colorTheme === 'dark' ? COLORS.primary_100 : COLORS.primary_700)};\n color: ${(props) => (props?.colorTheme === 'dark' ? COLORS.primary_600 : COLORS.white)};\n }\n &:active > div.button-content,\n &.active-state > div.button-content {\n background-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : props?.colorTheme === 'dark' ? COLORS.primary_200 : COLORS.primary_800)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : props?.colorTheme === 'dark' ? COLORS.primary_200 : COLORS.primary_800)};\n color: ${(props) => (props?.colorTheme === 'dark' ? COLORS.primary_800 : COLORS.white)};\n }\n\n &:focus,\n &.focus-state {\n ${props => props.invertFocus || (props.invertFocus === undefined && props.colorTheme === 'dark') ? invertedFocusStyles : focusStyles}\n }\n &:disabled,\n &.disabled-state {\n cursor: not-allowed;\n }\n &:disabled > div.button-content,\n &.disabled-state > div.button-content {\n pointer-events: none;\n background-color: ${(props) => (props.colorTheme === 'dark' ? COLORS.primary_700 : COLORS.neutral_100)};\n color: ${(props) => (props.colorTheme === 'dark' ? COLORS.primary_800 : COLORS.neutral_300)};\n border-color: ${(props) => (props.colorTheme === 'dark' ? COLORS.primary_700 : COLORS.neutral_100)};\n }\n`;\n\nconst Secondary = styled(Primary)<ButtonProps>`\n div.button-content {\n color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : props?.colorTheme === 'dark' ? COLORS.white : COLORS.primary)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : props?.colorTheme === 'dark' ? COLORS.white : COLORS.primary)};\n background-color: transparent;\n div svg path {\n fill: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : COLORS.primary)};\n }\n }\n\n &:hover > div.button-content,\n &.hover-state > div.button-content {\n color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : props?.colorTheme === 'dark' ? COLORS.primary_200 : COLORS.primary_700)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : props?.colorTheme === 'dark' ? COLORS.primary_200 : COLORS.primary_700)};\n background-color: transparent;\n div {\n svg {\n path {\n fill: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : COLORS.primary_700)};\n }\n }\n }\n }\n &:active > div.button-content,\n &.active-state > div.button-content {\n color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : props?.colorTheme === 'dark' ? COLORS.primary_300 : COLORS.primary_800)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : props?.colorTheme === 'dark' ? COLORS.primary_300 : COLORS.primary_800)};\n background-color: transparent;\n div {\n svg {\n path {\n fill: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : props?.colorTheme === 'dark' ? COLORS.white : COLORS.primary_800)};\n }\n }\n }\n }\n\n &:disabled > div.button-content,\n &.disabled-state > div.button-content {\n background-color: transparent;\n color: ${(props) => (props?.colorTheme === 'dark' ? COLORS.primary_700 : COLORS.neutral_300)};\n border-color: ${(props) => (props?.colorTheme === 'dark' ? COLORS.primary_700 : COLORS.neutral_100)};\n }\n`;\n\nconst Tertiary = styled(Primary)<ButtonProps>`\n div.button-content {\n color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : COLORS.primary_500)};\n border-color: transparent;\n background-color: transparent;\n border-width: 1px;\n div svg path {\n fill: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : COLORS.primary)};\n }\n }\n &:hover > div.button-content,\n &.hover-state > div.button-content {\n background-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_20 : COLORS.primary_20)};\n color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : COLORS.primary_700)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_20 : COLORS.primary_20)};\n div {\n svg {\n path {\n fill: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : COLORS.primary_700)};\n }\n }\n }\n }\n &:active > div.button-content,\n &.active-state > div.button-content {\n background-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_100 : COLORS.primary_100)};\n color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : COLORS.primary_800)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_100 : COLORS.primary_100)};\n div {\n svg {\n path {\n fill: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : COLORS.primary_800)};\n }\n }\n }\n }\n\n &:disabled > div.button-content,\n &.disabled-state > div.button-content {\n background-color: white !important;\n color: ${COLORS.neutral_300};\n border-color: transparent !important;\n }\n`;\n\nconst Positive = styled(Primary)<ButtonProps>`\n div.button-content {\n color: white;\n border-color: ${COLORS.correct_500};\n background-color: ${COLORS.correct_500};\n }\n &:hover > div.button-content,\n &.hover-state > div.button-content {\n border-color: ${COLORS.correct_700};\n background-color: ${COLORS.correct_700};\n }\n &:active > div.button-content,\n &.active-state > div.button-content {\n border-color: ${COLORS.correct_800};\n background-color: ${COLORS.correct_800};\n }\n\n &:disabled > div.button-content,\n &.disabled-state > div.button-content {\n background-color: ${COLORS.neutral_100};\n color: ${COLORS.neutral_300};\n border-color: ${COLORS.neutral_100};\n }\n`;\n\nconst Critical = styled(Primary)<ButtonProps>`\n div.button-content {\n color: white;\n border-color: ${COLORS.critical_500};\n background-color: ${COLORS.critical_500};\n }\n &:hover > div.button-content,\n &.hover-state > div.button-content {\n border-color: ${COLORS.critical_700};\n background-color: ${COLORS.critical_700};\n }\n &:active > div.button-content,\n &.active-state > div.button-content {\n border-color: ${COLORS.critical_800};\n background-color: ${COLORS.critical_800};\n }\n\n &:disabled > div.button-content,\n &.disabled-state > div.button-content {\n background-color: ${COLORS.neutral_100};\n color: ${COLORS.neutral_300};\n border-color: ${COLORS.neutral_100};\n }\n`;\n\nexport interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n variant?: 'primary' | 'secondary' | 'tertiary' | 'positive' | 'critical';\n flatEdge?: 'right' | 'left' | 'none' | undefined;\n role?: 'button' | string;\n title?: string;\n size?: Size;\n colorTheme?: 'teal' | 'dark';\n invertFocus?: boolean;\n width?: 'auto' | string;\n loading?: boolean;\n testId?: string;\n icon?: React.ReactNode;\n minWidth?: string;\n iconOnly?: boolean;\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>( ({\n children = '',\n variant = 'primary',\n type = 'button',\n size = Size.Medium,\n width = 'auto',\n minWidth = '64px',\n testId,\n disabled,\n flatEdge,\n icon,\n ...props\n}, ref) => {\n // Let's filter out properties that we don't need to render.\n const { loading, ...renderProps } = props;\n\n const renderContent = () => (\n <>\n {icon && <span className={(children ? 'extramargin ' : '') + (loading ? 'icon loading' : 'icon')}>{icon}</span>}\n {children && <span className={loading ? 'label loading' : 'label'}>{children}</span>}\n {loading && <LoadingIndicator/>}\n </>\n );\n\n let ButtonStyled = Primary;\n switch(variant)\n {\n case 'secondary':\n ButtonStyled = Secondary;\n break;\n case 'tertiary':\n ButtonStyled = Tertiary;\n break;\n case 'positive':\n ButtonStyled = Positive;\n break;\n case 'critical':\n ButtonStyled = Critical;\n break;\n }\n\n return (\n <ButtonStyled\n {...renderProps}\n ref={ref}\n disabled={disabled}\n iconOnly={!children}\n type={type}\n size={size}\n flatEdge={flatEdge}\n width={width}\n minWidth={minWidth}\n data-testid={testId}\n className={props.loading ? 'loading-state ' + props.className : ' ' + props.className}\n onMouseDown={defaultOnMouseDownHandler}>\n <div className=\"button-content\">{renderContent()}</div>\n </ButtonStyled>\n );\n});\n\nexport default Button;\n"],"file":"Button.cjs"}
|
package/dist/Button/Button.js
CHANGED
|
@@ -36,7 +36,7 @@ var getBorderRadius = function getBorderRadius(flatEdge, radius) {
|
|
|
36
36
|
}
|
|
37
37
|
};
|
|
38
38
|
|
|
39
|
-
var Primary = styled.button(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n border: none;\n background-color: transparent;\n cursor: pointer;\n padding: 0;\n margin: 0;\n position: relative;\n box-sizing: border-box;\n min-height: ", ";\n &.loading-state {\n cursor: wait;\n }\n div.button-content {\n ", ";\n\n background-color: ", ";\n border-radius: ", ";\n border-width: 2px;\n border-style: solid;\n border-color: ", ";\n\n width: ", ";\n position: relative;\n\n min-height: ", ";\n min-width: ", ";\n\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 4px;\n
|
|
39
|
+
var Primary = styled.button(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n border: none;\n background-color: transparent;\n cursor: pointer;\n padding: 0;\n margin: 0;\n position: relative;\n box-sizing: border-box;\n min-height: ", ";\n &.loading-state {\n cursor: wait;\n }\n div.button-content {\n ", ";\n\n background-color: ", ";\n border-radius: ", ";\n border-width: 2px;\n border-style: solid;\n border-color: ", ";\n\n width: ", ";\n position: relative;\n\n min-height: ", ";\n min-width: ", ";\n\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 4px;\n padding: ", ";\n\n span.loading {\n opacity: 0;\n }\n\n .icon {\n margin: ", ";\n width: ", ";\n height: ", ";\n svg {\n width: ", " !important;\n height: ", " !important;\n }\n }\n\n .label {\n margin: 0 4px;\n }\n\n div {\n position: absolute;\n width: 100%;\n svg {\n height: ", ";\n width: ", ";\n path {\n fill: ", ";\n }\n }\n }\n }\n &:hover > div.button-content,\n &.hover-state > div.button-content {\n background-color: ", ";\n border-color: ", ";\n color: ", ";\n }\n &:active > div.button-content,\n &.active-state > div.button-content {\n background-color: ", ";\n border-color: ", ";\n color: ", ";\n }\n\n &:focus,\n &.focus-state {\n ", "\n }\n &:disabled,\n &.disabled-state {\n cursor: not-allowed;\n }\n &:disabled > div.button-content,\n &.disabled-state > div.button-content {\n pointer-events: none;\n background-color: ", ";\n color: ", ";\n border-color: ", ";\n }\n"])), function (props) {
|
|
40
40
|
return props.size === Size.Large ? '56px' : '48px';
|
|
41
41
|
}, function (props) {
|
|
42
42
|
return props.size === Size.Large ? ComponentLStyling(ComponentTextStyle.Bold, (props === null || props === void 0 ? void 0 : props.colorTheme) === 'dark' ? COLORS.primary_800 : COLORS.white) : props.size === Size.Small ? ComponentSStyling(ComponentTextStyle.Bold, (props === null || props === void 0 ? void 0 : props.colorTheme) === 'dark' ? COLORS.primary_800 : COLORS.white) : ComponentMStyling(ComponentTextStyle.Bold, (props === null || props === void 0 ? void 0 : props.colorTheme) === 'dark' ? COLORS.primary_800 : COLORS.white);
|
|
@@ -53,9 +53,9 @@ var Primary = styled.button(_templateObject || (_templateObject = _taggedTemplat
|
|
|
53
53
|
}, function (props) {
|
|
54
54
|
return props.minWidth;
|
|
55
55
|
}, function (props) {
|
|
56
|
-
return props.size === Size.Large ? '14px
|
|
56
|
+
return props.size === Size.Large ? '14px 16px' : props.size === Size.Small ? '6px 8px' : '8px 12px';
|
|
57
57
|
}, function (props) {
|
|
58
|
-
return props.size === Size.Medium ? props.iconOnly ? '-2px -8px' : '
|
|
58
|
+
return props.size === Size.Medium ? props.iconOnly ? '-2px -8px' : '' : props.size === Size.Small ? props.iconOnly ? '-2px -6px' : '' : '-2px -8px';
|
|
59
59
|
}, function (props) {
|
|
60
60
|
return props.size === Size.Large ? '28px' : props.size === Size.Small ? '20px' : '24px';
|
|
61
61
|
}, function (props) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Button/Button.tsx"],"names":["React","styled","LoadingIndicator","ComponentLStyling","ComponentMStyling","ComponentSStyling","ComponentTextStyle","COLORS","focusStyles","invertedFocusStyles","Size","defaultOnMouseDownHandler","getBorderRadius","flatEdge","radius","Primary","button","props","size","Large","Bold","colorTheme","primary_800","white","Small","accent1","primary","width","minWidth","Medium","iconOnly","accent1_700","primary_100","primary_700","primary_600","accent1_800","primary_200","invertFocus","undefined","neutral_100","neutral_300","Secondary","primary_300","Tertiary","primary_500","accent1_20","primary_20","accent1_100","Positive","correct_500","correct_700","correct_800","Critical","critical_500","critical_700","critical_800","Button","forwardRef","ref","children","variant","type","testId","disabled","icon","loading","renderProps","renderContent","ButtonStyled","className","role","title"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport styled, { css } from 'styled-components';\nimport { LoadingIndicator } from '../LoadingIndicator';\nimport { ComponentLStyling, ComponentMStyling, ComponentSStyling, ComponentTextStyle } from '../styles/typography';\nimport {COLORS, focusStyles, invertedFocusStyles} from '../styles';\nimport { Size } from '../types';\nimport {defaultOnMouseDownHandler} from '../common';\n\nconst getBorderRadius = (flatEdge : string | undefined, radius: number) => {\n switch(flatEdge)\n {\n case 'left':\n return `0px ${radius}px ${radius}px 0px`;\n \n case 'right':\n return `${radius}px 0px 0px ${radius}px`;\n\n case 'none':\n default:\n return `${radius}px`;\n }\n}\n\nconst Primary = styled.button<ButtonProps>`\n border: none;\n background-color: transparent;\n cursor: pointer;\n padding: 0;\n margin: 0;\n position: relative;\n box-sizing: border-box;\n min-height: ${(props) => (props.size === Size.Large ? '56px' : '48px')};\n &.loading-state {\n cursor: wait;\n }\n div.button-content {\n ${(props) =>\n props.size === Size.Large\n ? ComponentLStyling(ComponentTextStyle.Bold, props?.colorTheme === 'dark' ? COLORS.primary_800 : COLORS.white)\n : props.size === Size.Small\n ? ComponentSStyling(ComponentTextStyle.Bold, props?.colorTheme === 'dark' ? COLORS.primary_800 : COLORS.white)\n : ComponentMStyling(ComponentTextStyle.Bold, props?.colorTheme === 'dark' ? COLORS.primary_800 : COLORS.white)};\n\n background-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : props?.colorTheme === 'dark' ? COLORS.white : COLORS.primary)};\n border-radius: ${props => getBorderRadius(props.flatEdge, 8)};\n border-width: 2px;\n border-style: solid;\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : props?.colorTheme === 'dark' ? COLORS.white : COLORS.primary)};\n\n width: ${(props) => props.width};\n position: relative;\n\n min-height: ${(props) => (props.size === Size.Large ? '56px' : props.size === Size.Small ? '32px' : '40px')};\n min-width: ${props => props.minWidth};\n\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 4px;\n // paddings have -2px for border\n padding: ${(props) => (props.size === Size.Large ? '14px 18px' : props.size === Size.Small ? '4px 10px' : '6px 14px')};\n\n span.loading {\n opacity: 0;\n }\n .icon {\n margin: ${(props) => (props.size === Size.Medium ? props.iconOnly ? '-2px -8px' : '-2px -4px' : (props.size === Size.Small ? props.iconOnly ? '-2px -6px' : '-2px -4px' : '-2px -8px' ))};\n width: ${(props) => (props.size === Size.Large ? '28px' : props.size === Size.Small ? '20px' : '24px')};\n height: ${(props) => (props.size === Size.Large ? '28px' : props.size === Size.Small ? '20px' : '24px')};\n svg {\n width: ${(props) => (props.size === Size.Large ? '28px' : props.size === Size.Small ? '20px' : '24px')} !important;\n height: ${(props) => (props.size === Size.Large ? '28px' : props.size === Size.Small ? '20px' : '24px')} !important;\n }\n }\n\n .extramargin {\n margin-right: 4px;\n }\n\n div {\n position: absolute;\n width: 100%;\n svg {\n height: ${(props) => (props.size === Size.Large ? '28px' : props.size === Size.Small ? '20px' : '24px')};\n width: ${(props) => (props.size === Size.Large ? '28px' : props.size === Size.Small ? '20px' : '24px')};\n path {\n fill: ${(props) => (props.colorTheme === 'dark' ? COLORS.primary : COLORS.white)};\n }\n }\n }\n }\n &:hover > div.button-content,\n &.hover-state > div.button-content {\n background-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : props?.colorTheme === 'dark' ? COLORS.primary_100 : COLORS.primary_700)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : props?.colorTheme === 'dark' ? COLORS.primary_100 : COLORS.primary_700)};\n color: ${(props) => (props?.colorTheme === 'dark' ? COLORS.primary_600 : COLORS.white)};\n }\n &:active > div.button-content,\n &.active-state > div.button-content {\n background-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : props?.colorTheme === 'dark' ? COLORS.primary_200 : COLORS.primary_800)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : props?.colorTheme === 'dark' ? COLORS.primary_200 : COLORS.primary_800)};\n color: ${(props) => (props?.colorTheme === 'dark' ? COLORS.primary_800 : COLORS.white)};\n }\n\n &:focus,\n &.focus-state {\n ${props => props.invertFocus || (props.invertFocus === undefined && props.colorTheme === 'dark') ? invertedFocusStyles : focusStyles}\n }\n &:disabled,\n &.disabled-state {\n cursor: not-allowed;\n }\n &:disabled > div.button-content,\n &.disabled-state > div.button-content {\n pointer-events: none;\n background-color: ${(props) => (props.colorTheme === 'dark' ? COLORS.primary_700 : COLORS.neutral_100)};\n color: ${(props) => (props.colorTheme === 'dark' ? COLORS.primary_800 : COLORS.neutral_300)};\n border-color: ${(props) => (props.colorTheme === 'dark' ? COLORS.primary_700 : COLORS.neutral_100)};\n }\n`;\n\nconst Secondary = styled(Primary)<ButtonProps>`\n div.button-content {\n color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : props?.colorTheme === 'dark' ? COLORS.white : COLORS.primary)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : props?.colorTheme === 'dark' ? COLORS.white : COLORS.primary)};\n background-color: transparent;\n div svg path {\n fill: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : COLORS.primary)};\n }\n }\n\n &:hover > div.button-content,\n &.hover-state > div.button-content {\n color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : props?.colorTheme === 'dark' ? COLORS.primary_200 : COLORS.primary_700)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : props?.colorTheme === 'dark' ? COLORS.primary_200 : COLORS.primary_700)};\n background-color: transparent;\n div {\n svg {\n path {\n fill: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : COLORS.primary_700)};\n }\n }\n }\n }\n &:active > div.button-content,\n &.active-state > div.button-content {\n color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : props?.colorTheme === 'dark' ? COLORS.primary_300 : COLORS.primary_800)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : props?.colorTheme === 'dark' ? COLORS.primary_300 : COLORS.primary_800)};\n background-color: transparent;\n div {\n svg {\n path {\n fill: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : props?.colorTheme === 'dark' ? COLORS.white : COLORS.primary_800)};\n }\n }\n }\n }\n\n &:disabled > div.button-content,\n &.disabled-state > div.button-content {\n background-color: transparent;\n color: ${(props) => (props?.colorTheme === 'dark' ? COLORS.primary_700 : COLORS.neutral_300)};\n border-color: ${(props) => (props?.colorTheme === 'dark' ? COLORS.primary_700 : COLORS.neutral_100)};\n }\n`;\n\nconst Tertiary = styled(Primary)<ButtonProps>`\n div.button-content {\n color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : COLORS.primary_500)};\n border-color: transparent;\n background-color: transparent;\n border-width: 1px;\n div svg path {\n fill: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : COLORS.primary)};\n }\n }\n &:hover > div.button-content,\n &.hover-state > div.button-content {\n background-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_20 : COLORS.primary_20)};\n color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : COLORS.primary_700)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_20 : COLORS.primary_20)};\n div {\n svg {\n path {\n fill: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : COLORS.primary_700)};\n }\n }\n }\n }\n &:active > div.button-content,\n &.active-state > div.button-content {\n background-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_100 : COLORS.primary_100)};\n color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : COLORS.primary_800)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_100 : COLORS.primary_100)};\n div {\n svg {\n path {\n fill: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : COLORS.primary_800)};\n }\n }\n }\n }\n\n &:disabled > div.button-content,\n &.disabled-state > div.button-content {\n background-color: white !important;\n color: ${COLORS.neutral_300};\n border-color: transparent !important;\n }\n`;\n\nconst Positive = styled(Primary)<ButtonProps>`\n div.button-content {\n color: white;\n border-color: ${COLORS.correct_500};\n background-color: ${COLORS.correct_500};\n }\n &:hover > div.button-content,\n &.hover-state > div.button-content {\n border-color: ${COLORS.correct_700};\n background-color: ${COLORS.correct_700};\n }\n &:active > div.button-content,\n &.active-state > div.button-content {\n border-color: ${COLORS.correct_800};\n background-color: ${COLORS.correct_800};\n }\n\n &:disabled > div.button-content,\n &.disabled-state > div.button-content {\n background-color: ${COLORS.neutral_100};\n color: ${COLORS.neutral_300};\n border-color: ${COLORS.neutral_100};\n }\n`;\n\nconst Critical = styled(Primary)<ButtonProps>`\n div.button-content {\n color: white;\n border-color: ${COLORS.critical_500};\n background-color: ${COLORS.critical_500};\n }\n &:hover > div.button-content,\n &.hover-state > div.button-content {\n border-color: ${COLORS.critical_700};\n background-color: ${COLORS.critical_700};\n }\n &:active > div.button-content,\n &.active-state > div.button-content {\n border-color: ${COLORS.critical_800};\n background-color: ${COLORS.critical_800};\n }\n\n &:disabled > div.button-content,\n &.disabled-state > div.button-content {\n background-color: ${COLORS.neutral_100};\n color: ${COLORS.neutral_300};\n border-color: ${COLORS.neutral_100};\n }\n`;\n\nexport interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n variant?: 'primary' | 'secondary' | 'tertiary' | 'positive' | 'critical';\n flatEdge?: 'right' | 'left' | 'none' | undefined;\n role?: 'button' | string;\n title?: string;\n size?: Size;\n colorTheme?: 'teal' | 'dark';\n invertFocus?: boolean;\n width?: 'auto' | string;\n loading?: boolean;\n testId?: string;\n icon?: React.ReactNode;\n minWidth?: string;\n iconOnly?: boolean;\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>( ({\n children = '',\n variant = 'primary',\n type = 'button',\n size = Size.Medium,\n width = 'auto',\n minWidth = '64px',\n testId,\n disabled,\n flatEdge,\n icon,\n ...props\n}, ref) => {\n // Let's filter out properties that we don't need to render.\n const { loading, ...renderProps } = props;\n\n const renderContent = () => (\n <>\n {icon && <span className={(children ? 'extramargin ' : '') + (loading ? 'icon loading' : 'icon')}>{icon}</span>}\n {children && <span className={loading ? 'label loading' : 'label'}>{children}</span>}\n {loading && <LoadingIndicator/>}\n </>\n );\n\n let ButtonStyled = Primary;\n switch(variant)\n {\n case 'secondary':\n ButtonStyled = Secondary;\n break;\n case 'tertiary':\n ButtonStyled = Tertiary;\n break;\n case 'positive':\n ButtonStyled = Positive;\n break;\n case 'critical':\n ButtonStyled = Critical;\n break;\n }\n\n return (\n <ButtonStyled\n {...renderProps}\n ref={ref}\n disabled={disabled}\n iconOnly={!children}\n type={type}\n size={size}\n flatEdge={flatEdge}\n width={width}\n minWidth={minWidth}\n data-testid={testId}\n className={props.loading ? 'loading-state ' + props.className : ' ' + props.className}\n onMouseDown={defaultOnMouseDownHandler}>\n <div className=\"button-content\">{renderContent()}</div>\n </ButtonStyled>\n );\n});\n\nexport default Button;\n"],"file":"Button.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/Button/Button.tsx"],"names":["React","styled","LoadingIndicator","ComponentLStyling","ComponentMStyling","ComponentSStyling","ComponentTextStyle","COLORS","focusStyles","invertedFocusStyles","Size","defaultOnMouseDownHandler","getBorderRadius","flatEdge","radius","Primary","button","props","size","Large","Bold","colorTheme","primary_800","white","Small","accent1","primary","width","minWidth","Medium","iconOnly","accent1_700","primary_100","primary_700","primary_600","accent1_800","primary_200","invertFocus","undefined","neutral_100","neutral_300","Secondary","primary_300","Tertiary","primary_500","accent1_20","primary_20","accent1_100","Positive","correct_500","correct_700","correct_800","Critical","critical_500","critical_700","critical_800","Button","forwardRef","ref","children","variant","type","testId","disabled","icon","loading","renderProps","renderContent","ButtonStyled","className","role","title"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport styled, { css } from 'styled-components';\nimport { LoadingIndicator } from '../LoadingIndicator';\nimport { ComponentLStyling, ComponentMStyling, ComponentSStyling, ComponentTextStyle } from '../styles/typography';\nimport {COLORS, focusStyles, invertedFocusStyles} from '../styles';\nimport { Size } from '../types';\nimport {defaultOnMouseDownHandler} from '../common';\n\nconst getBorderRadius = (flatEdge : string | undefined, radius: number) => {\n switch(flatEdge)\n {\n case 'left':\n return `0px ${radius}px ${radius}px 0px`;\n \n case 'right':\n return `${radius}px 0px 0px ${radius}px`;\n\n case 'none':\n default:\n return `${radius}px`;\n }\n}\n\nconst Primary = styled.button<ButtonProps>`\n border: none;\n background-color: transparent;\n cursor: pointer;\n padding: 0;\n margin: 0;\n position: relative;\n box-sizing: border-box;\n min-height: ${(props) => (props.size === Size.Large ? '56px' : '48px')};\n &.loading-state {\n cursor: wait;\n }\n div.button-content {\n ${(props) =>\n props.size === Size.Large\n ? ComponentLStyling(ComponentTextStyle.Bold, props?.colorTheme === 'dark' ? COLORS.primary_800 : COLORS.white)\n : props.size === Size.Small\n ? ComponentSStyling(ComponentTextStyle.Bold, props?.colorTheme === 'dark' ? COLORS.primary_800 : COLORS.white)\n : ComponentMStyling(ComponentTextStyle.Bold, props?.colorTheme === 'dark' ? COLORS.primary_800 : COLORS.white)};\n\n background-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : props?.colorTheme === 'dark' ? COLORS.white : COLORS.primary)};\n border-radius: ${props => getBorderRadius(props.flatEdge, 8)};\n border-width: 2px;\n border-style: solid;\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : props?.colorTheme === 'dark' ? COLORS.white : COLORS.primary)};\n\n width: ${(props) => props.width};\n position: relative;\n\n min-height: ${(props) => (props.size === Size.Large ? '56px' : props.size === Size.Small ? '32px' : '40px')};\n min-width: ${props => props.minWidth};\n\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 4px;\n padding: ${(props) => (props.size === Size.Large ? '14px 16px' : props.size === Size.Small ? '6px 8px' : '8px 12px')};\n\n span.loading {\n opacity: 0;\n }\n\n .icon {\n margin: ${(props) => (props.size === Size.Medium ? props.iconOnly ? '-2px -8px' : '' : (props.size === Size.Small ? props.iconOnly ? '-2px -6px' : '' : '-2px -8px' ))};\n width: ${(props) => (props.size === Size.Large ? '28px' : props.size === Size.Small ? '20px' : '24px')};\n height: ${(props) => (props.size === Size.Large ? '28px' : props.size === Size.Small ? '20px' : '24px')};\n svg {\n width: ${(props) => (props.size === Size.Large ? '28px' : props.size === Size.Small ? '20px' : '24px')} !important;\n height: ${(props) => (props.size === Size.Large ? '28px' : props.size === Size.Small ? '20px' : '24px')} !important;\n }\n }\n\n .label {\n margin: 0 4px;\n }\n\n div {\n position: absolute;\n width: 100%;\n svg {\n height: ${(props) => (props.size === Size.Large ? '28px' : props.size === Size.Small ? '20px' : '24px')};\n width: ${(props) => (props.size === Size.Large ? '28px' : props.size === Size.Small ? '20px' : '24px')};\n path {\n fill: ${(props) => (props.colorTheme === 'dark' ? COLORS.primary : COLORS.white)};\n }\n }\n }\n }\n &:hover > div.button-content,\n &.hover-state > div.button-content {\n background-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : props?.colorTheme === 'dark' ? COLORS.primary_100 : COLORS.primary_700)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : props?.colorTheme === 'dark' ? COLORS.primary_100 : COLORS.primary_700)};\n color: ${(props) => (props?.colorTheme === 'dark' ? COLORS.primary_600 : COLORS.white)};\n }\n &:active > div.button-content,\n &.active-state > div.button-content {\n background-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : props?.colorTheme === 'dark' ? COLORS.primary_200 : COLORS.primary_800)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : props?.colorTheme === 'dark' ? COLORS.primary_200 : COLORS.primary_800)};\n color: ${(props) => (props?.colorTheme === 'dark' ? COLORS.primary_800 : COLORS.white)};\n }\n\n &:focus,\n &.focus-state {\n ${props => props.invertFocus || (props.invertFocus === undefined && props.colorTheme === 'dark') ? invertedFocusStyles : focusStyles}\n }\n &:disabled,\n &.disabled-state {\n cursor: not-allowed;\n }\n &:disabled > div.button-content,\n &.disabled-state > div.button-content {\n pointer-events: none;\n background-color: ${(props) => (props.colorTheme === 'dark' ? COLORS.primary_700 : COLORS.neutral_100)};\n color: ${(props) => (props.colorTheme === 'dark' ? COLORS.primary_800 : COLORS.neutral_300)};\n border-color: ${(props) => (props.colorTheme === 'dark' ? COLORS.primary_700 : COLORS.neutral_100)};\n }\n`;\n\nconst Secondary = styled(Primary)<ButtonProps>`\n div.button-content {\n color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : props?.colorTheme === 'dark' ? COLORS.white : COLORS.primary)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : props?.colorTheme === 'dark' ? COLORS.white : COLORS.primary)};\n background-color: transparent;\n div svg path {\n fill: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : COLORS.primary)};\n }\n }\n\n &:hover > div.button-content,\n &.hover-state > div.button-content {\n color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : props?.colorTheme === 'dark' ? COLORS.primary_200 : COLORS.primary_700)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : props?.colorTheme === 'dark' ? COLORS.primary_200 : COLORS.primary_700)};\n background-color: transparent;\n div {\n svg {\n path {\n fill: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : COLORS.primary_700)};\n }\n }\n }\n }\n &:active > div.button-content,\n &.active-state > div.button-content {\n color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : props?.colorTheme === 'dark' ? COLORS.primary_300 : COLORS.primary_800)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : props?.colorTheme === 'dark' ? COLORS.primary_300 : COLORS.primary_800)};\n background-color: transparent;\n div {\n svg {\n path {\n fill: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : props?.colorTheme === 'dark' ? COLORS.white : COLORS.primary_800)};\n }\n }\n }\n }\n\n &:disabled > div.button-content,\n &.disabled-state > div.button-content {\n background-color: transparent;\n color: ${(props) => (props?.colorTheme === 'dark' ? COLORS.primary_700 : COLORS.neutral_300)};\n border-color: ${(props) => (props?.colorTheme === 'dark' ? COLORS.primary_700 : COLORS.neutral_100)};\n }\n`;\n\nconst Tertiary = styled(Primary)<ButtonProps>`\n div.button-content {\n color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : COLORS.primary_500)};\n border-color: transparent;\n background-color: transparent;\n border-width: 1px;\n div svg path {\n fill: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1 : COLORS.primary)};\n }\n }\n &:hover > div.button-content,\n &.hover-state > div.button-content {\n background-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_20 : COLORS.primary_20)};\n color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : COLORS.primary_700)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_20 : COLORS.primary_20)};\n div {\n svg {\n path {\n fill: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_700 : COLORS.primary_700)};\n }\n }\n }\n }\n &:active > div.button-content,\n &.active-state > div.button-content {\n background-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_100 : COLORS.primary_100)};\n color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : COLORS.primary_800)};\n border-color: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_100 : COLORS.primary_100)};\n div {\n svg {\n path {\n fill: ${(props) => (props.colorTheme === 'teal' ? COLORS.accent1_800 : COLORS.primary_800)};\n }\n }\n }\n }\n\n &:disabled > div.button-content,\n &.disabled-state > div.button-content {\n background-color: white !important;\n color: ${COLORS.neutral_300};\n border-color: transparent !important;\n }\n`;\n\nconst Positive = styled(Primary)<ButtonProps>`\n div.button-content {\n color: white;\n border-color: ${COLORS.correct_500};\n background-color: ${COLORS.correct_500};\n }\n &:hover > div.button-content,\n &.hover-state > div.button-content {\n border-color: ${COLORS.correct_700};\n background-color: ${COLORS.correct_700};\n }\n &:active > div.button-content,\n &.active-state > div.button-content {\n border-color: ${COLORS.correct_800};\n background-color: ${COLORS.correct_800};\n }\n\n &:disabled > div.button-content,\n &.disabled-state > div.button-content {\n background-color: ${COLORS.neutral_100};\n color: ${COLORS.neutral_300};\n border-color: ${COLORS.neutral_100};\n }\n`;\n\nconst Critical = styled(Primary)<ButtonProps>`\n div.button-content {\n color: white;\n border-color: ${COLORS.critical_500};\n background-color: ${COLORS.critical_500};\n }\n &:hover > div.button-content,\n &.hover-state > div.button-content {\n border-color: ${COLORS.critical_700};\n background-color: ${COLORS.critical_700};\n }\n &:active > div.button-content,\n &.active-state > div.button-content {\n border-color: ${COLORS.critical_800};\n background-color: ${COLORS.critical_800};\n }\n\n &:disabled > div.button-content,\n &.disabled-state > div.button-content {\n background-color: ${COLORS.neutral_100};\n color: ${COLORS.neutral_300};\n border-color: ${COLORS.neutral_100};\n }\n`;\n\nexport interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n variant?: 'primary' | 'secondary' | 'tertiary' | 'positive' | 'critical';\n flatEdge?: 'right' | 'left' | 'none' | undefined;\n role?: 'button' | string;\n title?: string;\n size?: Size;\n colorTheme?: 'teal' | 'dark';\n invertFocus?: boolean;\n width?: 'auto' | string;\n loading?: boolean;\n testId?: string;\n icon?: React.ReactNode;\n minWidth?: string;\n iconOnly?: boolean;\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>( ({\n children = '',\n variant = 'primary',\n type = 'button',\n size = Size.Medium,\n width = 'auto',\n minWidth = '64px',\n testId,\n disabled,\n flatEdge,\n icon,\n ...props\n}, ref) => {\n // Let's filter out properties that we don't need to render.\n const { loading, ...renderProps } = props;\n\n const renderContent = () => (\n <>\n {icon && <span className={(children ? 'extramargin ' : '') + (loading ? 'icon loading' : 'icon')}>{icon}</span>}\n {children && <span className={loading ? 'label loading' : 'label'}>{children}</span>}\n {loading && <LoadingIndicator/>}\n </>\n );\n\n let ButtonStyled = Primary;\n switch(variant)\n {\n case 'secondary':\n ButtonStyled = Secondary;\n break;\n case 'tertiary':\n ButtonStyled = Tertiary;\n break;\n case 'positive':\n ButtonStyled = Positive;\n break;\n case 'critical':\n ButtonStyled = Critical;\n break;\n }\n\n return (\n <ButtonStyled\n {...renderProps}\n ref={ref}\n disabled={disabled}\n iconOnly={!children}\n type={type}\n size={size}\n flatEdge={flatEdge}\n width={width}\n minWidth={minWidth}\n data-testid={testId}\n className={props.loading ? 'loading-state ' + props.className : ' ' + props.className}\n onMouseDown={defaultOnMouseDownHandler}>\n <div className=\"button-content\">{renderContent()}</div>\n </ButtonStyled>\n );\n});\n\nexport default Button;\n"],"file":"Button.js"}
|
|
@@ -451,18 +451,17 @@ var DropdownContent = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref
|
|
|
451
451
|
});
|
|
452
452
|
};
|
|
453
453
|
|
|
454
|
-
var getElements = function getElements() {
|
|
454
|
+
var getElements = function getElements(messageOnNoResults, size) {
|
|
455
455
|
if (getFilteredItems().length === 0) {
|
|
456
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
456
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_MenuItem.default, {
|
|
457
|
+
item: {
|
|
458
|
+
value: messageOnNoResults,
|
|
459
|
+
disabled: true
|
|
460
|
+
},
|
|
457
461
|
size: size,
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
tabIndex: -1,
|
|
462
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
463
|
-
children: messageOnNoResults
|
|
464
|
-
})
|
|
465
|
-
})
|
|
462
|
+
id: "noResultsFound",
|
|
463
|
+
active: false,
|
|
464
|
+
onClickHandler: function onClickHandler(e) {}
|
|
466
465
|
});
|
|
467
466
|
}
|
|
468
467
|
|
|
@@ -547,7 +546,7 @@ var DropdownContent = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref
|
|
|
547
546
|
className: "divider"
|
|
548
547
|
})
|
|
549
548
|
})]
|
|
550
|
-
}), customizationProps.pinTopItem && getTopItem(), getElements()]
|
|
549
|
+
}), customizationProps.pinTopItem && getTopItem(), getElements(messageOnNoResults, size)]
|
|
551
550
|
}), customizationProps.action && customizationProps.actionLabel && /*#__PURE__*/(0, _jsxRuntime.jsx)(ActionButtonContainer, {
|
|
552
551
|
size: size,
|
|
553
552
|
scrollable: customizationProps.scrollable,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Dropdown/DropdownContent.tsx"],"names":["MAX_MENU_HEIGHT","AVG_OPTION_HEIGHT","OFFSET_BEFORE_SHOW","DDContainer","styled","div","COLORS","white","props","width","Z_INDEXES","dropdown","isButton","alignLeft","ButtonDropdownContentStyling","neutral_100","size","Size","Large","Medium","scrollable","maxHeight","ItemsContainer","hover","active","focus","ListContainer","itemsType","Small","MenuContentContainer","ComponentTextStyle","Bold","neutral_500","Regular","DividerContainer","TopItemContainer","neutral_200","ActionButtonContainer","DropdownContent","React","forwardRef","ref","id","customizationProps","isOpen","setIsOpen","filter","focused","setFocused","selectedValues","setSelectedValues","messageOnNoResults","outline","useState","isUp","setIsUp","locationDefined","setLocationDefined","dropdownContentRef","useRef","itemsListRef","actionButtonRef","determineDropUp","options","items","node","current","windowHeight","window","innerHeight","menuHeight","Math","min","length","instOffsetWithMenu","getBoundingClientRect","top","setNewFocusedElement","index","newFocusedElement","elRefs","oldFocusedElement","classList","remove","add","scrollIntoView","block","inline","getFilteredItems","filtrationString","toUpperCase","x","value","includes","displayLabel","findNextActiveIndex","direction","i","disabled","handleKeyDown","e","key","preventDefault","focusedNow","arrLength","haveTopItem","target","focusedElement","click","useEffect","document","addEventListener","removeEventListener","scrollPosition","handleScroll","scrollTop","useLayoutEffect","getCorrectRef","createRef","setElRefs","Array","fill","map","_","pinTopItem","multiSelect","getSuggestions","suggestion","elRef","blur","handleItemClick","selected","item","newValue","onValueUpdate","getTopItem","visibleItems","allSelected","some","y","showTopItem","suggestions","find","c","undefined","selectedFirst","newValues","stopPropagation","getElements","customContent","cls","menuContent","action","actionLabel","actionIcon","actionLoading","actionDisabled","actionVariant","noteLabel","showDividerAbove","locked","icon"],"mappings":"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","sourcesContent":["import React, {MutableRefObject} from 'react';\nimport styled, {css} from 'styled-components';\nimport Button from '../Button/Button';\nimport {Size} from '../types';\nimport {ButtonDropdownContentStyling} from './CommonStyling';\nimport {\n ComponentLStyling,\n ComponentXLStyling,\n ComponentMStyling,\n ComponentSStyling,\n ComponentTextStyle\n} from '../styles/typography';\nimport {COLORS, focusStyles, scrollBarStyling} from '../styles';\nimport {Checkbox, RadioButton} from '../InputFields';\nimport {Z_INDEXES} from '../styles/z-indexes';\nimport MenuItem from '../MenuItem/MenuItem';\nimport {defaultOnMouseDownHandler} from '../common';\n\nconst MAX_MENU_HEIGHT = 240;\nconst AVG_OPTION_HEIGHT = 48;\nconst OFFSET_BEFORE_SHOW = 1000000;\n\nexport const DDContainer = styled.div<{ isButton: boolean; width?: string; alignLeft?: boolean; size?: Size; scrollable?: boolean; maxHeight?: string }>`\n display: none;\n position: absolute;\n background-color: ${COLORS.white};\n\n width: ${(props) => (props.width ? props.width : '100%')};\n z-index: ${Z_INDEXES.dropdown};\n margin: ${(props) => (props.isButton ? '-4px' : '4px 0px')};\n\n &.show {\n display: flex;\n flex-direction: column;\n justify-content: center;\n }\n\n &.up {\n top: auto;\n bottom: 100%;\n }\n\n transform: translate(-${OFFSET_BEFORE_SHOW}px, -${OFFSET_BEFORE_SHOW}px);\n\n &.up,\n &.down {\n transform: translate(0, 0);\n }\n\n &.outline:focus:after {\n content: '';\n pointer-events: none;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n outline: 4px solid black;\n outline-offset: 2px;\n border-radius: 2px;\n }\n\n &:focus {\n outline: none;\n }\n\n ${(props) => (props.alignLeft ? 'left: 0px;' : '')}\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 padding: 4px 0px;\n\n min-width: ${(props) => (props.size == Size.Large ? '320px' : props.size == Size.Medium ? '280px' : '240px')};\n border-radius: ${(props) => (props.size == Size.Large ? '10px' : props.size == Size.Medium ? '8px' : '6px')};\n\n max-height: ${(props) => (!props.scrollable ? 'auto' : props.maxHeight ? props.maxHeight : props.size == Size.Large ? '320px' : props.size == Size.Medium ? '280px' : '240px')};\n\n`;\n\nconst ItemsContainer = styled.div<{ size?: Size }>`\n > *:hover {\n z-index: ${Z_INDEXES.hover};\n }\n\n > *:active,\n > *.active {\n z-index: ${Z_INDEXES.active};\n }\n\n > *:focus {\n z-index: ${Z_INDEXES.focus};\n }\n`;\n\nconst ListContainer = styled.div<{ scrollable?: boolean; size?: Size; itemsType?: string; outline?: boolean }>`\n ${(props) => (props.scrollable ? 'overflow-y: scroll;' : '')}\n ${(props) => (props.scrollable ? 'margin-right: 6px;' : '')}\n ${(props) => (props.scrollable ? 'padding-right: 6px;' : '')}\n ${(props) => (props.itemsType != 'normal' ? 'margin-left: 4px;' : '')}\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 ${ItemsContainer} {\n padding-top: ${props => props.size == Size.Large ? '8px' : props.size == Size.Medium ? '4px' : '0px'};\n padding-bottom: ${props => props.size == Size.Large ? '8px' : props.size == Size.Medium ? '4px' : '0px'};\n\n word-break: break-word;\n }\n\n *:focus {\n outline: none !important;\n }\n\n ${scrollBarStyling(Size.Small)}\n`;\n\n\nconst MenuContentContainer = styled.div<{ size?: Size }>`\n h1, h2, h3 {\n margin-block-start: 0px;\n margin-block-end: 0px;\n ${props => props.size == Size.Large && ComponentXLStyling(ComponentTextStyle.Bold, COLORS.neutral_500)}\n ${props => props.size == Size.Medium && ComponentLStyling(ComponentTextStyle.Bold, COLORS.neutral_500)}\n ${props => (props.size == Size.Small || !props.size) && ComponentMStyling(ComponentTextStyle.Bold, COLORS.neutral_500)}\n padding: ${props => props.size == Size.Small || !props.size ? '10px 16px 6px' :\n props.size == Size.Medium ? '16px 24px 8px' : '16px 32px 8px'};\n }\n\n p {\n margin-block-start: 0px;\n margin-block-end: 0px;\n ${props => props.size == Size.Large && ComponentLStyling(ComponentTextStyle.Regular, COLORS.neutral_500)}\n ${props => props.size == Size.Medium && ComponentMStyling(ComponentTextStyle.Regular, COLORS.neutral_500)}\n ${props => (props.size == Size.Small || !props.size) && ComponentSStyling(ComponentTextStyle.Regular, COLORS.neutral_500)}\n padding: ${props => props.size == Size.Small || !props.size ? '8px 16px' :\n props.size == Size.Medium ? '12px 24px' : '16px 32px'};\n }\n`;\n\nconst DividerContainer = styled.div<{ size?: Size }>`\n position: relative;\n\n margin-top: ${props => props.size == Size.Large ? '16px' :\n props.size == Size.Medium ? '12px' :\n (props.size == Size.Small || !props.size) ? '8px' : '6px'};\n\n div.divider {\n width: 100%;\n margin: 0px;\n }\n`;\n\nconst TopItemContainer = styled.div<{ size?: Size }>`\n border-bottom-style: solid;\n border-bottom-color: ${COLORS.neutral_200};\n border-bottom-width: 1px;\n margin-right: 22px;\n`;\n\nconst ActionButtonContainer = styled.div<{ size?: Size, scrollable?: boolean }>`\n ${(props) => (props.scrollable ? `border-top: 1px solid ${COLORS.neutral_200};` : '')}\n ${(props) => (props.scrollable ? 'margin-top: 4px;' : '')}\n\n padding: ${(props) => props.size === Size.Small || !props.size\n ? '4px 16px 0px'\n : props.size === Size.Medium\n ? '12px 16px 8px'\n : '16px 16px 12px'};\n\n button {\n width: 100%;\n }\n`;\n\n\nexport interface DropdownItem {\n value: string;\n displayLabel?: string;\n noteLabel?: string;\n suggestion?: boolean;\n showDividerAbove?: boolean;\n disabled?: boolean;\n locked?: boolean;\n icon?: React.ReactNode;\n customContent?: React.ReactNode;\n}\n\nexport interface DropdownCustomizationProps {\n itemsType?: 'radio' | 'checkbox' | 'normal';\n menuContent?: React.ReactNode;\n scrollable?: boolean;\n multiSelect?: boolean;\n maxHeight?: string;\n actionLabel?: string;\n actionVariant?: 'primary' | 'secondary' | 'tertiary' | undefined;\n actionIcon?: React.ReactNode;\n actionLoading?: boolean;\n actionDisabled?: boolean;\n action: () => boolean | void | undefined;\n pinTopItem?: boolean;\n onValueUpdate: (values: string[]) => boolean | void | undefined;\n items: DropdownItem[];\n}\n\nexport interface DropdownProps {\n isButton: boolean;\n customizationProps: DropdownCustomizationProps;\n alignLeft?: boolean;\n isOpen: boolean;\n setIsOpen: (open: boolean) => void;\n size?: Size;\n id: string;\n filter: string;\n width?: string;\n selectedValues: string[];\n setSelectedValues: (val: string[]) => void;\n messageOnNoResults: string;\n focused: number | null;\n setFocused: (focused: number | null) => void;\n outline?: boolean;\n}\n\nconst DropdownContent = React.forwardRef<HTMLDivElement, DropdownProps>(({\n id,\n customizationProps,\n alignLeft,\n isButton,\n size,\n isOpen,\n width,\n setIsOpen,\n filter,\n focused,\n setFocused,\n selectedValues,\n setSelectedValues,\n messageOnNoResults,\n outline\n }, ref) => {\n const [isUp, setIsUp] = React.useState<boolean>(false);\n const [locationDefined, setLocationDefined] = React.useState<boolean>(false);\n const dropdownContentRef = ref as MutableRefObject<HTMLDivElement> ?? React.useRef<HTMLDivElement>(null);\n\n if (!customizationProps.itemsType) customizationProps.itemsType = 'normal';\n if (!size) size = Size.Small;\n\n const itemsListRef = React.useRef<HTMLDivElement>(null);\n const actionButtonRef = React.useRef<HTMLButtonElement>(null);\n\n const determineDropUp = () => {\n const options = customizationProps.items;\n const node = dropdownContentRef.current;\n\n if (!node) return;\n\n const windowHeight = window.innerHeight;\n const menuHeight = Math.min(MAX_MENU_HEIGHT, options.length * AVG_OPTION_HEIGHT);\n const instOffsetWithMenu = node.getBoundingClientRect().top + menuHeight + OFFSET_BEFORE_SHOW;\n setIsUp(instOffsetWithMenu >= windowHeight);\n setLocationDefined(true);\n };\n\n const setNewFocusedElement = (index: number) => {\n if (outline) dropdownContentRef.current?.focus();\n\n const newFocusedElement = elRefs[index];\n const oldFocusedElement = focused || focused === 0 ? elRefs[focused] : null;\n if (newFocusedElement && newFocusedElement !== oldFocusedElement) {\n setFocused(index);\n oldFocusedElement?.current?.classList.remove('dropdown-hover');\n\n newFocusedElement.current?.classList.add('dropdown-hover');\n newFocusedElement.current?.scrollIntoView({\n block: 'nearest',\n inline: 'nearest'\n });\n }\n };\n\n const getFilteredItems = () => {\n const filtrationString = (filter ?? '').toUpperCase();\n return customizationProps.items.filter((x) => x?.value?.toUpperCase().includes(filtrationString) || x?.displayLabel?.toUpperCase().includes(filtrationString));\n };\n\n const findNextActiveIndex = (index: number, direction: number, items: DropdownItem[]) => {\n for (let i = index + direction; i > 0 && i <= items.length; i += direction) {\n if (!items[i - 1]?.disabled) {\n return i;\n }\n }\n\n return index;\n }\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (isOpen) {\n if (e.key === 'ArrowUp' || e.key === 'Up') {\n e.preventDefault();\n let focusedNow = focused || focused === 0 ? focused : arrLength + 1;\n if (!!focusedNow) {\n\n focusedNow =\n focusedNow === 1 && haveTopItem()\n ? 0\n : findNextActiveIndex(focusedNow, -1, getFilteredItems());\n\n setNewFocusedElement(focusedNow);\n }\n } else if (e.key === 'ArrowDown' || e.key === 'Down') {\n e.preventDefault();\n let focusedNow = focused;\n\n focusedNow =\n !!focusedNow || focusedNow === 0\n ? findNextActiveIndex(focusedNow, 1, getFilteredItems())\n : haveTopItem() ? 0 : 1;\n\n setNewFocusedElement(focusedNow);\n } else if (e.key === 'Escape' || e.key === 'Esc') {\n setIsOpen(false);\n setFocused(null);\n } else if ((e.key === 'Enter' || e.key === ' ') && focused !== null && e.target !== actionButtonRef?.current) {\n e.preventDefault();\n const focusedElement = elRefs[focused];\n if (focusedElement) {\n focusedElement.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 const scrollPosition = React.useRef<number | undefined>(0);\n const handleScroll = () => {\n scrollPosition.current = itemsListRef.current?.scrollTop;\n };\n React.useLayoutEffect(() => {\n if (itemsListRef.current) itemsListRef.current.scrollTop = scrollPosition.current ?? 0;\n }, [selectedValues]);\n\n const getCorrectRef = (ref: React.RefObject<HTMLElement>): React.RefObject<HTMLElement> => {\n switch (customizationProps.itemsType) {\n case 'normal':\n return (ref as React.RefObject<HTMLButtonElement>) || React.createRef<HTMLButtonElement>();\n default:\n return (ref as React.RefObject<HTMLDivElement>) || React.createRef<HTMLDivElement>();\n }\n };\n\n const arrLength = getFilteredItems().length;\n const [elRefs, setElRefs] = React.useState<React.RefObject<HTMLElement>[]>([]);\n\n React.useEffect(() => {\n if (elRefs?.length !== arrLength) {\n setFocused(null);\n }\n\n setElRefs((elRefs) =>\n Array(arrLength + 1)\n .fill(null)\n .map((_, i) => getCorrectRef(elRefs[i])),\n );\n }, [isOpen, arrLength]);\n\n React.useLayoutEffect(() => {\n isOpen && !locationDefined && determineDropUp();\n }, [isOpen, locationDefined]);\n\n const haveTopItem = () => {\n if (!customizationProps.pinTopItem) return false;\n\n if (customizationProps.itemsType === 'radio' && selectedValues && selectedValues?.length > 0) return true;\n else if (customizationProps.itemsType === 'checkbox' && (customizationProps.multiSelect || selectedValues?.length > 0)) return true;\n else if (customizationProps.itemsType === 'normal' && getSuggestions()?.length > 0) return true;\n return false;\n };\n\n const getSuggestions = () => {\n return getFilteredItems().filter((x) => x.suggestion);\n };\n\n /**\n * when dropdown opens set correct position of focused item\n * */\n React.useLayoutEffect(() => {\n if (isOpen && (focused || focused === 0)) {\n setNewFocusedElement(focused === 0 && !haveTopItem() ? 1 : focused);\n }\n }, [isOpen, focused]);\n\n /**\n * Reset dropdown content state on close\n * */\n React.useEffect(() => {\n if (!isOpen) {\n setLocationDefined(false);\n for (let elRef of elRefs) {\n elRef.current?.classList.remove('dropdown-hover');\n\n }\n setFocused(null);\n dropdownContentRef.current?.classList.remove('outline');\n dropdownContentRef.current?.blur();\n } else {\n if (outline) {\n dropdownContentRef.current?.classList.add('outline');\n dropdownContentRef.current?.focus();\n }\n }\n }, [isOpen, dropdownContentRef, focused, outline]);\n\n /**\n * Scroll item container to top when dropdown opens\n * */\n React.useEffect(() => {\n if (isOpen && itemsListRef.current) {\n itemsListRef.current.scrollTop = 0;\n }\n }, [isOpen]);\n\n\n const handleItemClick = (selected: boolean, item: DropdownItem) => {\n let newValue: string[] = [];\n if (customizationProps.multiSelect) {\n if (selected) newValue = [...selectedValues, item.value];\n else newValue = selectedValues.filter((x) => x != item.value);\n } else newValue = selected ? [item.value] : [];\n\n setSelectedValues(newValue);\n if (customizationProps.onValueUpdate && customizationProps.onValueUpdate(newValue)) {\n setIsOpen(false);\n }\n };\n\n const getTopItem = () => {\n if (!customizationProps.pinTopItem) return;\n const visibleItems = getFilteredItems();\n const allSelected = selectedValues?.filter((x) => visibleItems.some((y) => y.value == x)).length == visibleItems.length;\n let showTopItem = false;\n const suggestions = getSuggestions();\n const displayLabel = selectedValues[0] ? customizationProps.items?.find((c) => c.value === selectedValues[0])?.displayLabel : undefined;\n if (customizationProps.itemsType == 'radio' && selectedValues && selectedValues?.length > 0) showTopItem = true;\n else if (customizationProps.itemsType == 'checkbox' && (customizationProps.multiSelect || selectedValues?.length > 0)) showTopItem = true;\n else if (customizationProps.itemsType == 'normal' && suggestions.length > 0) showTopItem = true;\n\n if (!showTopItem) return;\n\n const selectedFirst = selectedValues.length > 0 ? visibleItems.find(x => x.value == selectedValues[0]) : null;\n\n return (\n <TopItemContainer size={size}>\n {customizationProps.itemsType === 'radio' && (\n <RadioButton\n ref={elRefs[0] as React.RefObject<HTMLDivElement>}\n iconPointerEventsTransparent={true}\n tabIndexVal={-1}\n className={`${focused === 0 ? 'dropdown-hover' : ''}`}\n select={() => {\n }}\n label={selectedFirst?.displayLabel ?? selectedFirst?.value}\n size={size}\n id={`${id}_topitem`}\n selected={true}\n />\n )}\n {customizationProps.itemsType === 'checkbox' && (\n <Checkbox\n ref={elRefs[0] as React.RefObject<HTMLDivElement>}\n tabIndexVal={-1}\n className={`${focused === 0 ? 'dropdown-hover' : ''}`}\n select={(selected: boolean) => {\n if (!customizationProps.multiSelect) return;\n\n const newValues = selected ? visibleItems.map((x) => x.value) : [];\n setSelectedValues(newValues);\n if (customizationProps.onValueUpdate && customizationProps.onValueUpdate(newValues))\n setIsOpen(false);\n }}\n iconPointerEventsTransparent={true}\n semiSelected={customizationProps.multiSelect && !allSelected && selectedValues?.length > 0}\n size={size}\n id={`${id}_checkbox_selectall`}\n label={customizationProps.multiSelect ? 'Select all' : (selectedFirst?.displayLabel ?? selectedFirst?.value)}\n selected={!customizationProps.multiSelect || allSelected}\n />\n )}\n {customizationProps.itemsType === 'normal' && (\n <>\n {suggestions.map((x) => (\n <MenuItem\n key={`${id}_topitem_${x.value}`}\n item={x}\n size={size}\n active={false}\n tabIndex={-1}\n className={`${focused === 0 ? 'dropdown-hover' : ''}`}\n ref={elRefs[0] as React.RefObject<HTMLButtonElement>}\n id={`${id}_topitem`}\n onClickHandler={(e: any) => {\n e.stopPropagation();\n customizationProps.onValueUpdate([x.value]);\n setSelectedValues([x.value]);\n setIsOpen(false);\n setFocused(null);\n }}/>\n ))}\n </>\n )}\n </TopItemContainer>\n );\n };\n\n const getElements = () => {\n if (getFilteredItems().length === 0) {\n return (\n <ItemsContainer size={size}>\n <button className=\"dropdownButton\" disabled tabIndex={-1}>\n <span>{messageOnNoResults}</span>\n </button>\n </ItemsContainer>\n );\n }\n return (\n <ItemsContainer size={size}>\n {getFilteredItems()\n .filter((x) => x && (customizationProps.itemsType != 'normal' || !x.suggestion))\n .map((item, index) => {\n return (\n <React.Fragment key={`key_${id}_${item.value}`}>\n {item.customContent}\n {!item.customContent && customizationProps.itemsType == 'radio' && (\n <RadioButton\n select={(selected: boolean) => handleItemClick(selected, item)}\n ref={elRefs[index + 1] as React.RefObject<HTMLDivElement>}\n size={size}\n tabIndexVal={-1}\n className={`${index + 1 === focused ? 'dropdown-hover' : ''}`}\n iconPointerEventsTransparent={true}\n disabled={item?.disabled}\n key={`key_${id}_${index + 1}`}\n id={`${id}_${index + 1}`}\n label={item.displayLabel ?? item.value}\n selected={selectedValues?.includes(item.value)}\n />\n )}\n {!item.customContent && customizationProps.itemsType == 'checkbox' && (\n <Checkbox\n select={(selected: boolean) => handleItemClick(selected, item)}\n iconPointerEventsTransparent={true}\n disabled={item?.disabled}\n className={`${index + 1 === focused ? 'dropdown-hover' : ''}`}\n ref={elRefs[index + 1] as React.RefObject<HTMLDivElement>}\n size={size}\n tabIndexVal={-1}\n key={`key_${id}_${index + 1}`}\n id={`${id}_${index + 1}`}\n label={item.displayLabel ?? item.value}\n selected={selectedValues?.includes(item.value)}\n />\n )}\n {!item.customContent && (customizationProps.itemsType == 'normal' || !customizationProps.itemsType) && (\n <MenuItem\n key={`key_${id}_${index + 1}`}\n id={`${id}_${index + 1}`}\n item={item}\n tabIndex={-1}\n className={`${index + 1 === focused ? 'dropdown-hover' : ''}`}\n size={size}\n active={selectedValues?.includes(item.value)}\n ref={elRefs[index + 1] as React.RefObject<HTMLButtonElement>}\n onClickHandler={(e: any) => {\n e.stopPropagation();\n customizationProps.onValueUpdate([item.value]);\n setSelectedValues([item.value]);\n setIsOpen(false);\n setFocused(null);\n }}/>\n )}\n </React.Fragment>\n );\n })}\n </ItemsContainer>\n );\n };\n\n const cls = `${isOpen ? 'show' : ''} ${isOpen && outline ? 'outline' : ''} ${locationDefined ? isUp ? 'up' : 'down' : ''}`\n\n return (\n <DDContainer\n ref={dropdownContentRef}\n size={size}\n width={width}\n tabIndex={-1}\n isButton={isButton}\n alignLeft={alignLeft}\n scrollable={customizationProps.scrollable}\n maxHeight={customizationProps.maxHeight}\n className={cls}>\n <ListContainer size={size}\n itemsType={customizationProps.itemsType}\n onScroll={handleScroll}\n ref={itemsListRef}\n outline={outline}\n scrollable={customizationProps.scrollable}>\n {customizationProps.menuContent &&\n <MenuContentContainer size={size}>\n {customizationProps.menuContent}\n <DividerContainer size={size}>\n <div className=\"divider\"/>\n </DividerContainer>\n </MenuContentContainer>}\n {customizationProps.pinTopItem && getTopItem()}\n {getElements()}\n </ListContainer>\n {customizationProps.action && customizationProps.actionLabel && (\n <ActionButtonContainer size={size} scrollable={customizationProps.scrollable}>\n <Button width=\"100%\"\n icon={customizationProps.actionIcon}\n ref={actionButtonRef}\n loading={customizationProps.actionLoading}\n disabled={customizationProps.actionDisabled}\n variant={customizationProps.actionVariant ?? 'primary'}\n size={size}\n onClick={() => customizationProps.action() && setIsOpen(false)}>\n {customizationProps.actionLabel}\n </Button>\n </ActionButtonContainer>\n )}\n </DDContainer>\n );\n});\n\nexport default DropdownContent;\n\n"],"file":"DropdownContent.cjs"}
|
|
1
|
+
{"version":3,"sources":["../../src/Dropdown/DropdownContent.tsx"],"names":["MAX_MENU_HEIGHT","AVG_OPTION_HEIGHT","OFFSET_BEFORE_SHOW","DDContainer","styled","div","COLORS","white","props","width","Z_INDEXES","dropdown","isButton","alignLeft","ButtonDropdownContentStyling","neutral_100","size","Size","Large","Medium","scrollable","maxHeight","ItemsContainer","hover","active","focus","ListContainer","itemsType","Small","MenuContentContainer","ComponentTextStyle","Bold","neutral_500","Regular","DividerContainer","TopItemContainer","neutral_200","ActionButtonContainer","DropdownContent","React","forwardRef","ref","id","customizationProps","isOpen","setIsOpen","filter","focused","setFocused","selectedValues","setSelectedValues","messageOnNoResults","outline","useState","isUp","setIsUp","locationDefined","setLocationDefined","dropdownContentRef","useRef","itemsListRef","actionButtonRef","determineDropUp","options","items","node","current","windowHeight","window","innerHeight","menuHeight","Math","min","length","instOffsetWithMenu","getBoundingClientRect","top","setNewFocusedElement","index","newFocusedElement","elRefs","oldFocusedElement","classList","remove","add","scrollIntoView","block","inline","getFilteredItems","filtrationString","toUpperCase","x","value","includes","displayLabel","findNextActiveIndex","direction","i","disabled","handleKeyDown","e","key","preventDefault","focusedNow","arrLength","haveTopItem","target","focusedElement","click","useEffect","document","addEventListener","removeEventListener","scrollPosition","handleScroll","scrollTop","useLayoutEffect","getCorrectRef","createRef","setElRefs","Array","fill","map","_","pinTopItem","multiSelect","getSuggestions","suggestion","elRef","blur","handleItemClick","selected","item","newValue","onValueUpdate","getTopItem","visibleItems","allSelected","some","y","showTopItem","suggestions","find","c","undefined","selectedFirst","newValues","stopPropagation","getElements","customContent","cls","menuContent","action","actionLabel","actionIcon","actionLoading","actionDisabled","actionVariant","noteLabel","showDividerAbove","locked","icon"],"mappings":"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","sourcesContent":["import React, {MutableRefObject} from 'react';\nimport styled, {css} from 'styled-components';\nimport Button from '../Button/Button';\nimport {Size} from '../types';\nimport {ButtonDropdownContentStyling} from './CommonStyling';\nimport {\n ComponentLStyling,\n ComponentXLStyling,\n ComponentMStyling,\n ComponentSStyling,\n ComponentTextStyle\n} from '../styles/typography';\nimport {COLORS, focusStyles, scrollBarStyling} from '../styles';\nimport {Checkbox, RadioButton} from '../InputFields';\nimport {Z_INDEXES} from '../styles/z-indexes';\nimport MenuItem from '../MenuItem/MenuItem';\nimport {defaultOnMouseDownHandler} from '../common';\n\nconst MAX_MENU_HEIGHT = 240;\nconst AVG_OPTION_HEIGHT = 48;\nconst OFFSET_BEFORE_SHOW = 1000000;\n\nexport const DDContainer = styled.div<{ isButton: boolean; width?: string; alignLeft?: boolean; size?: Size; scrollable?: boolean; maxHeight?: string }>`\n display: none;\n position: absolute;\n background-color: ${COLORS.white};\n\n width: ${(props) => (props.width ? props.width : '100%')};\n z-index: ${Z_INDEXES.dropdown};\n margin: ${(props) => (props.isButton ? '-4px' : '4px 0px')};\n\n &.show {\n display: flex;\n flex-direction: column;\n justify-content: center;\n }\n\n &.up {\n top: auto;\n bottom: 100%;\n }\n\n transform: translate(-${OFFSET_BEFORE_SHOW}px, -${OFFSET_BEFORE_SHOW}px);\n\n &.up,\n &.down {\n transform: translate(0, 0);\n }\n\n &.outline:focus:after {\n content: '';\n pointer-events: none;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n outline: 4px solid black;\n outline-offset: 2px;\n border-radius: 2px;\n }\n\n &:focus {\n outline: none;\n }\n\n ${(props) => (props.alignLeft ? 'left: 0px;' : '')}\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 padding: 4px 0px;\n\n min-width: ${(props) => (props.size == Size.Large ? '320px' : props.size == Size.Medium ? '280px' : '240px')};\n border-radius: ${(props) => (props.size == Size.Large ? '10px' : props.size == Size.Medium ? '8px' : '6px')};\n\n max-height: ${(props) => (!props.scrollable ? 'auto' : props.maxHeight ? props.maxHeight : props.size == Size.Large ? '320px' : props.size == Size.Medium ? '280px' : '240px')};\n\n`;\n\nconst ItemsContainer = styled.div<{ size?: Size }>`\n > *:hover {\n z-index: ${Z_INDEXES.hover};\n }\n\n > *:active,\n > *.active {\n z-index: ${Z_INDEXES.active};\n }\n\n > *:focus {\n z-index: ${Z_INDEXES.focus};\n }\n`;\n\nconst ListContainer = styled.div<{ scrollable?: boolean; size?: Size; itemsType?: string; outline?: boolean }>`\n ${(props) => (props.scrollable ? 'overflow-y: scroll;' : '')}\n ${(props) => (props.scrollable ? 'margin-right: 6px;' : '')}\n ${(props) => (props.scrollable ? 'padding-right: 6px;' : '')}\n ${(props) => (props.itemsType != 'normal' ? 'margin-left: 4px;' : '')}\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 ${ItemsContainer} {\n padding-top: ${props => props.size == Size.Large ? '8px' : props.size == Size.Medium ? '4px' : '0px'};\n padding-bottom: ${props => props.size == Size.Large ? '8px' : props.size == Size.Medium ? '4px' : '0px'};\n\n word-break: break-word;\n }\n\n *:focus {\n outline: none !important;\n }\n\n ${scrollBarStyling(Size.Small)}\n`;\n\n\nconst MenuContentContainer = styled.div<{ size?: Size }>`\n h1, h2, h3 {\n margin-block-start: 0px;\n margin-block-end: 0px;\n ${props => props.size == Size.Large && ComponentXLStyling(ComponentTextStyle.Bold, COLORS.neutral_500)}\n ${props => props.size == Size.Medium && ComponentLStyling(ComponentTextStyle.Bold, COLORS.neutral_500)}\n ${props => (props.size == Size.Small || !props.size) && ComponentMStyling(ComponentTextStyle.Bold, COLORS.neutral_500)}\n padding: ${props => props.size == Size.Small || !props.size ? '10px 16px 6px' :\n props.size == Size.Medium ? '16px 24px 8px' : '16px 32px 8px'};\n }\n\n p {\n margin-block-start: 0px;\n margin-block-end: 0px;\n ${props => props.size == Size.Large && ComponentLStyling(ComponentTextStyle.Regular, COLORS.neutral_500)}\n ${props => props.size == Size.Medium && ComponentMStyling(ComponentTextStyle.Regular, COLORS.neutral_500)}\n ${props => (props.size == Size.Small || !props.size) && ComponentSStyling(ComponentTextStyle.Regular, COLORS.neutral_500)}\n padding: ${props => props.size == Size.Small || !props.size ? '8px 16px' :\n props.size == Size.Medium ? '12px 24px' : '16px 32px'};\n }\n`;\n\nconst DividerContainer = styled.div<{ size?: Size }>`\n position: relative;\n\n margin-top: ${props => props.size == Size.Large ? '16px' :\n props.size == Size.Medium ? '12px' :\n (props.size == Size.Small || !props.size) ? '8px' : '6px'};\n\n div.divider {\n width: 100%;\n margin: 0px;\n }\n`;\n\nconst TopItemContainer = styled.div<{ size?: Size }>`\n border-bottom-style: solid;\n border-bottom-color: ${COLORS.neutral_200};\n border-bottom-width: 1px;\n margin-right: 22px;\n`;\n\nconst ActionButtonContainer = styled.div<{ size?: Size, scrollable?: boolean }>`\n ${(props) => (props.scrollable ? `border-top: 1px solid ${COLORS.neutral_200};` : '')}\n ${(props) => (props.scrollable ? 'margin-top: 4px;' : '')}\n\n padding: ${(props) => props.size === Size.Small || !props.size\n ? '4px 16px 0px'\n : props.size === Size.Medium\n ? '12px 16px 8px'\n : '16px 16px 12px'};\n\n button {\n width: 100%;\n }\n`;\n\n\nexport interface DropdownItem {\n value: string;\n displayLabel?: string;\n noteLabel?: string;\n suggestion?: boolean;\n showDividerAbove?: boolean;\n disabled?: boolean;\n locked?: boolean;\n icon?: React.ReactNode;\n customContent?: React.ReactNode;\n}\n\nexport interface DropdownCustomizationProps {\n itemsType?: 'radio' | 'checkbox' | 'normal';\n menuContent?: React.ReactNode;\n scrollable?: boolean;\n multiSelect?: boolean;\n maxHeight?: string;\n actionLabel?: string;\n actionVariant?: 'primary' | 'secondary' | 'tertiary' | undefined;\n actionIcon?: React.ReactNode;\n actionLoading?: boolean;\n actionDisabled?: boolean;\n action: () => boolean | void | undefined;\n pinTopItem?: boolean;\n onValueUpdate: (values: string[]) => boolean | void | undefined;\n items: DropdownItem[];\n}\n\nexport interface DropdownProps {\n isButton: boolean;\n customizationProps: DropdownCustomizationProps;\n alignLeft?: boolean;\n isOpen: boolean;\n setIsOpen: (open: boolean) => void;\n size?: Size;\n id: string;\n filter: string;\n width?: string;\n selectedValues: string[];\n setSelectedValues: (val: string[]) => void;\n messageOnNoResults: string;\n focused: number | null;\n setFocused: (focused: number | null) => void;\n outline?: boolean;\n}\n\nconst DropdownContent = React.forwardRef<HTMLDivElement, DropdownProps>(({\n id,\n customizationProps,\n alignLeft,\n isButton,\n size,\n isOpen,\n width,\n setIsOpen,\n filter,\n focused,\n setFocused,\n selectedValues,\n setSelectedValues,\n messageOnNoResults,\n outline\n }, ref) => {\n const [isUp, setIsUp] = React.useState<boolean>(false);\n const [locationDefined, setLocationDefined] = React.useState<boolean>(false);\n const dropdownContentRef = ref as MutableRefObject<HTMLDivElement> ?? React.useRef<HTMLDivElement>(null);\n\n if (!customizationProps.itemsType) customizationProps.itemsType = 'normal';\n if (!size) size = Size.Small;\n\n const itemsListRef = React.useRef<HTMLDivElement>(null);\n const actionButtonRef = React.useRef<HTMLButtonElement>(null);\n\n const determineDropUp = () => {\n const options = customizationProps.items;\n const node = dropdownContentRef.current;\n\n if (!node) return;\n\n const windowHeight = window.innerHeight;\n const menuHeight = Math.min(MAX_MENU_HEIGHT, options.length * AVG_OPTION_HEIGHT);\n const instOffsetWithMenu = node.getBoundingClientRect().top + menuHeight + OFFSET_BEFORE_SHOW;\n setIsUp(instOffsetWithMenu >= windowHeight);\n setLocationDefined(true);\n };\n\n const setNewFocusedElement = (index: number) => {\n if (outline) dropdownContentRef.current?.focus();\n\n const newFocusedElement = elRefs[index];\n const oldFocusedElement = focused || focused === 0 ? elRefs[focused] : null;\n if (newFocusedElement && newFocusedElement !== oldFocusedElement) {\n setFocused(index);\n oldFocusedElement?.current?.classList.remove('dropdown-hover');\n\n newFocusedElement.current?.classList.add('dropdown-hover');\n newFocusedElement.current?.scrollIntoView({\n block: 'nearest',\n inline: 'nearest'\n });\n }\n };\n\n const getFilteredItems = () => {\n const filtrationString = (filter ?? '').toUpperCase();\n return customizationProps.items.filter((x) => x?.value?.toUpperCase().includes(filtrationString) || x?.displayLabel?.toUpperCase().includes(filtrationString));\n };\n\n const findNextActiveIndex = (index: number, direction: number, items: DropdownItem[]) => {\n for (let i = index + direction; i > 0 && i <= items.length; i += direction) {\n if (!items[i - 1]?.disabled) {\n return i;\n }\n }\n\n return index;\n }\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (isOpen) {\n if (e.key === 'ArrowUp' || e.key === 'Up') {\n e.preventDefault();\n let focusedNow = focused || focused === 0 ? focused : arrLength + 1;\n if (!!focusedNow) {\n\n focusedNow =\n focusedNow === 1 && haveTopItem()\n ? 0\n : findNextActiveIndex(focusedNow, -1, getFilteredItems());\n\n setNewFocusedElement(focusedNow);\n }\n } else if (e.key === 'ArrowDown' || e.key === 'Down') {\n e.preventDefault();\n let focusedNow = focused;\n\n focusedNow =\n !!focusedNow || focusedNow === 0\n ? findNextActiveIndex(focusedNow, 1, getFilteredItems())\n : haveTopItem() ? 0 : 1;\n\n setNewFocusedElement(focusedNow);\n } else if (e.key === 'Escape' || e.key === 'Esc') {\n setIsOpen(false);\n setFocused(null);\n } else if ((e.key === 'Enter' || e.key === ' ') && focused !== null && e.target !== actionButtonRef?.current) {\n e.preventDefault();\n const focusedElement = elRefs[focused];\n if (focusedElement) {\n focusedElement.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 const scrollPosition = React.useRef<number | undefined>(0);\n const handleScroll = () => {\n scrollPosition.current = itemsListRef.current?.scrollTop;\n };\n React.useLayoutEffect(() => {\n if (itemsListRef.current) itemsListRef.current.scrollTop = scrollPosition.current ?? 0;\n }, [selectedValues]);\n\n const getCorrectRef = (ref: React.RefObject<HTMLElement>): React.RefObject<HTMLElement> => {\n switch (customizationProps.itemsType) {\n case 'normal':\n return (ref as React.RefObject<HTMLButtonElement>) || React.createRef<HTMLButtonElement>();\n default:\n return (ref as React.RefObject<HTMLDivElement>) || React.createRef<HTMLDivElement>();\n }\n };\n\n const arrLength = getFilteredItems().length;\n const [elRefs, setElRefs] = React.useState<React.RefObject<HTMLElement>[]>([]);\n\n React.useEffect(() => {\n if (elRefs?.length !== arrLength) {\n setFocused(null);\n }\n\n setElRefs((elRefs) =>\n Array(arrLength + 1)\n .fill(null)\n .map((_, i) => getCorrectRef(elRefs[i])),\n );\n }, [isOpen, arrLength]);\n\n React.useLayoutEffect(() => {\n isOpen && !locationDefined && determineDropUp();\n }, [isOpen, locationDefined]);\n\n const haveTopItem = () => {\n if (!customizationProps.pinTopItem) return false;\n\n if (customizationProps.itemsType === 'radio' && selectedValues && selectedValues?.length > 0) return true;\n else if (customizationProps.itemsType === 'checkbox' && (customizationProps.multiSelect || selectedValues?.length > 0)) return true;\n else if (customizationProps.itemsType === 'normal' && getSuggestions()?.length > 0) return true;\n return false;\n };\n\n const getSuggestions = () => {\n return getFilteredItems().filter((x) => x.suggestion);\n };\n\n /**\n * when dropdown opens set correct position of focused item\n * */\n React.useLayoutEffect(() => {\n if (isOpen && (focused || focused === 0)) {\n setNewFocusedElement(focused === 0 && !haveTopItem() ? 1 : focused);\n }\n }, [isOpen, focused]);\n\n /**\n * Reset dropdown content state on close\n * */\n React.useEffect(() => {\n if (!isOpen) {\n setLocationDefined(false);\n for (let elRef of elRefs) {\n elRef.current?.classList.remove('dropdown-hover');\n\n }\n setFocused(null);\n dropdownContentRef.current?.classList.remove('outline');\n dropdownContentRef.current?.blur();\n } else {\n if (outline) {\n dropdownContentRef.current?.classList.add('outline');\n dropdownContentRef.current?.focus();\n }\n }\n }, [isOpen, dropdownContentRef, focused, outline]);\n\n /**\n * Scroll item container to top when dropdown opens\n * */\n React.useEffect(() => {\n if (isOpen && itemsListRef.current) {\n itemsListRef.current.scrollTop = 0;\n }\n }, [isOpen]);\n\n\n const handleItemClick = (selected: boolean, item: DropdownItem) => {\n let newValue: string[] = [];\n if (customizationProps.multiSelect) {\n if (selected) newValue = [...selectedValues, item.value];\n else newValue = selectedValues.filter((x) => x != item.value);\n } else newValue = selected ? [item.value] : [];\n\n setSelectedValues(newValue);\n if (customizationProps.onValueUpdate && customizationProps.onValueUpdate(newValue)) {\n setIsOpen(false);\n }\n };\n\n const getTopItem = () => {\n if (!customizationProps.pinTopItem) return;\n const visibleItems = getFilteredItems();\n const allSelected = selectedValues?.filter((x) => visibleItems.some((y) => y.value == x)).length == visibleItems.length;\n let showTopItem = false;\n const suggestions = getSuggestions();\n const displayLabel = selectedValues[0] ? customizationProps.items?.find((c) => c.value === selectedValues[0])?.displayLabel : undefined;\n if (customizationProps.itemsType == 'radio' && selectedValues && selectedValues?.length > 0) showTopItem = true;\n else if (customizationProps.itemsType == 'checkbox' && (customizationProps.multiSelect || selectedValues?.length > 0)) showTopItem = true;\n else if (customizationProps.itemsType == 'normal' && suggestions.length > 0) showTopItem = true;\n\n if (!showTopItem) return;\n\n const selectedFirst = selectedValues.length > 0 ? visibleItems.find(x => x.value == selectedValues[0]) : null;\n\n return (\n <TopItemContainer size={size}>\n {customizationProps.itemsType === 'radio' && (\n <RadioButton\n ref={elRefs[0] as React.RefObject<HTMLDivElement>}\n iconPointerEventsTransparent={true}\n tabIndexVal={-1}\n className={`${focused === 0 ? 'dropdown-hover' : ''}`}\n select={() => {\n }}\n label={selectedFirst?.displayLabel ?? selectedFirst?.value}\n size={size}\n id={`${id}_topitem`}\n selected={true}\n />\n )}\n {customizationProps.itemsType === 'checkbox' && (\n <Checkbox\n ref={elRefs[0] as React.RefObject<HTMLDivElement>}\n tabIndexVal={-1}\n className={`${focused === 0 ? 'dropdown-hover' : ''}`}\n select={(selected: boolean) => {\n if (!customizationProps.multiSelect) return;\n\n const newValues = selected ? visibleItems.map((x) => x.value) : [];\n setSelectedValues(newValues);\n if (customizationProps.onValueUpdate && customizationProps.onValueUpdate(newValues))\n setIsOpen(false);\n }}\n iconPointerEventsTransparent={true}\n semiSelected={customizationProps.multiSelect && !allSelected && selectedValues?.length > 0}\n size={size}\n id={`${id}_checkbox_selectall`}\n label={customizationProps.multiSelect ? 'Select all' : (selectedFirst?.displayLabel ?? selectedFirst?.value)}\n selected={!customizationProps.multiSelect || allSelected}\n />\n )}\n {customizationProps.itemsType === 'normal' && (\n <>\n {suggestions.map((x) => (\n <MenuItem\n key={`${id}_topitem_${x.value}`}\n item={x}\n size={size}\n active={false}\n tabIndex={-1}\n className={`${focused === 0 ? 'dropdown-hover' : ''}`}\n ref={elRefs[0] as React.RefObject<HTMLButtonElement>}\n id={`${id}_topitem`}\n onClickHandler={(e: any) => {\n e.stopPropagation();\n customizationProps.onValueUpdate([x.value]);\n setSelectedValues([x.value]);\n setIsOpen(false);\n setFocused(null);\n }}/>\n ))}\n </>\n )}\n </TopItemContainer>\n );\n };\n\n const getElements = (messageOnNoResults: string, size: Size) => {\n if (getFilteredItems().length === 0) {\n return (\n <MenuItem item={{value:messageOnNoResults, disabled: true}} size={size} id='noResultsFound' active={false} onClickHandler={e => {}}/>\n );\n }\n return (\n <ItemsContainer size={size}>\n {getFilteredItems()\n .filter((x) => x && (customizationProps.itemsType != 'normal' || !x.suggestion))\n .map((item, index) => {\n return (\n <React.Fragment key={`key_${id}_${item.value}`}>\n {item.customContent}\n {!item.customContent && customizationProps.itemsType == 'radio' && (\n <RadioButton\n select={(selected: boolean) => handleItemClick(selected, item)}\n ref={elRefs[index + 1] as React.RefObject<HTMLDivElement>}\n size={size}\n tabIndexVal={-1}\n className={`${index + 1 === focused ? 'dropdown-hover' : ''}`}\n iconPointerEventsTransparent={true}\n disabled={item?.disabled}\n key={`key_${id}_${index + 1}`}\n id={`${id}_${index + 1}`}\n label={item.displayLabel ?? item.value}\n selected={selectedValues?.includes(item.value)}\n />\n )}\n {!item.customContent && customizationProps.itemsType == 'checkbox' && (\n <Checkbox\n select={(selected: boolean) => handleItemClick(selected, item)}\n iconPointerEventsTransparent={true}\n disabled={item?.disabled}\n className={`${index + 1 === focused ? 'dropdown-hover' : ''}`}\n ref={elRefs[index + 1] as React.RefObject<HTMLDivElement>}\n size={size}\n tabIndexVal={-1}\n key={`key_${id}_${index + 1}`}\n id={`${id}_${index + 1}`}\n label={item.displayLabel ?? item.value}\n selected={selectedValues?.includes(item.value)}\n />\n )}\n {!item.customContent && (customizationProps.itemsType == 'normal' || !customizationProps.itemsType) && (\n <MenuItem\n key={`key_${id}_${index + 1}`}\n id={`${id}_${index + 1}`}\n item={item}\n tabIndex={-1}\n className={`${index + 1 === focused ? 'dropdown-hover' : ''}`}\n size={size}\n active={selectedValues?.includes(item.value)}\n ref={elRefs[index + 1] as React.RefObject<HTMLButtonElement>}\n onClickHandler={(e: any) => {\n e.stopPropagation();\n customizationProps.onValueUpdate([item.value]);\n setSelectedValues([item.value]);\n setIsOpen(false);\n setFocused(null);\n }}/>\n )}\n </React.Fragment>\n );\n })}\n </ItemsContainer>\n );\n };\n\n const cls = `${isOpen ? 'show' : ''} ${isOpen && outline ? 'outline' : ''} ${locationDefined ? isUp ? 'up' : 'down' : ''}`\n\n return (\n <DDContainer\n ref={dropdownContentRef}\n size={size}\n width={width}\n tabIndex={-1}\n isButton={isButton}\n alignLeft={alignLeft}\n scrollable={customizationProps.scrollable}\n maxHeight={customizationProps.maxHeight}\n className={cls}>\n <ListContainer size={size}\n itemsType={customizationProps.itemsType}\n onScroll={handleScroll}\n ref={itemsListRef}\n outline={outline}\n scrollable={customizationProps.scrollable}>\n {customizationProps.menuContent &&\n <MenuContentContainer size={size}>\n {customizationProps.menuContent}\n <DividerContainer size={size}>\n <div className=\"divider\"/>\n </DividerContainer>\n </MenuContentContainer>}\n {customizationProps.pinTopItem && getTopItem()}\n {getElements(messageOnNoResults, size)}\n </ListContainer>\n {customizationProps.action && customizationProps.actionLabel && (\n <ActionButtonContainer size={size} scrollable={customizationProps.scrollable}>\n <Button width=\"100%\"\n icon={customizationProps.actionIcon}\n ref={actionButtonRef}\n loading={customizationProps.actionLoading}\n disabled={customizationProps.actionDisabled}\n variant={customizationProps.actionVariant ?? 'primary'}\n size={size}\n onClick={() => customizationProps.action() && setIsOpen(false)}>\n {customizationProps.actionLabel}\n </Button>\n </ActionButtonContainer>\n )}\n </DDContainer>\n );\n});\n\nexport default DropdownContent;\n\n"],"file":"DropdownContent.cjs"}
|