no-frills-ui 0.0.14-alpha.7 → 0.0.14-alpha.8
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/index.js +87 -87
- package/dist/index.js.map +1 -1
- package/lib-esm/components/Accordion/Accordion.js +1 -0
- package/lib-esm/components/Accordion/Accordion.js.map +1 -0
- package/lib-esm/components/Accordion/AccordionStep.js +9 -8
- package/lib-esm/components/Accordion/AccordionStep.js.map +1 -0
- package/lib-esm/components/Badge/Badge.js +2 -1
- package/lib-esm/components/Badge/Badge.js.map +1 -0
- package/lib-esm/components/Button/ActionButton.js +2 -1
- package/lib-esm/components/Button/ActionButton.js.map +1 -0
- package/lib-esm/components/Button/Button.js +2 -1
- package/lib-esm/components/Button/Button.js.map +1 -0
- package/lib-esm/components/Button/IconButton.js +2 -1
- package/lib-esm/components/Button/IconButton.js.map +1 -0
- package/lib-esm/components/Button/LinkButton.js +2 -1
- package/lib-esm/components/Button/LinkButton.js.map +1 -0
- package/lib-esm/components/Button/RaisedButton.js +2 -1
- package/lib-esm/components/Button/RaisedButton.js.map +1 -0
- package/lib-esm/components/Card/Card.js +2 -1
- package/lib-esm/components/Card/Card.js.map +1 -0
- package/lib-esm/components/Chip/Chip.js +3 -2
- package/lib-esm/components/Chip/Chip.js.map +1 -0
- package/lib-esm/components/ChipInput/ChipInput.js +4 -3
- package/lib-esm/components/ChipInput/ChipInput.js.map +1 -0
- package/lib-esm/components/Dialog/AlertDialog.js +1 -0
- package/lib-esm/components/Dialog/AlertDialog.js.map +1 -0
- package/lib-esm/components/Dialog/ConfirmDialog.js +1 -0
- package/lib-esm/components/Dialog/ConfirmDialog.js.map +1 -0
- package/lib-esm/components/Dialog/Dialog.js +2 -1
- package/lib-esm/components/Dialog/Dialog.js.map +1 -0
- package/lib-esm/components/Dialog/PromptDialog.js +4 -3
- package/lib-esm/components/Dialog/PromptDialog.js.map +1 -0
- package/lib-esm/components/DragAndDrop/DragAndDrop.js +3 -2
- package/lib-esm/components/DragAndDrop/DragAndDrop.js.map +1 -0
- package/lib-esm/components/DragAndDrop/DragItem.js +4 -3
- package/lib-esm/components/DragAndDrop/DragItem.js.map +1 -0
- package/lib-esm/components/DragAndDrop/types.js +1 -0
- package/lib-esm/components/DragAndDrop/types.js.map +1 -0
- package/lib-esm/components/Drawer/Drawer.js +2 -1
- package/lib-esm/components/Drawer/Drawer.js.map +1 -0
- package/lib-esm/components/Groups/Group.js +3 -2
- package/lib-esm/components/Groups/Group.js.map +1 -0
- package/lib-esm/components/Groups/GroupLabel.js +2 -1
- package/lib-esm/components/Groups/GroupLabel.js.map +1 -0
- package/lib-esm/components/Input/Checkbox.js +4 -3
- package/lib-esm/components/Input/Checkbox.js.map +1 -0
- package/lib-esm/components/Input/Dropdown.js +2 -1
- package/lib-esm/components/Input/Dropdown.js.map +1 -0
- package/lib-esm/components/Input/Input.js +4 -3
- package/lib-esm/components/Input/Input.js.map +1 -0
- package/lib-esm/components/Input/Radio.js +4 -3
- package/lib-esm/components/Input/Radio.js.map +1 -0
- package/lib-esm/components/Input/RadioButton.js +4 -3
- package/lib-esm/components/Input/RadioButton.js.map +1 -0
- package/lib-esm/components/Input/Select.js +5 -4
- package/lib-esm/components/Input/Select.js.map +1 -0
- package/lib-esm/components/Input/TextArea.js +4 -3
- package/lib-esm/components/Input/TextArea.js.map +1 -0
- package/lib-esm/components/Input/Toggle.js +3 -2
- package/lib-esm/components/Input/Toggle.js.map +1 -0
- package/lib-esm/components/Menu/Menu.js +2 -1
- package/lib-esm/components/Menu/Menu.js.map +1 -0
- package/lib-esm/components/Menu/MenuContext.js +1 -0
- package/lib-esm/components/Menu/MenuContext.js.map +1 -0
- package/lib-esm/components/Menu/MenuItem.js +2 -1
- package/lib-esm/components/Menu/MenuItem.js.map +1 -0
- package/lib-esm/components/Modal/Modal.js +1 -0
- package/lib-esm/components/Modal/Modal.js.map +1 -0
- package/lib-esm/components/Notification/Notification.js +1 -0
- package/lib-esm/components/Notification/Notification.js.map +1 -0
- package/lib-esm/components/Notification/NotificationManager.js +1 -0
- package/lib-esm/components/Notification/NotificationManager.js.map +1 -0
- package/lib-esm/components/Notification/style.js +10 -9
- package/lib-esm/components/Notification/style.js.map +1 -0
- package/lib-esm/components/Notification/types.js +1 -0
- package/lib-esm/components/Notification/types.js.map +1 -0
- package/lib-esm/components/Popover/Popover.js +3 -2
- package/lib-esm/components/Popover/Popover.js.map +1 -0
- package/lib-esm/components/Spinner/Spinner.js +2 -1
- package/lib-esm/components/Spinner/Spinner.js.map +1 -0
- package/lib-esm/components/Stepper/Step.js +2 -1
- package/lib-esm/components/Stepper/Step.js.map +1 -0
- package/lib-esm/components/Stepper/Stepper.js +5 -4
- package/lib-esm/components/Stepper/Stepper.js.map +1 -0
- package/lib-esm/components/Tabs/Tab.js +1 -0
- package/lib-esm/components/Tabs/Tab.js.map +1 -0
- package/lib-esm/components/Tabs/Tabs.js +4 -3
- package/lib-esm/components/Tabs/Tabs.js.map +1 -0
- package/lib-esm/components/Toast/Toast.js +4 -3
- package/lib-esm/components/Toast/Toast.js.map +1 -0
- package/lib-esm/components/Tooltip/Tooltip.js +3 -2
- package/lib-esm/components/Tooltip/Tooltip.js.map +1 -0
- package/lib-esm/components/index.js +1 -0
- package/lib-esm/components/index.js.map +1 -0
- package/lib-esm/icons/CheckCircle.js +1 -0
- package/lib-esm/icons/CheckCircle.js.map +1 -0
- package/lib-esm/icons/Close.js +1 -0
- package/lib-esm/icons/Close.js.map +1 -0
- package/lib-esm/icons/DragIndicator.js +1 -0
- package/lib-esm/icons/DragIndicator.js.map +1 -0
- package/lib-esm/icons/ErrorOutline.js +1 -0
- package/lib-esm/icons/ErrorOutline.js.map +1 -0
- package/lib-esm/icons/ExpandMore.js +1 -0
- package/lib-esm/icons/ExpandMore.js.map +1 -0
- package/lib-esm/icons/FiberManualRecord.js +1 -0
- package/lib-esm/icons/FiberManualRecord.js.map +1 -0
- package/lib-esm/icons/Info.js +1 -0
- package/lib-esm/icons/Info.js.map +1 -0
- package/lib-esm/icons/ReportProblem.js +1 -0
- package/lib-esm/icons/ReportProblem.js.map +1 -0
- package/lib-esm/shared/LayerManager.js +2 -1
- package/lib-esm/shared/LayerManager.js.map +1 -0
- package/lib-esm/shared/constants.js +1 -0
- package/lib-esm/shared/constants.js.map +1 -0
- package/lib-esm/shared/styles.js +5 -4
- package/lib-esm/shared/styles.js.map +1 -0
- package/package.json +1 -1
|
@@ -7,7 +7,7 @@ import { getThemeValue, THEME_NAME } from '../../shared/constants.js';
|
|
|
7
7
|
const Label = /*#__PURE__*/ styled("label", {
|
|
8
8
|
target: "e1hw2ebx0",
|
|
9
9
|
label: "Label"
|
|
10
|
-
})("display:inline-flex;flex-direction:column;position:relative;margin:10px 5px;"
|
|
10
|
+
})("display:inline-flex;flex-direction:column;position:relative;margin:10px 5px;");
|
|
11
11
|
const TextField = /*#__PURE__*/ styled("input", {
|
|
12
12
|
target: "e1hw2ebx1",
|
|
13
13
|
label: "TextField"
|
|
@@ -32,11 +32,11 @@ const TextField = /*#__PURE__*/ styled("input", {
|
|
|
32
32
|
font-size: 12px;
|
|
33
33
|
line-height: 14px;
|
|
34
34
|
}
|
|
35
|
-
` : '', " &:focus + span,&:placeholder-shown + span{top:-8px;background:", getThemeValue(THEME_NAME.BACKGROUND), ";font-size:12px;line-height:14px;}"
|
|
35
|
+
` : '', " &:focus + span,&:placeholder-shown + span{top:-8px;background:", getThemeValue(THEME_NAME.BACKGROUND), ";font-size:12px;line-height:14px;}");
|
|
36
36
|
const ErrorContainer = /*#__PURE__*/ styled("div", {
|
|
37
37
|
target: "e1hw2ebx2",
|
|
38
38
|
label: "ErrorContainer"
|
|
39
|
-
})("color:", getThemeValue(THEME_NAME.ERROR), ";padding-top:3px;font-size:12px;line-height:14px;margin-left:3px;"
|
|
39
|
+
})("color:", getThemeValue(THEME_NAME.ERROR), ";padding-top:3px;font-size:12px;line-height:14px;margin-left:3px;");
|
|
40
40
|
const Input = /*#__PURE__*/ React.forwardRef((props, ref)=>{
|
|
41
41
|
const [touched, setTouched] = useState(false);
|
|
42
42
|
const [value, setValue] = useState(props.value || '');
|
|
@@ -92,3 +92,4 @@ Input.propTypes = {
|
|
|
92
92
|
};
|
|
93
93
|
|
|
94
94
|
export { Input as default };
|
|
95
|
+
//# sourceMappingURL=Input.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Input.js","sources":["../../../src/components/Input/Input.tsx"],"sourcesContent":["import React, { useState, useEffect, useId } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from '@emotion/styled';\nimport { getThemeValue, THEME_NAME } from '../../shared/constants';\n\ntype InputProps = React.AllHTMLAttributes<HTMLInputElement> & {\n /** Label for the field */\n label?: string;\n /** Error message for the field */\n errorText?: string;\n};\n\ntype InputInternalProps = InputProps & {\n touched: boolean;\n};\n\nconst Label = styled.label`\n display: inline-flex;\n flex-direction: column;\n position: relative;\n margin: 10px 5px;\n`;\n\nconst TextField = styled.input<InputInternalProps>`\n outline: none;\n color: inherit;\n padding: 0 8px;\n line-height: 30px;\n min-height: 30px;\n width: 250px;\n border-radius: 3px;\n border: 1px solid ${getThemeValue(THEME_NAME.BORDER_COLOR)};\n display: inline-block;\n background-color: ${getThemeValue(THEME_NAME.BACKGROUND)};\n\n /** Focused */\n &:focus,\n &:active {\n border-color: ${getThemeValue(THEME_NAME.PRIMARY)};\n box-shadow: 0 0 0 4px ${getThemeValue(THEME_NAME.PRIMARY_LIGHT)};\n }\n\n &:focus + span,\n &:active + span {\n color: ${getThemeValue(THEME_NAME.PRIMARY)};\n }\n\n /** Disabled */\n &:disabled {\n border-color: ${getThemeValue(THEME_NAME.DISABLED_BORDER)};\n background-color: ${getThemeValue(THEME_NAME.DISABLED_BACKGROUND)};\n padding: 0 8px;\n }\n\n &:disabled + span {\n color: ${getThemeValue(THEME_NAME.DISABLED)};\n }\n\n /** Invalid */\n &:focus:invalid {\n border-color: ${getThemeValue(THEME_NAME.ERROR)};\n box-shadow: 0 0 0 4px ${getThemeValue(THEME_NAME.ERROR_LIGHT)};\n }\n\n ${(props) =>\n props.touched\n ? `\n &:invalid {\n border-color: ${getThemeValue(THEME_NAME.ERROR)};\n }\n\n &:invalid + span {\n color: ${getThemeValue(THEME_NAME.ERROR)};\n }\n `\n : ''}\n\n /** Error */\n ${(props) =>\n props.errorText\n ? `\n border-color: ${getThemeValue(THEME_NAME.ERROR)};\n\n & + span {\n color: ${getThemeValue(THEME_NAME.ERROR)};\n }\n `\n : ''}\n\n /** Required */\n &:required + span:after {\n content: '*';\n margin-left: 2px;\n color: ${getThemeValue(THEME_NAME.ERROR)};\n }\n\n /** Label Animation */\n & + span {\n position: absolute;\n padding: 0 5px;\n top: 0px;\n left: 4px;\n font-size: 14px;\n line-height: 32px;\n transition: all 300ms ease;\n }\n\n ${(props) =>\n props.value !== ''\n ? `\n & + span {\n top: -8px;\n background: ${getThemeValue(THEME_NAME.BACKGROUND)};\n font-size: 12px;\n line-height: 14px;\n }\n `\n : ''}\n\n &:focus + span, &:placeholder-shown + span {\n top: -8px;\n background: ${getThemeValue(THEME_NAME.BACKGROUND)};\n font-size: 12px;\n line-height: 14px;\n }\n`;\n\nconst ErrorContainer = styled.div`\n color: ${getThemeValue(THEME_NAME.ERROR)};\n padding-top: 3px;\n font-size: 12px;\n line-height: 14px;\n margin-left: 3px;\n`;\n\nconst Input = React.forwardRef<HTMLInputElement, Omit<InputProps, 'as'>>((props, ref) => {\n const [touched, setTouched] = useState(false);\n const [value, setValue] = useState(props.value || '');\n const errorId = useId();\n\n useEffect(() => {\n if (props.value !== undefined) {\n setValue(props.value);\n }\n }, [props.value]);\n\n const handleFocus = (e: React.FocusEvent<HTMLInputElement>) => {\n setTouched(true);\n if (props.onFocus) {\n props.onFocus(e);\n }\n };\n\n const onChangeHandler = (e: React.ChangeEvent<HTMLInputElement>) => {\n if (props.onChange) {\n setValue(e.target.value);\n props.onChange(e);\n } else {\n setValue(e.target.value);\n }\n };\n\n return (\n <Label>\n <TextField\n {...props}\n ref={ref}\n value={value}\n onChange={onChangeHandler}\n onFocus={handleFocus}\n touched={touched}\n aria-invalid={!!props.errorText}\n aria-required={props.required}\n aria-describedby={props.errorText ? errorId : undefined}\n />\n <span>{props.label}</span>\n {props.errorText && <ErrorContainer id={errorId}>{props.errorText}</ErrorContainer>}\n </Label>\n );\n});\n\nInput.displayName = 'Input';\n\nexport default Input;\n\nInput.propTypes = {\n /** Label for the field */\n label: PropTypes.string,\n /** Error text to be shown below the field */\n errorText: PropTypes.string,\n};\n"],"names":["Label","styled","TextField","getThemeValue","THEME_NAME","BORDER_COLOR","BACKGROUND","PRIMARY","PRIMARY_LIGHT","DISABLED_BORDER","DISABLED_BACKGROUND","DISABLED","ERROR","ERROR_LIGHT","props","touched","errorText","value","ErrorContainer","Input","React","forwardRef","ref","setTouched","useState","setValue","errorId","useId","useEffect","undefined","handleFocus","e","onFocus","onChangeHandler","onChange","target","_jsxs","_jsx","aria-invalid","aria-required","required","aria-describedby","span","label","id","displayName","propTypes","PropTypes","string"],"mappings":"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"}
|
|
@@ -7,15 +7,15 @@ import { getThemeValue, THEME_NAME } from '../../shared/constants.js';
|
|
|
7
7
|
const Label = /*#__PURE__*/ styled("label", {
|
|
8
8
|
target: "e1ji8xn0",
|
|
9
9
|
label: "Label"
|
|
10
|
-
})("display:inline-flex;align-items:center;margin:5px 0;cursor:pointer;position:relative;"
|
|
10
|
+
})("display:inline-flex;align-items:center;margin:5px 0;cursor:pointer;position:relative;");
|
|
11
11
|
const StyledRadio = /*#__PURE__*/ styled("span", {
|
|
12
12
|
target: "e1ji8xn1",
|
|
13
13
|
label: "StyledRadio"
|
|
14
|
-
})("width:16px;height:16px;margin-right:5px;border:1px solid ", getThemeValue(THEME_NAME.BORDER_COLOR), ";border-radius:50%;display:block;transition:background-color 0.3s ease;position:relative;flex-shrink:0;&::after{content:'';width:100%;height:100%;border-radius:50%;position:absolute;top:0;left:0;box-shadow:inset 0 0 0 3px ", getThemeValue(THEME_NAME.BACKGROUND), ";opacity:0;transition:opacity 0.2s ease;}"
|
|
14
|
+
})("width:16px;height:16px;margin-right:5px;border:1px solid ", getThemeValue(THEME_NAME.BORDER_COLOR), ";border-radius:50%;display:block;transition:background-color 0.3s ease;position:relative;flex-shrink:0;&::after{content:'';width:100%;height:100%;border-radius:50%;position:absolute;top:0;left:0;box-shadow:inset 0 0 0 3px ", getThemeValue(THEME_NAME.BACKGROUND), ";opacity:0;transition:opacity 0.2s ease;}");
|
|
15
15
|
const HiddenInput = /*#__PURE__*/ styled("input", {
|
|
16
16
|
target: "e1ji8xn2",
|
|
17
17
|
label: "HiddenInput"
|
|
18
|
-
})("opacity:0;width:0;height:0;position:absolute;margin:0;&:checked + ", StyledRadio, "{border-color:", getThemeValue(THEME_NAME.PRIMARY), ";background-color:", getThemeValue(THEME_NAME.PRIMARY), ";}&:checked + ", StyledRadio, "::after{opacity:1;}&:enabled:focus + ", StyledRadio, "{border-color:", getThemeValue(THEME_NAME.PRIMARY), ";box-shadow:0 0 0 3px ", getThemeValue(THEME_NAME.PRIMARY_LIGHT), ";}&:enabled:checked:focus + ", StyledRadio, "{border-color:", getThemeValue(THEME_NAME.PRIMARY), ";box-shadow:0 0 0 3px ", getThemeValue(THEME_NAME.PRIMARY_LIGHT), ";}&:enabled:hover + ", StyledRadio, "{border-color:", getThemeValue(THEME_NAME.PRIMARY), ";}&:enabled:hover ~ span{color:", getThemeValue(THEME_NAME.PRIMARY), ";}&:disabled + ", StyledRadio, "{border-color:", getThemeValue(THEME_NAME.DISABLED_BORDER), ";background-color:", getThemeValue(THEME_NAME.LIGHT_GREY), ";cursor:not-allowed;}&:disabled:checked + ", StyledRadio, "{border-color:", getThemeValue(THEME_NAME.DISABLED_BORDER), ";background-color:", getThemeValue(THEME_NAME.DISABLED_BORDER), ";}&:disabled ~ span{color:", getThemeValue(THEME_NAME.DISABLED_BORDER), ";cursor:not-allowed;}"
|
|
18
|
+
})("opacity:0;width:0;height:0;position:absolute;margin:0;&:checked + ", StyledRadio, "{border-color:", getThemeValue(THEME_NAME.PRIMARY), ";background-color:", getThemeValue(THEME_NAME.PRIMARY), ";}&:checked + ", StyledRadio, "::after{opacity:1;}&:enabled:focus + ", StyledRadio, "{border-color:", getThemeValue(THEME_NAME.PRIMARY), ";box-shadow:0 0 0 3px ", getThemeValue(THEME_NAME.PRIMARY_LIGHT), ";}&:enabled:checked:focus + ", StyledRadio, "{border-color:", getThemeValue(THEME_NAME.PRIMARY), ";box-shadow:0 0 0 3px ", getThemeValue(THEME_NAME.PRIMARY_LIGHT), ";}&:enabled:hover + ", StyledRadio, "{border-color:", getThemeValue(THEME_NAME.PRIMARY), ";}&:enabled:hover ~ span{color:", getThemeValue(THEME_NAME.PRIMARY), ";}&:disabled + ", StyledRadio, "{border-color:", getThemeValue(THEME_NAME.DISABLED_BORDER), ";background-color:", getThemeValue(THEME_NAME.LIGHT_GREY), ";cursor:not-allowed;}&:disabled:checked + ", StyledRadio, "{border-color:", getThemeValue(THEME_NAME.DISABLED_BORDER), ";background-color:", getThemeValue(THEME_NAME.DISABLED_BORDER), ";}&:disabled ~ span{color:", getThemeValue(THEME_NAME.DISABLED_BORDER), ";cursor:not-allowed;}");
|
|
19
19
|
function Radio(props) {
|
|
20
20
|
return /*#__PURE__*/ jsxs(Label, {
|
|
21
21
|
children: [
|
|
@@ -35,3 +35,4 @@ Radio.propTypes = {
|
|
|
35
35
|
};
|
|
36
36
|
|
|
37
37
|
export { Radio as default };
|
|
38
|
+
//# sourceMappingURL=Radio.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Radio.js","sources":["../../../src/components/Input/Radio.tsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from '@emotion/styled';\nimport { getThemeValue, THEME_NAME } from '../../shared/constants';\n\nconst Label = styled.label`\n display: inline-flex;\n align-items: center;\n margin: 5px 0;\n cursor: pointer;\n position: relative;\n`;\n\nconst StyledRadio = styled.span`\n width: 16px;\n height: 16px;\n margin-right: 5px;\n border: 1px solid ${getThemeValue(THEME_NAME.BORDER_COLOR)};\n border-radius: 50%;\n display: block;\n transition: background-color 0.3s ease;\n position: relative;\n flex-shrink: 0;\n\n &::after {\n content: '';\n width: 100%;\n height: 100%;\n border-radius: 50%;\n position: absolute;\n top: 0;\n left: 0;\n box-shadow: inset 0 0 0 3px ${getThemeValue(THEME_NAME.BACKGROUND)};\n opacity: 0;\n transition: opacity 0.2s ease;\n }\n`;\n\nconst HiddenInput = styled.input`\n opacity: 0;\n width: 0;\n height: 0;\n position: absolute;\n margin: 0;\n\n /* checked */\n &:checked + ${StyledRadio} {\n border-color: ${getThemeValue(THEME_NAME.PRIMARY)};\n background-color: ${getThemeValue(THEME_NAME.PRIMARY)};\n }\n\n &:checked + ${StyledRadio}::after {\n opacity: 1;\n }\n\n /* focus */\n &:enabled:focus + ${StyledRadio} {\n border-color: ${getThemeValue(THEME_NAME.PRIMARY)};\n box-shadow: 0 0 0 3px ${getThemeValue(THEME_NAME.PRIMARY_LIGHT)};\n }\n\n &:enabled:checked:focus + ${StyledRadio} {\n border-color: ${getThemeValue(THEME_NAME.PRIMARY)};\n box-shadow: 0 0 0 3px ${getThemeValue(THEME_NAME.PRIMARY_LIGHT)};\n }\n\n /* hover */\n &:enabled:hover + ${StyledRadio} {\n border-color: ${getThemeValue(THEME_NAME.PRIMARY)};\n }\n\n &:enabled:hover ~ span {\n color: ${getThemeValue(THEME_NAME.PRIMARY)};\n }\n\n /* disabled */\n &:disabled + ${StyledRadio} {\n border-color: ${getThemeValue(THEME_NAME.DISABLED_BORDER)};\n background-color: ${getThemeValue(THEME_NAME.LIGHT_GREY)};\n cursor: not-allowed;\n }\n\n &:disabled:checked + ${StyledRadio} {\n border-color: ${getThemeValue(THEME_NAME.DISABLED_BORDER)};\n background-color: ${getThemeValue(THEME_NAME.DISABLED_BORDER)};\n }\n\n &:disabled ~ span {\n color: ${getThemeValue(THEME_NAME.DISABLED_BORDER)};\n cursor: not-allowed;\n }\n`;\n\nfunction Radio(\n props: PropTypes.InferProps<React.AllHTMLAttributes<HTMLInputElement> & typeof Radio.propTypes>,\n) {\n return (\n <Label>\n <HiddenInput {...props} type=\"radio\" />\n <StyledRadio />\n <span>{props.label}</span>\n </Label>\n );\n}\n\nRadio.propTypes = {\n /** Label for the field */\n label: PropTypes.string,\n};\n\nexport default Radio;\n"],"names":["Label","styled","StyledRadio","getThemeValue","THEME_NAME","BORDER_COLOR","BACKGROUND","HiddenInput","PRIMARY","PRIMARY_LIGHT","DISABLED_BORDER","LIGHT_GREY","Radio","props","_jsxs","_jsx","type","span","label","propTypes","PropTypes","string"],"mappings":";;;;;;AAKA,MAAMA,KAAAA,iBAAQC,MAAAA,CAAAA,OAAAA,EAAAA;;;;AAQd,MAAMC,WAAAA,iBAAcD,MAAAA,CAAAA,MAAAA,EAAAA;;;AAIIE,CAAAA,CAAAA,CAAAA,2DAAAA,EAAAA,aAAAA,CAAcC,UAAAA,CAAWC,YAAY,CAAA,EAAA,gOAAA,EAevBF,aAAAA,CAAcC,WAAWE,UAAU,CAAA,EAAA,2CAAA,CAAA;AAMzE,MAAMC,WAAAA,iBAAcN,MAAAA,CAAAA,OAAAA,EAAAA;;;yEAQFC,WAAAA,EAAAA,gBAAAA,EACMC,aAAAA,CAAcC,UAAAA,CAAWI,OAAO,CAAA,EAAA,oBAAA,EAC5BL,aAAAA,CAAcC,UAAAA,CAAWI,OAAO,CAAA,EAAA,gBAAA,EAG1CN,WAAAA,EAAAA,uCAAAA,EAKMA,WAAAA,EAAAA,gBAAAA,EACAC,aAAAA,CAAcC,UAAAA,CAAWI,OAAO,6BACxBL,aAAAA,CAAcC,UAAAA,CAAWK,aAAa,CAAA,EAAA,8BAAA,EAGtCP,WAAAA,EAAAA,gBAAAA,EACRC,aAAAA,CAAcC,UAAAA,CAAWI,OAAO,CAAA,EAAA,wBAAA,EACxBL,aAAAA,CAAcC,UAAAA,CAAWK,aAAa,CAAA,EAAA,sBAAA,EAI9CP,WAAAA,EAAAA,gBAAAA,EACAC,cAAcC,UAAAA,CAAWI,OAAO,CAAA,EAAA,iCAAA,EAIvCL,aAAAA,CAAcC,UAAAA,CAAWI,OAAO,CAAA,EAAA,iBAAA,EAI9BN,WAAAA,EAAAA,gBAAAA,EACKC,aAAAA,CAAcC,UAAAA,CAAWM,eAAe,CAAA,EAAA,oBAAA,EACpCP,aAAAA,CAAcC,UAAAA,CAAWO,UAAU,CAAA,EAAA,4CAAA,EAIpCT,WAAAA,EAAAA,gBAAAA,EACHC,aAAAA,CAAcC,UAAAA,CAAWM,eAAe,CAAA,EAAA,oBAAA,EACpCP,aAAAA,CAAcC,UAAAA,CAAWM,eAAe,CAAA,EAAA,4BAAA,EAInDP,aAAAA,CAAcC,UAAAA,CAAWM,eAAe,CAAA,EAAA,uBAAA,CAAA;AAKzD,SAASE,MACLC,KAA+F,EAAA;AAE/F,IAAA,qBACIC,IAAA,CAACd,KAAAA,EAAAA;;0BACGe,GAAA,CAACR,WAAAA,EAAAA;AAAa,gBAAA,GAAGM,KAAK;gBAAEG,IAAAA,EAAK;;0BAC7BD,GAAA,CAACb,WAAAA,EAAAA,EAAAA,CAAAA;0BACDa,GAAA,CAACE,MAAAA,EAAAA;AAAMJ,gBAAAA,QAAAA,EAAAA,KAAAA,CAAMK;;;;AAGzB;AAEAN,KAAAA,CAAMO,SAAS,GAAG;+BAEdD,KAAAA,EAAOE,SAAAA,CAAUC;AACrB,CAAA;;;;"}
|
|
@@ -7,15 +7,15 @@ import { getThemeValue, THEME_NAME } from '../../shared/constants.js';
|
|
|
7
7
|
const Input = /*#__PURE__*/ styled("input", {
|
|
8
8
|
target: "e1ed8pyp0",
|
|
9
9
|
label: "Input"
|
|
10
|
-
})("appearance:none;margin:0;width:0;& + span{color:", getThemeValue(THEME_NAME.PRIMARY), ";padding:6px 12px;border:none;border:1px solid ", getThemeValue(THEME_NAME.PRIMARY), ";cursor:pointer;margin-right:-1px;line-height:18px;}&:enabled:focus + span{box-shadow:0 0 0 4px ", getThemeValue(THEME_NAME.PRIMARY_LIGHT), ";}&:enabled:hover + span{background-color:", getThemeValue(THEME_NAME.PRIMARY_LIGHT), ";color:", getThemeValue(THEME_NAME.TEXT_COLOR_LIGHT), ";}&:enabled:checked + span{background-color:", getThemeValue(THEME_NAME.PRIMARY), ";color:", getThemeValue(THEME_NAME.TEXT_COLOR_LIGHT), ";}&:disabled + span{background-color:", getThemeValue(THEME_NAME.BORDER_LIGHT_COLOR), ";color:", getThemeValue(THEME_NAME.DISABLED_BORDER), ";}&:disabled:checked + span{background-color:", getThemeValue(THEME_NAME.DISABLED_BORDER), ";color:", getThemeValue(THEME_NAME.TEXT_COLOR_LIGHT), ";}"
|
|
10
|
+
})("appearance:none;margin:0;width:0;& + span{color:", getThemeValue(THEME_NAME.PRIMARY), ";padding:6px 12px;border:none;border:1px solid ", getThemeValue(THEME_NAME.PRIMARY), ";cursor:pointer;margin-right:-1px;line-height:18px;}&:enabled:focus + span{box-shadow:0 0 0 4px ", getThemeValue(THEME_NAME.PRIMARY_LIGHT), ";}&:enabled:hover + span{background-color:", getThemeValue(THEME_NAME.PRIMARY_LIGHT), ";color:", getThemeValue(THEME_NAME.TEXT_COLOR_LIGHT), ";}&:enabled:checked + span{background-color:", getThemeValue(THEME_NAME.PRIMARY), ";color:", getThemeValue(THEME_NAME.TEXT_COLOR_LIGHT), ";}&:disabled + span{background-color:", getThemeValue(THEME_NAME.BORDER_LIGHT_COLOR), ";color:", getThemeValue(THEME_NAME.DISABLED_BORDER), ";}&:disabled:checked + span{background-color:", getThemeValue(THEME_NAME.DISABLED_BORDER), ";color:", getThemeValue(THEME_NAME.TEXT_COLOR_LIGHT), ";}");
|
|
11
11
|
const Label = /*#__PURE__*/ styled("label", {
|
|
12
12
|
target: "e1ed8pyp1",
|
|
13
13
|
label: "Label"
|
|
14
|
-
})("display:inline-flex;&:focus-within{z-index:1;}"
|
|
14
|
+
})("display:inline-flex;&:focus-within{z-index:1;}");
|
|
15
15
|
const RadioGroup = /*#__PURE__*/ styled("div", {
|
|
16
16
|
target: "e1ed8pyp2",
|
|
17
17
|
label: "RadioGroup"
|
|
18
|
-
})("display:inline-flex;align-items:center;border-radius:3px;margin:5px 0;& ", Label, ":first-child > span{border-radius:3px 0 0 3px;}& ", Label, ":last-child > span{border-radius:0 3px 3px 0;}"
|
|
18
|
+
})("display:inline-flex;align-items:center;border-radius:3px;margin:5px 0;& ", Label, ":first-child > span{border-radius:3px 0 0 3px;}& ", Label, ":last-child > span{border-radius:0 3px 3px 0;}");
|
|
19
19
|
function RadioButton(props) {
|
|
20
20
|
return /*#__PURE__*/ jsxs(Label, {
|
|
21
21
|
children: [
|
|
@@ -34,3 +34,4 @@ RadioButton.propTypes = {
|
|
|
34
34
|
};
|
|
35
35
|
|
|
36
36
|
export { RadioGroup, RadioButton as default };
|
|
37
|
+
//# sourceMappingURL=RadioButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RadioButton.js","sources":["../../../src/components/Input/RadioButton.tsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from '@emotion/styled';\nimport { getThemeValue, THEME_NAME } from '../../shared/constants';\n\nconst Input = styled.input`\n appearance: none;\n margin: 0;\n width: 0;\n\n & + span {\n color: ${getThemeValue(THEME_NAME.PRIMARY)};\n padding: 6px 12px;\n border: none;\n border: 1px solid ${getThemeValue(THEME_NAME.PRIMARY)};\n cursor: pointer;\n margin-right: -1px;\n line-height: 18px;\n }\n\n &:enabled:focus + span {\n box-shadow: 0 0 0 4px ${getThemeValue(THEME_NAME.PRIMARY_LIGHT)};\n }\n\n &:enabled:hover + span {\n background-color: ${getThemeValue(THEME_NAME.PRIMARY_LIGHT)};\n color: ${getThemeValue(THEME_NAME.TEXT_COLOR_LIGHT)};\n }\n\n &:enabled:checked + span {\n background-color: ${getThemeValue(THEME_NAME.PRIMARY)};\n color: ${getThemeValue(THEME_NAME.TEXT_COLOR_LIGHT)};\n }\n\n &:disabled + span {\n background-color: ${getThemeValue(THEME_NAME.BORDER_LIGHT_COLOR)};\n color: ${getThemeValue(THEME_NAME.DISABLED_BORDER)};\n }\n\n &:disabled:checked + span {\n background-color: ${getThemeValue(THEME_NAME.DISABLED_BORDER)};\n color: ${getThemeValue(THEME_NAME.TEXT_COLOR_LIGHT)};\n }\n`;\n\nconst Label = styled.label`\n display: inline-flex;\n\n &:focus-within {\n z-index: 1;\n }\n`;\n\nexport const RadioGroup = styled.div`\n display: inline-flex;\n align-items: center;\n border-radius: 3px;\n margin: 5px 0;\n\n & ${Label}:first-child > span {\n border-radius: 3px 0 0 3px;\n }\n\n & ${Label}:last-child > span {\n border-radius: 0 3px 3px 0;\n }\n`;\n\nfunction RadioButton(\n props: PropTypes.InferProps<\n React.AllHTMLAttributes<HTMLInputElement> & typeof RadioButton.propTypes\n >,\n) {\n return (\n <Label>\n <Input {...props} type=\"radio\" />\n <span>{props.label}</span>\n </Label>\n );\n}\n\nRadioButton.propTypes = {\n /** Label for the field */\n label: PropTypes.string,\n};\n\nexport default RadioButton;\n"],"names":["Input","styled","getThemeValue","THEME_NAME","PRIMARY","PRIMARY_LIGHT","TEXT_COLOR_LIGHT","BORDER_LIGHT_COLOR","DISABLED_BORDER","Label","RadioGroup","RadioButton","props","_jsxs","_jsx","type","span","label","propTypes","PropTypes","string"],"mappings":";;;;;;AAKA,MAAMA,KAAAA,iBAAQC,MAAAA,CAAAA,OAAAA,EAAAA;;;AAMGC,CAAAA,CAAAA,CAAAA,kDAAAA,EAAAA,aAAAA,CAAcC,WAAWC,OAAO,CAAA,EAAA,iDAAA,EAGrBF,cAAcC,UAAAA,CAAWC,OAAO,uGAO5BF,aAAAA,CAAcC,UAAAA,CAAWE,aAAa,CAAA,EAAA,4CAAA,EAI1CH,cAAcC,UAAAA,CAAWE,aAAa,cACjDH,aAAAA,CAAcC,UAAAA,CAAWG,gBAAgB,CAAA,EAAA,8CAAA,EAI9BJ,aAAAA,CAAcC,UAAAA,CAAWC,OAAO,cAC3CF,aAAAA,CAAcC,UAAAA,CAAWG,gBAAgB,CAAA,EAAA,uCAAA,EAI9BJ,aAAAA,CAAcC,WAAWI,kBAAkB,CAAA,EAAA,SAAA,EACtDL,cAAcC,UAAAA,CAAWK,eAAe,oDAI7BN,aAAAA,CAAcC,UAAAA,CAAWK,eAAe,CAAA,EAAA,SAAA,EACnDN,aAAAA,CAAcC,WAAWG,gBAAgB,CAAA,EAAA,IAAA,CAAA;AAI1D,MAAMG,KAAAA,iBAAQR,MAAAA,CAAAA,OAAAA,EAAAA;;;;MAQDS,UAAAA,iBAAaT,MAAAA,CAAAA,KAAAA,EAAAA;;;AAMlBQ,CAAAA,CAAAA,CAAAA,0EAAAA,EAAAA,KAAAA,EAAAA,mDAAAA,EAIAA,KAAAA,EAAAA,gDAAAA;AAKR,SAASE,YACLC,KAEC,EAAA;AAED,IAAA,qBACIC,IAAA,CAACJ,KAAAA,EAAAA;;0BACGK,GAAA,CAACd,KAAAA,EAAAA;AAAO,gBAAA,GAAGY,KAAK;gBAAEG,IAAAA,EAAK;;0BACvBD,GAAA,CAACE,MAAAA,EAAAA;AAAMJ,gBAAAA,QAAAA,EAAAA,KAAAA,CAAMK;;;;AAGzB;AAEAN,WAAAA,CAAYO,SAAS,GAAG;+BAEpBD,KAAAA,EAAOE,SAAAA,CAAUC;AACrB,CAAA;;;;"}
|
|
@@ -8,7 +8,7 @@ import { getThemeValue, THEME_NAME } from '../../shared/constants.js';
|
|
|
8
8
|
const Label = /*#__PURE__*/ styled("label", {
|
|
9
9
|
target: "eao61d00",
|
|
10
10
|
label: "Label"
|
|
11
|
-
})("display:inline-flex;flex-direction:column;position:relative;margin:10px 5px;pointer-events:none;max-width:268px;& svg{fill:currentColor;}"
|
|
11
|
+
})("display:inline-flex;flex-direction:column;position:relative;margin:10px 5px;pointer-events:none;max-width:268px;& svg{fill:currentColor;}");
|
|
12
12
|
const SelectField = /*#__PURE__*/ styled("select", {
|
|
13
13
|
target: "eao61d01",
|
|
14
14
|
label: "SelectField"
|
|
@@ -33,15 +33,15 @@ const SelectField = /*#__PURE__*/ styled("select", {
|
|
|
33
33
|
font-size: 12px;
|
|
34
34
|
line-height: 14px;
|
|
35
35
|
}
|
|
36
|
-
` : '', " &:focus + span,&:placeholder-shown + span{top:-8px;background:", getThemeValue(THEME_NAME.BACKGROUND), ";font-size:12px;line-height:14px;}"
|
|
36
|
+
` : '', " &:focus + span,&:placeholder-shown + span{top:-8px;background:", getThemeValue(THEME_NAME.BACKGROUND), ";font-size:12px;line-height:14px;}");
|
|
37
37
|
const ErrorContainer = /*#__PURE__*/ styled("div", {
|
|
38
38
|
target: "eao61d02",
|
|
39
39
|
label: "ErrorContainer"
|
|
40
|
-
})("color:", getThemeValue(THEME_NAME.ERROR), ";padding-top:3px;font-size:12px;line-height:14px;margin-left:3px;"
|
|
40
|
+
})("color:", getThemeValue(THEME_NAME.ERROR), ";padding-top:3px;font-size:12px;line-height:14px;margin-left:3px;");
|
|
41
41
|
const ArrowContainer = /*#__PURE__*/ styled("span", {
|
|
42
42
|
target: "eao61d03",
|
|
43
43
|
label: "ArrowContainer"
|
|
44
|
-
})("position:absolute;right:8px;top:8px;"
|
|
44
|
+
})("position:absolute;right:8px;top:8px;");
|
|
45
45
|
function Select(props) {
|
|
46
46
|
const [touched, setTouched] = useState(false);
|
|
47
47
|
const [value, setValue] = useState(props.value || '');
|
|
@@ -104,3 +104,4 @@ Select.propTypes = {
|
|
|
104
104
|
};
|
|
105
105
|
|
|
106
106
|
export { Select as default };
|
|
107
|
+
//# sourceMappingURL=Select.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Select.js","sources":["../../../src/components/Input/Select.tsx"],"sourcesContent":["import React, { useState, useEffect, useId } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from '@emotion/styled';\nimport ExpandMore from '../../icons/ExpandMore';\nimport { getThemeValue, THEME_NAME } from '../../shared/constants';\n\ninterface SelectProps\n extends\n PropTypes.InferType<typeof Select.propTypes>,\n React.InputHTMLAttributes<HTMLSelectElement> {\n value?: string;\n}\n\ntype SelectInternalProps = SelectProps & {\n touched: boolean;\n};\n\nconst Label = styled.label`\n display: inline-flex;\n flex-direction: column;\n position: relative;\n margin: 10px 5px;\n pointer-events: none;\n max-width: 268px;\n\n & svg {\n fill: currentColor;\n }\n`;\n\nconst SelectField = styled.select<SelectInternalProps>`\n border: none;\n color: inherit;\n padding: 0 8px;\n line-height: 30px;\n min-height: 32px;\n width: 268px;\n border-radius: 3px;\n border: 1px solid ${getThemeValue(THEME_NAME.BORDER_COLOR)};\n display: inline-block;\n background-color: ${getThemeValue(THEME_NAME.BACKGROUND)};\n pointer-events: auto;\n appearance: none;\n\n /** Focused */\n &:focus,\n &:active {\n border-color: ${getThemeValue(THEME_NAME.PRIMARY)};\n box-shadow: 0 0 0 4px ${getThemeValue(THEME_NAME.PRIMARY_LIGHT)};\n }\n\n &:focus ~ span,\n &:active ~ span {\n color: ${getThemeValue(THEME_NAME.PRIMARY)};\n }\n\n /** Disabled */\n &:disabled {\n border-color: ${getThemeValue(THEME_NAME.DISABLED_BORDER)};\n background-color: ${getThemeValue(THEME_NAME.DISABLED_BACKGROUND)};\n }\n\n &:disabled ~ span {\n color: ${getThemeValue(THEME_NAME.DISABLED)};\n }\n\n /** Invalid */\n &:focus:invalid {\n border-color: ${getThemeValue(THEME_NAME.ERROR)};\n box-shadow: 0 0 0 4px ${getThemeValue(THEME_NAME.ERROR_LIGHT)};\n }\n\n ${(props) =>\n props.touched\n ? `\n &:invalid {\n border-color: ${getThemeValue(THEME_NAME.ERROR)};\n }\n\n &:invalid ~ span {\n color: ${getThemeValue(THEME_NAME.ERROR)};\n }\n `\n : ''}\n\n /** Error */\n ${(props) =>\n props.errorText\n ? `\n border-color: ${getThemeValue(THEME_NAME.ERROR)};\n\n & ~ span {\n color: ${getThemeValue(THEME_NAME.ERROR)};\n }\n `\n : ''}\n\n /** Required */\n &:required + span:after {\n content: '*';\n margin-left: 2px;\n color: ${getThemeValue(THEME_NAME.ERROR)};\n }\n\n /** Label Animation */\n & + span {\n position: absolute;\n padding: 0 5px;\n top: 0px;\n left: 4px;\n font-size: 14px;\n line-height: 32px;\n transition: all 300ms ease;\n }\n\n ${(props) =>\n props.value !== ''\n ? `\n & + span {\n top: -8px;\n background: ${getThemeValue(THEME_NAME.BACKGROUND)};\n font-size: 12px;\n line-height: 14px;\n }\n `\n : ''}\n\n &:focus + span, &:placeholder-shown + span {\n top: -8px;\n background: ${getThemeValue(THEME_NAME.BACKGROUND)};\n font-size: 12px;\n line-height: 14px;\n }\n`;\n\nconst ErrorContainer = styled.div`\n color: ${getThemeValue(THEME_NAME.ERROR)};\n padding-top: 3px;\n font-size: 12px;\n line-height: 14px;\n margin-left: 3px;\n`;\n\nconst ArrowContainer = styled.span`\n position: absolute;\n right: 8px;\n top: 8px;\n`;\n\nexport default function Select(props: SelectProps) {\n const [touched, setTouched] = useState(false);\n const [value, setValue] = useState(props.value || '');\n const errorId = useId();\n\n useEffect(() => {\n if (props.value !== undefined) {\n setValue(props.value);\n }\n }, [props.value]);\n\n const handleFocus = (e: React.FocusEvent<HTMLSelectElement>) => {\n setTouched(true);\n if (props.onFocus) {\n props.onFocus(e);\n }\n };\n\n const onChangeHandler = (e: React.ChangeEvent<HTMLSelectElement>) => {\n if (props.onChange) {\n setValue(e.target.value);\n props.onChange(e);\n } else {\n setValue(e.target.value);\n }\n };\n\n return (\n <Label>\n <SelectField\n {...props}\n multiple={false}\n value={value}\n onChange={onChangeHandler}\n onFocus={handleFocus}\n touched={touched}\n aria-invalid={!!props.errorText}\n aria-required={props.required}\n aria-describedby={props.errorText ? errorId : undefined}\n >\n <option />\n {props.children}\n </SelectField>\n <span>{props.label}</span>\n <ArrowContainer aria-hidden=\"true\">\n <ExpandMore />\n </ArrowContainer>\n {props.errorText && <ErrorContainer id={errorId}>{props.errorText}</ErrorContainer>}\n </Label>\n );\n}\n\nSelect.propTypes = {\n /** Label for the field */\n label: PropTypes.string,\n /** Error text to be shown below the field */\n errorText: PropTypes.string,\n};\n"],"names":["Label","styled","SelectField","getThemeValue","THEME_NAME","BORDER_COLOR","BACKGROUND","PRIMARY","PRIMARY_LIGHT","DISABLED_BORDER","DISABLED_BACKGROUND","DISABLED","ERROR","ERROR_LIGHT","props","touched","errorText","value","ErrorContainer","ArrowContainer","Select","setTouched","useState","setValue","errorId","useId","useEffect","undefined","handleFocus","e","onFocus","onChangeHandler","onChange","target","_jsxs","multiple","aria-invalid","aria-required","required","aria-describedby","_jsx","option","children","span","label","aria-hidden","ExpandMore","id","propTypes","PropTypes","string"],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ import { getThemeValue, THEME_NAME } from '../../shared/constants.js';
|
|
|
7
7
|
const Label = /*#__PURE__*/ styled("label", {
|
|
8
8
|
target: "ee4amtm0",
|
|
9
9
|
label: "Label"
|
|
10
|
-
})("display:inline-flex;flex-direction:column;position:relative;margin:10px 5px;"
|
|
10
|
+
})("display:inline-flex;flex-direction:column;position:relative;margin:10px 5px;");
|
|
11
11
|
const TextField = /*#__PURE__*/ styled("textarea", {
|
|
12
12
|
target: "ee4amtm1",
|
|
13
13
|
label: "TextField"
|
|
@@ -32,11 +32,11 @@ const TextField = /*#__PURE__*/ styled("textarea", {
|
|
|
32
32
|
font-size: 12px;
|
|
33
33
|
line-height: 14px;
|
|
34
34
|
}
|
|
35
|
-
` : '', " &:focus + span,&:placeholder-shown + span{top:-8px;background:", getThemeValue(THEME_NAME.BACKGROUND), ";font-size:12px;line-height:14px;}"
|
|
35
|
+
` : '', " &:focus + span,&:placeholder-shown + span{top:-8px;background:", getThemeValue(THEME_NAME.BACKGROUND), ";font-size:12px;line-height:14px;}");
|
|
36
36
|
const ErrorContainer = /*#__PURE__*/ styled("div", {
|
|
37
37
|
target: "ee4amtm2",
|
|
38
38
|
label: "ErrorContainer"
|
|
39
|
-
})("color:", getThemeValue(THEME_NAME.ERROR), ";padding-top:3px;font-size:12px;line-height:14px;margin-left:3px;"
|
|
39
|
+
})("color:", getThemeValue(THEME_NAME.ERROR), ";padding-top:3px;font-size:12px;line-height:14px;margin-left:3px;");
|
|
40
40
|
function TextArea(props) {
|
|
41
41
|
const [touched, setTouched] = useState(false);
|
|
42
42
|
const [value, setValue] = useState(props.value || '');
|
|
@@ -90,3 +90,4 @@ TextArea.propTypes = {
|
|
|
90
90
|
};
|
|
91
91
|
|
|
92
92
|
export { TextArea as default };
|
|
93
|
+
//# sourceMappingURL=TextArea.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TextArea.js","sources":["../../../src/components/Input/TextArea.tsx"],"sourcesContent":["import React, { useState, useEffect, useId } from 'react';\nimport PropTypes from 'prop-types';\nimport styled from '@emotion/styled';\nimport { getThemeValue, THEME_NAME } from '../../shared/constants';\n\ninterface TextAreaProps\n extends\n PropTypes.InferType<typeof TextArea.propTypes>,\n React.InputHTMLAttributes<HTMLTextAreaElement> {\n value?: string;\n}\n\ntype TextAreaInternalProps = TextAreaProps & {\n touched: boolean;\n};\n\nconst Label = styled.label`\n display: inline-flex;\n flex-direction: column;\n position: relative;\n margin: 10px 5px;\n`;\n\nconst TextField = styled.textarea<TextAreaInternalProps>`\n border: none;\n color: inherit;\n padding: 8px;\n min-height: 150px;\n min-width: 250px;\n border-radius: 3px;\n border: 1px solid ${getThemeValue(THEME_NAME.BORDER_COLOR)};\n display: inline-block;\n background-color: ${getThemeValue(THEME_NAME.BACKGROUND)};\n\n /** Focused */\n &:focus,\n &:active {\n border-color: ${getThemeValue(THEME_NAME.PRIMARY)};\n box-shadow: 0 0 0 4px ${getThemeValue(THEME_NAME.PRIMARY_LIGHT)};\n }\n\n &:focus + span,\n &:active + span {\n color: ${getThemeValue(THEME_NAME.PRIMARY)};\n }\n\n /** Disabled */\n &:disabled {\n border-color: ${getThemeValue(THEME_NAME.DISABLED_BORDER)};\n background-color: ${getThemeValue(THEME_NAME.DISABLED_BACKGROUND)};\n }\n\n &:disabled + span {\n color: ${getThemeValue(THEME_NAME.DISABLED)};\n }\n\n /** Invalid */\n &:focus:invalid {\n border-color: ${getThemeValue(THEME_NAME.ERROR)};\n box-shadow: 0 0 0 4px ${getThemeValue(THEME_NAME.ERROR_LIGHT)};\n }\n\n ${(props) =>\n props.touched\n ? `\n &:invalid {\n border-color: ${getThemeValue(THEME_NAME.ERROR)};\n }\n\n &:invalid + span {\n color: ${getThemeValue(THEME_NAME.ERROR)};\n }\n `\n : ''}\n\n /** Error */\n ${(props) =>\n props.errorText\n ? `\n border-color: ${getThemeValue(THEME_NAME.ERROR)};\n\n & + span {\n color: ${getThemeValue(THEME_NAME.ERROR)};\n }\n `\n : ''}\n\n /** Required */\n &:required + span:after {\n content: '*';\n margin-left: 2px;\n color: ${getThemeValue(THEME_NAME.ERROR)};\n }\n\n /** Label Animation */\n & + span {\n position: absolute;\n padding: 0 5px;\n top: 0px;\n left: 4px;\n font-size: 14px;\n line-height: 32px;\n transition: all 300ms ease;\n }\n\n ${(props) =>\n props.value !== ''\n ? `\n & + span {\n top: -8px;\n background: ${getThemeValue(THEME_NAME.BACKGROUND)};\n font-size: 12px;\n line-height: 14px;\n }\n `\n : ''}\n\n &:focus + span, &:placeholder-shown + span {\n top: -8px;\n background: ${getThemeValue(THEME_NAME.BACKGROUND)};\n font-size: 12px;\n line-height: 14px;\n }\n`;\n\nconst ErrorContainer = styled.div`\n color: ${getThemeValue(THEME_NAME.ERROR)};\n padding-top: 3px;\n font-size: 12px;\n line-height: 14px;\n margin-left: 3px;\n`;\n\nexport default function TextArea(props: TextAreaProps) {\n const [touched, setTouched] = useState(false);\n const [value, setValue] = useState(props.value || '');\n const errorId = useId();\n\n useEffect(() => {\n if (props.value !== undefined) {\n setValue(props.value);\n }\n }, [props.value]);\n\n const handleFocus = (e: React.FocusEvent<HTMLTextAreaElement>) => {\n setTouched(true);\n if (props.onFocus) {\n props.onFocus(e);\n }\n };\n\n const onChangeHandler = (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n if (props.onChange) {\n setValue(e.target.value);\n props.onChange(e);\n } else {\n setValue(e.target.value);\n }\n };\n\n return (\n <Label>\n <TextField\n {...props}\n value={value}\n onChange={onChangeHandler}\n onFocus={handleFocus}\n touched={touched}\n aria-invalid={!!props.errorText}\n aria-required={props.required}\n aria-describedby={props.errorText ? errorId : undefined}\n />\n <span>{props.label}</span>\n {props.errorText && <ErrorContainer id={errorId}>{props.errorText}</ErrorContainer>}\n </Label>\n );\n}\n\nTextArea.propTypes = {\n /** Label for the field */\n label: PropTypes.string,\n /** Error text to be shown below the field */\n errorText: PropTypes.string,\n};\n"],"names":["Label","styled","TextField","getThemeValue","THEME_NAME","BORDER_COLOR","BACKGROUND","PRIMARY","PRIMARY_LIGHT","DISABLED_BORDER","DISABLED_BACKGROUND","DISABLED","ERROR","ERROR_LIGHT","props","touched","errorText","value","ErrorContainer","TextArea","setTouched","useState","setValue","errorId","useId","useEffect","undefined","handleFocus","e","onFocus","onChangeHandler","onChange","target","_jsxs","_jsx","aria-invalid","aria-required","required","aria-describedby","span","label","id","propTypes","PropTypes","string"],"mappings":"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"}
|
|
@@ -7,11 +7,11 @@ import { getThemeValue, THEME_NAME } from '../../shared/constants.js';
|
|
|
7
7
|
const Switch = /*#__PURE__*/ styled("label", {
|
|
8
8
|
target: "ecfiyvb0",
|
|
9
9
|
label: "Switch"
|
|
10
|
-
})("position:relative;display:inline-flex;margin:5px 0;"
|
|
10
|
+
})("position:relative;display:inline-flex;margin:5px 0;");
|
|
11
11
|
const Input = /*#__PURE__*/ styled("input", {
|
|
12
12
|
target: "ecfiyvb1",
|
|
13
13
|
label: "Input"
|
|
14
|
-
})("position:absolute;width:0;height:0;appearance:none;margin:0;& + span{position:relative;cursor:pointer;width:30px;height:18px;background-color:", getThemeValue(THEME_NAME.LIGHT_GREY), ";transition:0.4s;border-radius:10px;padding:0 3px;margin:0 10px 0 5px;}& + span:before{position:absolute;content:'';height:14px;width:14px;left:1px;top:1px;border:1px solid ", getThemeValue(THEME_NAME.DISABLED_BORDER), ";border-radius:50%;background-color:", getThemeValue(THEME_NAME.BACKGROUND), ";transition:0.4s;}&:checked + span{background-color:", getThemeValue(THEME_NAME.PRIMARY_LIGHT), ";}&:checked + span:before{transform:translateX(18px);border-color:", getThemeValue(THEME_NAME.PRIMARY), ";}&:enabled:focus + span:before{box-shadow:0 0 0 3px ", getThemeValue(THEME_NAME.PRIMARY_LIGHT), ";border-color:", getThemeValue(THEME_NAME.PRIMARY), ";}&:enabled:hover ~ span{cursor:pointer;color:", getThemeValue(THEME_NAME.PRIMARY), ";}&:disabled ~ span{color:", getThemeValue(THEME_NAME.DISABLED_BORDER), ";}&:disabled + span{background-color:", getThemeValue(THEME_NAME.LIGHT_GREY), ";cursor:not-allowed;}&:disabled + span:before{background-color:", getThemeValue(THEME_NAME.BORDER_LIGHT_COLOR), ";border-color:", getThemeValue(THEME_NAME.DISABLED_BORDER), ";}"
|
|
14
|
+
})("position:absolute;width:0;height:0;appearance:none;margin:0;& + span{position:relative;cursor:pointer;width:30px;height:18px;background-color:", getThemeValue(THEME_NAME.LIGHT_GREY), ";transition:0.4s;border-radius:10px;padding:0 3px;margin:0 10px 0 5px;}& + span:before{position:absolute;content:'';height:14px;width:14px;left:1px;top:1px;border:1px solid ", getThemeValue(THEME_NAME.DISABLED_BORDER), ";border-radius:50%;background-color:", getThemeValue(THEME_NAME.BACKGROUND), ";transition:0.4s;}&:checked + span{background-color:", getThemeValue(THEME_NAME.PRIMARY_LIGHT), ";}&:checked + span:before{transform:translateX(18px);border-color:", getThemeValue(THEME_NAME.PRIMARY), ";}&:enabled:focus + span:before{box-shadow:0 0 0 3px ", getThemeValue(THEME_NAME.PRIMARY_LIGHT), ";border-color:", getThemeValue(THEME_NAME.PRIMARY), ";}&:enabled:hover ~ span{cursor:pointer;color:", getThemeValue(THEME_NAME.PRIMARY), ";}&:disabled ~ span{color:", getThemeValue(THEME_NAME.DISABLED_BORDER), ";}&:disabled + span{background-color:", getThemeValue(THEME_NAME.LIGHT_GREY), ";cursor:not-allowed;}&:disabled + span:before{background-color:", getThemeValue(THEME_NAME.BORDER_LIGHT_COLOR), ";border-color:", getThemeValue(THEME_NAME.DISABLED_BORDER), ";}");
|
|
15
15
|
function Toggle(props) {
|
|
16
16
|
return /*#__PURE__*/ jsxs(Switch, {
|
|
17
17
|
children: [
|
|
@@ -33,3 +33,4 @@ Toggle.propTypes = {
|
|
|
33
33
|
};
|
|
34
34
|
|
|
35
35
|
export { Toggle as default };
|
|
36
|
+
//# sourceMappingURL=Toggle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Toggle.js","sources":["../../../src/components/Input/Toggle.tsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport styled from '@emotion/styled';\nimport { getThemeValue, THEME_NAME } from '../../shared/constants';\n\nconst Switch = styled.label`\n position: relative;\n display: inline-flex;\n margin: 5px 0;\n`;\n\nconst Input = styled.input`\n position: absolute;\n width: 0;\n height: 0;\n appearance: none;\n margin: 0;\n\n & + span {\n position: relative;\n cursor: pointer;\n width: 30px;\n height: 18px;\n background-color: ${getThemeValue(THEME_NAME.LIGHT_GREY)};\n transition: 0.4s;\n border-radius: 10px;\n padding: 0 3px;\n margin: 0 10px 0 5px;\n }\n & + span:before {\n position: absolute;\n content: '';\n height: 14px;\n width: 14px;\n left: 1px;\n top: 1px;\n border: 1px solid ${getThemeValue(THEME_NAME.DISABLED_BORDER)};\n border-radius: 50%;\n background-color: ${getThemeValue(THEME_NAME.BACKGROUND)};\n transition: 0.4s;\n }\n\n /* checked */\n &:checked + span {\n background-color: ${getThemeValue(THEME_NAME.PRIMARY_LIGHT)};\n }\n\n &:checked + span:before {\n transform: translateX(18px);\n border-color: ${getThemeValue(THEME_NAME.PRIMARY)};\n }\n\n /* focus */\n &:enabled:focus + span:before {\n box-shadow: 0 0 0 3px ${getThemeValue(THEME_NAME.PRIMARY_LIGHT)};\n border-color: ${getThemeValue(THEME_NAME.PRIMARY)};\n }\n\n /* hover */\n &:enabled:hover ~ span {\n cursor: pointer;\n color: ${getThemeValue(THEME_NAME.PRIMARY)};\n }\n\n /* disabled */\n &:disabled ~ span {\n color: ${getThemeValue(THEME_NAME.DISABLED_BORDER)};\n }\n\n &:disabled + span {\n background-color: ${getThemeValue(THEME_NAME.LIGHT_GREY)};\n cursor: not-allowed;\n }\n\n &:disabled + span:before {\n background-color: ${getThemeValue(THEME_NAME.BORDER_LIGHT_COLOR)};\n border-color: ${getThemeValue(THEME_NAME.DISABLED_BORDER)};\n }\n`;\n\ntype ToggleProps = PropTypes.InferProps<\n React.AllHTMLAttributes<HTMLInputElement> & typeof Toggle.propTypes\n>;\n\nfunction Toggle(props: ToggleProps) {\n return (\n <Switch>\n <Input {...props} type=\"checkbox\" role=\"switch\" aria-checked={props.checked} />\n <span></span>\n <span>{props.label}</span>\n </Switch>\n );\n}\n\nToggle.propTypes = {\n /** Label for the field */\n label: PropTypes.string,\n};\n\nexport default Toggle;\n"],"names":["Switch","styled","Input","getThemeValue","THEME_NAME","LIGHT_GREY","DISABLED_BORDER","BACKGROUND","PRIMARY_LIGHT","PRIMARY","BORDER_LIGHT_COLOR","Toggle","props","_jsxs","_jsx","type","role","aria-checked","checked","span","label","propTypes","PropTypes","string"],"mappings":";;;;;;AAKA,MAAMA,MAAAA,iBAASC,MAAAA,CAAAA,OAAAA,EAAAA;;;;AAMf,MAAMC,KAAAA,iBAAQD,MAAAA,CAAAA,OAAAA,EAAAA;;;qJAYcE,aAAAA,CAAcC,UAAAA,CAAWC,UAAU,CAAA,EAAA,+KAAA,EAanCF,aAAAA,CAAcC,WAAWE,eAAe,CAAA,EAAA,sCAAA,EAExCH,cAAcC,UAAAA,CAAWG,UAAU,2DAMnCJ,aAAAA,CAAcC,UAAAA,CAAWI,aAAa,CAAA,EAAA,oEAAA,EAK1CL,aAAAA,CAAcC,WAAWK,OAAO,CAAA,EAAA,uDAAA,EAKxBN,cAAcC,UAAAA,CAAWI,aAAa,qBAC9CL,aAAAA,CAAcC,UAAAA,CAAWK,OAAO,CAAA,EAAA,gDAAA,EAMvCN,aAAAA,CAAcC,WAAWK,OAAO,CAAA,EAAA,4BAAA,EAKhCN,cAAcC,UAAAA,CAAWE,eAAe,4CAI7BH,aAAAA,CAAcC,UAAAA,CAAWC,UAAU,CAAA,EAAA,iEAAA,EAKnCF,aAAAA,CAAcC,WAAWM,kBAAkB,CAAA,EAAA,gBAAA,EAC/CP,aAAAA,CAAcC,UAAAA,CAAWE,eAAe,CAAA,EAAA,IAAA,CAAA;AAQhE,SAASK,OAAOC,KAAkB,EAAA;AAC9B,IAAA,qBACIC,IAAA,CAACb,MAAAA,EAAAA;;0BACGc,GAAA,CAACZ,KAAAA,EAAAA;AAAO,gBAAA,GAAGU,KAAK;gBAAEG,IAAAA,EAAK,UAAA;gBAAWC,IAAAA,EAAK,QAAA;AAASC,gBAAAA,cAAAA,EAAcL,MAAMM;;0BACpEJ,GAAA,CAACK,MAAAA,EAAAA,EAAAA,CAAAA;0BACDL,GAAA,CAACK,MAAAA,EAAAA;AAAMP,gBAAAA,QAAAA,EAAAA,KAAAA,CAAMQ;;;;AAGzB;AAEAT,MAAAA,CAAOU,SAAS,GAAG;+BAEfD,KAAAA,EAAOE,SAAAA,CAAUC;AACrB,CAAA;;;;"}
|
|
@@ -7,7 +7,7 @@ import MenuContext from './MenuContext.js';
|
|
|
7
7
|
const MenuContainer = /*#__PURE__*/ styled("div", {
|
|
8
8
|
target: "ez48lhb0",
|
|
9
9
|
label: "MenuContainer"
|
|
10
|
-
})("flex:1;display:flex;flex-direction:column;& div:last-child{border-bottom:none;}&:focus-within{box-shadow:0 0 0 4px ", getThemeValue(THEME_NAME.PRIMARY_LIGHT), ";}"
|
|
10
|
+
})("flex:1;display:flex;flex-direction:column;& div:last-child{border-bottom:none;}&:focus-within{box-shadow:0 0 0 4px ", getThemeValue(THEME_NAME.PRIMARY_LIGHT), ";}");
|
|
11
11
|
/**
|
|
12
12
|
* Menu component that allows selection of items from a list.
|
|
13
13
|
* Supports single and multi-select modes and keyboard navigation.
|
|
@@ -124,3 +124,4 @@ Menu.defaultProps = {
|
|
|
124
124
|
};
|
|
125
125
|
|
|
126
126
|
export { Menu as default };
|
|
127
|
+
//# sourceMappingURL=Menu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Menu.js","sources":["../../../src/components/Menu/Menu.tsx"],"sourcesContent":["import React, { useState, ReactNode, ForwardedRef } from 'react';\nimport styled from '@emotion/styled';\nimport { getThemeValue, THEME_NAME } from '../../shared/constants';\nimport MenuContext from './MenuContext';\n/**\n * Props for the Menu component.\n * @template T - The type of value(s) in the menu.\n */\ninterface MenuProps<T> {\n /** Multiple Menu Items can be selected */\n multiSelect?: boolean;\n /** Value(s) selected */\n value?: T | T[];\n /** Callback when the selected value changes */\n onChange?: (value: T | T[]) => void;\n /** Menu Items */\n children?: ReactNode;\n}\n\nconst MenuContainer = styled.div`\n flex: 1;\n display: flex;\n flex-direction: column;\n\n & div:last-child {\n border-bottom: none;\n }\n\n &:focus-within {\n box-shadow: 0 0 0 4px ${getThemeValue(THEME_NAME.PRIMARY_LIGHT)};\n }\n`;\n\n/**\n * Menu component that allows selection of items from a list.\n * Supports single and multi-select modes and keyboard navigation.\n *\n * @template T - The type of value(s) in the menu.\n * @param {MenuProps<T> & Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'>} props - The menu properties.\n * @param {ForwardedRef<HTMLDivElement>} ref - The ref forwarded to the menu container.\n */\nconst Menu = React.forwardRef(function <T extends object>(\n props: MenuProps<T> & Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const { multiSelect, onChange, value: propValue, ...rest } = props;\n const [value, setValue] = useState(propValue || (multiSelect ? [] : ''));\n\n /**\n * Updates the selected value(s).\n * Handles both single and multi-select logic.\n *\n * @param {T} val - The value to select or deselect.\n */\n const updateValue = (val: T) => {\n let newVal;\n if (multiSelect) {\n if (Array.isArray(value)) {\n if (value.includes(val)) {\n newVal = value.filter((item) => item !== val);\n } else {\n newVal = [...value, val];\n }\n }\n } else {\n newVal = val;\n }\n setValue(newVal);\n onChange?.(newVal);\n };\n\n /**\n * Handles keyboard navigation within the menu.\n * Supports Arrow keys for navigation, and Enter/Space for selection.\n *\n * @param {React.KeyboardEvent} e - The keyboard event.\n */\n const handleKeyDown = (e: React.KeyboardEvent) => {\n const target = e.target as HTMLElement;\n const container = e.currentTarget as HTMLElement;\n const items = Array.from(container.querySelectorAll('[role=\"option\"]')) as HTMLElement[];\n const currentIndex = items.indexOf(target as HTMLElement);\n\n let nextIndex;\n\n switch (e.key) {\n case 'ArrowDown':\n e.preventDefault();\n nextIndex = currentIndex + 1;\n if (nextIndex >= items.length) nextIndex = 0;\n items[nextIndex]?.focus();\n break;\n case 'ArrowUp':\n e.preventDefault();\n nextIndex = currentIndex - 1;\n if (nextIndex < 0) nextIndex = items.length - 1;\n items[nextIndex]?.focus();\n break;\n case 'Home':\n e.preventDefault();\n items[0]?.focus();\n break;\n case 'End':\n e.preventDefault();\n items[items.length - 1]?.focus();\n break;\n case 'Enter':\n case ' ': // Space\n e.preventDefault();\n target.click();\n break;\n default:\n break;\n }\n };\n\n /**\n * Handles focus events on the menu container.\n * Delegates focus to the first item if the container itself receives focus.\n *\n * @param {React.FocusEvent} e - The focus event.\n */\n const focusHandler = (e: React.FocusEvent) => {\n // Prevent trap: If focus came from inside (Shift+Tab), do NOT auto-focus again.\n // This allows focus to land on the container, and the next Shift+Tab will exit.\n if (e.currentTarget.contains(e.relatedTarget as Node)) {\n return;\n }\n\n // Only if focus is actually on the container (e.g. tabbing into it)\n // and not bubbling up from a child\n if (e.target === e.currentTarget) {\n // Prevent the container from holding focus; delegate to first item\n const firstItem = e.currentTarget.querySelector('[role=\"option\"]') as HTMLElement;\n firstItem?.focus();\n }\n };\n\n return (\n <MenuContext.Provider\n value={\n {\n value,\n multiSelect,\n updateValue,\n } as unknown as React.ContextType<typeof MenuContext>\n }\n >\n <MenuContainer\n {...rest}\n ref={ref}\n role=\"listbox\"\n aria-multiselectable={multiSelect}\n tabIndex={0}\n onKeyDown={handleKeyDown}\n onFocus={focusHandler}\n >\n {props.children}\n </MenuContainer>\n </MenuContext.Provider>\n );\n});\n\nMenu.displayName = 'Menu';\n\nMenu.defaultProps = {\n multiSelect: false,\n};\n\nexport default Menu;\n"],"names":["MenuContainer","styled","getThemeValue","THEME_NAME","PRIMARY_LIGHT","Menu","React","forwardRef","props","ref","multiSelect","onChange","value","propValue","rest","setValue","useState","updateValue","val","newVal","Array","isArray","includes","filter","item","handleKeyDown","e","target","container","currentTarget","items","from","querySelectorAll","currentIndex","indexOf","nextIndex","key","preventDefault","length","focus","click","focusHandler","contains","relatedTarget","firstItem","querySelector","_jsx","MenuContext","Provider","role","aria-multiselectable","tabIndex","onKeyDown","onFocus","children","displayName","defaultProps"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuContext.js","sources":["../../../src/components/Menu/MenuContext.ts"],"sourcesContent":["import { createContext } from 'react';\n\ntype SingleSelect<T> = {\n value: T;\n multiSelect: false;\n updateValue: (newVal: T) => void;\n};\n\ntype MultiSelect<T> = {\n value: T[];\n multiSelect: true;\n updateValue: (newVal: T[]) => void;\n};\nexport type MenuContextType<T> = SingleSelect<T> | MultiSelect<T>;\n\nexport default createContext<MenuContextType<object>>(undefined);\n"],"names":["createContext","undefined"],"mappings":";;AAeA,kBAAeA,cAAuCC,SAAAA,CAAAA;;;;"}
|