@foxford/ui 2.47.0 → 2.48.0
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/assets/calendar-fill.svg +1 -0
- package/assets/circle-user-fill.svg +1 -1
- package/assets/copy-fill.svg +1 -0
- package/assets/house-fill.svg +1 -1
- package/assets/message-circle-chat-fill.svg +1 -0
- package/assets/rocket-fill.svg +1 -0
- package/assets/student-fill.svg +1 -0
- package/assets/users-fill.svg +1 -0
- package/components/Alert/Alert.js +1 -1
- package/components/Alert/Alert.mjs +1 -1
- package/components/Button/style.js +1 -1
- package/components/Button/style.mjs +1 -1
- package/components/Dropdown/Dropdown.js +1 -1
- package/components/Dropdown/Dropdown.js.map +1 -1
- package/components/Dropdown/Dropdown.mjs +1 -1
- package/components/Dropdown/Dropdown.mjs.map +1 -1
- package/components/Dropdown/style.js +1 -1
- package/components/Dropdown/style.js.map +1 -1
- package/components/Dropdown/style.mjs +1 -1
- package/components/Dropdown/style.mjs.map +1 -1
- package/components/FormInput/FormInput.js +2 -0
- package/components/FormInput/FormInput.js.map +1 -0
- package/components/FormInput/FormInput.mjs +2 -0
- package/components/FormInput/FormInput.mjs.map +1 -0
- package/components/FormInput/style.js +2 -0
- package/components/FormInput/style.js.map +1 -0
- package/components/FormInput/style.mjs +2 -0
- package/components/FormInput/style.mjs.map +1 -0
- package/components/FormInputLabel/FormInputLabel.js +1 -1
- package/components/FormInputLabel/FormInputLabel.js.map +1 -1
- package/components/FormInputLabel/FormInputLabel.mjs +1 -1
- package/components/FormInputLabel/FormInputLabel.mjs.map +1 -1
- package/components/FormInputLabel/constants.js +1 -1
- package/components/FormInputLabel/constants.js.map +1 -1
- package/components/FormInputLabel/constants.mjs +1 -1
- package/components/FormInputLabel/constants.mjs.map +1 -1
- package/components/FormInputLabel/style.js +1 -1
- package/components/FormInputLabel/style.js.map +1 -1
- package/components/FormInputLabel/style.mjs +1 -1
- package/components/FormInputLabel/style.mjs.map +1 -1
- package/components/Icon/Icon.js.map +1 -1
- package/components/Icon/Icon.mjs.map +1 -1
- package/components/Icon/list/icon-pack.js +1 -1
- package/components/Icon/list/icon-pack.mjs +1 -1
- package/components/Icon/style.js +1 -1
- package/components/Icon/style.js.map +1 -1
- package/components/Icon/style.mjs +1 -1
- package/components/Icon/style.mjs.map +1 -1
- package/components/Input/Input.js +1 -1
- package/components/Input/Input.js.map +1 -1
- package/components/Input/Input.mjs +1 -1
- package/components/Input/Input.mjs.map +1 -1
- package/components/Input/constants.js +2 -0
- package/components/Input/constants.js.map +1 -0
- package/components/Input/constants.mjs +2 -0
- package/components/Input/constants.mjs.map +1 -0
- package/components/Input/style.js +1 -1
- package/components/Input/style.js.map +1 -1
- package/components/Input/style.mjs +1 -1
- package/components/Input/style.mjs.map +1 -1
- package/dts/index.d.ts +92 -71
- package/external/.pnpm/@foxford_icon-pack@0.9.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@foxford/icon-pack/components.json.js +2 -0
- package/external/.pnpm/@foxford_icon-pack@0.9.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@foxford/icon-pack/components.json.mjs +2 -0
- package/external/.pnpm/{@foxford_icon-pack@0.8.0_react-dom@18.3.1_react@18.3.1__react@18.3.1 → @foxford_icon-pack@0.9.0_react-dom@18.3.1_react@18.3.1__react@18.3.1}/node_modules/@foxford/icon-pack/icons/CheckCircleFill/index.js.map +1 -1
- package/external/.pnpm/{@foxford_icon-pack@0.8.0_react-dom@18.3.1_react@18.3.1__react@18.3.1 → @foxford_icon-pack@0.9.0_react-dom@18.3.1_react@18.3.1__react@18.3.1}/node_modules/@foxford/icon-pack/icons/CheckCircleFill/index.mjs.map +1 -1
- package/external/.pnpm/{@foxford_icon-pack@0.8.0_react-dom@18.3.1_react@18.3.1__react@18.3.1 → @foxford_icon-pack@0.9.0_react-dom@18.3.1_react@18.3.1__react@18.3.1}/node_modules/@foxford/icon-pack/icons/ChevronDown/index.js.map +1 -1
- package/external/.pnpm/{@foxford_icon-pack@0.8.0_react-dom@18.3.1_react@18.3.1__react@18.3.1 → @foxford_icon-pack@0.9.0_react-dom@18.3.1_react@18.3.1__react@18.3.1}/node_modules/@foxford/icon-pack/icons/ChevronDown/index.mjs.map +1 -1
- package/external/.pnpm/{@foxford_icon-pack@0.8.0_react-dom@18.3.1_react@18.3.1__react@18.3.1 → @foxford_icon-pack@0.9.0_react-dom@18.3.1_react@18.3.1__react@18.3.1}/node_modules/@foxford/icon-pack/icons/Close/index.js.map +1 -1
- package/external/.pnpm/{@foxford_icon-pack@0.8.0_react-dom@18.3.1_react@18.3.1__react@18.3.1 → @foxford_icon-pack@0.9.0_react-dom@18.3.1_react@18.3.1__react@18.3.1}/node_modules/@foxford/icon-pack/icons/Close/index.mjs.map +1 -1
- package/external/.pnpm/{@foxford_icon-pack@0.8.0_react-dom@18.3.1_react@18.3.1__react@18.3.1 → @foxford_icon-pack@0.9.0_react-dom@18.3.1_react@18.3.1__react@18.3.1}/node_modules/@foxford/icon-pack/icons/CloseCirlceFill/index.js.map +1 -1
- package/external/.pnpm/{@foxford_icon-pack@0.8.0_react-dom@18.3.1_react@18.3.1__react@18.3.1 → @foxford_icon-pack@0.9.0_react-dom@18.3.1_react@18.3.1__react@18.3.1}/node_modules/@foxford/icon-pack/icons/CloseCirlceFill/index.mjs.map +1 -1
- package/external/.pnpm/{@foxford_icon-pack@0.8.0_react-dom@18.3.1_react@18.3.1__react@18.3.1 → @foxford_icon-pack@0.9.0_react-dom@18.3.1_react@18.3.1__react@18.3.1}/node_modules/@foxford/icon-pack/icons/LoaderFill/index.js.map +1 -1
- package/external/.pnpm/{@foxford_icon-pack@0.8.0_react-dom@18.3.1_react@18.3.1__react@18.3.1 → @foxford_icon-pack@0.9.0_react-dom@18.3.1_react@18.3.1__react@18.3.1}/node_modules/@foxford/icon-pack/icons/LoaderFill/index.mjs.map +1 -1
- package/external/.pnpm/{@foxford_icon-pack@0.8.0_react-dom@18.3.1_react@18.3.1__react@18.3.1 → @foxford_icon-pack@0.9.0_react-dom@18.3.1_react@18.3.1__react@18.3.1}/node_modules/@foxford/icon-pack/icons/NotifFill/index.js.map +1 -1
- package/external/.pnpm/{@foxford_icon-pack@0.8.0_react-dom@18.3.1_react@18.3.1__react@18.3.1 → @foxford_icon-pack@0.9.0_react-dom@18.3.1_react@18.3.1__react@18.3.1}/node_modules/@foxford/icon-pack/icons/NotifFill/index.mjs.map +1 -1
- package/external/.pnpm/{@foxford_icon-pack@0.8.0_react-dom@18.3.1_react@18.3.1__react@18.3.1 → @foxford_icon-pack@0.9.0_react-dom@18.3.1_react@18.3.1__react@18.3.1}/node_modules/@foxford/icon-pack/icons/WarningTriangleFill/index.js.map +1 -1
- package/external/.pnpm/{@foxford_icon-pack@0.8.0_react-dom@18.3.1_react@18.3.1__react@18.3.1 → @foxford_icon-pack@0.9.0_react-dom@18.3.1_react@18.3.1__react@18.3.1}/node_modules/@foxford/icon-pack/icons/WarningTriangleFill/index.mjs.map +1 -1
- package/package.json +1 -1
- package/external/.pnpm/@foxford_icon-pack@0.8.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@foxford/icon-pack/components.json.js +0 -2
- package/external/.pnpm/@foxford_icon-pack@0.8.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@foxford/icon-pack/components.json.mjs +0 -2
- /package/external/.pnpm/{@foxford_icon-pack@0.8.0_react-dom@18.3.1_react@18.3.1__react@18.3.1 → @foxford_icon-pack@0.9.0_react-dom@18.3.1_react@18.3.1__react@18.3.1}/node_modules/@foxford/icon-pack/components.json.js.map +0 -0
- /package/external/.pnpm/{@foxford_icon-pack@0.8.0_react-dom@18.3.1_react@18.3.1__react@18.3.1 → @foxford_icon-pack@0.9.0_react-dom@18.3.1_react@18.3.1__react@18.3.1}/node_modules/@foxford/icon-pack/components.json.mjs.map +0 -0
- /package/external/.pnpm/{@foxford_icon-pack@0.8.0_react-dom@18.3.1_react@18.3.1__react@18.3.1 → @foxford_icon-pack@0.9.0_react-dom@18.3.1_react@18.3.1__react@18.3.1}/node_modules/@foxford/icon-pack/icons/CheckCircleFill/index.js +0 -0
- /package/external/.pnpm/{@foxford_icon-pack@0.8.0_react-dom@18.3.1_react@18.3.1__react@18.3.1 → @foxford_icon-pack@0.9.0_react-dom@18.3.1_react@18.3.1__react@18.3.1}/node_modules/@foxford/icon-pack/icons/CheckCircleFill/index.mjs +0 -0
- /package/external/.pnpm/{@foxford_icon-pack@0.8.0_react-dom@18.3.1_react@18.3.1__react@18.3.1 → @foxford_icon-pack@0.9.0_react-dom@18.3.1_react@18.3.1__react@18.3.1}/node_modules/@foxford/icon-pack/icons/ChevronDown/index.js +0 -0
- /package/external/.pnpm/{@foxford_icon-pack@0.8.0_react-dom@18.3.1_react@18.3.1__react@18.3.1 → @foxford_icon-pack@0.9.0_react-dom@18.3.1_react@18.3.1__react@18.3.1}/node_modules/@foxford/icon-pack/icons/ChevronDown/index.mjs +0 -0
- /package/external/.pnpm/{@foxford_icon-pack@0.8.0_react-dom@18.3.1_react@18.3.1__react@18.3.1 → @foxford_icon-pack@0.9.0_react-dom@18.3.1_react@18.3.1__react@18.3.1}/node_modules/@foxford/icon-pack/icons/Close/index.js +0 -0
- /package/external/.pnpm/{@foxford_icon-pack@0.8.0_react-dom@18.3.1_react@18.3.1__react@18.3.1 → @foxford_icon-pack@0.9.0_react-dom@18.3.1_react@18.3.1__react@18.3.1}/node_modules/@foxford/icon-pack/icons/Close/index.mjs +0 -0
- /package/external/.pnpm/{@foxford_icon-pack@0.8.0_react-dom@18.3.1_react@18.3.1__react@18.3.1 → @foxford_icon-pack@0.9.0_react-dom@18.3.1_react@18.3.1__react@18.3.1}/node_modules/@foxford/icon-pack/icons/CloseCirlceFill/index.js +0 -0
- /package/external/.pnpm/{@foxford_icon-pack@0.8.0_react-dom@18.3.1_react@18.3.1__react@18.3.1 → @foxford_icon-pack@0.9.0_react-dom@18.3.1_react@18.3.1__react@18.3.1}/node_modules/@foxford/icon-pack/icons/CloseCirlceFill/index.mjs +0 -0
- /package/external/.pnpm/{@foxford_icon-pack@0.8.0_react-dom@18.3.1_react@18.3.1__react@18.3.1 → @foxford_icon-pack@0.9.0_react-dom@18.3.1_react@18.3.1__react@18.3.1}/node_modules/@foxford/icon-pack/icons/LoaderFill/index.js +0 -0
- /package/external/.pnpm/{@foxford_icon-pack@0.8.0_react-dom@18.3.1_react@18.3.1__react@18.3.1 → @foxford_icon-pack@0.9.0_react-dom@18.3.1_react@18.3.1__react@18.3.1}/node_modules/@foxford/icon-pack/icons/LoaderFill/index.mjs +0 -0
- /package/external/.pnpm/{@foxford_icon-pack@0.8.0_react-dom@18.3.1_react@18.3.1__react@18.3.1 → @foxford_icon-pack@0.9.0_react-dom@18.3.1_react@18.3.1__react@18.3.1}/node_modules/@foxford/icon-pack/icons/NotifFill/index.js +0 -0
- /package/external/.pnpm/{@foxford_icon-pack@0.8.0_react-dom@18.3.1_react@18.3.1__react@18.3.1 → @foxford_icon-pack@0.9.0_react-dom@18.3.1_react@18.3.1__react@18.3.1}/node_modules/@foxford/icon-pack/icons/NotifFill/index.mjs +0 -0
- /package/external/.pnpm/{@foxford_icon-pack@0.8.0_react-dom@18.3.1_react@18.3.1__react@18.3.1 → @foxford_icon-pack@0.9.0_react-dom@18.3.1_react@18.3.1__react@18.3.1}/node_modules/@foxford/icon-pack/icons/WarningTriangleFill/index.js +0 -0
- /package/external/.pnpm/{@foxford_icon-pack@0.8.0_react-dom@18.3.1_react@18.3.1__react@18.3.1 → @foxford_icon-pack@0.9.0_react-dom@18.3.1_react@18.3.1__react@18.3.1}/node_modules/@foxford/icon-pack/icons/WarningTriangleFill/index.mjs +0 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
'use strict';var styled=require('styled-components');var InputMask=require('react-input-mask');function _interopDefault(n){return n&&n.__esModule?n:{default:n}}var styled__default=_interopDefault(styled);var InputMask__default=_interopDefault(InputMask);const Root=styled__default.default.span.withConfig({shouldForwardProp:n=>!['fading'].includes(n)}).withConfig({displayName:"FormInput__Root",componentId:"ui__sc-1eiwrfu-0"})(["",""],(n=>`\n box-sizing: border-box;\n display: flex;\n position: relative;\n width: 100%;\n\n &::after {\n content: '';\n position: absolute;\n bottom: 0;\n right: 0;\n width: 40px;\n height: 100%;\n pointer-events: none;\n opacity: ${n.fading?1:0};\n background-image: linear-gradient(90deg, transparent, currentcolor);\n transition-property: opacity, color;\n transition-duration: 150ms;\n transition-timing-function: ease-in;\n }\n\n &:hover::after,\n &:focus-within::after {\n opacity: 0;\n }\n `));const Input=styled__default.default(InputMask__default.default).withConfig({shouldForwardProp:n=>!['palette'].includes(n)}).withConfig({displayName:"FormInput__Input",componentId:"ui__sc-1eiwrfu-1"})(["box-sizing:border-box;appearance:textfield;border:none;padding:0;margin:0;background-color:transparent;font-family:inherit;font-size:inherit;line-height:inherit;width:100%;cursor:pointer;&:disabled{cursor:not-allowed;}&[type='number']::-webkit-outer-spin-button,&[type='number']::-webkit-inner-spin-button{appearance:none;margin:0;}&:focus{cursor:text;outline:none;}",""],(n=>{return`\n color: ${(e={color:n.theme.colors['content-onmain-primary'],placeholderColor:n.theme.colors['content-onmain-secondary'],colorDisabled:n.theme.colors['content-disabled'],placeholderColorDisabled:n.theme.colors['content-disabled'],...n.palette}).color};\n &:disabled {\n color: ${e.colorDisabled};\n }\n &::placeholder {\n color: ${e.placeholderColor};\n }\n &:disabled::placeholder {\n color: ${e.placeholderColorDisabled};\n }\n`;var e}));exports.Input=Input,exports.Root=Root;
|
|
2
|
+
//# sourceMappingURL=style.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"style.js","sources":["../../../../src/components/FormInput/style.ts"],"sourcesContent":["import styled from 'styled-components'\nimport InputMask from 'react-input-mask'\nimport type { StyledFormInputProps, StyledFormInputRootProps, FormInputPalette } from './types'\n\nconst template = (palette: FormInputPalette) => `\n color: ${palette.color};\n &:disabled {\n color: ${palette.colorDisabled};\n }\n &::placeholder {\n color: ${palette.placeholderColor};\n }\n &:disabled::placeholder {\n color: ${palette.placeholderColorDisabled};\n }\n`\n\nexport const Root = styled.span.withConfig<StyledFormInputRootProps>({\n shouldForwardProp: (propKey) => !['fading'].includes(propKey),\n})`\n ${(props) => `\n box-sizing: border-box;\n display: flex;\n position: relative;\n width: 100%;\n\n &::after {\n content: '';\n position: absolute;\n bottom: 0;\n right: 0;\n width: 40px;\n height: 100%;\n pointer-events: none;\n opacity: ${props.fading ? 1 : 0};\n background-image: linear-gradient(90deg, transparent, currentcolor);\n transition-property: opacity, color;\n transition-duration: 150ms;\n transition-timing-function: ease-in;\n }\n\n &:hover::after,\n &:focus-within::after {\n opacity: 0;\n }\n `}\n`\n\nexport const Input: React.ComponentType<StyledFormInputProps> = styled(InputMask).withConfig<StyledFormInputProps>({\n shouldForwardProp: (propKey) => !['palette'].includes(propKey),\n})`\n box-sizing: border-box;\n appearance: textfield;\n border: none;\n padding: 0;\n margin: 0;\n background-color: transparent;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n width: 100%;\n cursor: pointer;\n &:disabled {\n cursor: not-allowed;\n }\n &[type='number']::-webkit-outer-spin-button,\n &[type='number']::-webkit-inner-spin-button {\n appearance: none;\n margin: 0;\n }\n &:focus {\n cursor: text;\n outline: none;\n }\n\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-primary'],\n placeholderColor: props.theme.colors['content-onmain-secondary'],\n colorDisabled: props.theme.colors['content-disabled'],\n placeholderColorDisabled: props.theme.colors['content-disabled'],\n ...props.palette,\n })}\n`\n"],"names":["Root","styled","span","withConfig","shouldForwardProp","propKey","includes","displayName","componentId","props","fading","Input","default","InputMask","template","palette","color","theme","colors","placeholderColor","colorDisabled","placeholderColorDisabled"],"mappings":"8PAiBO,MAAMA,KAAOC,gBAAAA,QAAOC,KAAKC,WAAqC,CACnEC,kBAAoBC,IAAa,CAAC,UAAUC,SAASD,KACrDF,WAAA,CAAAI,YAAA,kBAAAC,YAAA,oBAFkBP,CAElB,CAAA,GAAA,KACGQ,GAAU,0RAcEA,EAAMC,OAAS,EAAI,uSAc7B,MAAMC,MAAmDV,gBAAMW,QAACC,4BAAWV,WAAiC,CACjHC,kBAAoBC,IAAa,CAAC,WAAWC,SAASD,KACtDF,WAAA,CAAAI,YAAA,mBAAAC,YAAA,oBAF8DP,CA2B3DQ,CAAAA,iXAAAA,KAAAA,IACDK,MAxE4C,eAA9BC,EAwEL,CACPC,MAAOP,EAAMQ,MAAMC,OAAO,0BAC1BC,iBAAkBV,EAAMQ,MAAMC,OAAO,4BACrCE,cAAeX,EAAMQ,MAAMC,OAAO,oBAClCG,yBAA0BZ,EAAMQ,MAAMC,OAAO,uBAC1CT,EAAMM,UA5EIC,sCAEND,EAAQK,uDAGRL,EAAQI,mEAGRJ,EAAQM,mCATHN,KA8EZ"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import styled from'styled-components';import InputMask from'react-input-mask';const Root=styled.span.withConfig({shouldForwardProp:n=>!['fading'].includes(n)}).withConfig({displayName:"FormInput__Root",componentId:"ui__sc-1eiwrfu-0"})(["",""],(n=>`\n box-sizing: border-box;\n display: flex;\n position: relative;\n width: 100%;\n\n &::after {\n content: '';\n position: absolute;\n bottom: 0;\n right: 0;\n width: 40px;\n height: 100%;\n pointer-events: none;\n opacity: ${n.fading?1:0};\n background-image: linear-gradient(90deg, transparent, currentcolor);\n transition-property: opacity, color;\n transition-duration: 150ms;\n transition-timing-function: ease-in;\n }\n\n &:hover::after,\n &:focus-within::after {\n opacity: 0;\n }\n `));const Input=styled(InputMask).withConfig({shouldForwardProp:n=>!['palette'].includes(n)}).withConfig({displayName:"FormInput__Input",componentId:"ui__sc-1eiwrfu-1"})(["box-sizing:border-box;appearance:textfield;border:none;padding:0;margin:0;background-color:transparent;font-family:inherit;font-size:inherit;line-height:inherit;width:100%;cursor:pointer;&:disabled{cursor:not-allowed;}&[type='number']::-webkit-outer-spin-button,&[type='number']::-webkit-inner-spin-button{appearance:none;margin:0;}&:focus{cursor:text;outline:none;}",""],(n=>{return`\n color: ${(o={color:n.theme.colors['content-onmain-primary'],placeholderColor:n.theme.colors['content-onmain-secondary'],colorDisabled:n.theme.colors['content-disabled'],placeholderColorDisabled:n.theme.colors['content-disabled'],...n.palette}).color};\n &:disabled {\n color: ${o.colorDisabled};\n }\n &::placeholder {\n color: ${o.placeholderColor};\n }\n &:disabled::placeholder {\n color: ${o.placeholderColorDisabled};\n }\n`;var o}));export{Input,Root};
|
|
2
|
+
//# sourceMappingURL=style.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"style.mjs","sources":["../../../../src/components/FormInput/style.ts"],"sourcesContent":["import styled from 'styled-components'\nimport InputMask from 'react-input-mask'\nimport type { StyledFormInputProps, StyledFormInputRootProps, FormInputPalette } from './types'\n\nconst template = (palette: FormInputPalette) => `\n color: ${palette.color};\n &:disabled {\n color: ${palette.colorDisabled};\n }\n &::placeholder {\n color: ${palette.placeholderColor};\n }\n &:disabled::placeholder {\n color: ${palette.placeholderColorDisabled};\n }\n`\n\nexport const Root = styled.span.withConfig<StyledFormInputRootProps>({\n shouldForwardProp: (propKey) => !['fading'].includes(propKey),\n})`\n ${(props) => `\n box-sizing: border-box;\n display: flex;\n position: relative;\n width: 100%;\n\n &::after {\n content: '';\n position: absolute;\n bottom: 0;\n right: 0;\n width: 40px;\n height: 100%;\n pointer-events: none;\n opacity: ${props.fading ? 1 : 0};\n background-image: linear-gradient(90deg, transparent, currentcolor);\n transition-property: opacity, color;\n transition-duration: 150ms;\n transition-timing-function: ease-in;\n }\n\n &:hover::after,\n &:focus-within::after {\n opacity: 0;\n }\n `}\n`\n\nexport const Input: React.ComponentType<StyledFormInputProps> = styled(InputMask).withConfig<StyledFormInputProps>({\n shouldForwardProp: (propKey) => !['palette'].includes(propKey),\n})`\n box-sizing: border-box;\n appearance: textfield;\n border: none;\n padding: 0;\n margin: 0;\n background-color: transparent;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n width: 100%;\n cursor: pointer;\n &:disabled {\n cursor: not-allowed;\n }\n &[type='number']::-webkit-outer-spin-button,\n &[type='number']::-webkit-inner-spin-button {\n appearance: none;\n margin: 0;\n }\n &:focus {\n cursor: text;\n outline: none;\n }\n\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-primary'],\n placeholderColor: props.theme.colors['content-onmain-secondary'],\n colorDisabled: props.theme.colors['content-disabled'],\n placeholderColorDisabled: props.theme.colors['content-disabled'],\n ...props.palette,\n })}\n`\n"],"names":["Root","styled","span","withConfig","shouldForwardProp","propKey","includes","displayName","componentId","props","fading","Input","InputMask","template","palette","color","theme","colors","placeholderColor","colorDisabled","placeholderColorDisabled"],"mappings":"8EAiBO,MAAMA,KAAOC,OAAOC,KAAKC,WAAqC,CACnEC,kBAAoBC,IAAa,CAAC,UAAUC,SAASD,KACrDF,WAAA,CAAAI,YAAA,kBAAAC,YAAA,oBAFkBP,CAElB,CAAA,GAAA,KACGQ,GAAU,0RAcEA,EAAMC,OAAS,EAAI,uSAc7B,MAAMC,MAAmDV,OAAOW,WAAWT,WAAiC,CACjHC,kBAAoBC,IAAa,CAAC,WAAWC,SAASD,KACtDF,WAAA,CAAAI,YAAA,mBAAAC,YAAA,oBAF8DP,CA2B3DQ,CAAAA,iXAAAA,KAAAA,IACDI,MAxE4C,eAA9BC,EAwEL,CACPC,MAAON,EAAMO,MAAMC,OAAO,0BAC1BC,iBAAkBT,EAAMO,MAAMC,OAAO,4BACrCE,cAAeV,EAAMO,MAAMC,OAAO,oBAClCG,yBAA0BX,EAAMO,MAAMC,OAAO,uBAC1CR,EAAMK,UA5EIC,sCAEND,EAAQK,uDAGRL,EAAQI,mEAGRJ,EAAQM,mCATHN,KA8EZ"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';var React=require('react');var withMergedProps=require('../../hocs/withMergedProps.js');var constants=require('./constants.js');var style=require('./style.js');var require$$0=require('react/jsx-runtime');var
|
|
1
|
+
'use strict';var React=require('react');var withMergedProps=require('../../hocs/withMergedProps.js');var constants=require('./constants.js');var style=require('./style.js');var require$$0=require('react/jsx-runtime');var Icon=require('../Icon/Icon.js');var Text=require('../Text/Text.js');const FormInputLabel=withMergedProps.withMergedProps(React.forwardRef(((e,r)=>{const{size:i="m",labelPosition:t="dynamic",iconProps:n={},icon:o,input:s,label:a,labelId:c,text:l,controls:d,addon:p,dropdown:u,active:g,...h}=e;const[m,v]=Array.isArray(o)?o:[o];return require$$0.jsxs(style.Root,{...h,size:i,ref:r,children:[m&&require$$0.jsx(Icon.Icon,{preset:"brand",name:typeof m=='string'?m:void 0,icon:typeof m!='string'?m:void 0,marginRight:12,...n}),require$$0.jsxs(style.InputContainer,{labelPosition:a?t:void 0,labelActive:g,children:[s,a&&require$$0.jsx(style.Label,{id:c,children:a})]}),l&&require$$0.jsx(Text.Text,{size:"inherit",color:"inherit",whiteSpace:"nowrap",marginLeft:12,marginRight:p||v||d?void 0:8,children:l}),p,v&&require$$0.jsx(Icon.Icon,{preset:"brand",name:typeof v=='string'?v:void 0,icon:typeof v!='string'?v:void 0,marginLeft:12,marginRight:d?void 0:4,...n}),d,u&&require$$0.jsx(style.Dropdown,{children:u})]})})),{sizes:constants.SIZES,displayName:"FormInputLabel"});exports.COMPONENT_NAME="FormInputLabel",exports.FormInputLabel=FormInputLabel;
|
|
2
2
|
//# sourceMappingURL=FormInputLabel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormInputLabel.js","sources":["../../../../src/components/FormInputLabel/FormInputLabel.tsx"],"sourcesContent":["import { forwardRef } from 'react'\nimport { Text } from 'components/Text'\nimport { Icon } from 'components/Icon'\nimport {
|
|
1
|
+
{"version":3,"file":"FormInputLabel.js","sources":["../../../../src/components/FormInputLabel/FormInputLabel.tsx"],"sourcesContent":["import { forwardRef } from 'react'\nimport { Text } from 'components/Text'\nimport { Icon } from 'components/Icon'\nimport { withMergedProps } from 'hocs/withMergedProps'\nimport { SIZES } from './constants'\nimport * as Styled from './style'\nimport type { FormInputLabelProps } from './types'\n\nconst COMPONENT_NAME = 'FormInputLabel'\n\nconst FormInputLabel: React.ForwardRefExoticComponent<FormInputLabelProps> = withMergedProps<\n FormInputLabelProps,\n HTMLDivElement\n>(\n forwardRef((props, ref) => {\n const {\n size = 'm',\n labelPosition = 'dynamic',\n iconProps = {},\n icon,\n input,\n label,\n labelId,\n text,\n controls,\n addon,\n dropdown,\n active,\n ...restProps\n } = props\n\n const [before, after] = Array.isArray(icon) ? icon : [icon]\n\n return (\n <Styled.Root {...restProps} size={size} ref={ref}>\n {before && (\n <Icon\n preset='brand'\n name={typeof before === 'string' ? before : undefined}\n icon={typeof before !== 'string' ? before : undefined}\n marginRight={12}\n {...iconProps}\n />\n )}\n <Styled.InputContainer labelPosition={label ? labelPosition : undefined} labelActive={active}>\n {input}\n {label && <Styled.Label id={labelId}>{label}</Styled.Label>}\n </Styled.InputContainer>\n {text && (\n <Text\n size='inherit'\n color='inherit'\n whiteSpace='nowrap'\n marginLeft={12}\n marginRight={!addon && !after && !controls ? 8 : undefined}\n >\n {text}\n </Text>\n )}\n {addon}\n {after && (\n <Icon\n preset='brand'\n name={typeof after === 'string' ? after : undefined}\n icon={typeof after !== 'string' ? after : undefined}\n marginLeft={12}\n marginRight={!controls ? 4 : undefined}\n {...iconProps}\n />\n )}\n {controls}\n {dropdown && <Styled.Dropdown>{dropdown}</Styled.Dropdown>}\n </Styled.Root>\n )\n }),\n {\n sizes: SIZES,\n displayName: COMPONENT_NAME,\n }\n)\n\nexport { FormInputLabel, COMPONENT_NAME }\n"],"names":["FormInputLabel","withMergedProps","forwardRef","props","ref","size","labelPosition","iconProps","icon","input","label","labelId","text","controls","addon","dropdown","active","restProps","before","after","Array","isArray","_jsxs","Styled","children","_jsx","jsx","Icon","preset","name","undefined","marginRight","jsxs","labelActive","id","Text","color","whiteSpace","marginLeft","sizes","SIZES","displayName"],"mappings":"iSAUMA,MAAAA,eAAuEC,gBAAAA,gBAI3EC,MAAAA,YAAW,CAACC,EAAOC,KACjB,MAAMC,KACJA,EAAO,IAAGC,cACVA,EAAgB,UAASC,UACzBA,EAAY,CAAE,EAAAC,KACdA,EAAIC,MACJA,EAAKC,MACLA,EAAKC,QACLA,EAAOC,KACPA,EAAIC,SACJA,EAAQC,MACRA,EAAKC,SACLA,EAAQC,OACRA,KACGC,GACDd,EAEJ,MAAOe,EAAQC,GAASC,MAAMC,QAAQb,GAAQA,EAAO,CAACA,GAEtD,OACEc,WAAAA,KAACC,MAAAA,KAAW,IAAKN,EAAWZ,KAAMA,EAAMD,IAAKA,EAAIoB,SAC9CN,CAAAA,GACCO,WAAAC,IAACC,UAAI,CACHC,OAAO,QACPC,YAAaX,GAAW,SAAWA,OAASY,EAC5CtB,YAAaU,GAAW,SAAWA,OAASY,EAC5CC,YAAa,MACTxB,IAGRe,WAAAU,KAACT,qBAAqB,CAACjB,cAAeI,EAAQJ,OAAgBwB,EAAWG,YAAajB,EAAOQ,SAAA,CAC1Ff,EACAC,GAASe,WAAAA,IAACF,MAAAA,MAAY,CAACW,GAAIvB,EAAQa,SAAEd,OAEvCE,GACCa,WAAAC,IAACS,UAAI,CACH9B,KAAK,UACL+B,MAAM,UACNC,WAAW,SACXC,WAAY,GACZP,YAAcjB,GAAUK,GAAUN,OAAeiB,EAAJ,EAAcN,SAE1DZ,IAGJE,EACAK,GACCM,WAAAA,IAACE,KAAAA,KAAI,CACHC,OAAO,QACPC,YAAaV,GAAU,SAAWA,OAAQW,EAC1CtB,YAAaW,GAAU,SAAWA,OAAQW,EAC1CQ,WAAY,GACZP,YAAclB,OAAeiB,EAAJ,KACrBvB,IAGPM,EACAE,GAAYU,WAAAA,IAACF,MAAAA,SAAe,CAAAC,SAAET,MACnB,IAGlB,CACEwB,MAAOC,UAAKA,MACZC,YArEmB,0CAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{forwardRef}from'react';import{withMergedProps}from'../../hocs/withMergedProps.mjs';import{SIZES}from'./constants.mjs';import{Root,Label,
|
|
1
|
+
import{forwardRef}from'react';import{withMergedProps}from'../../hocs/withMergedProps.mjs';import{SIZES}from'./constants.mjs';import{Root,InputContainer,Label,Dropdown}from'./style.mjs';import{jsxs,jsx}from'react/jsx-runtime';import{Icon}from'../Icon/Icon.mjs';import{Text}from'../Text/Text.mjs';const COMPONENT_NAME='FormInputLabel';const FormInputLabel=withMergedProps(forwardRef(((o,r)=>{const{size:t="m",labelPosition:e="dynamic",iconProps:i={},icon:n,input:s,label:a,labelId:m,text:p,controls:d,addon:c,dropdown:l,active:f,...x}=o;const[g,h]=Array.isArray(n)?n:[n];return jsxs(Root,{...x,size:t,ref:r,children:[g&&jsx(Icon,{preset:"brand",name:typeof g=='string'?g:void 0,icon:typeof g!='string'?g:void 0,marginRight:12,...i}),jsxs(InputContainer,{labelPosition:a?e:void 0,labelActive:f,children:[s,a&&jsx(Label,{id:m,children:a})]}),p&&jsx(Text,{size:"inherit",color:"inherit",whiteSpace:"nowrap",marginLeft:12,marginRight:c||h||d?void 0:8,children:p}),c,h&&jsx(Icon,{preset:"brand",name:typeof h=='string'?h:void 0,icon:typeof h!='string'?h:void 0,marginLeft:12,marginRight:d?void 0:4,...i}),d,l&&jsx(Dropdown,{children:l})]})})),{sizes:SIZES,displayName:"FormInputLabel"});export{COMPONENT_NAME,FormInputLabel};
|
|
2
2
|
//# sourceMappingURL=FormInputLabel.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormInputLabel.mjs","sources":["../../../../src/components/FormInputLabel/FormInputLabel.tsx"],"sourcesContent":["import { forwardRef } from 'react'\nimport { Text } from 'components/Text'\nimport { Icon } from 'components/Icon'\nimport {
|
|
1
|
+
{"version":3,"file":"FormInputLabel.mjs","sources":["../../../../src/components/FormInputLabel/FormInputLabel.tsx"],"sourcesContent":["import { forwardRef } from 'react'\nimport { Text } from 'components/Text'\nimport { Icon } from 'components/Icon'\nimport { withMergedProps } from 'hocs/withMergedProps'\nimport { SIZES } from './constants'\nimport * as Styled from './style'\nimport type { FormInputLabelProps } from './types'\n\nconst COMPONENT_NAME = 'FormInputLabel'\n\nconst FormInputLabel: React.ForwardRefExoticComponent<FormInputLabelProps> = withMergedProps<\n FormInputLabelProps,\n HTMLDivElement\n>(\n forwardRef((props, ref) => {\n const {\n size = 'm',\n labelPosition = 'dynamic',\n iconProps = {},\n icon,\n input,\n label,\n labelId,\n text,\n controls,\n addon,\n dropdown,\n active,\n ...restProps\n } = props\n\n const [before, after] = Array.isArray(icon) ? icon : [icon]\n\n return (\n <Styled.Root {...restProps} size={size} ref={ref}>\n {before && (\n <Icon\n preset='brand'\n name={typeof before === 'string' ? before : undefined}\n icon={typeof before !== 'string' ? before : undefined}\n marginRight={12}\n {...iconProps}\n />\n )}\n <Styled.InputContainer labelPosition={label ? labelPosition : undefined} labelActive={active}>\n {input}\n {label && <Styled.Label id={labelId}>{label}</Styled.Label>}\n </Styled.InputContainer>\n {text && (\n <Text\n size='inherit'\n color='inherit'\n whiteSpace='nowrap'\n marginLeft={12}\n marginRight={!addon && !after && !controls ? 8 : undefined}\n >\n {text}\n </Text>\n )}\n {addon}\n {after && (\n <Icon\n preset='brand'\n name={typeof after === 'string' ? after : undefined}\n icon={typeof after !== 'string' ? after : undefined}\n marginLeft={12}\n marginRight={!controls ? 4 : undefined}\n {...iconProps}\n />\n )}\n {controls}\n {dropdown && <Styled.Dropdown>{dropdown}</Styled.Dropdown>}\n </Styled.Root>\n )\n }),\n {\n sizes: SIZES,\n displayName: COMPONENT_NAME,\n }\n)\n\nexport { FormInputLabel, COMPONENT_NAME }\n"],"names":["COMPONENT_NAME","FormInputLabel","withMergedProps","forwardRef","props","ref","size","labelPosition","iconProps","icon","input","label","labelId","text","controls","addon","dropdown","active","restProps","before","after","Array","isArray","_jsxs","Styled","children","_jsx","Icon","preset","name","undefined","marginRight","labelActive","id","Text","color","whiteSpace","marginLeft","sizes","SIZES","displayName"],"mappings":"uSAQMA,MAAAA,eAAiB,iBAEjBC,MAAAA,eAAuEC,gBAI3EC,YAAW,CAACC,EAAOC,KACjB,MAAMC,KACJA,EAAO,IAAGC,cACVA,EAAgB,UAASC,UACzBA,EAAY,CAAE,EAAAC,KACdA,EAAIC,MACJA,EAAKC,MACLA,EAAKC,QACLA,EAAOC,KACPA,EAAIC,SACJA,EAAQC,MACRA,EAAKC,SACLA,EAAQC,OACRA,KACGC,GACDd,EAEJ,MAAOe,EAAQC,GAASC,MAAMC,QAAQb,GAAQA,EAAO,CAACA,GAEtD,OACEc,KAACC,KAAW,IAAKN,EAAWZ,KAAMA,EAAMD,IAAKA,EAAIoB,SAC9CN,CAAAA,GACCO,IAACC,KAAI,CACHC,OAAO,QACPC,YAAaV,GAAW,SAAWA,OAASW,EAC5CrB,YAAaU,GAAW,SAAWA,OAASW,EAC5CC,YAAa,MACTvB,IAGRe,KAACC,eAAqB,CAACjB,cAAeI,EAAQJ,OAAgBuB,EAAWE,YAAaf,EAAOQ,SAAA,CAC1Ff,EACAC,GAASe,IAACF,MAAY,CAACS,GAAIrB,EAAQa,SAAEd,OAEvCE,GACCa,IAACQ,KAAI,CACH5B,KAAK,UACL6B,MAAM,UACNC,WAAW,SACXC,WAAY,GACZN,YAAchB,GAAUK,GAAUN,OAAegB,EAAJ,EAAcL,SAE1DZ,IAGJE,EACAK,GACCM,IAACC,KAAI,CACHC,OAAO,QACPC,YAAaT,GAAU,SAAWA,OAAQU,EAC1CrB,YAAaW,GAAU,SAAWA,OAAQU,EAC1CO,WAAY,GACZN,YAAcjB,OAAegB,EAAJ,KACrBtB,IAGPM,EACAE,GAAYU,IAACF,SAAe,CAAAC,SAAET,MACnB,IAGlB,CACEsB,MAAOC,MACPC,YArEmB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';exports.SIZES={
|
|
1
|
+
'use strict';exports.SIZES={l:{fontSize:18,paddingTop:4,paddingRight:8,paddingBottom:4,paddingLeft:16,minHeight:56,borderRadius:12},m:{fontSize:16,paddingTop:4,paddingRight:8,paddingBottom:4,paddingLeft:16,minHeight:48,borderRadius:10},s:{fontSize:14,paddingTop:4,paddingRight:6,paddingBottom:4,paddingLeft:14,minHeight:40,borderRadius:8}};
|
|
2
2
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sources":["../../../../src/components/FormInputLabel/constants.ts"],"sourcesContent":["import type { CSSProperties } from 'react'\nimport type {
|
|
1
|
+
{"version":3,"file":"constants.js","sources":["../../../../src/components/FormInputLabel/constants.ts"],"sourcesContent":["import type { CSSProperties } from 'react'\nimport type { FormInputLabelSize } from './types'\n\nexport const SIZES: Record<FormInputLabelSize, CSSProperties> = {\n l: {\n fontSize: 18,\n paddingTop: 4,\n paddingRight: 8,\n paddingBottom: 4,\n paddingLeft: 16,\n minHeight: 56,\n borderRadius: 12,\n },\n m: {\n fontSize: 16,\n paddingTop: 4,\n paddingRight: 8,\n paddingBottom: 4,\n paddingLeft: 16,\n minHeight: 48,\n borderRadius: 10,\n },\n s: {\n fontSize: 14,\n paddingTop: 4,\n paddingRight: 6,\n paddingBottom: 4,\n paddingLeft: 14,\n minHeight: 40,\n borderRadius: 8,\n },\n}\n"],"names":["l","fontSize","paddingTop","paddingRight","paddingBottom","paddingLeft","minHeight","borderRadius","m","s"],"mappings":"2BAGgE,CAC9DA,EAAG,CACDC,SAAU,GACVC,WAAY,EACZC,aAAc,EACdC,cAAe,EACfC,YAAa,GACbC,UAAW,GACXC,aAAc,IAEhBC,EAAG,CACDP,SAAU,GACVC,WAAY,EACZC,aAAc,EACdC,cAAe,EACfC,YAAa,GACbC,UAAW,GACXC,aAAc,IAEhBE,EAAG,CACDR,SAAU,GACVC,WAAY,EACZC,aAAc,EACdC,cAAe,EACfC,YAAa,GACbC,UAAW,GACXC,aAAc"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const SIZES={
|
|
1
|
+
const SIZES={l:{fontSize:18,paddingTop:4,paddingRight:8,paddingBottom:4,paddingLeft:16,minHeight:56,borderRadius:12},m:{fontSize:16,paddingTop:4,paddingRight:8,paddingBottom:4,paddingLeft:16,minHeight:48,borderRadius:10},s:{fontSize:14,paddingTop:4,paddingRight:6,paddingBottom:4,paddingLeft:14,minHeight:40,borderRadius:8}};export{SIZES};
|
|
2
2
|
//# sourceMappingURL=constants.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.mjs","sources":["../../../../src/components/FormInputLabel/constants.ts"],"sourcesContent":["import type { CSSProperties } from 'react'\nimport type {
|
|
1
|
+
{"version":3,"file":"constants.mjs","sources":["../../../../src/components/FormInputLabel/constants.ts"],"sourcesContent":["import type { CSSProperties } from 'react'\nimport type { FormInputLabelSize } from './types'\n\nexport const SIZES: Record<FormInputLabelSize, CSSProperties> = {\n l: {\n fontSize: 18,\n paddingTop: 4,\n paddingRight: 8,\n paddingBottom: 4,\n paddingLeft: 16,\n minHeight: 56,\n borderRadius: 12,\n },\n m: {\n fontSize: 16,\n paddingTop: 4,\n paddingRight: 8,\n paddingBottom: 4,\n paddingLeft: 16,\n minHeight: 48,\n borderRadius: 10,\n },\n s: {\n fontSize: 14,\n paddingTop: 4,\n paddingRight: 6,\n paddingBottom: 4,\n paddingLeft: 14,\n minHeight: 40,\n borderRadius: 8,\n },\n}\n"],"names":["SIZES","l","fontSize","paddingTop","paddingRight","paddingBottom","paddingLeft","minHeight","borderRadius","m","s"],"mappings":"AAGO,MAAMA,MAAmD,CAC9DC,EAAG,CACDC,SAAU,GACVC,WAAY,EACZC,aAAc,EACdC,cAAe,EACfC,YAAa,GACbC,UAAW,GACXC,aAAc,IAEhBC,EAAG,CACDP,SAAU,GACVC,WAAY,EACZC,aAAc,EACdC,cAAe,EACfC,YAAa,GACbC,UAAW,GACXC,aAAc,IAEhBE,EAAG,CACDR,SAAU,GACVC,WAAY,EACZC,aAAc,EACdC,cAAe,EACfC,YAAa,GACbC,UAAW,GACXC,aAAc"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';var styled=require('styled-components');var tinycolor=require('../../external/.pnpm/tinycolor2@1.4.2/node_modules/tinycolor2/tinycolor.js');var style=require('../../shared/utils/style.js');var responsiveSize=require('../../mixins/responsive-size.js');var responsiveMargin=require('../../mixins/responsive-margin.js');
|
|
1
|
+
'use strict';var styled=require('styled-components');var tinycolor=require('../../external/.pnpm/tinycolor2@1.4.2/node_modules/tinycolor2/tinycolor.js');var style=require('../../shared/utils/style.js');var responsiveSize=require('../../mixins/responsive-size.js');var responsiveMargin=require('../../mixins/responsive-margin.js');function _interopDefault(o){return o&&o.__esModule?o:{default:o}}var styled__default=_interopDefault(styled);const shouldForwardFormInputLabelProp=style.createShouldForwardProp((o=>!['primary','secondary','error','success','disabled','onColored','inline','zIndex'].includes(o)));const template=o=>`\n color: ${o.color};\n background-color: ${o.backgroundColor};\n border-color: ${o.borderColor};\n &:hover {\n background-color: ${o.backgroundColorHover};\n }\n &:focus-within {\n background-color: ${o.backgroundColor};\n }\n & [data-input-control]::after {\n color: ${o.backgroundColor}; \n }\n`;const COLOR_SCHEMA={contrast:{disabled:styled.css(["",""],(o=>template({color:o.theme.colors['content-disabled'],backgroundColor:o.theme.colors['bg-disabled-large'],borderColor:o.theme.colors.transparent,backgroundColorHover:o.theme.colors['bg-disabled-large'],...o.palette}))),error:styled.css(["",""],(o=>template({color:o.theme.colors['content-onmain-secondary'],backgroundColor:o.theme.colors['alert-bg-error-200'],borderColor:o.theme.colors['alert-bg-error-500'],backgroundColorHover:o.theme.colors['alert-bg-error-200'],...o.palette}))),success:styled.css(["",""],(o=>template({color:o.theme.colors['content-onmain-secondary'],backgroundColor:o.theme.colors['alert-bg-success-200'],borderColor:o.theme.colors['alert-bg-success-500'],backgroundColorHover:o.theme.colors['alert-bg-success-200'],...o.palette}))),default:styled.css(["",""],(o=>template({color:o.theme.colors['content-onmain-secondary'],backgroundColor:o.theme.colors['bg-onmain-primary'],borderColor:o.theme.colors['border-onmain-default-large'],backgroundColorHover:tinycolor.default(o.theme.colors['bg-onmain-primary']).darken(4).toString(),...o.palette})))},secondary:{disabled:styled.css(["",""],(o=>template({color:o.theme.colors['content-disabled'],backgroundColor:o.theme.colors['bg-disabled-large'],borderColor:o.theme.colors.transparent,backgroundColorHover:o.theme.colors['bg-disabled-large'],...o.palette}))),error:styled.css(["",""],(o=>template({color:o.theme.colors['content-onmain-secondary'],backgroundColor:o.theme.colors['alert-bg-error-100'],borderColor:o.theme.colors['alert-bg-error-500'],backgroundColorHover:o.theme.colors['alert-bg-error-100'],...o.palette}))),success:styled.css(["",""],(o=>template({color:o.theme.colors['content-onmain-secondary'],backgroundColor:o.theme.colors['alert-bg-success-100'],borderColor:o.theme.colors['alert-bg-success-500'],backgroundColorHover:o.theme.colors['alert-bg-success-100'],...o.palette}))),default:styled.css(["",""],(o=>template({color:o.theme.colors['content-onmain-secondary'],backgroundColor:o.theme.colors['bg-onmain-secondary'],borderColor:o.theme.colors['border-onmain-default-large'],backgroundColorHover:tinycolor.default(o.theme.colors['bg-onmain-secondary']).darken(4).toString(),...o.palette})))},primary:{disabled:styled.css(["",""],(o=>template({color:o.theme.colors['content-disabled'],backgroundColor:o.theme.colors['bg-disabled-large'],borderColor:o.theme.colors.transparent,backgroundColorHover:o.theme.colors['bg-disabled-large'],...o.palette}))),error:styled.css(["",""],(o=>template({color:o.theme.colors['content-onmain-secondary'],backgroundColor:o.theme.colors['alert-bg-error-100'],borderColor:o.theme.colors['alert-bg-error-500'],backgroundColorHover:o.theme.colors['alert-bg-error-100'],...o.palette}))),success:styled.css(["",""],(o=>template({color:o.theme.colors['content-onmain-secondary'],backgroundColor:o.theme.colors['alert-bg-success-100'],borderColor:o.theme.colors['alert-bg-success-500'],backgroundColorHover:o.theme.colors['alert-bg-success-100'],...o.palette}))),default:styled.css(["",""],(o=>template({color:o.theme.colors['content-onmain-secondary'],backgroundColor:o.theme.colors['bg-onmain-primary'],borderColor:o.theme.colors['border-onmain-default-large'],backgroundColorHover:tinycolor.default(o.theme.colors['bg-onmain-primary']).darken(4).toString(),...o.palette})))}};const Dropdown=styled__default.default.div.withConfig({displayName:"FormInputLabel__Dropdown",componentId:"ui__sc-1il4atw-0"})(["box-sizing:border-box;position:absolute;top:100%;margin-top:8px;"]);const Root=styled__default.default.div.withConfig({shouldForwardProp:shouldForwardFormInputLabelProp}).withConfig({displayName:"FormInputLabel__Root",componentId:"ui__sc-1il4atw-1"})([""," "," "," ",""],(o=>{const e='1px';return`\n box-sizing: border-box;\n position: relative;\n isolation: isolate;\n display: ${o.inline?'inline-flex':'flex'};\n cursor: ${o.disabled?'not-allowed':'pointer'};\n align-items: center;\n min-width: min-content;\n border: ${e} solid transparent;\n z-index: ${o.zIndex??'auto'};\n transition-property: background-color;\n transition-duration: 150ms;\n transition-timing-function: ease-in;\n\n & > ${Dropdown} {\n right: -${e};\n left: -${e};\n }\n\n &:focus-within {\n box-shadow: 0 0 0 2px ${o.theme.colors.white}, 0 0 0 4px ${o.theme.colors['border-focus']};\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n\n &:hover [data-input-control]::after,\n &:focus-within [data-input-control]::after {\n opacity: 0;\n }\n `}),(o=>{let e=COLOR_SCHEMA.primary;return o.secondary&&(e=COLOR_SCHEMA.secondary),(o.contrast||o.onColored)&&(e=COLOR_SCHEMA.contrast),o.disabled?e.disabled:o.error?e.error:o.success?e.success:e.default}),responsiveSize.responsiveSize,responsiveMargin.responsiveMargin);const Label=styled__default.default.span.withConfig({displayName:"FormInputLabel__Label",componentId:"ui__sc-1il4atw-2"})(["box-sizing:border-box;position:absolute;left:0;top:50%;transform:translateY(-50%);width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none;transition-property:transform,width;transition-duration:","ms,0ms;transition-delay:0ms,0ms;transition-timing-function:cubic-bezier(0,0,0.48,1);"],125);const InputContainer=styled__default.default.div.withConfig({shouldForwardProp:o=>!['labelPosition','labelActive'].includes(o)}).withConfig({displayName:"FormInputLabel__InputContainer",componentId:"ui__sc-1il4atw-3"})(["box-sizing:border-box;position:relative;display:flex;flex-grow:1;align-self:stretch;cursor:inherit;"," "," ",""],(o=>o.labelPosition==='dynamic'&&`\n padding-top: 0.8em;\n\n & input {\n opacity: ${o.labelActive?1:0};\n }\n\n ${o.labelActive&&`& > ${Label} {\n transition-delay: 0ms, 125ms;\n transform: scale(0.7) translateX(-21.5%) translateY(-145%);\n width: 130%;\n }`}\n `),(o=>o.labelPosition==='top'&&`\n padding-top: 0.8em;\n\n & > ${Label} {\n transition-delay: 0ms, 125ms;\n transform: scale(0.7) translateX(-21.5%) translateY(-145%);\n width: 130%;\n }\n `),(o=>o.labelPosition==='center'&&`\n & input {\n opacity: ${o.labelActive?1:0};\n }\n\n & > ${Label} {\n opacity: ${o.labelActive?0:1};\n z-index: ${o.labelActive?-1:'auto'};\n }\n `));exports.Dropdown=Dropdown,exports.InputContainer=InputContainer,exports.Label=Label,exports.Root=Root;
|
|
2
2
|
//# sourceMappingURL=style.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"style.js","sources":["../../../../src/components/FormInputLabel/style.ts"],"sourcesContent":["import styled, { css } from 'styled-components'\nimport tinycolor from 'tinycolor2'\nimport { Text } from 'components/Text'\nimport { createShouldForwardProp } from 'shared/utils/style'\nimport { responsiveSize } from 'mixins/responsive-size'\nimport { responsiveMargin } from 'mixins/responsive-margin'\nimport type { CSSColor } from 'shared/types'\nimport type { StyledFormInputLabelProps, FormInputLabelPalette } from './types'\n\nconst shouldForwardFormInputLabelProp = createShouldForwardProp(\n (propKey) =>\n ![\n 'primary',\n 'secondary',\n 'active',\n 'error',\n 'success',\n 'disabled',\n 'onColored',\n 'labelPosition',\n 'inline',\n 'zIndex',\n ].includes(propKey)\n)\n\nexport const Label = styled(Text).attrs({ forwardedAs: 'label' })`\n box-sizing: border-box;\n position: relative;\n display: flex;\n flex-grow: 1;\n align-self: stretch;\n cursor: inherit;\n &::after {\n content: '';\n position: absolute;\n bottom: 0;\n right: 0;\n width: 40px;\n height: 100%;\n pointer-events: none;\n opacity: 1;\n background-image: linear-gradient(90deg, transparent, currentColor);\n transition-property: color, opacity;\n }\n`\n\nexport const Caption = styled.span`\n box-sizing: border-box;\n position: absolute;\n left: 0;\n top: 50%;\n width: 100%;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n pointer-events: none;\n transition-property: transform;\n`\n\nconst template = (palette: FormInputLabelPalette) => `\n color: ${palette.color};\n background-color: ${palette.backgroundColor};\n border-color: ${palette.borderColor};\n &:hover {\n color: ${palette.colorHover};\n background-color: ${palette.backgroundColorHover};\n border-color: ${palette.borderColorHover};\n }\n &:focus-within {\n color: ${palette.color};\n background-color: ${palette.backgroundColor};\n border-color: ${palette.borderColor};\n }\n & > ${Label}::after {\n color: ${palette.backgroundColor};\n }\n`\n\nconst COLOR_SCHEMA = {\n onColored: {\n disabled: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-disabled'],\n backgroundColor: props.theme.colors['bg-disabled-large'],\n borderColor: props.theme.colors.transparent,\n colorHover: props.theme.colors['content-disabled'],\n backgroundColorHover: props.theme.colors['bg-disabled-large'],\n borderColorHover: props.theme.colors.transparent,\n ...props.palette,\n })}\n `,\n error: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-secondary'],\n backgroundColor: props.theme.colors['alert-bg-error-200'],\n borderColor: props.theme.colors['alert-bg-error-500'],\n colorHover: props.theme.colors['content-onmain-secondary'],\n backgroundColorHover: props.theme.colors['alert-bg-error-200'],\n borderColorHover: props.theme.colors['alert-bg-error-500'],\n ...props.palette,\n })}\n `,\n success: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-secondary'],\n backgroundColor: props.theme.colors['alert-bg-success-200'],\n borderColor: props.theme.colors['alert-bg-success-500'],\n colorHover: props.theme.colors['content-onmain-secondary'],\n backgroundColorHover: props.theme.colors['alert-bg-success-200'],\n borderColorHover: props.theme.colors['alert-bg-success-500'],\n ...props.palette,\n })}\n `,\n default: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-secondary'],\n backgroundColor: props.theme.colors['bg-onmain-primary'],\n borderColor: props.theme.colors['border-onmain-default-large'],\n colorHover: props.theme.colors['content-onmain-secondary'],\n backgroundColorHover: tinycolor(props.theme.colors['bg-onmain-primary']).darken(4).toString() as CSSColor,\n borderColorHover: props.theme.colors['border-onmain-default-large'],\n ...props.palette,\n })}\n `,\n },\n secondary: {\n disabled: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-disabled'],\n backgroundColor: props.theme.colors['bg-disabled-large'],\n borderColor: props.theme.colors.transparent,\n colorHover: props.theme.colors['content-disabled'],\n backgroundColorHover: props.theme.colors['bg-disabled-large'],\n borderColorHover: props.theme.colors.transparent,\n ...props.palette,\n })}\n `,\n error: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-secondary'],\n backgroundColor: props.theme.colors['alert-bg-error-100'],\n borderColor: props.theme.colors['alert-bg-error-500'],\n colorHover: props.theme.colors['content-onmain-secondary'],\n backgroundColorHover: props.theme.colors['alert-bg-error-100'],\n borderColorHover: props.theme.colors['alert-bg-error-500'],\n ...props.palette,\n })}\n `,\n success: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-secondary'],\n backgroundColor: props.theme.colors['alert-bg-success-100'],\n borderColor: props.theme.colors['alert-bg-success-500'],\n colorHover: props.theme.colors['content-onmain-secondary'],\n backgroundColorHover: props.theme.colors['alert-bg-success-100'],\n borderColorHover: props.theme.colors['alert-bg-success-500'],\n ...props.palette,\n })}\n `,\n default: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-secondary'],\n backgroundColor: props.theme.colors['bg-onmain-secondary'],\n borderColor: props.theme.colors['border-onmain-default-large'],\n colorHover: props.theme.colors['content-onmain-secondary'],\n backgroundColorHover: tinycolor(props.theme.colors['bg-onmain-secondary']).darken(4).toString() as CSSColor,\n borderColorHover: props.theme.colors['border-onmain-default-large'],\n ...props.palette,\n })}\n `,\n },\n primary: {\n disabled: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-disabled'],\n backgroundColor: props.theme.colors['bg-disabled-large'],\n borderColor: props.theme.colors.transparent,\n colorHover: props.theme.colors['content-disabled'],\n backgroundColorHover: props.theme.colors['bg-disabled-large'],\n borderColorHover: props.theme.colors.transparent,\n ...props.palette,\n })}\n `,\n error: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-secondary'],\n backgroundColor: props.theme.colors['alert-bg-error-100'],\n borderColor: props.theme.colors['alert-bg-error-500'],\n colorHover: props.theme.colors['content-onmain-secondary'],\n backgroundColorHover: props.theme.colors['alert-bg-error-100'],\n borderColorHover: props.theme.colors['alert-bg-error-500'],\n ...props.palette,\n })}\n `,\n success: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-secondary'],\n backgroundColor: props.theme.colors['alert-bg-success-100'],\n borderColor: props.theme.colors['alert-bg-success-500'],\n colorHover: props.theme.colors['content-onmain-secondary'],\n backgroundColorHover: props.theme.colors['alert-bg-success-100'],\n borderColorHover: props.theme.colors['alert-bg-success-500'],\n ...props.palette,\n })}\n `,\n default: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-secondary'],\n backgroundColor: props.theme.colors['bg-onmain-primary'],\n borderColor: props.theme.colors['border-onmain-default-large'],\n colorHover: props.theme.colors['content-onmain-secondary'],\n backgroundColorHover: tinycolor(props.theme.colors['bg-onmain-primary']).darken(4).toString() as CSSColor,\n borderColorHover: props.theme.colors['border-onmain-default-large'],\n ...props.palette,\n })}\n `,\n },\n}\n\nexport const Dropdown = styled.div`\n box-sizing: border-box;\n position: absolute;\n top: 100%;\n margin-top: 8px;\n`\n\nexport const Root = styled.div\n .withConfig<StyledFormInputLabelProps>({\n shouldForwardProp: shouldForwardFormInputLabelProp,\n })\n .attrs<StyledFormInputLabelProps>(<Required<Pick<StyledFormInputLabelProps, 'dynamicSizeDeclaration'>>>{\n dynamicSizeDeclaration: (size, sizeUnits) => ({\n fontSize: typeof size === 'string' ? size : `${size}${sizeUnits}`,\n padding: '0.25em 0.6em 0.25em 1em',\n minHeight: '3em',\n borderRadius: '0.6em',\n }),\n })`\n ${(props) => {\n let transform = props.active ? 'scale(0.7) translateX(-21.5%) translateY(-145%)' : 'translateY(-50%)'\n let opacity = '1'\n let zIndex = 'auto'\n\n if (props.labelPosition === 'top') {\n transform = 'scale(0.7) translateX(-21.5%) translateY(-145%)'\n }\n if (props.labelPosition === 'center') {\n transform = `translateY(-50%)`\n opacity = props.active ? '0' : '1'\n zIndex = props.active ? '-1' : 'auto'\n }\n\n const borderWidth = '1px'\n\n return `\n box-sizing: border-box;\n position: relative;\n isolation: isolate;\n display: ${props.inline ? 'inline-flex' : 'flex'};\n cursor: ${props.disabled ? 'not-allowed' : 'pointer'};\n align-items: center;\n min-width: min-content;\n border: ${borderWidth} solid transparent;\n z-index: ${props.zIndex ?? 'auto'};\n transition-property: background-color;\n\n & > ${Dropdown} {\n right: -${borderWidth};\n left: -${borderWidth};\n }\n\n &,\n & > ${Label}::after,\n & > ${Label} > ${Caption} {\n transition-duration: 150ms;\n transition-timing-function: ease;\n }\n\n & > ${Label} > ${Caption} {\n transform: ${transform};\n opacity: ${opacity};\n z-index: ${zIndex};\n }\n\n &:focus-within {\n box-shadow: 0 0 0 2px ${props.theme.colors.white}, 0 0 0 4px ${props.theme.colors['border-focus']};\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n\n &:hover > ${Label}::after,\n &:focus-within > ${Label}::after {\n opacity: 0;\n }\n `\n }}\n ${(props) => {\n let schema = COLOR_SCHEMA.primary\n\n if (props.secondary) schema = COLOR_SCHEMA.secondary\n if (props.onColored) schema = COLOR_SCHEMA.onColored\n\n if (props.disabled) return schema.disabled\n if (props.error) return schema.error\n if (props.success) return schema.success\n\n return schema.default\n }}\n\n ${responsiveSize}\n ${responsiveMargin}\n`\n"],"names":["shouldForwardFormInputLabelProp","createShouldForwardProp","propKey","includes","Label","styled","default","Text","attrs","forwardedAs","withConfig","displayName","componentId","Caption","span","template","palette","color","backgroundColor","borderColor","colorHover","backgroundColorHover","borderColorHover","COLOR_SCHEMA","onColored","disabled","css","props","theme","colors","transparent","error","success","tinycolor","darken","toString","secondary","primary","Dropdown","div","Root","shouldForwardProp","dynamicSizeDeclaration","size","sizeUnits","fontSize","padding","minHeight","borderRadius","transform","active","opacity","zIndex","labelPosition","borderWidth","inline","white","schema","responsiveSize","responsiveMargin"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"style.js","sources":["../../../../src/components/FormInputLabel/style.ts"],"sourcesContent":["import styled, { css } from 'styled-components'\nimport tinycolor from 'tinycolor2'\nimport { createShouldForwardProp } from 'shared/utils/style'\nimport { responsiveSize } from 'mixins/responsive-size'\nimport { responsiveMargin } from 'mixins/responsive-margin'\nimport type { CSSColor } from 'shared/types'\nimport type { StyledFormInputLabelProps, FormInputLabelPalette, StyledInputContainerProps } from './types'\n\nconst shouldForwardFormInputLabelProp = createShouldForwardProp(\n (propKey) =>\n !['primary', 'secondary', 'error', 'success', 'disabled', 'onColored', 'inline', 'zIndex'].includes(propKey)\n)\n\nconst labelTransitionMS = 125\n\nconst template = (palette: FormInputLabelPalette) => `\n color: ${palette.color};\n background-color: ${palette.backgroundColor};\n border-color: ${palette.borderColor};\n &:hover {\n background-color: ${palette.backgroundColorHover};\n }\n &:focus-within {\n background-color: ${palette.backgroundColor};\n }\n & [data-input-control]::after {\n color: ${palette.backgroundColor}; \n }\n`\n\nconst COLOR_SCHEMA = {\n contrast: {\n disabled: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-disabled'],\n backgroundColor: props.theme.colors['bg-disabled-large'],\n borderColor: props.theme.colors.transparent,\n backgroundColorHover: props.theme.colors['bg-disabled-large'],\n ...props.palette,\n })}\n `,\n error: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-secondary'],\n backgroundColor: props.theme.colors['alert-bg-error-200'],\n borderColor: props.theme.colors['alert-bg-error-500'],\n backgroundColorHover: props.theme.colors['alert-bg-error-200'],\n ...props.palette,\n })}\n `,\n success: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-secondary'],\n backgroundColor: props.theme.colors['alert-bg-success-200'],\n borderColor: props.theme.colors['alert-bg-success-500'],\n backgroundColorHover: props.theme.colors['alert-bg-success-200'],\n ...props.palette,\n })}\n `,\n default: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-secondary'],\n backgroundColor: props.theme.colors['bg-onmain-primary'],\n borderColor: props.theme.colors['border-onmain-default-large'],\n backgroundColorHover: tinycolor(props.theme.colors['bg-onmain-primary']).darken(4).toString() as CSSColor,\n ...props.palette,\n })}\n `,\n },\n secondary: {\n disabled: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-disabled'],\n backgroundColor: props.theme.colors['bg-disabled-large'],\n borderColor: props.theme.colors.transparent,\n backgroundColorHover: props.theme.colors['bg-disabled-large'],\n ...props.palette,\n })}\n `,\n error: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-secondary'],\n backgroundColor: props.theme.colors['alert-bg-error-100'],\n borderColor: props.theme.colors['alert-bg-error-500'],\n backgroundColorHover: props.theme.colors['alert-bg-error-100'],\n ...props.palette,\n })}\n `,\n success: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-secondary'],\n backgroundColor: props.theme.colors['alert-bg-success-100'],\n borderColor: props.theme.colors['alert-bg-success-500'],\n backgroundColorHover: props.theme.colors['alert-bg-success-100'],\n ...props.palette,\n })}\n `,\n default: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-secondary'],\n backgroundColor: props.theme.colors['bg-onmain-secondary'],\n borderColor: props.theme.colors['border-onmain-default-large'],\n backgroundColorHover: tinycolor(props.theme.colors['bg-onmain-secondary']).darken(4).toString() as CSSColor,\n ...props.palette,\n })}\n `,\n },\n primary: {\n disabled: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-disabled'],\n backgroundColor: props.theme.colors['bg-disabled-large'],\n borderColor: props.theme.colors.transparent,\n backgroundColorHover: props.theme.colors['bg-disabled-large'],\n ...props.palette,\n })}\n `,\n error: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-secondary'],\n backgroundColor: props.theme.colors['alert-bg-error-100'],\n borderColor: props.theme.colors['alert-bg-error-500'],\n backgroundColorHover: props.theme.colors['alert-bg-error-100'],\n ...props.palette,\n })}\n `,\n success: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-secondary'],\n backgroundColor: props.theme.colors['alert-bg-success-100'],\n borderColor: props.theme.colors['alert-bg-success-500'],\n backgroundColorHover: props.theme.colors['alert-bg-success-100'],\n ...props.palette,\n })}\n `,\n default: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-secondary'],\n backgroundColor: props.theme.colors['bg-onmain-primary'],\n borderColor: props.theme.colors['border-onmain-default-large'],\n backgroundColorHover: tinycolor(props.theme.colors['bg-onmain-primary']).darken(4).toString() as CSSColor,\n ...props.palette,\n })}\n `,\n },\n}\n\nexport const Dropdown = styled.div`\n box-sizing: border-box;\n position: absolute;\n top: 100%;\n margin-top: 8px;\n`\n\nexport const Root = styled.div.withConfig<StyledFormInputLabelProps>({\n shouldForwardProp: shouldForwardFormInputLabelProp,\n})`\n ${(props) => {\n const borderWidth = '1px'\n\n return `\n box-sizing: border-box;\n position: relative;\n isolation: isolate;\n display: ${props.inline ? 'inline-flex' : 'flex'};\n cursor: ${props.disabled ? 'not-allowed' : 'pointer'};\n align-items: center;\n min-width: min-content;\n border: ${borderWidth} solid transparent;\n z-index: ${props.zIndex ?? 'auto'};\n transition-property: background-color;\n transition-duration: 150ms;\n transition-timing-function: ease-in;\n\n & > ${Dropdown} {\n right: -${borderWidth};\n left: -${borderWidth};\n }\n\n &:focus-within {\n box-shadow: 0 0 0 2px ${props.theme.colors.white}, 0 0 0 4px ${props.theme.colors['border-focus']};\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n\n &:hover [data-input-control]::after,\n &:focus-within [data-input-control]::after {\n opacity: 0;\n }\n `\n }}\n ${(props) => {\n let schema = COLOR_SCHEMA.primary\n\n if (props.secondary) schema = COLOR_SCHEMA.secondary\n if (props.contrast || props.onColored) schema = COLOR_SCHEMA.contrast\n\n if (props.disabled) return schema.disabled\n if (props.error) return schema.error\n if (props.success) return schema.success\n\n return schema.default\n }}\n\n ${responsiveSize}\n ${responsiveMargin}\n`\n\nexport const Label = styled.span`\n box-sizing: border-box;\n position: absolute;\n left: 0;\n top: 50%;\n transform: translateY(-50%);\n width: 100%;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n pointer-events: none;\n transition-property: transform, width;\n transition-duration: ${labelTransitionMS}ms, 0ms;\n transition-delay: 0ms, 0ms;\n transition-timing-function: cubic-bezier(0, 0, 0.48, 1);\n`\n\nexport const InputContainer = styled.div.withConfig<StyledInputContainerProps>({\n shouldForwardProp: (propKey) => !['labelPosition', 'labelActive'].includes(propKey),\n})`\n box-sizing: border-box;\n position: relative;\n display: flex;\n flex-grow: 1;\n align-self: stretch;\n cursor: inherit;\n\n ${(props) =>\n props.labelPosition === 'dynamic' &&\n `\n padding-top: 0.8em;\n\n & input {\n opacity: ${props.labelActive ? 1 : 0};\n }\n\n ${\n props.labelActive &&\n `& > ${Label} {\n transition-delay: 0ms, ${labelTransitionMS}ms;\n transform: scale(0.7) translateX(-21.5%) translateY(-145%);\n width: 130%;\n }`\n }\n `}\n\n ${(props) =>\n props.labelPosition === 'top' &&\n `\n padding-top: 0.8em;\n\n & > ${Label} {\n transition-delay: 0ms, ${labelTransitionMS}ms;\n transform: scale(0.7) translateX(-21.5%) translateY(-145%);\n width: 130%;\n }\n `}\n\n ${(props) =>\n props.labelPosition === 'center' &&\n `\n & input {\n opacity: ${props.labelActive ? 1 : 0};\n }\n\n & > ${Label} {\n opacity: ${props.labelActive ? 0 : 1};\n z-index: ${props.labelActive ? -1 : 'auto'};\n }\n `}\n`\n"],"names":["shouldForwardFormInputLabelProp","createShouldForwardProp","propKey","includes","template","palette","color","backgroundColor","borderColor","backgroundColorHover","COLOR_SCHEMA","contrast","disabled","css","props","theme","colors","transparent","error","success","default","tinycolor","darken","toString","secondary","primary","Dropdown","styled","div","withConfig","displayName","componentId","Root","shouldForwardProp","borderWidth","inline","zIndex","white","schema","onColored","responsiveSize","responsiveMargin","Label","span","InputContainer","labelPosition","labelActive"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import styled,{css}from'styled-components';import tinycolor from'../../external/.pnpm/tinycolor2@1.4.2/node_modules/tinycolor2/tinycolor.mjs';import{createShouldForwardProp}from'../../shared/utils/style.mjs';import{responsiveSize}from'../../mixins/responsive-size.mjs';import{responsiveMargin}from'../../mixins/responsive-margin.mjs';
|
|
1
|
+
import styled,{css}from'styled-components';import tinycolor from'../../external/.pnpm/tinycolor2@1.4.2/node_modules/tinycolor2/tinycolor.mjs';import{createShouldForwardProp}from'../../shared/utils/style.mjs';import{responsiveSize}from'../../mixins/responsive-size.mjs';import{responsiveMargin}from'../../mixins/responsive-margin.mjs';const shouldForwardFormInputLabelProp=createShouldForwardProp((o=>!['primary','secondary','error','success','disabled','onColored','inline','zIndex'].includes(o)));const template=o=>`\n color: ${o.color};\n background-color: ${o.backgroundColor};\n border-color: ${o.borderColor};\n &:hover {\n background-color: ${o.backgroundColorHover};\n }\n &:focus-within {\n background-color: ${o.backgroundColor};\n }\n & [data-input-control]::after {\n color: ${o.backgroundColor}; \n }\n`;const COLOR_SCHEMA={contrast:{disabled:css(["",""],(o=>template({color:o.theme.colors['content-disabled'],backgroundColor:o.theme.colors['bg-disabled-large'],borderColor:o.theme.colors.transparent,backgroundColorHover:o.theme.colors['bg-disabled-large'],...o.palette}))),error:css(["",""],(o=>template({color:o.theme.colors['content-onmain-secondary'],backgroundColor:o.theme.colors['alert-bg-error-200'],borderColor:o.theme.colors['alert-bg-error-500'],backgroundColorHover:o.theme.colors['alert-bg-error-200'],...o.palette}))),success:css(["",""],(o=>template({color:o.theme.colors['content-onmain-secondary'],backgroundColor:o.theme.colors['alert-bg-success-200'],borderColor:o.theme.colors['alert-bg-success-500'],backgroundColorHover:o.theme.colors['alert-bg-success-200'],...o.palette}))),default:css(["",""],(o=>template({color:o.theme.colors['content-onmain-secondary'],backgroundColor:o.theme.colors['bg-onmain-primary'],borderColor:o.theme.colors['border-onmain-default-large'],backgroundColorHover:tinycolor(o.theme.colors['bg-onmain-primary']).darken(4).toString(),...o.palette})))},secondary:{disabled:css(["",""],(o=>template({color:o.theme.colors['content-disabled'],backgroundColor:o.theme.colors['bg-disabled-large'],borderColor:o.theme.colors.transparent,backgroundColorHover:o.theme.colors['bg-disabled-large'],...o.palette}))),error:css(["",""],(o=>template({color:o.theme.colors['content-onmain-secondary'],backgroundColor:o.theme.colors['alert-bg-error-100'],borderColor:o.theme.colors['alert-bg-error-500'],backgroundColorHover:o.theme.colors['alert-bg-error-100'],...o.palette}))),success:css(["",""],(o=>template({color:o.theme.colors['content-onmain-secondary'],backgroundColor:o.theme.colors['alert-bg-success-100'],borderColor:o.theme.colors['alert-bg-success-500'],backgroundColorHover:o.theme.colors['alert-bg-success-100'],...o.palette}))),default:css(["",""],(o=>template({color:o.theme.colors['content-onmain-secondary'],backgroundColor:o.theme.colors['bg-onmain-secondary'],borderColor:o.theme.colors['border-onmain-default-large'],backgroundColorHover:tinycolor(o.theme.colors['bg-onmain-secondary']).darken(4).toString(),...o.palette})))},primary:{disabled:css(["",""],(o=>template({color:o.theme.colors['content-disabled'],backgroundColor:o.theme.colors['bg-disabled-large'],borderColor:o.theme.colors.transparent,backgroundColorHover:o.theme.colors['bg-disabled-large'],...o.palette}))),error:css(["",""],(o=>template({color:o.theme.colors['content-onmain-secondary'],backgroundColor:o.theme.colors['alert-bg-error-100'],borderColor:o.theme.colors['alert-bg-error-500'],backgroundColorHover:o.theme.colors['alert-bg-error-100'],...o.palette}))),success:css(["",""],(o=>template({color:o.theme.colors['content-onmain-secondary'],backgroundColor:o.theme.colors['alert-bg-success-100'],borderColor:o.theme.colors['alert-bg-success-500'],backgroundColorHover:o.theme.colors['alert-bg-success-100'],...o.palette}))),default:css(["",""],(o=>template({color:o.theme.colors['content-onmain-secondary'],backgroundColor:o.theme.colors['bg-onmain-primary'],borderColor:o.theme.colors['border-onmain-default-large'],backgroundColorHover:tinycolor(o.theme.colors['bg-onmain-primary']).darken(4).toString(),...o.palette})))}};const Dropdown=styled.div.withConfig({displayName:"FormInputLabel__Dropdown",componentId:"ui__sc-1il4atw-0"})(["box-sizing:border-box;position:absolute;top:100%;margin-top:8px;"]);const Root=styled.div.withConfig({shouldForwardProp:shouldForwardFormInputLabelProp}).withConfig({displayName:"FormInputLabel__Root",componentId:"ui__sc-1il4atw-1"})([""," "," "," ",""],(o=>{const e='1px';return`\n box-sizing: border-box;\n position: relative;\n isolation: isolate;\n display: ${o.inline?'inline-flex':'flex'};\n cursor: ${o.disabled?'not-allowed':'pointer'};\n align-items: center;\n min-width: min-content;\n border: ${e} solid transparent;\n z-index: ${o.zIndex??'auto'};\n transition-property: background-color;\n transition-duration: 150ms;\n transition-timing-function: ease-in;\n\n & > ${Dropdown} {\n right: -${e};\n left: -${e};\n }\n\n &:focus-within {\n box-shadow: 0 0 0 2px ${o.theme.colors.white}, 0 0 0 4px ${o.theme.colors['border-focus']};\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n\n &:hover [data-input-control]::after,\n &:focus-within [data-input-control]::after {\n opacity: 0;\n }\n `}),(o=>{let e=COLOR_SCHEMA.primary;return o.secondary&&(e=COLOR_SCHEMA.secondary),(o.contrast||o.onColored)&&(e=COLOR_SCHEMA.contrast),o.disabled?e.disabled:o.error?e.error:o.success?e.success:e.default}),responsiveSize,responsiveMargin);const Label=styled.span.withConfig({displayName:"FormInputLabel__Label",componentId:"ui__sc-1il4atw-2"})(["box-sizing:border-box;position:absolute;left:0;top:50%;transform:translateY(-50%);width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none;transition-property:transform,width;transition-duration:","ms,0ms;transition-delay:0ms,0ms;transition-timing-function:cubic-bezier(0,0,0.48,1);"],125);const InputContainer=styled.div.withConfig({shouldForwardProp:o=>!['labelPosition','labelActive'].includes(o)}).withConfig({displayName:"FormInputLabel__InputContainer",componentId:"ui__sc-1il4atw-3"})(["box-sizing:border-box;position:relative;display:flex;flex-grow:1;align-self:stretch;cursor:inherit;"," "," ",""],(o=>o.labelPosition==='dynamic'&&`\n padding-top: 0.8em;\n\n & input {\n opacity: ${o.labelActive?1:0};\n }\n\n ${o.labelActive&&`& > ${Label} {\n transition-delay: 0ms, 125ms;\n transform: scale(0.7) translateX(-21.5%) translateY(-145%);\n width: 130%;\n }`}\n `),(o=>o.labelPosition==='top'&&`\n padding-top: 0.8em;\n\n & > ${Label} {\n transition-delay: 0ms, 125ms;\n transform: scale(0.7) translateX(-21.5%) translateY(-145%);\n width: 130%;\n }\n `),(o=>o.labelPosition==='center'&&`\n & input {\n opacity: ${o.labelActive?1:0};\n }\n\n & > ${Label} {\n opacity: ${o.labelActive?0:1};\n z-index: ${o.labelActive?-1:'auto'};\n }\n `));export{Dropdown,InputContainer,Label,Root};
|
|
2
2
|
//# sourceMappingURL=style.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"style.mjs","sources":["../../../../src/components/FormInputLabel/style.ts"],"sourcesContent":["import styled, { css } from 'styled-components'\nimport tinycolor from 'tinycolor2'\nimport { Text } from 'components/Text'\nimport { createShouldForwardProp } from 'shared/utils/style'\nimport { responsiveSize } from 'mixins/responsive-size'\nimport { responsiveMargin } from 'mixins/responsive-margin'\nimport type { CSSColor } from 'shared/types'\nimport type { StyledFormInputLabelProps, FormInputLabelPalette } from './types'\n\nconst shouldForwardFormInputLabelProp = createShouldForwardProp(\n (propKey) =>\n ![\n 'primary',\n 'secondary',\n 'active',\n 'error',\n 'success',\n 'disabled',\n 'onColored',\n 'labelPosition',\n 'inline',\n 'zIndex',\n ].includes(propKey)\n)\n\nexport const Label = styled(Text).attrs({ forwardedAs: 'label' })`\n box-sizing: border-box;\n position: relative;\n display: flex;\n flex-grow: 1;\n align-self: stretch;\n cursor: inherit;\n &::after {\n content: '';\n position: absolute;\n bottom: 0;\n right: 0;\n width: 40px;\n height: 100%;\n pointer-events: none;\n opacity: 1;\n background-image: linear-gradient(90deg, transparent, currentColor);\n transition-property: color, opacity;\n }\n`\n\nexport const Caption = styled.span`\n box-sizing: border-box;\n position: absolute;\n left: 0;\n top: 50%;\n width: 100%;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n pointer-events: none;\n transition-property: transform;\n`\n\nconst template = (palette: FormInputLabelPalette) => `\n color: ${palette.color};\n background-color: ${palette.backgroundColor};\n border-color: ${palette.borderColor};\n &:hover {\n color: ${palette.colorHover};\n background-color: ${palette.backgroundColorHover};\n border-color: ${palette.borderColorHover};\n }\n &:focus-within {\n color: ${palette.color};\n background-color: ${palette.backgroundColor};\n border-color: ${palette.borderColor};\n }\n & > ${Label}::after {\n color: ${palette.backgroundColor};\n }\n`\n\nconst COLOR_SCHEMA = {\n onColored: {\n disabled: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-disabled'],\n backgroundColor: props.theme.colors['bg-disabled-large'],\n borderColor: props.theme.colors.transparent,\n colorHover: props.theme.colors['content-disabled'],\n backgroundColorHover: props.theme.colors['bg-disabled-large'],\n borderColorHover: props.theme.colors.transparent,\n ...props.palette,\n })}\n `,\n error: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-secondary'],\n backgroundColor: props.theme.colors['alert-bg-error-200'],\n borderColor: props.theme.colors['alert-bg-error-500'],\n colorHover: props.theme.colors['content-onmain-secondary'],\n backgroundColorHover: props.theme.colors['alert-bg-error-200'],\n borderColorHover: props.theme.colors['alert-bg-error-500'],\n ...props.palette,\n })}\n `,\n success: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-secondary'],\n backgroundColor: props.theme.colors['alert-bg-success-200'],\n borderColor: props.theme.colors['alert-bg-success-500'],\n colorHover: props.theme.colors['content-onmain-secondary'],\n backgroundColorHover: props.theme.colors['alert-bg-success-200'],\n borderColorHover: props.theme.colors['alert-bg-success-500'],\n ...props.palette,\n })}\n `,\n default: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-secondary'],\n backgroundColor: props.theme.colors['bg-onmain-primary'],\n borderColor: props.theme.colors['border-onmain-default-large'],\n colorHover: props.theme.colors['content-onmain-secondary'],\n backgroundColorHover: tinycolor(props.theme.colors['bg-onmain-primary']).darken(4).toString() as CSSColor,\n borderColorHover: props.theme.colors['border-onmain-default-large'],\n ...props.palette,\n })}\n `,\n },\n secondary: {\n disabled: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-disabled'],\n backgroundColor: props.theme.colors['bg-disabled-large'],\n borderColor: props.theme.colors.transparent,\n colorHover: props.theme.colors['content-disabled'],\n backgroundColorHover: props.theme.colors['bg-disabled-large'],\n borderColorHover: props.theme.colors.transparent,\n ...props.palette,\n })}\n `,\n error: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-secondary'],\n backgroundColor: props.theme.colors['alert-bg-error-100'],\n borderColor: props.theme.colors['alert-bg-error-500'],\n colorHover: props.theme.colors['content-onmain-secondary'],\n backgroundColorHover: props.theme.colors['alert-bg-error-100'],\n borderColorHover: props.theme.colors['alert-bg-error-500'],\n ...props.palette,\n })}\n `,\n success: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-secondary'],\n backgroundColor: props.theme.colors['alert-bg-success-100'],\n borderColor: props.theme.colors['alert-bg-success-500'],\n colorHover: props.theme.colors['content-onmain-secondary'],\n backgroundColorHover: props.theme.colors['alert-bg-success-100'],\n borderColorHover: props.theme.colors['alert-bg-success-500'],\n ...props.palette,\n })}\n `,\n default: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-secondary'],\n backgroundColor: props.theme.colors['bg-onmain-secondary'],\n borderColor: props.theme.colors['border-onmain-default-large'],\n colorHover: props.theme.colors['content-onmain-secondary'],\n backgroundColorHover: tinycolor(props.theme.colors['bg-onmain-secondary']).darken(4).toString() as CSSColor,\n borderColorHover: props.theme.colors['border-onmain-default-large'],\n ...props.palette,\n })}\n `,\n },\n primary: {\n disabled: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-disabled'],\n backgroundColor: props.theme.colors['bg-disabled-large'],\n borderColor: props.theme.colors.transparent,\n colorHover: props.theme.colors['content-disabled'],\n backgroundColorHover: props.theme.colors['bg-disabled-large'],\n borderColorHover: props.theme.colors.transparent,\n ...props.palette,\n })}\n `,\n error: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-secondary'],\n backgroundColor: props.theme.colors['alert-bg-error-100'],\n borderColor: props.theme.colors['alert-bg-error-500'],\n colorHover: props.theme.colors['content-onmain-secondary'],\n backgroundColorHover: props.theme.colors['alert-bg-error-100'],\n borderColorHover: props.theme.colors['alert-bg-error-500'],\n ...props.palette,\n })}\n `,\n success: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-secondary'],\n backgroundColor: props.theme.colors['alert-bg-success-100'],\n borderColor: props.theme.colors['alert-bg-success-500'],\n colorHover: props.theme.colors['content-onmain-secondary'],\n backgroundColorHover: props.theme.colors['alert-bg-success-100'],\n borderColorHover: props.theme.colors['alert-bg-success-500'],\n ...props.palette,\n })}\n `,\n default: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-secondary'],\n backgroundColor: props.theme.colors['bg-onmain-primary'],\n borderColor: props.theme.colors['border-onmain-default-large'],\n colorHover: props.theme.colors['content-onmain-secondary'],\n backgroundColorHover: tinycolor(props.theme.colors['bg-onmain-primary']).darken(4).toString() as CSSColor,\n borderColorHover: props.theme.colors['border-onmain-default-large'],\n ...props.palette,\n })}\n `,\n },\n}\n\nexport const Dropdown = styled.div`\n box-sizing: border-box;\n position: absolute;\n top: 100%;\n margin-top: 8px;\n`\n\nexport const Root = styled.div\n .withConfig<StyledFormInputLabelProps>({\n shouldForwardProp: shouldForwardFormInputLabelProp,\n })\n .attrs<StyledFormInputLabelProps>(<Required<Pick<StyledFormInputLabelProps, 'dynamicSizeDeclaration'>>>{\n dynamicSizeDeclaration: (size, sizeUnits) => ({\n fontSize: typeof size === 'string' ? size : `${size}${sizeUnits}`,\n padding: '0.25em 0.6em 0.25em 1em',\n minHeight: '3em',\n borderRadius: '0.6em',\n }),\n })`\n ${(props) => {\n let transform = props.active ? 'scale(0.7) translateX(-21.5%) translateY(-145%)' : 'translateY(-50%)'\n let opacity = '1'\n let zIndex = 'auto'\n\n if (props.labelPosition === 'top') {\n transform = 'scale(0.7) translateX(-21.5%) translateY(-145%)'\n }\n if (props.labelPosition === 'center') {\n transform = `translateY(-50%)`\n opacity = props.active ? '0' : '1'\n zIndex = props.active ? '-1' : 'auto'\n }\n\n const borderWidth = '1px'\n\n return `\n box-sizing: border-box;\n position: relative;\n isolation: isolate;\n display: ${props.inline ? 'inline-flex' : 'flex'};\n cursor: ${props.disabled ? 'not-allowed' : 'pointer'};\n align-items: center;\n min-width: min-content;\n border: ${borderWidth} solid transparent;\n z-index: ${props.zIndex ?? 'auto'};\n transition-property: background-color;\n\n & > ${Dropdown} {\n right: -${borderWidth};\n left: -${borderWidth};\n }\n\n &,\n & > ${Label}::after,\n & > ${Label} > ${Caption} {\n transition-duration: 150ms;\n transition-timing-function: ease;\n }\n\n & > ${Label} > ${Caption} {\n transform: ${transform};\n opacity: ${opacity};\n z-index: ${zIndex};\n }\n\n &:focus-within {\n box-shadow: 0 0 0 2px ${props.theme.colors.white}, 0 0 0 4px ${props.theme.colors['border-focus']};\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n\n &:hover > ${Label}::after,\n &:focus-within > ${Label}::after {\n opacity: 0;\n }\n `\n }}\n ${(props) => {\n let schema = COLOR_SCHEMA.primary\n\n if (props.secondary) schema = COLOR_SCHEMA.secondary\n if (props.onColored) schema = COLOR_SCHEMA.onColored\n\n if (props.disabled) return schema.disabled\n if (props.error) return schema.error\n if (props.success) return schema.success\n\n return schema.default\n }}\n\n ${responsiveSize}\n ${responsiveMargin}\n`\n"],"names":["shouldForwardFormInputLabelProp","createShouldForwardProp","propKey","includes","Label","styled","Text","attrs","forwardedAs","withConfig","displayName","componentId","Caption","span","template","palette","color","backgroundColor","borderColor","colorHover","backgroundColorHover","borderColorHover","COLOR_SCHEMA","onColored","disabled","css","props","theme","colors","transparent","error","success","default","tinycolor","darken","toString","secondary","primary","Dropdown","div","Root","shouldForwardProp","dynamicSizeDeclaration","size","sizeUnits","fontSize","padding","minHeight","borderRadius","transform","active","opacity","zIndex","labelPosition","borderWidth","inline","white","schema","responsiveSize","responsiveMargin"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"style.mjs","sources":["../../../../src/components/FormInputLabel/style.ts"],"sourcesContent":["import styled, { css } from 'styled-components'\nimport tinycolor from 'tinycolor2'\nimport { createShouldForwardProp } from 'shared/utils/style'\nimport { responsiveSize } from 'mixins/responsive-size'\nimport { responsiveMargin } from 'mixins/responsive-margin'\nimport type { CSSColor } from 'shared/types'\nimport type { StyledFormInputLabelProps, FormInputLabelPalette, StyledInputContainerProps } from './types'\n\nconst shouldForwardFormInputLabelProp = createShouldForwardProp(\n (propKey) =>\n !['primary', 'secondary', 'error', 'success', 'disabled', 'onColored', 'inline', 'zIndex'].includes(propKey)\n)\n\nconst labelTransitionMS = 125\n\nconst template = (palette: FormInputLabelPalette) => `\n color: ${palette.color};\n background-color: ${palette.backgroundColor};\n border-color: ${palette.borderColor};\n &:hover {\n background-color: ${palette.backgroundColorHover};\n }\n &:focus-within {\n background-color: ${palette.backgroundColor};\n }\n & [data-input-control]::after {\n color: ${palette.backgroundColor}; \n }\n`\n\nconst COLOR_SCHEMA = {\n contrast: {\n disabled: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-disabled'],\n backgroundColor: props.theme.colors['bg-disabled-large'],\n borderColor: props.theme.colors.transparent,\n backgroundColorHover: props.theme.colors['bg-disabled-large'],\n ...props.palette,\n })}\n `,\n error: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-secondary'],\n backgroundColor: props.theme.colors['alert-bg-error-200'],\n borderColor: props.theme.colors['alert-bg-error-500'],\n backgroundColorHover: props.theme.colors['alert-bg-error-200'],\n ...props.palette,\n })}\n `,\n success: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-secondary'],\n backgroundColor: props.theme.colors['alert-bg-success-200'],\n borderColor: props.theme.colors['alert-bg-success-500'],\n backgroundColorHover: props.theme.colors['alert-bg-success-200'],\n ...props.palette,\n })}\n `,\n default: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-secondary'],\n backgroundColor: props.theme.colors['bg-onmain-primary'],\n borderColor: props.theme.colors['border-onmain-default-large'],\n backgroundColorHover: tinycolor(props.theme.colors['bg-onmain-primary']).darken(4).toString() as CSSColor,\n ...props.palette,\n })}\n `,\n },\n secondary: {\n disabled: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-disabled'],\n backgroundColor: props.theme.colors['bg-disabled-large'],\n borderColor: props.theme.colors.transparent,\n backgroundColorHover: props.theme.colors['bg-disabled-large'],\n ...props.palette,\n })}\n `,\n error: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-secondary'],\n backgroundColor: props.theme.colors['alert-bg-error-100'],\n borderColor: props.theme.colors['alert-bg-error-500'],\n backgroundColorHover: props.theme.colors['alert-bg-error-100'],\n ...props.palette,\n })}\n `,\n success: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-secondary'],\n backgroundColor: props.theme.colors['alert-bg-success-100'],\n borderColor: props.theme.colors['alert-bg-success-500'],\n backgroundColorHover: props.theme.colors['alert-bg-success-100'],\n ...props.palette,\n })}\n `,\n default: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-secondary'],\n backgroundColor: props.theme.colors['bg-onmain-secondary'],\n borderColor: props.theme.colors['border-onmain-default-large'],\n backgroundColorHover: tinycolor(props.theme.colors['bg-onmain-secondary']).darken(4).toString() as CSSColor,\n ...props.palette,\n })}\n `,\n },\n primary: {\n disabled: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-disabled'],\n backgroundColor: props.theme.colors['bg-disabled-large'],\n borderColor: props.theme.colors.transparent,\n backgroundColorHover: props.theme.colors['bg-disabled-large'],\n ...props.palette,\n })}\n `,\n error: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-secondary'],\n backgroundColor: props.theme.colors['alert-bg-error-100'],\n borderColor: props.theme.colors['alert-bg-error-500'],\n backgroundColorHover: props.theme.colors['alert-bg-error-100'],\n ...props.palette,\n })}\n `,\n success: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-secondary'],\n backgroundColor: props.theme.colors['alert-bg-success-100'],\n borderColor: props.theme.colors['alert-bg-success-500'],\n backgroundColorHover: props.theme.colors['alert-bg-success-100'],\n ...props.palette,\n })}\n `,\n default: css<StyledFormInputLabelProps>`\n ${(props) =>\n template({\n color: props.theme.colors['content-onmain-secondary'],\n backgroundColor: props.theme.colors['bg-onmain-primary'],\n borderColor: props.theme.colors['border-onmain-default-large'],\n backgroundColorHover: tinycolor(props.theme.colors['bg-onmain-primary']).darken(4).toString() as CSSColor,\n ...props.palette,\n })}\n `,\n },\n}\n\nexport const Dropdown = styled.div`\n box-sizing: border-box;\n position: absolute;\n top: 100%;\n margin-top: 8px;\n`\n\nexport const Root = styled.div.withConfig<StyledFormInputLabelProps>({\n shouldForwardProp: shouldForwardFormInputLabelProp,\n})`\n ${(props) => {\n const borderWidth = '1px'\n\n return `\n box-sizing: border-box;\n position: relative;\n isolation: isolate;\n display: ${props.inline ? 'inline-flex' : 'flex'};\n cursor: ${props.disabled ? 'not-allowed' : 'pointer'};\n align-items: center;\n min-width: min-content;\n border: ${borderWidth} solid transparent;\n z-index: ${props.zIndex ?? 'auto'};\n transition-property: background-color;\n transition-duration: 150ms;\n transition-timing-function: ease-in;\n\n & > ${Dropdown} {\n right: -${borderWidth};\n left: -${borderWidth};\n }\n\n &:focus-within {\n box-shadow: 0 0 0 2px ${props.theme.colors.white}, 0 0 0 4px ${props.theme.colors['border-focus']};\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n\n &:hover [data-input-control]::after,\n &:focus-within [data-input-control]::after {\n opacity: 0;\n }\n `\n }}\n ${(props) => {\n let schema = COLOR_SCHEMA.primary\n\n if (props.secondary) schema = COLOR_SCHEMA.secondary\n if (props.contrast || props.onColored) schema = COLOR_SCHEMA.contrast\n\n if (props.disabled) return schema.disabled\n if (props.error) return schema.error\n if (props.success) return schema.success\n\n return schema.default\n }}\n\n ${responsiveSize}\n ${responsiveMargin}\n`\n\nexport const Label = styled.span`\n box-sizing: border-box;\n position: absolute;\n left: 0;\n top: 50%;\n transform: translateY(-50%);\n width: 100%;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n pointer-events: none;\n transition-property: transform, width;\n transition-duration: ${labelTransitionMS}ms, 0ms;\n transition-delay: 0ms, 0ms;\n transition-timing-function: cubic-bezier(0, 0, 0.48, 1);\n`\n\nexport const InputContainer = styled.div.withConfig<StyledInputContainerProps>({\n shouldForwardProp: (propKey) => !['labelPosition', 'labelActive'].includes(propKey),\n})`\n box-sizing: border-box;\n position: relative;\n display: flex;\n flex-grow: 1;\n align-self: stretch;\n cursor: inherit;\n\n ${(props) =>\n props.labelPosition === 'dynamic' &&\n `\n padding-top: 0.8em;\n\n & input {\n opacity: ${props.labelActive ? 1 : 0};\n }\n\n ${\n props.labelActive &&\n `& > ${Label} {\n transition-delay: 0ms, ${labelTransitionMS}ms;\n transform: scale(0.7) translateX(-21.5%) translateY(-145%);\n width: 130%;\n }`\n }\n `}\n\n ${(props) =>\n props.labelPosition === 'top' &&\n `\n padding-top: 0.8em;\n\n & > ${Label} {\n transition-delay: 0ms, ${labelTransitionMS}ms;\n transform: scale(0.7) translateX(-21.5%) translateY(-145%);\n width: 130%;\n }\n `}\n\n ${(props) =>\n props.labelPosition === 'center' &&\n `\n & input {\n opacity: ${props.labelActive ? 1 : 0};\n }\n\n & > ${Label} {\n opacity: ${props.labelActive ? 0 : 1};\n z-index: ${props.labelActive ? -1 : 'auto'};\n }\n `}\n`\n"],"names":["shouldForwardFormInputLabelProp","createShouldForwardProp","propKey","includes","template","palette","color","backgroundColor","borderColor","backgroundColorHover","COLOR_SCHEMA","contrast","disabled","css","props","theme","colors","transparent","error","success","default","tinycolor","darken","toString","secondary","primary","Dropdown","styled","div","withConfig","displayName","componentId","Root","shouldForwardProp","borderWidth","inline","zIndex","white","schema","onColored","responsiveSize","responsiveMargin","Label","span","InputContainer","labelPosition","labelActive"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Icon.js","sources":["../../../../src/components/Icon/Icon.tsx"],"sourcesContent":["import { forwardRef, useEffect, useState } from 'react'\nimport { useTheme } from 'styled-components'\nimport DOMPurify from 'dompurify'\nimport { withMergedProps } from 'hocs/withMergedProps'\nimport { useClassname } from 'hooks/useClassname'\nimport { SIZES } from './constants'\nimport { ICONS, ICONS_DEFAULT } from './list'\nimport * as Styled from './style'\nimport type { IconProps, SvgDynamicModule } from './types'\nimport { BackgroundWorker } from './bg-worker'\n\nconst COMPONENT_NAME = 'Icon'\n\nconst cache: Record<string, string | null> = {}\nconst retryAttempts = 3\nconst worker = new BackgroundWorker<{ xhr: XMLHttpRequest; url: string }>()\n\nworker.run(({ xhr, url }) => {\n xhr.open('GET', url)\n xhr.send()\n})\n\nconst fetchImage = async (url: string): Promise<string> => {\n let retries = 0\n return new Promise((resolve, reject) => {\n const xhr = new XMLHttpRequest()\n xhr.responseType = 'text'\n xhr.open('GET', url)\n xhr.send()\n xhr.onload = function () {\n if (xhr.status >= 200 && xhr.status < 400) {\n const content = DOMPurify.sanitize(xhr.response)\n resolve(content)\n } else {\n reject(new Error(`Failed to load icon from \"${url}\".`))\n }\n }\n\n xhr.onerror = function () {\n retries++\n if (retries < retryAttempts) {\n worker.add({ url, xhr })\n }\n\n if (retries >= retryAttempts) {\n reject(new Error(`Failed to load icon from \"${url}\" after ${retryAttempts} attempts.`))\n }\n }\n })\n}\n\n/**\n *\n * Component accepts all \\<span\\> attributes.\n *\n * Responsive \"size\" props are supported.\n *\n * Exposed \"ref\" attached to root node.\n *\n * See full [IconProps](https://github.com/foxford/ui/blob/master/src/components/Icon/types.ts)\n */\nconst Icon: React.ForwardRefExoticComponent<IconProps> = withMergedProps<IconProps, HTMLSpanElement>(\n forwardRef((props, ref) => {\n const theme = useTheme()\n const { assetHost } = theme\n const { size = 'inherit', name = 'unknown', icon, preset, ...restProps } = props\n const cacheName = `${preset}_${name}`\n const [content, setContent] = useState<string | null>(cache[cacheName] ?? null)\n\n const className = useClassname(COMPONENT_NAME, restProps.className)\n\n const iconUrl: SvgDynamicModule | null | undefined =\n name === 'unknown' ? null : (preset === 'brand' ? ICONS : ICONS_DEFAULT)[name]\n\n useEffect(() => {\n if (!iconUrl) return\n if (cache[cacheName] && cache[cacheName] !== null) {\n setContent(cache[cacheName])\n return\n }\n\n if (cache[cacheName] === null) {\n document.addEventListener(\n `IconLoaded_${cacheName}`,\n (event: Event) => {\n const detail = (event as CustomEvent<{ name: string; content: string }>).detail\n if (detail && detail.name === name && detail.content) {\n setContent(detail.content)\n }\n },\n { once: true }\n )\n return\n }\n\n ;(async () => {\n cache[cacheName] = null\n\n const module = await iconUrl()\n const url = module?.default\n\n if (!url) return\n\n let content = ''\n\n try {\n content = await fetchImage(`${assetHost ?? ''}${url}`)\n cache[cacheName] = content\n setContent(content)\n document.dispatchEvent(new CustomEvent(`IconLoaded_${cacheName}`, { detail: { name, content } }))\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(error)\n }\n })()\n }, [iconUrl, name, cacheName, assetHost])\n\n const contentProps = icon ? { children: icon } : { dangerouslySetInnerHTML: { __html: content } }\n\n return <Styled.Root {...restProps} size={size} className={className} ref={ref} {...contentProps} />\n }),\n {\n displayName: COMPONENT_NAME,\n sizes: SIZES,\n }\n)\n\nexport { Icon }\n"],"names":["cache","worker","BackgroundWorker","run","xhr","url","open","send","Icon","withMergedProps","forwardRef","props","ref","theme","useTheme","assetHost","size","name","icon","preset","restProps","cacheName","content","setContent","useState","className","useClassname","iconUrl","ICONS","ICONS_DEFAULT","useEffect","module","default","async","retries","Promise","resolve","reject","XMLHttpRequest","responseType","onload","status","DOMPurify","sanitize","response","Error","onerror","add","fetchImage","document","dispatchEvent","CustomEvent","detail","error","console","addEventListener","event","once","contentProps","children","dangerouslySetInnerHTML","__html","_jsx","Styled","displayName","sizes","SIZES"],"mappings":"seAaA,MAAMA,MAAuC,CAAA,EAE7C,MAAMC,OAAS,IAAIC,SAAAA,iBAEnBD,OAAOE,KAAI,EAAGC,MAAKC,UACjBD,EAAIE,KAAK,MAAOD,GAChBD,EAAIG,MAAM,IA0CNC,MAAAA,KAAmDC,gBAAAA,gBACvDC,MAAAA,YAAW,CAACC,EAAOC,KACjB,MAAMC,EAAQC,OAAAA,WACd,MAAMC,UAAEA,GAAcF,EACtB,MAAMG,KAAEA,EAAO,UAASC,KAAEA,EAAO,UAASC,KAAEA,EAAIC,OAAEA,KAAWC,GAAcT,EAC3E,MAAMU,EAAY,GAAGF,KAAUF,IAC/B,MAAOK,EAASC,GAAcC,MAAAA,SAAwBxB,MAAMqB,IAAc,MAE1E,MAAMI,EAAYC,aAAYA,aA1DX,OA0D4BN,EAAUK,WAEzD,MAAME,EACJV,IAAS,UAAY,MAAQE,IAAW,QAAUS,MAAKA,MAAGC,qBAAeZ,GAE3Ea,MAAAA,WAAU,KACHH,IACD3B,MAAMqB,IAAcrB,MAAMqB,KAAe,KAC3CE,EAAWvB,MAAMqB,IAIfrB,MAAMqB,KAAe,KAcxB,WACCrB,MAAMqB,GAAa,KAEnB,MAAMU,QAAeJ,IACrB,MAAMtB,EAAM0B,GAAQC,QAEpB,IAAK3B,EAAK,OAEV,IAAIiB,EAAU,GAEd,IACEA,OApFSW,WACjB,IAAIC,EAAU,EACd,OAAO,IAAIC,SAAQ,CAACC,EAASC,KAC3B,MAAMjC,EAAM,IAAIkC,eAChBlC,EAAImC,aAAe,OACnBnC,EAAIE,KAAK,MAAOD,GAChBD,EAAIG,OACJH,EAAIoC,OAAS,KACX,GAAIpC,EAAIqC,QAAU,KAAOrC,EAAIqC,OAAS,IAAK,CACzC,MAAMnB,EAAUoB,OAASV,QAACW,SAASvC,EAAIwC,UACvCR,EAAQd,EACV,MACEe,EAAO,IAAIQ,MAAM,6BAA6BxC,SAIlDD,EAAI0C,QAAU,KACZZ,IACIA,EA1BY,GA2BdjC,OAAO8C,IAAI,CAAE1C,MAAKD,QAGhB8B,GA9BY,GA+BdG,EAAO,IAAIQ,MAAM,6BAA6BxC,yBAEjD,GACD,EA0DsB2C,CAAW,GAAGjC,GAAa,KAAKV,KAChDL,MAAMqB,GAAaC,EACnBC,EAAWD,GACX2B,SAASC,cAAc,IAAIC,YAAY,cAAc9B,IAAa,CAAE+B,OAAQ,CAAEnC,OAAMK,aACrF,CAAC,MAAO+B,GAEPC,QAAQD,MAAMA,EAChB,CACD,EAnBA,GAbCJ,SAASM,iBACP,cAAclC,KACbmC,IACC,MAAMJ,EAAUI,EAAyDJ,OACrEA,GAAUA,EAAOnC,OAASA,GAAQmC,EAAO9B,SAC3CC,EAAW6B,EAAO9B,QACpB,GAEF,CAAEmC,MAAM,IAwBR,GACH,CAAC9B,EAASV,EAAMI,EAAWN,IAE9B,MAAM2C,EAAexC,EAAO,CAAEyC,SAAUzC,GAAS,CAAE0C,wBAAyB,CAAEC,OAAQvC,IAEtF,OAAOwC,WAAAA,IAACC,MAAAA,KAAW,IAAK3C,EAAWJ,KAAMA,EAAMS,UAAWA,EAAWb,IAAKA,KAAS8C,GAAgB,IAErG,CACEM,YA/GmB,OAgHnBC,MAAOC,UAAAA"}
|
|
1
|
+
{"version":3,"file":"Icon.js","sources":["../../../../src/components/Icon/Icon.tsx"],"sourcesContent":["import { forwardRef, useEffect, useState } from 'react'\nimport { useTheme } from 'styled-components'\nimport DOMPurify from 'dompurify'\nimport { withMergedProps } from 'hocs/withMergedProps'\nimport { useClassname } from 'hooks/useClassname'\nimport { SIZES } from './constants'\nimport { ICONS, ICONS_DEFAULT } from './list'\nimport * as Styled from './style'\nimport type { IconProps, SvgDynamicModule } from './types'\nimport { BackgroundWorker } from './bg-worker'\n\nconst COMPONENT_NAME = 'Icon'\n\nconst cache: Record<string, string | null> = {}\nconst retryAttempts = 3\nconst worker = new BackgroundWorker<{ xhr: XMLHttpRequest; url: string }>()\n\nworker.run(({ xhr, url }) => {\n xhr.open('GET', url)\n xhr.send()\n})\n\nconst fetchImage = async (url: string): Promise<string> => {\n let retries = 0\n return new Promise((resolve, reject) => {\n const xhr = new XMLHttpRequest()\n xhr.responseType = 'text'\n xhr.open('GET', url)\n xhr.send()\n xhr.onload = function () {\n if (xhr.status >= 200 && xhr.status < 400) {\n const content = DOMPurify.sanitize(xhr.response)\n resolve(content)\n } else {\n reject(new Error(`Failed to load icon from \"${url}\".`))\n }\n }\n\n xhr.onerror = function () {\n retries++\n if (retries < retryAttempts) {\n worker.add({ url, xhr })\n }\n\n if (retries >= retryAttempts) {\n reject(new Error(`Failed to load icon from \"${url}\" after ${retryAttempts} attempts.`))\n }\n }\n })\n}\n\n/**\n *\n * Component accepts all \\<span\\> attributes.\n *\n * Responsive \"size\", \"margin\" props are supported.\n *\n * Exposed \"ref\" attached to root node.\n *\n * See full [IconProps](https://github.com/foxford/ui/blob/master/src/components/Icon/types.ts)\n */\nconst Icon: React.ForwardRefExoticComponent<IconProps> = withMergedProps<IconProps, HTMLSpanElement>(\n forwardRef((props, ref) => {\n const theme = useTheme()\n const { assetHost } = theme\n const { size = 'inherit', name = 'unknown', icon, preset, ...restProps } = props\n const cacheName = `${preset}_${name}`\n const [content, setContent] = useState<string | null>(cache[cacheName] ?? null)\n\n const className = useClassname(COMPONENT_NAME, restProps.className)\n\n const iconUrl: SvgDynamicModule | null | undefined =\n name === 'unknown' ? null : (preset === 'brand' ? ICONS : ICONS_DEFAULT)[name]\n\n useEffect(() => {\n if (!iconUrl) return\n if (cache[cacheName] && cache[cacheName] !== null) {\n setContent(cache[cacheName])\n return\n }\n\n if (cache[cacheName] === null) {\n document.addEventListener(\n `IconLoaded_${cacheName}`,\n (event: Event) => {\n const detail = (event as CustomEvent<{ name: string; content: string }>).detail\n if (detail && detail.name === name && detail.content) {\n setContent(detail.content)\n }\n },\n { once: true }\n )\n return\n }\n\n ;(async () => {\n cache[cacheName] = null\n\n const module = await iconUrl()\n const url = module?.default\n\n if (!url) return\n\n let content = ''\n\n try {\n content = await fetchImage(`${assetHost ?? ''}${url}`)\n cache[cacheName] = content\n setContent(content)\n document.dispatchEvent(new CustomEvent(`IconLoaded_${cacheName}`, { detail: { name, content } }))\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(error)\n }\n })()\n }, [iconUrl, name, cacheName, assetHost])\n\n const contentProps = icon ? { children: icon } : { dangerouslySetInnerHTML: { __html: content } }\n\n return <Styled.Root {...restProps} size={size} className={className} ref={ref} {...contentProps} />\n }),\n {\n displayName: COMPONENT_NAME,\n sizes: SIZES,\n }\n)\n\nexport { Icon }\n"],"names":["cache","worker","BackgroundWorker","run","xhr","url","open","send","Icon","withMergedProps","forwardRef","props","ref","theme","useTheme","assetHost","size","name","icon","preset","restProps","cacheName","content","setContent","useState","className","useClassname","iconUrl","ICONS","ICONS_DEFAULT","useEffect","module","default","async","retries","Promise","resolve","reject","XMLHttpRequest","responseType","onload","status","DOMPurify","sanitize","response","Error","onerror","add","fetchImage","document","dispatchEvent","CustomEvent","detail","error","console","addEventListener","event","once","contentProps","children","dangerouslySetInnerHTML","__html","_jsx","Styled","displayName","sizes","SIZES"],"mappings":"seAaA,MAAMA,MAAuC,CAAA,EAE7C,MAAMC,OAAS,IAAIC,SAAAA,iBAEnBD,OAAOE,KAAI,EAAGC,MAAKC,UACjBD,EAAIE,KAAK,MAAOD,GAChBD,EAAIG,MAAM,IA0CNC,MAAAA,KAAmDC,gBAAAA,gBACvDC,MAAAA,YAAW,CAACC,EAAOC,KACjB,MAAMC,EAAQC,OAAAA,WACd,MAAMC,UAAEA,GAAcF,EACtB,MAAMG,KAAEA,EAAO,UAASC,KAAEA,EAAO,UAASC,KAAEA,EAAIC,OAAEA,KAAWC,GAAcT,EAC3E,MAAMU,EAAY,GAAGF,KAAUF,IAC/B,MAAOK,EAASC,GAAcC,MAAAA,SAAwBxB,MAAMqB,IAAc,MAE1E,MAAMI,EAAYC,aAAYA,aA1DX,OA0D4BN,EAAUK,WAEzD,MAAME,EACJV,IAAS,UAAY,MAAQE,IAAW,QAAUS,MAAKA,MAAGC,qBAAeZ,GAE3Ea,MAAAA,WAAU,KACHH,IACD3B,MAAMqB,IAAcrB,MAAMqB,KAAe,KAC3CE,EAAWvB,MAAMqB,IAIfrB,MAAMqB,KAAe,KAcxB,WACCrB,MAAMqB,GAAa,KAEnB,MAAMU,QAAeJ,IACrB,MAAMtB,EAAM0B,GAAQC,QAEpB,IAAK3B,EAAK,OAEV,IAAIiB,EAAU,GAEd,IACEA,OApFSW,WACjB,IAAIC,EAAU,EACd,OAAO,IAAIC,SAAQ,CAACC,EAASC,KAC3B,MAAMjC,EAAM,IAAIkC,eAChBlC,EAAImC,aAAe,OACnBnC,EAAIE,KAAK,MAAOD,GAChBD,EAAIG,OACJH,EAAIoC,OAAS,KACX,GAAIpC,EAAIqC,QAAU,KAAOrC,EAAIqC,OAAS,IAAK,CACzC,MAAMnB,EAAUoB,OAASV,QAACW,SAASvC,EAAIwC,UACvCR,EAAQd,EACV,MACEe,EAAO,IAAIQ,MAAM,6BAA6BxC,SAIlDD,EAAI0C,QAAU,KACZZ,IACIA,EA1BY,GA2BdjC,OAAO8C,IAAI,CAAE1C,MAAKD,QAGhB8B,GA9BY,GA+BdG,EAAO,IAAIQ,MAAM,6BAA6BxC,yBAEjD,GACD,EA0DsB2C,CAAW,GAAGjC,GAAa,KAAKV,KAChDL,MAAMqB,GAAaC,EACnBC,EAAWD,GACX2B,SAASC,cAAc,IAAIC,YAAY,cAAc9B,IAAa,CAAE+B,OAAQ,CAAEnC,OAAMK,aACrF,CAAC,MAAO+B,GAEPC,QAAQD,MAAMA,EAChB,CACD,EAnBA,GAbCJ,SAASM,iBACP,cAAclC,KACbmC,IACC,MAAMJ,EAAUI,EAAyDJ,OACrEA,GAAUA,EAAOnC,OAASA,GAAQmC,EAAO9B,SAC3CC,EAAW6B,EAAO9B,QACpB,GAEF,CAAEmC,MAAM,IAwBR,GACH,CAAC9B,EAASV,EAAMI,EAAWN,IAE9B,MAAM2C,EAAexC,EAAO,CAAEyC,SAAUzC,GAAS,CAAE0C,wBAAyB,CAAEC,OAAQvC,IAEtF,OAAOwC,WAAAA,IAACC,MAAAA,KAAW,IAAK3C,EAAWJ,KAAMA,EAAMS,UAAWA,EAAWb,IAAKA,KAAS8C,GAAgB,IAErG,CACEM,YA/GmB,OAgHnBC,MAAOC,UAAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Icon.mjs","sources":["../../../../src/components/Icon/Icon.tsx"],"sourcesContent":["import { forwardRef, useEffect, useState } from 'react'\nimport { useTheme } from 'styled-components'\nimport DOMPurify from 'dompurify'\nimport { withMergedProps } from 'hocs/withMergedProps'\nimport { useClassname } from 'hooks/useClassname'\nimport { SIZES } from './constants'\nimport { ICONS, ICONS_DEFAULT } from './list'\nimport * as Styled from './style'\nimport type { IconProps, SvgDynamicModule } from './types'\nimport { BackgroundWorker } from './bg-worker'\n\nconst COMPONENT_NAME = 'Icon'\n\nconst cache: Record<string, string | null> = {}\nconst retryAttempts = 3\nconst worker = new BackgroundWorker<{ xhr: XMLHttpRequest; url: string }>()\n\nworker.run(({ xhr, url }) => {\n xhr.open('GET', url)\n xhr.send()\n})\n\nconst fetchImage = async (url: string): Promise<string> => {\n let retries = 0\n return new Promise((resolve, reject) => {\n const xhr = new XMLHttpRequest()\n xhr.responseType = 'text'\n xhr.open('GET', url)\n xhr.send()\n xhr.onload = function () {\n if (xhr.status >= 200 && xhr.status < 400) {\n const content = DOMPurify.sanitize(xhr.response)\n resolve(content)\n } else {\n reject(new Error(`Failed to load icon from \"${url}\".`))\n }\n }\n\n xhr.onerror = function () {\n retries++\n if (retries < retryAttempts) {\n worker.add({ url, xhr })\n }\n\n if (retries >= retryAttempts) {\n reject(new Error(`Failed to load icon from \"${url}\" after ${retryAttempts} attempts.`))\n }\n }\n })\n}\n\n/**\n *\n * Component accepts all \\<span\\> attributes.\n *\n * Responsive \"size\" props are supported.\n *\n * Exposed \"ref\" attached to root node.\n *\n * See full [IconProps](https://github.com/foxford/ui/blob/master/src/components/Icon/types.ts)\n */\nconst Icon: React.ForwardRefExoticComponent<IconProps> = withMergedProps<IconProps, HTMLSpanElement>(\n forwardRef((props, ref) => {\n const theme = useTheme()\n const { assetHost } = theme\n const { size = 'inherit', name = 'unknown', icon, preset, ...restProps } = props\n const cacheName = `${preset}_${name}`\n const [content, setContent] = useState<string | null>(cache[cacheName] ?? null)\n\n const className = useClassname(COMPONENT_NAME, restProps.className)\n\n const iconUrl: SvgDynamicModule | null | undefined =\n name === 'unknown' ? null : (preset === 'brand' ? ICONS : ICONS_DEFAULT)[name]\n\n useEffect(() => {\n if (!iconUrl) return\n if (cache[cacheName] && cache[cacheName] !== null) {\n setContent(cache[cacheName])\n return\n }\n\n if (cache[cacheName] === null) {\n document.addEventListener(\n `IconLoaded_${cacheName}`,\n (event: Event) => {\n const detail = (event as CustomEvent<{ name: string; content: string }>).detail\n if (detail && detail.name === name && detail.content) {\n setContent(detail.content)\n }\n },\n { once: true }\n )\n return\n }\n\n ;(async () => {\n cache[cacheName] = null\n\n const module = await iconUrl()\n const url = module?.default\n\n if (!url) return\n\n let content = ''\n\n try {\n content = await fetchImage(`${assetHost ?? ''}${url}`)\n cache[cacheName] = content\n setContent(content)\n document.dispatchEvent(new CustomEvent(`IconLoaded_${cacheName}`, { detail: { name, content } }))\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(error)\n }\n })()\n }, [iconUrl, name, cacheName, assetHost])\n\n const contentProps = icon ? { children: icon } : { dangerouslySetInnerHTML: { __html: content } }\n\n return <Styled.Root {...restProps} size={size} className={className} ref={ref} {...contentProps} />\n }),\n {\n displayName: COMPONENT_NAME,\n sizes: SIZES,\n }\n)\n\nexport { Icon }\n"],"names":["cache","worker","BackgroundWorker","run","xhr","url","open","send","Icon","withMergedProps","forwardRef","props","ref","theme","useTheme","assetHost","size","name","icon","preset","restProps","cacheName","content","setContent","useState","className","useClassname","iconUrl","ICONS","ICONS_DEFAULT","useEffect","module","default","async","retries","Promise","resolve","reject","XMLHttpRequest","responseType","onload","status","DOMPurify","sanitize","response","Error","onerror","add","fetchImage","document","dispatchEvent","CustomEvent","detail","error","console","addEventListener","event","once","contentProps","children","dangerouslySetInnerHTML","__html","_jsx","Styled","displayName","sizes","SIZES"],"mappings":"mfAaA,MAAMA,MAAuC,CAAA,EAE7C,MAAMC,OAAS,IAAIC,iBAEnBD,OAAOE,KAAI,EAAGC,MAAKC,UACjBD,EAAIE,KAAK,MAAOD,GAChBD,EAAIG,MAAM,IA0CNC,MAAAA,KAAmDC,gBACvDC,YAAW,CAACC,EAAOC,KACjB,MAAMC,EAAQC,WACd,MAAMC,UAAEA,GAAcF,EACtB,MAAMG,KAAEA,EAAO,UAASC,KAAEA,EAAO,UAASC,KAAEA,EAAIC,OAAEA,KAAWC,GAAcT,EAC3E,MAAMU,EAAY,GAAGF,KAAUF,IAC/B,MAAOK,EAASC,GAAcC,SAAwBxB,MAAMqB,IAAc,MAE1E,MAAMI,EAAYC,aA1DC,OA0D4BN,EAAUK,WAEzD,MAAME,EACJV,IAAS,UAAY,MAAQE,IAAW,QAAUS,MAAQC,eAAeZ,GAE3Ea,WAAU,KACHH,IACD3B,MAAMqB,IAAcrB,MAAMqB,KAAe,KAC3CE,EAAWvB,MAAMqB,IAIfrB,MAAMqB,KAAe,KAcxB,WACCrB,MAAMqB,GAAa,KAEnB,MAAMU,QAAeJ,IACrB,MAAMtB,EAAM0B,GAAQC,QAEpB,IAAK3B,EAAK,OAEV,IAAIiB,EAAU,GAEd,IACEA,OApFSW,WACjB,IAAIC,EAAU,EACd,OAAO,IAAIC,SAAQ,CAACC,EAASC,KAC3B,MAAMjC,EAAM,IAAIkC,eAChBlC,EAAImC,aAAe,OACnBnC,EAAIE,KAAK,MAAOD,GAChBD,EAAIG,OACJH,EAAIoC,OAAS,KACX,GAAIpC,EAAIqC,QAAU,KAAOrC,EAAIqC,OAAS,IAAK,CACzC,MAAMnB,EAAUoB,UAAUC,SAASvC,EAAIwC,UACvCR,EAAQd,EACV,MACEe,EAAO,IAAIQ,MAAM,6BAA6BxC,SAIlDD,EAAI0C,QAAU,KACZZ,IACIA,EA1BY,GA2BdjC,OAAO8C,IAAI,CAAE1C,MAAKD,QAGhB8B,GA9BY,GA+BdG,EAAO,IAAIQ,MAAM,6BAA6BxC,yBAEjD,GACD,EA0DsB2C,CAAW,GAAGjC,GAAa,KAAKV,KAChDL,MAAMqB,GAAaC,EACnBC,EAAWD,GACX2B,SAASC,cAAc,IAAIC,YAAY,cAAc9B,IAAa,CAAE+B,OAAQ,CAAEnC,OAAMK,aACrF,CAAC,MAAO+B,GAEPC,QAAQD,MAAMA,EAChB,CACD,EAnBA,GAbCJ,SAASM,iBACP,cAAclC,KACbmC,IACC,MAAMJ,EAAUI,EAAyDJ,OACrEA,GAAUA,EAAOnC,OAASA,GAAQmC,EAAO9B,SAC3CC,EAAW6B,EAAO9B,QACpB,GAEF,CAAEmC,MAAM,IAwBR,GACH,CAAC9B,EAASV,EAAMI,EAAWN,IAE9B,MAAM2C,EAAexC,EAAO,CAAEyC,SAAUzC,GAAS,CAAE0C,wBAAyB,CAAEC,OAAQvC,IAEtF,OAAOwC,IAACC,KAAW,IAAK3C,EAAWJ,KAAMA,EAAMS,UAAWA,EAAWb,IAAKA,KAAS8C,GAAgB,IAErG,CACEM,YA/GmB,OAgHnBC,MAAOC"}
|
|
1
|
+
{"version":3,"file":"Icon.mjs","sources":["../../../../src/components/Icon/Icon.tsx"],"sourcesContent":["import { forwardRef, useEffect, useState } from 'react'\nimport { useTheme } from 'styled-components'\nimport DOMPurify from 'dompurify'\nimport { withMergedProps } from 'hocs/withMergedProps'\nimport { useClassname } from 'hooks/useClassname'\nimport { SIZES } from './constants'\nimport { ICONS, ICONS_DEFAULT } from './list'\nimport * as Styled from './style'\nimport type { IconProps, SvgDynamicModule } from './types'\nimport { BackgroundWorker } from './bg-worker'\n\nconst COMPONENT_NAME = 'Icon'\n\nconst cache: Record<string, string | null> = {}\nconst retryAttempts = 3\nconst worker = new BackgroundWorker<{ xhr: XMLHttpRequest; url: string }>()\n\nworker.run(({ xhr, url }) => {\n xhr.open('GET', url)\n xhr.send()\n})\n\nconst fetchImage = async (url: string): Promise<string> => {\n let retries = 0\n return new Promise((resolve, reject) => {\n const xhr = new XMLHttpRequest()\n xhr.responseType = 'text'\n xhr.open('GET', url)\n xhr.send()\n xhr.onload = function () {\n if (xhr.status >= 200 && xhr.status < 400) {\n const content = DOMPurify.sanitize(xhr.response)\n resolve(content)\n } else {\n reject(new Error(`Failed to load icon from \"${url}\".`))\n }\n }\n\n xhr.onerror = function () {\n retries++\n if (retries < retryAttempts) {\n worker.add({ url, xhr })\n }\n\n if (retries >= retryAttempts) {\n reject(new Error(`Failed to load icon from \"${url}\" after ${retryAttempts} attempts.`))\n }\n }\n })\n}\n\n/**\n *\n * Component accepts all \\<span\\> attributes.\n *\n * Responsive \"size\", \"margin\" props are supported.\n *\n * Exposed \"ref\" attached to root node.\n *\n * See full [IconProps](https://github.com/foxford/ui/blob/master/src/components/Icon/types.ts)\n */\nconst Icon: React.ForwardRefExoticComponent<IconProps> = withMergedProps<IconProps, HTMLSpanElement>(\n forwardRef((props, ref) => {\n const theme = useTheme()\n const { assetHost } = theme\n const { size = 'inherit', name = 'unknown', icon, preset, ...restProps } = props\n const cacheName = `${preset}_${name}`\n const [content, setContent] = useState<string | null>(cache[cacheName] ?? null)\n\n const className = useClassname(COMPONENT_NAME, restProps.className)\n\n const iconUrl: SvgDynamicModule | null | undefined =\n name === 'unknown' ? null : (preset === 'brand' ? ICONS : ICONS_DEFAULT)[name]\n\n useEffect(() => {\n if (!iconUrl) return\n if (cache[cacheName] && cache[cacheName] !== null) {\n setContent(cache[cacheName])\n return\n }\n\n if (cache[cacheName] === null) {\n document.addEventListener(\n `IconLoaded_${cacheName}`,\n (event: Event) => {\n const detail = (event as CustomEvent<{ name: string; content: string }>).detail\n if (detail && detail.name === name && detail.content) {\n setContent(detail.content)\n }\n },\n { once: true }\n )\n return\n }\n\n ;(async () => {\n cache[cacheName] = null\n\n const module = await iconUrl()\n const url = module?.default\n\n if (!url) return\n\n let content = ''\n\n try {\n content = await fetchImage(`${assetHost ?? ''}${url}`)\n cache[cacheName] = content\n setContent(content)\n document.dispatchEvent(new CustomEvent(`IconLoaded_${cacheName}`, { detail: { name, content } }))\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(error)\n }\n })()\n }, [iconUrl, name, cacheName, assetHost])\n\n const contentProps = icon ? { children: icon } : { dangerouslySetInnerHTML: { __html: content } }\n\n return <Styled.Root {...restProps} size={size} className={className} ref={ref} {...contentProps} />\n }),\n {\n displayName: COMPONENT_NAME,\n sizes: SIZES,\n }\n)\n\nexport { Icon }\n"],"names":["cache","worker","BackgroundWorker","run","xhr","url","open","send","Icon","withMergedProps","forwardRef","props","ref","theme","useTheme","assetHost","size","name","icon","preset","restProps","cacheName","content","setContent","useState","className","useClassname","iconUrl","ICONS","ICONS_DEFAULT","useEffect","module","default","async","retries","Promise","resolve","reject","XMLHttpRequest","responseType","onload","status","DOMPurify","sanitize","response","Error","onerror","add","fetchImage","document","dispatchEvent","CustomEvent","detail","error","console","addEventListener","event","once","contentProps","children","dangerouslySetInnerHTML","__html","_jsx","Styled","displayName","sizes","SIZES"],"mappings":"mfAaA,MAAMA,MAAuC,CAAA,EAE7C,MAAMC,OAAS,IAAIC,iBAEnBD,OAAOE,KAAI,EAAGC,MAAKC,UACjBD,EAAIE,KAAK,MAAOD,GAChBD,EAAIG,MAAM,IA0CNC,MAAAA,KAAmDC,gBACvDC,YAAW,CAACC,EAAOC,KACjB,MAAMC,EAAQC,WACd,MAAMC,UAAEA,GAAcF,EACtB,MAAMG,KAAEA,EAAO,UAASC,KAAEA,EAAO,UAASC,KAAEA,EAAIC,OAAEA,KAAWC,GAAcT,EAC3E,MAAMU,EAAY,GAAGF,KAAUF,IAC/B,MAAOK,EAASC,GAAcC,SAAwBxB,MAAMqB,IAAc,MAE1E,MAAMI,EAAYC,aA1DC,OA0D4BN,EAAUK,WAEzD,MAAME,EACJV,IAAS,UAAY,MAAQE,IAAW,QAAUS,MAAQC,eAAeZ,GAE3Ea,WAAU,KACHH,IACD3B,MAAMqB,IAAcrB,MAAMqB,KAAe,KAC3CE,EAAWvB,MAAMqB,IAIfrB,MAAMqB,KAAe,KAcxB,WACCrB,MAAMqB,GAAa,KAEnB,MAAMU,QAAeJ,IACrB,MAAMtB,EAAM0B,GAAQC,QAEpB,IAAK3B,EAAK,OAEV,IAAIiB,EAAU,GAEd,IACEA,OApFSW,WACjB,IAAIC,EAAU,EACd,OAAO,IAAIC,SAAQ,CAACC,EAASC,KAC3B,MAAMjC,EAAM,IAAIkC,eAChBlC,EAAImC,aAAe,OACnBnC,EAAIE,KAAK,MAAOD,GAChBD,EAAIG,OACJH,EAAIoC,OAAS,KACX,GAAIpC,EAAIqC,QAAU,KAAOrC,EAAIqC,OAAS,IAAK,CACzC,MAAMnB,EAAUoB,UAAUC,SAASvC,EAAIwC,UACvCR,EAAQd,EACV,MACEe,EAAO,IAAIQ,MAAM,6BAA6BxC,SAIlDD,EAAI0C,QAAU,KACZZ,IACIA,EA1BY,GA2BdjC,OAAO8C,IAAI,CAAE1C,MAAKD,QAGhB8B,GA9BY,GA+BdG,EAAO,IAAIQ,MAAM,6BAA6BxC,yBAEjD,GACD,EA0DsB2C,CAAW,GAAGjC,GAAa,KAAKV,KAChDL,MAAMqB,GAAaC,EACnBC,EAAWD,GACX2B,SAASC,cAAc,IAAIC,YAAY,cAAc9B,IAAa,CAAE+B,OAAQ,CAAEnC,OAAMK,aACrF,CAAC,MAAO+B,GAEPC,QAAQD,MAAMA,EAChB,CACD,EAnBA,GAbCJ,SAASM,iBACP,cAAclC,KACbmC,IACC,MAAMJ,EAAUI,EAAyDJ,OACrEA,GAAUA,EAAOnC,OAASA,GAAQmC,EAAO9B,SAC3CC,EAAW6B,EAAO9B,QACpB,GAEF,CAAEmC,MAAM,IAwBR,GACH,CAAC9B,EAASV,EAAMI,EAAWN,IAE9B,MAAM2C,EAAexC,EAAO,CAAEyC,SAAUzC,GAAS,CAAE0C,wBAAyB,CAAEC,OAAQvC,IAEtF,OAAOwC,IAACC,KAAW,IAAK3C,EAAWJ,KAAMA,EAAMS,UAAWA,EAAWb,IAAKA,KAAS8C,GAAgB,IAErG,CACEM,YA/GmB,OAgHnBC,MAAOC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';function _interopNamespace(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((c=>{if(c!=='default'){var o=Object.getOwnPropertyDescriptor(e,c);Object.defineProperty(r,c,o.get?o:{enumerable:!0,get:()=>e[c]})}})),r.default=e,Object.freeze(r)}const iconPackIcons=require('../../../external/.pnpm/@foxford_icon-pack@0.
|
|
1
|
+
'use strict';function _interopNamespace(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((c=>{if(c!=='default'){var o=Object.getOwnPropertyDescriptor(e,c);Object.defineProperty(r,c,o.get?o:{enumerable:!0,get:()=>e[c]})}})),r.default=e,Object.freeze(r)}const iconPackIcons=require('../../../external/.pnpm/@foxford_icon-pack@0.9.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@foxford/icon-pack/components.json.js').default.reduce(((e,r)=>(e[r.componentName.charAt(0).toLowerCase()+r.componentName.slice(1)]=()=>{return e=/* webpackMode: "eager" */'../../../assets/'.concat(r.fileName,'.svg'),Promise.resolve().then((()=>_interopNamespace(require(e))));var e},e)),{});exports.iconPackIcons=iconPackIcons;
|
|
2
2
|
//# sourceMappingURL=icon-pack.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import IconPackIcons from'../../../external/.pnpm/@foxford_icon-pack@0.
|
|
1
|
+
import IconPackIcons from'../../../external/.pnpm/@foxford_icon-pack@0.9.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@foxford/icon-pack/components.json.mjs';const iconPackIcons=IconPackIcons.reduce(((o,c)=>(o[c.componentName.charAt(0).toLowerCase()+c.componentName.slice(1)]=()=>import(/* webpackMode: "eager" */'../../../assets/'.concat(c.fileName,'.svg')),o)),{});export{iconPackIcons};
|
|
2
2
|
//# sourceMappingURL=icon-pack.mjs.map
|
package/components/Icon/style.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';var styled=require('styled-components');var color=require('../../mixins/color.js');var responsiveSize=require('../../mixins/responsive-size.js');var style=require('../../shared/utils/style.js');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var styled__default=_interopDefault(styled);const shouldForwardIconProp=style.createShouldForwardProp((e=>!['vAlign'].includes(e)));const Root=styled__default.default.span.withConfig({shouldForwardProp:shouldForwardIconProp}).withConfig({displayName:"Icon__Root",componentId:"ui__sc-yfeniy-0"})([""," ",""],(e=>`\n box-sizing: border-box;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 1em;\n height: 1em;\n color: ${e.color?color.getColor(e.color,e):'inherit'};\n vertical-align: ${e.vAlign?e.vAlign:'baseline'};\n & > svg {\n display: block;\n width: 100%;\n height: 100%;\n fill: currentcolor;\n }\n `),responsiveSize.responsiveSize);exports.Root=Root;
|
|
1
|
+
'use strict';var styled=require('styled-components');var color=require('../../mixins/color.js');var responsiveSize=require('../../mixins/responsive-size.js');var responsiveMargin=require('../../mixins/responsive-margin.js');var style=require('../../shared/utils/style.js');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var styled__default=_interopDefault(styled);const shouldForwardIconProp=style.createShouldForwardProp((e=>!['vAlign'].includes(e)));const Root=styled__default.default.span.withConfig({shouldForwardProp:shouldForwardIconProp}).withConfig({displayName:"Icon__Root",componentId:"ui__sc-yfeniy-0"})([""," "," ",""],(e=>`\n box-sizing: border-box;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 1em;\n height: 1em;\n color: ${e.color?color.getColor(e.color,e):'inherit'};\n vertical-align: ${e.vAlign?e.vAlign:'baseline'};\n & > svg {\n display: block;\n width: 100%;\n height: 100%;\n fill: currentcolor;\n }\n `),responsiveSize.responsiveSize,responsiveMargin.responsiveMargin);exports.Root=Root;
|
|
2
2
|
//# sourceMappingURL=style.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"style.js","sources":["../../../../src/components/Icon/style.ts"],"sourcesContent":["import styled from 'styled-components'\nimport { getColor } from 'mixins/color'\nimport { responsiveSize } from 'mixins/responsive-size'\nimport { createShouldForwardProp } from 'shared/utils/style'\nimport type { StyledIconProps } from './types'\n\nconst shouldForwardIconProp = createShouldForwardProp((propKey) => !['vAlign'].includes(propKey))\n\nexport const Root = styled.span.withConfig<StyledIconProps>({\n shouldForwardProp: shouldForwardIconProp,\n})`\n ${(props) => `\n box-sizing: border-box;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 1em;\n height: 1em;\n color: ${props.color ? getColor(props.color, props) : 'inherit'};\n vertical-align: ${props.vAlign ? props.vAlign : 'baseline'};\n & > svg {\n display: block;\n width: 100%;\n height: 100%;\n fill: currentcolor;\n }\n `}\n\n ${responsiveSize}\n`\n"],"names":["shouldForwardIconProp","createShouldForwardProp","propKey","includes","Root","styled","span","withConfig","shouldForwardProp","displayName","componentId","props","color","getColor","vAlign","responsiveSize"],"mappings":"
|
|
1
|
+
{"version":3,"file":"style.js","sources":["../../../../src/components/Icon/style.ts"],"sourcesContent":["import styled from 'styled-components'\nimport { getColor } from 'mixins/color'\nimport { responsiveSize } from 'mixins/responsive-size'\nimport { responsiveMargin } from 'mixins/responsive-margin'\nimport { createShouldForwardProp } from 'shared/utils/style'\nimport type { StyledIconProps } from './types'\n\nconst shouldForwardIconProp = createShouldForwardProp((propKey) => !['vAlign'].includes(propKey))\n\nexport const Root = styled.span.withConfig<StyledIconProps>({\n shouldForwardProp: shouldForwardIconProp,\n})`\n ${(props) => `\n box-sizing: border-box;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 1em;\n height: 1em;\n color: ${props.color ? getColor(props.color, props) : 'inherit'};\n vertical-align: ${props.vAlign ? props.vAlign : 'baseline'};\n & > svg {\n display: block;\n width: 100%;\n height: 100%;\n fill: currentcolor;\n }\n `}\n\n ${responsiveSize}\n ${responsiveMargin}\n`\n"],"names":["shouldForwardIconProp","createShouldForwardProp","propKey","includes","Root","styled","span","withConfig","shouldForwardProp","displayName","componentId","props","color","getColor","vAlign","responsiveSize","responsiveMargin"],"mappings":"8XAOA,MAAMA,sBAAwBC,MAAAA,yBAAyBC,IAAa,CAAC,UAAUC,SAASD,KAEjF,MAAME,KAAOC,gBAAAA,QAAOC,KAAKC,WAA4B,CAC1DC,kBAAmBR,wBACnBO,WAAA,CAAAE,YAAA,aAAAC,YAAA,mBAFkBL,CAElB,CAAA,GAAA,IAAA,IAAA,KACGM,GAAU,wLAQFA,EAAMC,MAAQC,MAAQA,SAACF,EAAMC,MAAOD,GAAS,mCACpCA,EAAMG,OAASH,EAAMG,OAAS,oIAShDC,eAAcA,eACdC,iBAAgBA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import styled from'styled-components';import{getColor}from'../../mixins/color.mjs';import{responsiveSize}from'../../mixins/responsive-size.mjs';import{createShouldForwardProp}from'../../shared/utils/style.mjs';const shouldForwardIconProp=createShouldForwardProp((o=>!['vAlign'].includes(o)));const Root=styled.span.withConfig({shouldForwardProp:shouldForwardIconProp}).withConfig({displayName:"Icon__Root",componentId:"ui__sc-yfeniy-0"})([""," ",""],(o=>`\n box-sizing: border-box;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 1em;\n height: 1em;\n color: ${o.color?getColor(o.color,o):'inherit'};\n vertical-align: ${o.vAlign?o.vAlign:'baseline'};\n & > svg {\n display: block;\n width: 100%;\n height: 100%;\n fill: currentcolor;\n }\n `),responsiveSize);export{Root};
|
|
1
|
+
import styled from'styled-components';import{getColor}from'../../mixins/color.mjs';import{responsiveSize}from'../../mixins/responsive-size.mjs';import{responsiveMargin}from'../../mixins/responsive-margin.mjs';import{createShouldForwardProp}from'../../shared/utils/style.mjs';const shouldForwardIconProp=createShouldForwardProp((o=>!['vAlign'].includes(o)));const Root=styled.span.withConfig({shouldForwardProp:shouldForwardIconProp}).withConfig({displayName:"Icon__Root",componentId:"ui__sc-yfeniy-0"})([""," "," ",""],(o=>`\n box-sizing: border-box;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 1em;\n height: 1em;\n color: ${o.color?getColor(o.color,o):'inherit'};\n vertical-align: ${o.vAlign?o.vAlign:'baseline'};\n & > svg {\n display: block;\n width: 100%;\n height: 100%;\n fill: currentcolor;\n }\n `),responsiveSize,responsiveMargin);export{Root};
|
|
2
2
|
//# sourceMappingURL=style.mjs.map
|