@foxford/ui 2.82.0-beta-2c266bb-20251002 → 2.84.0-beta-4d7a4d1-20251008
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/components/AccordionItem/AccordionItem.js +1 -1
- package/components/AccordionItem/AccordionItem.js.map +1 -1
- package/components/AccordionItem/AccordionItem.mjs +1 -1
- package/components/AccordionItem/AccordionItem.mjs.map +1 -1
- package/components/AccordionItem/useAccordionPanel.js +2 -0
- package/components/AccordionItem/useAccordionPanel.js.map +1 -0
- package/components/AccordionItem/useAccordionPanel.mjs +2 -0
- package/components/AccordionItem/useAccordionPanel.mjs.map +1 -0
- package/components/AccordionItem/useAccordionPanelProps.js +2 -0
- package/components/AccordionItem/useAccordionPanelProps.js.map +1 -0
- package/components/AccordionItem/useAccordionPanelProps.mjs +2 -0
- package/components/AccordionItem/useAccordionPanelProps.mjs.map +1 -0
- 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/sizes.js +1 -1
- package/components/Dropdown/sizes.js.map +1 -1
- package/components/Dropdown/sizes.mjs +1 -1
- package/components/Dropdown/sizes.mjs.map +1 -1
- package/components/FormInput/FormInput.js +1 -1
- package/components/FormInput/FormInput.js.map +1 -1
- package/components/FormInput/FormInput.mjs +1 -1
- package/components/FormInput/FormInput.mjs.map +1 -1
- package/components/FormInput/sizes.js +2 -0
- package/components/FormInput/sizes.js.map +1 -0
- package/components/FormInput/sizes.mjs +2 -0
- package/components/FormInput/sizes.mjs.map +1 -0
- package/components/FormInput/style.js +1 -1
- package/components/FormInput/style.js.map +1 -1
- package/components/FormInput/style.mjs +1 -1
- package/components/FormInput/style.mjs.map +1 -1
- 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/sizes.js +2 -0
- package/components/FormInputLabel/sizes.js.map +1 -0
- package/components/FormInputLabel/sizes.mjs +2 -0
- package/components/FormInputLabel/sizes.mjs.map +1 -0
- 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/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/sizes.js +2 -0
- package/components/Input/sizes.js.map +1 -0
- package/components/Input/sizes.mjs +2 -0
- package/components/Input/sizes.mjs.map +1 -0
- package/components/InputLabel/InputLabel.js +2 -0
- package/components/InputLabel/InputLabel.js.map +1 -0
- package/components/InputLabel/InputLabel.mjs +2 -0
- package/components/InputLabel/InputLabel.mjs.map +1 -0
- package/components/InputLabel/sizes.js +2 -0
- package/components/InputLabel/sizes.js.map +1 -0
- package/components/InputLabel/sizes.mjs +2 -0
- package/components/InputLabel/sizes.mjs.map +1 -0
- package/components/InputLabel/style.js +2 -0
- package/components/InputLabel/style.js.map +1 -0
- package/components/InputLabel/style.mjs +2 -0
- package/components/InputLabel/style.mjs.map +1 -0
- package/components/ProgressCircle/ProgressCircle.js +1 -1
- package/components/ProgressCircle/ProgressCircle.js.map +1 -1
- package/components/ProgressCircle/ProgressCircle.mjs +1 -1
- package/components/ProgressCircle/ProgressCircle.mjs.map +1 -1
- package/components/ProgressLine/style.js +1 -1
- package/components/ProgressLine/style.js.map +1 -1
- package/components/ProgressLine/style.mjs +1 -1
- package/components/ProgressLine/style.mjs.map +1 -1
- package/components/Textarea/Textarea.js +1 -1
- package/components/Textarea/Textarea.js.map +1 -1
- package/components/Textarea/Textarea.mjs +1 -1
- package/components/Textarea/Textarea.mjs.map +1 -1
- package/components/Textarea/sizes.js +2 -0
- package/components/Textarea/sizes.js.map +1 -0
- package/components/Textarea/sizes.mjs +2 -0
- package/components/Textarea/sizes.mjs.map +1 -0
- package/components/Textarea/style.js +1 -1
- package/components/Textarea/style.js.map +1 -1
- package/components/Textarea/style.mjs +1 -1
- package/components/Textarea/style.mjs.map +1 -1
- package/dts/index.d.ts +434 -285
- package/hooks/useClickOutside.js +1 -1
- package/hooks/useClickOutside.js.map +1 -1
- package/hooks/useClickOutside.mjs +1 -1
- package/hooks/useClickOutside.mjs.map +1 -1
- package/hooks/useResizeObserver.js +1 -1
- package/hooks/useResizeObserver.js.map +1 -1
- package/hooks/useResizeObserver.mjs +1 -1
- package/hooks/useResizeObserver.mjs.map +1 -1
- package/package.json +2 -2
- package/shared/utils/dom.js +1 -1
- package/shared/utils/dom.js.map +1 -1
- package/shared/utils/dom.mjs +1 -1
- package/shared/utils/dom.mjs.map +1 -1
- package/shared/utils/getDomTargets.js +2 -0
- package/shared/utils/getDomTargets.js.map +1 -0
- package/shared/utils/getDomTargets.mjs +2 -0
- package/shared/utils/getDomTargets.mjs.map +1 -0
- package/shared/utils/getProgressPercent.js +2 -0
- package/shared/utils/getProgressPercent.js.map +1 -0
- package/shared/utils/getProgressPercent.mjs +2 -0
- package/shared/utils/getProgressPercent.mjs.map +1 -0
- package/shared/utils/misc.js +1 -1
- package/shared/utils/misc.js.map +1 -1
- package/shared/utils/misc.mjs +1 -1
- package/shared/utils/misc.mjs.map +1 -1
- package/components/AccordionItem/hooks.js +0 -2
- package/components/AccordionItem/hooks.js.map +0 -1
- package/components/AccordionItem/hooks.mjs +0 -2
- package/components/AccordionItem/hooks.mjs.map +0 -1
- package/components/FormInputLabel/constants.js +0 -2
- package/components/FormInputLabel/constants.js.map +0 -1
- package/components/FormInputLabel/constants.mjs +0 -2
- package/components/FormInputLabel/constants.mjs.map +0 -1
- package/components/Input/constants.js +0 -2
- package/components/Input/constants.js.map +0 -1
- package/components/Input/constants.mjs +0 -2
- package/components/Input/constants.mjs.map +0 -1
- package/components/Textarea/constants.js +0 -2
- package/components/Textarea/constants.js.map +0 -1
- package/components/Textarea/constants.mjs +0 -2
- package/components/Textarea/constants.mjs.map +0 -1
|
@@ -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 { withMergedProps } from 'hocs/withMergedProps'\nimport type { MergedProps } from 'hocs/withMergedProps'\nimport { SIZES } from './
|
|
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 type { MergedProps } from 'hocs/withMergedProps'\nimport { SIZES, SIZES_CONTAINER } from './sizes'\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<HTMLDivElement, MergedProps<FormInputLabelProps>>((props, ref) => {\n const {\n size = 'm',\n iconProps = {},\n sizeXXS,\n sizeXS,\n sizeS,\n sizeM,\n sizeL,\n sizeXL,\n icon,\n input,\n text,\n controls,\n addon,\n dropdown,\n ...restProps\n } = props\n\n const sizeProps = {\n size,\n sizeXXS,\n sizeXS,\n sizeS,\n sizeM,\n sizeL,\n sizeXL,\n }\n\n const [before, after] = Array.isArray(icon) ? icon : [icon]\n\n return (\n <Styled.Root {...restProps} {...sizeProps} 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='var(--gap)'\n {...sizeProps}\n {...iconProps}\n />\n ) : null}\n <Styled.Container {...sizeProps} sizes={SIZES_CONTAINER} grow={1}>\n {input}\n </Styled.Container>\n {text ? (\n <Styled.Container\n {...sizeProps}\n sizes={SIZES_CONTAINER}\n marginLeft='var(--gap)'\n marginRight={!addon && !after && !controls ? 8 : undefined}\n >\n <Text size='inherit' color='inherit' lineHeight='inherit' whiteSpace='nowrap'>\n {text}\n </Text>\n </Styled.Container>\n ) : null}\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='var(--gap)'\n marginRight={!controls ? 4 : undefined}\n {...sizeProps}\n {...iconProps}\n />\n ) : null}\n {controls}\n {dropdown ? <Styled.Dropdown>{dropdown}</Styled.Dropdown> : null}\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","iconProps","sizeXXS","sizeXS","sizeS","sizeM","sizeL","sizeXL","icon","input","text","controls","addon","dropdown","restProps","sizeProps","before","after","Array","isArray","_jsxs","Styled","children","_jsx","jsx","Icon","preset","name","undefined","marginRight","sizes","SIZES_CONTAINER","grow","marginLeft","Text","color","lineHeight","whiteSpace","SIZES","displayName"],"mappings":"yRAWMA,MAAAA,eAAuEC,gBAAAA,gBAI3EC,MAAAA,YAA6D,CAACC,EAAOC,KACnE,MAAMC,KACJA,EAAO,IAAGC,UACVA,EAAY,CAAE,EAAAC,QACdA,EAAOC,OACPA,EAAMC,MACNA,EAAKC,MACLA,EAAKC,MACLA,EAAKC,OACLA,EAAMC,KACNA,EAAIC,MACJA,EAAKC,KACLA,EAAIC,SACJA,EAAQC,MACRA,EAAKC,SACLA,KACGC,GACDhB,EAEJ,MAAMiB,EAAY,CAChBf,OACAE,UACAC,SACAC,QACAC,QACAC,QACAC,UAGF,MAAOS,EAAQC,GAASC,MAAMC,QAAQX,GAAQA,EAAO,CAACA,GAEtD,OACEY,WAAAA,KAACC,MAAAA,KAAW,IAAKP,KAAeC,EAAWhB,IAAKA,EAAIuB,SACjDN,CAAAA,EACCO,WAAAC,IAACC,UAAI,CACHC,OAAO,QACPC,YAAaX,GAAW,SAAWA,OAASY,EAC5CpB,YAAaQ,GAAW,SAAWA,OAASY,EAC5CC,YAAY,gBACRd,KACAd,IAEJ,KACJsB,WAAAC,IAACH,gBAAgB,IAAKN,EAAWe,MAAOC,MAAgBA,gBAACC,KAAM,EAAEV,SAC9Db,IAEFC,EACCa,WAAAC,IAACH,gBAAgB,IACXN,EACJe,MAAOC,MAAgBA,gBACvBE,WAAW,aACXJ,YAAcjB,GAAUK,GAAUN,OAAeiB,EAAJ,EAAcN,SAE3DC,WAAAC,IAACU,UAAI,CAAClC,KAAK,UAAUmC,MAAM,UAAUC,WAAW,UAAUC,WAAW,SAAQf,SAC1EZ,MAGH,KACHE,EACAK,EACCM,WAAAA,IAACE,KAAAA,KAAI,CACHC,OAAO,QACPC,YAAaV,GAAU,SAAWA,OAAQW,EAC1CpB,YAAaS,GAAU,SAAWA,OAAQW,EAC1CK,WAAW,aACXJ,YAAclB,OAAeiB,EAAJ,KACrBb,KACAd,IAEJ,KACHU,EACAE,EAAWU,WAAAA,IAACF,MAAAA,SAAe,CAAAC,SAAET,IAA8B,OAChD,IAGlB,CACEiB,MAAOQ,MAAKA,MACZC,YAnFmB,0CAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{forwardRef}from'react';import{withMergedProps}from'../../hocs/withMergedProps.mjs';import{SIZES}from'./
|
|
1
|
+
import{forwardRef}from'react';import{withMergedProps}from'../../hocs/withMergedProps.mjs';import{SIZES,SIZES_CONTAINER}from'./sizes.mjs';import{Root,Container,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(((r,i)=>{const{size:e="m",iconProps:o={},sizeXXS:s,sizeXS:n,sizeS:t,sizeM:a,sizeL:m,sizeXL:p,icon:c,input:d,text:l,controls:g,addon:z,dropdown:f,...h}=r;const I={size:e,sizeXXS:s,sizeXS:n,sizeS:t,sizeM:a,sizeL:m,sizeXL:p};const[S,x]=Array.isArray(c)?c:[c];return jsxs(Root,{...h,...I,ref:i,children:[S?jsx(Icon,{preset:"brand",name:typeof S=='string'?S:void 0,icon:typeof S!='string'?S:void 0,marginRight:"var(--gap)",...I,...o}):null,jsx(Container,{...I,sizes:SIZES_CONTAINER,grow:1,children:d}),l?jsx(Container,{...I,sizes:SIZES_CONTAINER,marginLeft:"var(--gap)",marginRight:z||x||g?void 0:8,children:jsx(Text,{size:"inherit",color:"inherit",lineHeight:"inherit",whiteSpace:"nowrap",children:l})}):null,z,x?jsx(Icon,{preset:"brand",name:typeof x=='string'?x:void 0,icon:typeof x!='string'?x:void 0,marginLeft:"var(--gap)",marginRight:g?void 0:4,...I,...o}):null,g,f?jsx(Dropdown,{children:f}):null]})})),{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 { withMergedProps } from 'hocs/withMergedProps'\nimport type { MergedProps } from 'hocs/withMergedProps'\nimport { SIZES } from './
|
|
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 type { MergedProps } from 'hocs/withMergedProps'\nimport { SIZES, SIZES_CONTAINER } from './sizes'\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<HTMLDivElement, MergedProps<FormInputLabelProps>>((props, ref) => {\n const {\n size = 'm',\n iconProps = {},\n sizeXXS,\n sizeXS,\n sizeS,\n sizeM,\n sizeL,\n sizeXL,\n icon,\n input,\n text,\n controls,\n addon,\n dropdown,\n ...restProps\n } = props\n\n const sizeProps = {\n size,\n sizeXXS,\n sizeXS,\n sizeS,\n sizeM,\n sizeL,\n sizeXL,\n }\n\n const [before, after] = Array.isArray(icon) ? icon : [icon]\n\n return (\n <Styled.Root {...restProps} {...sizeProps} 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='var(--gap)'\n {...sizeProps}\n {...iconProps}\n />\n ) : null}\n <Styled.Container {...sizeProps} sizes={SIZES_CONTAINER} grow={1}>\n {input}\n </Styled.Container>\n {text ? (\n <Styled.Container\n {...sizeProps}\n sizes={SIZES_CONTAINER}\n marginLeft='var(--gap)'\n marginRight={!addon && !after && !controls ? 8 : undefined}\n >\n <Text size='inherit' color='inherit' lineHeight='inherit' whiteSpace='nowrap'>\n {text}\n </Text>\n </Styled.Container>\n ) : null}\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='var(--gap)'\n marginRight={!controls ? 4 : undefined}\n {...sizeProps}\n {...iconProps}\n />\n ) : null}\n {controls}\n {dropdown ? <Styled.Dropdown>{dropdown}</Styled.Dropdown> : null}\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","iconProps","sizeXXS","sizeXS","sizeS","sizeM","sizeL","sizeXL","icon","input","text","controls","addon","dropdown","restProps","sizeProps","before","after","Array","isArray","_jsxs","Styled","children","_jsx","Icon","preset","name","undefined","marginRight","sizes","SIZES_CONTAINER","grow","marginLeft","Text","color","lineHeight","whiteSpace","SIZES","displayName"],"mappings":"wSASMA,MAAAA,eAAiB,iBAEjBC,MAAAA,eAAuEC,gBAI3EC,YAA6D,CAACC,EAAOC,KACnE,MAAMC,KACJA,EAAO,IAAGC,UACVA,EAAY,CAAE,EAAAC,QACdA,EAAOC,OACPA,EAAMC,MACNA,EAAKC,MACLA,EAAKC,MACLA,EAAKC,OACLA,EAAMC,KACNA,EAAIC,MACJA,EAAKC,KACLA,EAAIC,SACJA,EAAQC,MACRA,EAAKC,SACLA,KACGC,GACDhB,EAEJ,MAAMiB,EAAY,CAChBf,OACAE,UACAC,SACAC,QACAC,QACAC,QACAC,UAGF,MAAOS,EAAQC,GAASC,MAAMC,QAAQX,GAAQA,EAAO,CAACA,GAEtD,OACEY,KAACC,KAAW,IAAKP,KAAeC,EAAWhB,IAAKA,EAAIuB,SACjDN,CAAAA,EACCO,IAACC,KAAI,CACHC,OAAO,QACPC,YAAaV,GAAW,SAAWA,OAASW,EAC5CnB,YAAaQ,GAAW,SAAWA,OAASW,EAC5CC,YAAY,gBACRb,KACAd,IAEJ,KACJsB,IAACF,UAAgB,IAAKN,EAAWc,MAAOC,gBAAiBC,KAAM,EAAET,SAC9Db,IAEFC,EACCa,IAACF,UAAgB,IACXN,EACJc,MAAOC,gBACPE,WAAW,aACXJ,YAAchB,GAAUK,GAAUN,OAAegB,EAAJ,EAAcL,SAE3DC,IAACU,KAAI,CAACjC,KAAK,UAAUkC,MAAM,UAAUC,WAAW,UAAUC,WAAW,SAAQd,SAC1EZ,MAGH,KACHE,EACAK,EACCM,IAACC,KAAI,CACHC,OAAO,QACPC,YAAaT,GAAU,SAAWA,OAAQU,EAC1CnB,YAAaS,GAAU,SAAWA,OAAQU,EAC1CK,WAAW,aACXJ,YAAcjB,OAAegB,EAAJ,KACrBZ,KACAd,IAEJ,KACHU,EACAE,EAAWU,IAACF,SAAe,CAAAC,SAAET,IAA8B,OAChD,IAGlB,CACEgB,MAAOQ,MACPC,YAnFmB"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
'use strict';exports.SIZES={l:{fontSize:18,paddingRight:8,paddingLeft:16,height:56,borderRadius:12,'--gap':'12px'},m:{fontSize:16,paddingRight:8,paddingLeft:16,height:48,borderRadius:10,'--gap':'12px'},s:{fontSize:14,paddingRight:6,paddingLeft:14,height:40,borderRadius:8,'--gap':'12px'},xs:{fontSize:14,paddingRight:4,paddingLeft:10,height:32,borderRadius:7,'--gap':'8px'}},exports.SIZES_CONTAINER={l:{paddingTop:14,paddingBottom:6},m:{paddingTop:11,paddingBottom:4},s:{paddingTop:9,paddingBottom:3},xs:{paddingTop:5,paddingBottom:0}};
|
|
2
|
+
//# sourceMappingURL=sizes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sizes.js","sources":["../../../../src/components/FormInputLabel/sizes.ts"],"sourcesContent":["import type { CSSProperties } from 'react'\nimport type { Size } from './types'\n\nexport const SIZES: Record<Size, CSSProperties> = {\n l: {\n fontSize: 18,\n paddingRight: 8,\n paddingLeft: 16,\n height: 56,\n borderRadius: 12,\n '--gap': '12px',\n },\n m: {\n fontSize: 16,\n paddingRight: 8,\n paddingLeft: 16,\n height: 48,\n borderRadius: 10,\n '--gap': '12px',\n },\n s: {\n fontSize: 14,\n paddingRight: 6,\n paddingLeft: 14,\n height: 40,\n borderRadius: 8,\n '--gap': '12px',\n },\n xs: {\n fontSize: 14,\n paddingRight: 4,\n paddingLeft: 10,\n height: 32,\n borderRadius: 7,\n '--gap': '8px',\n },\n}\n\nexport const SIZES_CONTAINER: Record<Size, CSSProperties> = {\n l: {\n paddingTop: 14,\n paddingBottom: 6,\n },\n m: {\n paddingTop: 11,\n paddingBottom: 4,\n },\n s: {\n paddingTop: 9,\n paddingBottom: 3,\n },\n xs: {\n paddingTop: 5,\n paddingBottom: 0,\n },\n}\n"],"names":["l","fontSize","paddingRight","paddingLeft","height","borderRadius","m","s","xs","paddingTop","paddingBottom"],"mappings":"2BAGkD,CAChDA,EAAG,CACDC,SAAU,GACVC,aAAc,EACdC,YAAa,GACbC,OAAQ,GACRC,aAAc,GACd,QAAS,QAEXC,EAAG,CACDL,SAAU,GACVC,aAAc,EACdC,YAAa,GACbC,OAAQ,GACRC,aAAc,GACd,QAAS,QAEXE,EAAG,CACDN,SAAU,GACVC,aAAc,EACdC,YAAa,GACbC,OAAQ,GACRC,aAAc,EACd,QAAS,QAEXG,GAAI,CACFP,SAAU,GACVC,aAAc,EACdC,YAAa,GACbC,OAAQ,GACRC,aAAc,EACd,QAAS,gCAI+C,CAC1DL,EAAG,CACDS,WAAY,GACZC,cAAe,GAEjBJ,EAAG,CACDG,WAAY,GACZC,cAAe,GAEjBH,EAAG,CACDE,WAAY,EACZC,cAAe,GAEjBF,GAAI,CACFC,WAAY,EACZC,cAAe"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const SIZES={l:{fontSize:18,paddingRight:8,paddingLeft:16,height:56,borderRadius:12,'--gap':'12px'},m:{fontSize:16,paddingRight:8,paddingLeft:16,height:48,borderRadius:10,'--gap':'12px'},s:{fontSize:14,paddingRight:6,paddingLeft:14,height:40,borderRadius:8,'--gap':'12px'},xs:{fontSize:14,paddingRight:4,paddingLeft:10,height:32,borderRadius:7,'--gap':'8px'}};const SIZES_CONTAINER={l:{paddingTop:14,paddingBottom:6},m:{paddingTop:11,paddingBottom:4},s:{paddingTop:9,paddingBottom:3},xs:{paddingTop:5,paddingBottom:0}};export{SIZES,SIZES_CONTAINER};
|
|
2
|
+
//# sourceMappingURL=sizes.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sizes.mjs","sources":["../../../../src/components/FormInputLabel/sizes.ts"],"sourcesContent":["import type { CSSProperties } from 'react'\nimport type { Size } from './types'\n\nexport const SIZES: Record<Size, CSSProperties> = {\n l: {\n fontSize: 18,\n paddingRight: 8,\n paddingLeft: 16,\n height: 56,\n borderRadius: 12,\n '--gap': '12px',\n },\n m: {\n fontSize: 16,\n paddingRight: 8,\n paddingLeft: 16,\n height: 48,\n borderRadius: 10,\n '--gap': '12px',\n },\n s: {\n fontSize: 14,\n paddingRight: 6,\n paddingLeft: 14,\n height: 40,\n borderRadius: 8,\n '--gap': '12px',\n },\n xs: {\n fontSize: 14,\n paddingRight: 4,\n paddingLeft: 10,\n height: 32,\n borderRadius: 7,\n '--gap': '8px',\n },\n}\n\nexport const SIZES_CONTAINER: Record<Size, CSSProperties> = {\n l: {\n paddingTop: 14,\n paddingBottom: 6,\n },\n m: {\n paddingTop: 11,\n paddingBottom: 4,\n },\n s: {\n paddingTop: 9,\n paddingBottom: 3,\n },\n xs: {\n paddingTop: 5,\n paddingBottom: 0,\n },\n}\n"],"names":["SIZES","l","fontSize","paddingRight","paddingLeft","height","borderRadius","m","s","xs","SIZES_CONTAINER","paddingTop","paddingBottom"],"mappings":"AAGO,MAAMA,MAAqC,CAChDC,EAAG,CACDC,SAAU,GACVC,aAAc,EACdC,YAAa,GACbC,OAAQ,GACRC,aAAc,GACd,QAAS,QAEXC,EAAG,CACDL,SAAU,GACVC,aAAc,EACdC,YAAa,GACbC,OAAQ,GACRC,aAAc,GACd,QAAS,QAEXE,EAAG,CACDN,SAAU,GACVC,aAAc,EACdC,YAAa,GACbC,OAAQ,GACRC,aAAc,EACd,QAAS,QAEXG,GAAI,CACFP,SAAU,GACVC,aAAc,EACdC,YAAa,GACbC,OAAQ,GACRC,aAAc,EACd,QAAS,QAIN,MAAMI,gBAA+C,CAC1DT,EAAG,CACDU,WAAY,GACZC,cAAe,GAEjBL,EAAG,CACDI,WAAY,GACZC,cAAe,GAEjBJ,EAAG,CACDG,WAAY,EACZC,cAAe,GAEjBH,GAAI,CACFE,WAAY,EACZC,cAAe"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';var styled=require('styled-components');var tinycolor=require('tinycolor2');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);var tinycolor__default=_interopDefault(tinycolor);const shouldForwardFormInputLabelProp=style.createShouldForwardProp((o=>!['primary','secondary','error','success','focus','disabled','onColored','inline','zIndex','overflow'].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-
|
|
1
|
+
'use strict';var styled=require('styled-components');var tinycolor=require('tinycolor2');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);var tinycolor__default=_interopDefault(tinycolor);const shouldForwardFormInputLabelProp=style.createShouldForwardProp((o=>!['primary','secondary','error','success','focus','disabled','onColored','inline','zIndex','overflow'].includes(o)));const shouldForwardContainerProp=style.createShouldForwardProp((o=>!['grow'].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-fading]::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:o.focus?o.theme.colors['bg-onmain-primary']:tinycolor__default.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:o.focus?o.theme.colors['bg-onmain-secondary']:tinycolor__default.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:o.focus?o.theme.colors['bg-onmain-primary']:tinycolor__default.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 overflow: ${o.overflow??'visible'};\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 &:hover [data-input-fading]::after {\n opacity: 0;\n }\n `}),(o=>o.focus?`\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 & [data-input-fading]::after {\n opacity: 0;\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 &:focus-within [data-input-fading]::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 Container=styled__default.default.div.withConfig({shouldForwardProp:shouldForwardContainerProp}).withConfig({displayName:"FormInputLabel__Container",componentId:"ui__sc-1il4atw-2"})([""," "," ",""],(o=>`\n display: flex;\n box-sizing: border-box;\n align-self: stretch;\n align-items: stretch;\n cursor: inherit;\n flex-grow: ${o.grow??0};\n `),responsiveSize.responsiveSize,responsiveMargin.responsiveMargin);exports.Container=Container,exports.Dropdown=Dropdown,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 { 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 ![\n 'primary',\n 'secondary',\n 'error',\n 'success',\n 'focus',\n 'disabled',\n 'onColored',\n 'inline',\n 'zIndex',\n 'overflow',\n ].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: props.focus\n ? props.theme.colors['bg-onmain-primary']\n : (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: props.focus\n ? props.theme.colors['bg-onmain-secondary']\n : (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: props.focus\n ? props.theme.colors['bg-onmain-primary']\n : (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 overflow: ${props.overflow ?? 'visible'};\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 &:hover [data-input-control]::after {\n opacity: 0;\n }\n `\n }}\n\n ${(props) =>\n props.focus\n ? `\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 & [data-input-control]::after {\n opacity: 0;\n }\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 &: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: 0;\n transform: translateY(0.7em);\n width: 100%;\n white-space: nowrap;\n overflow: hidden;\n line-height: 1;\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) => !['position', 'labelPosition', 'labelActive'].includes(propKey),\n})`\n ${(props) => `\n box-sizing: border-box;\n position: relative;\n display: flex;\n flex-grow: 1;\n align-self: ${props.position};\n cursor: inherit;\n min-height: 2.4em;\n `}\n\n ${(props) =>\n props.labelPosition === 'dynamic' &&\n `\n padding-top: 0.7em;\n\n & input, & textarea {\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.4%) translateY(0px);\n width: 130%;\n }`\n }\n `}\n\n ${(props) =>\n props.labelPosition === 'top' &&\n `\n padding-top: 0.7em;\n\n & > ${Label} {\n transition-delay: 0ms, ${labelTransitionMS}ms;\n transform: scale(0.7) translateX(-21.4%) translateY(0px);\n width: 130%;\n }\n `}\n\n ${(props) =>\n props.labelPosition === 'center' &&\n `\n & input, & textarea {\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","focus","tinycolor","darken","toString","secondary","primary","Dropdown","styled","div","withConfig","displayName","componentId","Root","shouldForwardProp","borderWidth","inline","zIndex","overflow","white","schema","onColored","responsiveSize","responsiveMargin","Label","span","InputContainer","position","labelPosition","labelActive"],"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, StyledContainerProps } from './types'\n\nconst shouldForwardFormInputLabelProp = createShouldForwardProp(\n (propKey) =>\n ![\n 'primary',\n 'secondary',\n 'error',\n 'success',\n 'focus',\n 'disabled',\n 'onColored',\n 'inline',\n 'zIndex',\n 'overflow',\n ].includes(propKey)\n)\n\nconst shouldForwardContainerProp = createShouldForwardProp((propKey) => !['grow'].includes(propKey))\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-fading]::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: props.focus\n ? props.theme.colors['bg-onmain-primary']\n : (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: props.focus\n ? props.theme.colors['bg-onmain-secondary']\n : (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: props.focus\n ? props.theme.colors['bg-onmain-primary']\n : (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 overflow: ${props.overflow ?? 'visible'};\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 &:hover [data-input-fading]::after {\n opacity: 0;\n }\n `\n }}\n\n ${(props) =>\n props.focus\n ? `\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 & [data-input-fading]::after {\n opacity: 0;\n }\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 &:focus-within [data-input-fading]::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 Container = styled.div.withConfig<StyledContainerProps>({\n shouldForwardProp: shouldForwardContainerProp,\n})`\n ${(props) => `\n display: flex;\n box-sizing: border-box;\n align-self: stretch;\n align-items: stretch;\n cursor: inherit;\n flex-grow: ${props.grow ?? 0};\n `}\n\n ${responsiveSize}\n ${responsiveMargin}\n`\n"],"names":["shouldForwardFormInputLabelProp","createShouldForwardProp","propKey","includes","shouldForwardContainerProp","template","palette","color","backgroundColor","borderColor","backgroundColorHover","COLOR_SCHEMA","contrast","disabled","css","props","theme","colors","transparent","error","success","default","focus","tinycolor","darken","toString","secondary","primary","Dropdown","styled","div","withConfig","displayName","componentId","Root","shouldForwardProp","borderWidth","inline","zIndex","overflow","white","schema","onColored","responsiveSize","responsiveMargin","Container","grow"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import styled,{css}from'styled-components';import tinycolor from'tinycolor2';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','focus','disabled','onColored','inline','zIndex','overflow'].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-
|
|
1
|
+
import styled,{css}from'styled-components';import tinycolor from'tinycolor2';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','focus','disabled','onColored','inline','zIndex','overflow'].includes(o)));const shouldForwardContainerProp=createShouldForwardProp((o=>!['grow'].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-fading]::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:o.focus?o.theme.colors['bg-onmain-primary']: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:o.focus?o.theme.colors['bg-onmain-secondary']: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:o.focus?o.theme.colors['bg-onmain-primary']: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 r='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: ${r} solid transparent;\n z-index: ${o.zIndex??'auto'};\n overflow: ${o.overflow??'visible'};\n transition-property: background-color;\n transition-duration: 150ms;\n transition-timing-function: ease-in;\n\n & > ${Dropdown} {\n right: -${r};\n left: -${r};\n }\n\n &:hover [data-input-fading]::after {\n opacity: 0;\n }\n `}),(o=>o.focus?`\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 & [data-input-fading]::after {\n opacity: 0;\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 &:focus-within [data-input-fading]::after {\n opacity: 0;\n }\n `),(o=>{let r=COLOR_SCHEMA.primary;return o.secondary&&(r=COLOR_SCHEMA.secondary),(o.contrast||o.onColored)&&(r=COLOR_SCHEMA.contrast),o.disabled?r.disabled:o.error?r.error:o.success?r.success:r.default}),responsiveSize,responsiveMargin);const Container=styled.div.withConfig({shouldForwardProp:shouldForwardContainerProp}).withConfig({displayName:"FormInputLabel__Container",componentId:"ui__sc-1il4atw-2"})([""," "," ",""],(o=>`\n display: flex;\n box-sizing: border-box;\n align-self: stretch;\n align-items: stretch;\n cursor: inherit;\n flex-grow: ${o.grow??0};\n `),responsiveSize,responsiveMargin);export{Container,Dropdown,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 { 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 ![\n 'primary',\n 'secondary',\n 'error',\n 'success',\n 'focus',\n 'disabled',\n 'onColored',\n 'inline',\n 'zIndex',\n 'overflow',\n ].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: props.focus\n ? props.theme.colors['bg-onmain-primary']\n : (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: props.focus\n ? props.theme.colors['bg-onmain-secondary']\n : (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: props.focus\n ? props.theme.colors['bg-onmain-primary']\n : (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 overflow: ${props.overflow ?? 'visible'};\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 &:hover [data-input-control]::after {\n opacity: 0;\n }\n `\n }}\n\n ${(props) =>\n props.focus\n ? `\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 & [data-input-control]::after {\n opacity: 0;\n }\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 &: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: 0;\n transform: translateY(0.7em);\n width: 100%;\n white-space: nowrap;\n overflow: hidden;\n line-height: 1;\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) => !['position', 'labelPosition', 'labelActive'].includes(propKey),\n})`\n ${(props) => `\n box-sizing: border-box;\n position: relative;\n display: flex;\n flex-grow: 1;\n align-self: ${props.position};\n cursor: inherit;\n min-height: 2.4em;\n `}\n\n ${(props) =>\n props.labelPosition === 'dynamic' &&\n `\n padding-top: 0.7em;\n\n & input, & textarea {\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.4%) translateY(0px);\n width: 130%;\n }`\n }\n `}\n\n ${(props) =>\n props.labelPosition === 'top' &&\n `\n padding-top: 0.7em;\n\n & > ${Label} {\n transition-delay: 0ms, ${labelTransitionMS}ms;\n transform: scale(0.7) translateX(-21.4%) translateY(0px);\n width: 130%;\n }\n `}\n\n ${(props) =>\n props.labelPosition === 'center' &&\n `\n & input, & textarea {\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","focus","tinycolor","darken","toString","secondary","primary","Dropdown","styled","div","withConfig","displayName","componentId","Root","shouldForwardProp","borderWidth","inline","zIndex","overflow","white","schema","onColored","responsiveSize","responsiveMargin","Label","span","InputContainer","position","labelPosition","labelActive"],"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, StyledContainerProps } from './types'\n\nconst shouldForwardFormInputLabelProp = createShouldForwardProp(\n (propKey) =>\n ![\n 'primary',\n 'secondary',\n 'error',\n 'success',\n 'focus',\n 'disabled',\n 'onColored',\n 'inline',\n 'zIndex',\n 'overflow',\n ].includes(propKey)\n)\n\nconst shouldForwardContainerProp = createShouldForwardProp((propKey) => !['grow'].includes(propKey))\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-fading]::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: props.focus\n ? props.theme.colors['bg-onmain-primary']\n : (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: props.focus\n ? props.theme.colors['bg-onmain-secondary']\n : (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: props.focus\n ? props.theme.colors['bg-onmain-primary']\n : (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 overflow: ${props.overflow ?? 'visible'};\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 &:hover [data-input-fading]::after {\n opacity: 0;\n }\n `\n }}\n\n ${(props) =>\n props.focus\n ? `\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 & [data-input-fading]::after {\n opacity: 0;\n }\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 &:focus-within [data-input-fading]::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 Container = styled.div.withConfig<StyledContainerProps>({\n shouldForwardProp: shouldForwardContainerProp,\n})`\n ${(props) => `\n display: flex;\n box-sizing: border-box;\n align-self: stretch;\n align-items: stretch;\n cursor: inherit;\n flex-grow: ${props.grow ?? 0};\n `}\n\n ${responsiveSize}\n ${responsiveMargin}\n`\n"],"names":["shouldForwardFormInputLabelProp","createShouldForwardProp","propKey","includes","shouldForwardContainerProp","template","palette","color","backgroundColor","borderColor","backgroundColorHover","COLOR_SCHEMA","contrast","disabled","css","props","theme","colors","transparent","error","success","default","focus","tinycolor","darken","toString","secondary","primary","Dropdown","styled","div","withConfig","displayName","componentId","Root","shouldForwardProp","borderWidth","inline","zIndex","overflow","white","schema","onColored","responsiveSize","responsiveMargin","Container","grow"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';var React=require('react');var styled=require('styled-components');var nanoid=require('nanoid');var withMergedProps=require('../../hocs/withMergedProps.js');var
|
|
1
|
+
'use strict';var React=require('react');var styled=require('styled-components');var nanoid=require('nanoid');var withMergedProps=require('../../hocs/withMergedProps.js');var sizes$1=require('./sizes.js');var style=require('./style.js');var jsxRuntime=require('react/jsx-runtime');var Input_Phone=require('../Input.Phone/Input.Phone.js');var sizes=require('../FormInputLabel/sizes.js');var FormInputLabel=require('../FormInputLabel/FormInputLabel.js');var FormInput=require('../FormInput/FormInput.js');var IconButton=require('../IconButton/IconButton.js');const Input=Object.assign(withMergedProps.withMergedProps(React.forwardRef(((e,r)=>{const t=styled.useTheme();const{size:o="m",rounded:n=!0,primary:a=!0,color:i="mineShaft",placeholderColor:s="silver",width:l=t.defaultInputControlsWidth,type:c="text",labelPosition:u="dynamic",iconProps:m={},controls:g={},addonButtonProps:d={},preset:p,className:b,style:f,sizeXXS:h,sizeXS:S,sizeS:X,sizeM:v,sizeL:L,sizeXL:C,sizeUnits:R,sizes:y,margin:I,marginXXS:z,marginXS:x,marginS:B,marginM:k,marginL:j,marginXL:T,marginTop:w,marginTopXXS:M,marginTopXS:P,marginTopS:F,marginTopM:D,marginTopL:E,marginTopXL:O,marginRight:q,marginRightXXS:N,marginRightXS:A,marginRightS:H,marginRightM:_,marginRightL:Z,marginRightXL:$,marginBottom:U,marginBottomXXS:V,marginBottomXS:W,marginBottomS:G,marginBottomM:J,marginBottomL:K,marginBottomXL:Q,marginLeft:Y,marginLeftXXS:ee,marginLeftXS:re,marginLeftS:te,marginLeftM:oe,marginLeftL:ne,marginLeftXL:ae,palette:ie,widthXXS:se,widthXS:le,widthS:ce,widthM:ue,widthL:me,widthXL:ge,error:de,success:pe,label:be,icon:fe,text:he,secondary:Se,contrast:Xe,onColored:ve,fluid:Le,disabled:Ce,inline:Re,inputRef:ye,...Ie}=e;const ze={size:o,sizeXXS:h,sizeXS:S,sizeS:X,sizeM:v,sizeL:L,sizeXL:C};const{icon:xe,buttonProps:Be={}}=g.additional??{};const[ke,je=(Be.onClick?void 0:xe)]=Array.isArray(fe)?fe:[fe];const Te=d.icon??xe;const we=Boolean(Ie.mask&&Ie.alwaysShowMask);const Me={color:ie.controlsColor,colorHover:ie.controlsColorHover,colorActive:ie.controlsColorActive,colorDisabled:ie.controlsColorDisabled,backgroundColor:ie.controlsBackgroundColor,backgroundColorHover:ie.controlsBackgroundColorHover,backgroundColorActive:ie.controlsBackgroundColorActive,backgroundColorDisabled:ie.controlsBackgroundColorDisabled};const Pe=React.useRef(null);React.useImperativeHandle(r,(()=>Pe.current),[]);const Fe=React.useRef(null);const De=React.useRef(null);const Ee=React.useRef(null);const Oe=React.useMemo((()=>nanoid.nanoid()),[]);const[qe,Ne]=React.useState((()=>{if(we)return!0;const e=Ie.value??Ie.defaultValue;return typeof e=='string'&&e.length>0||typeof e=='number'}));const[Ae,He]=React.useState((()=>{if(c!=='number'||Ie.min===void 0)return!1;const{value:e=1/0,defaultValue:r=1/0}=Ie;const t=typeof e=='number'?e:parseFloat(e);const o=typeof r=='number'?r:parseFloat(r);const n=typeof Ie.min=='number'?Ie.min:parseFloat(Ie.min);return Math.min(t,o)<=n}));const[_e,Ze]=React.useState((()=>{if(c!=='number'||Ie.max===void 0)return!1;const{value:e=-1/0,defaultValue:r=-1/0}=Ie;const t=typeof e=='number'?e:parseFloat(e);const o=typeof r=='number'?r:parseFloat(r);const n=typeof Ie.max=='number'?Ie.max:parseFloat(Ie.max);return Math.max(t,o)>=n}));return React.useLayoutEffect((()=>{we?Ne(!0):Ie.value!==void 0&&Ie.value!==null&&Pe.current&&Pe.current!==document.activeElement&&Ne(typeof Ie.value=='string'&&Ie.value.length>0||typeof Ie.value=='number')}),[we,Ie.value]),p!=='brand'?jsxRuntime.jsx(style.Root,{...Ie,inputRef:ye??(e=>{Pe.current=e}),className:b,style:f,size:typeof o=='number'?o:void 0,rounded:n,color:i,placeholderColor:s,width:l,widthXXS:se,widthXS:le,widthS:ce,widthM:ue,widthL:me,widthXL:ge,error:de,type:c,fluid:Le,disabled:Ce}):jsxRuntime.jsx(FormInputLabel.FormInputLabel,{...ze,className:b,style:f,sizeUnits:R,sizes:y,margin:I,marginXXS:z,marginXS:x,marginS:B,marginM:k,marginL:j,marginXL:T,marginTop:w,marginTopXXS:M,marginTopXS:P,marginTopS:F,marginTopM:D,marginTopL:E,marginTopXL:O,marginRight:q,marginRightXXS:N,marginRightXS:A,marginRightS:H,marginRightM:_,marginRightL:Z,marginRightXL:$,marginBottom:U,marginBottomXXS:V,marginBottomXS:W,marginBottomS:G,marginBottomM:J,marginBottomL:K,marginBottomXL:Q,marginLeft:Y,marginLeftXXS:ee,marginLeftXS:re,marginLeftS:te,marginLeftM:oe,marginLeftL:ne,marginLeftXL:ae,error:de,success:pe,icon:[ke,je],text:he,primary:a,secondary:Se,contrast:Xe,onColored:ve,disabled:Ce,inline:Re,palette:{color:Ce?ie.colorDisabled:ie.color,backgroundColor:Ce?ie.backgroundColorDisabled:ie.backgroundColor,backgroundColorHover:Ce?ie.backgroundColorDisabled:ie.backgroundColorHover,borderColor:Ce?ie.borderColorDisabled:ie.borderColor},iconProps:{color:Ce?'content-disabled':'content-onmain-tertiary',sizes:sizes$1.SIZES_ICON,...ze,...m},onClick:()=>{Pe.current&&Pe.current.focus()},onFocus:e=>{e.target!==e.currentTarget&&Ne(!0)},onPointerDown:e=>{e.target!==Pe.current&&e.target instanceof Node&&!Fe.current?.contains(e.target)&&!De.current?.contains(e.target)&&!Ee.current?.contains(e.target)&&e.preventDefault()},onBlur:e=>{we||!Pe.current||e.currentTarget.contains(e.relatedTarget)||Ne(Boolean(Pe.current.value))},input:jsxRuntime.jsx(FormInput.FormInput,{...ze,...Ie,ref:Pe,type:c,disabled:Ce,active:qe,label:be,labelId:Oe,labelPosition:u,palette:{color:ie.inputColor,placeholderColor:ie.inputPlaceholderColor,colorDisabled:ie.inputColorDisabled,placeholderColorDisabled:ie.inputPlaceholderColorDisabled},onChange:e=>{if(Ie.onChange&&Ie.onChange(e),c==='number'){const r=parseFloat(e.currentTarget.value);const t=r<=parseFloat(e.currentTarget.min);const o=r>=parseFloat(e.currentTarget.max);He(t),Ze(o),(t||o)&&e.currentTarget.focus()}}}),addon:(d.onClick||Be.onClick)&&Te?jsxRuntime.jsx(IconButton.IconButton,{ref:Fe,sizes:sizes$1.SIZES_CONTROL,palette:Me,...ze,...Be,...d,icon:Te,disabled:Ce||d.disabled||Be.disabled,marginLeft:"var(--gap, 12px)",onClick:e=>{e.stopPropagation(),Ie.readOnly||(d.onClick&&d.onClick(e),Be.onClick&&Be.onClick(e))}}):void 0,controls:c==='number'?jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx(IconButton.IconButton,{...ze,ref:De,icon:"minus",sizes:sizes$1.SIZES_CONTROL,palette:Me,disabled:Ce||Ae,marginLeft:"var(--gap, 12px)",onClick:e=>{if(e.stopPropagation(),!Ie.readOnly)try{if(Pe.current){Ne(!0);const e=Pe.current.value;if(Pe.current.stepDown(),e!==Pe.current.value){const e=new Event('input',{bubbles:!0});Pe.current.dispatchEvent(e)}}}catch(e){console.error(e)}}}),jsxRuntime.jsx(style.IconButtonSeparated,{...ze,ref:Ee,icon:"plus",sizes:sizes$1.SIZES_CONTROL,palette:Me,disabled:Ce||_e,onClick:e=>{if(e.stopPropagation(),!Ie.readOnly)try{if(Pe.current){Ne(!0);const e=Pe.current.value;if(Pe.current.stepUp(),e!==Pe.current.value){const e=new Event('input',{bubbles:!0});Pe.current.dispatchEvent(e)}}}catch(e){console.error(e)}}})]}):void 0})})),{sizes:sizes.SIZES,displayName:"Input"}),{Phone:Input_Phone.InputPhone});exports.COMPONENT_NAME="Input",exports.Input=Input;
|
|
2
2
|
//# sourceMappingURL=Input.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Input.js","sources":["../../../../src/components/Input/Input.tsx"],"sourcesContent":["import { forwardRef, useState, useImperativeHandle, useRef, useLayoutEffect, useMemo } from 'react'\nimport { useTheme } from 'styled-components'\nimport { nanoid } from 'nanoid'\nimport { withMergedProps } from 'hocs/withMergedProps'\nimport type { MergedProps } from 'hocs/withMergedProps'\nimport { FormInputLabel, SIZES } from 'components/FormInputLabel'\nimport { FormInput } from 'components/FormInput'\nimport { InputPhone } from 'components/Input.Phone'\nimport { IconButton } from 'components/IconButton'\nimport { SIZES_ICON, SIZES_CONTROL } from './constants'\nimport * as Styled from './style'\nimport type { InputProps } from './types'\n\nconst COMPONENT_NAME = 'Input'\n\n/**\n *\n * Компонент поддерживает все атрибуты \\<input\\> элемента.\n *\n * Поддерживаются пропсы определения размеров и внешних отступов в зависимости от ширины вьюпорта.\n *\n * Можно передать \"ref\", который будет ассоциирован с \\<input\\>.\n *\n * Полный интерфейс можно посмотреть [тут](https://github.com/foxford/ui/blob/master/packages/ui/src/components/Input/types.ts).\n */\nconst Input: React.ForwardRefExoticComponent<InputProps> & { Phone: typeof InputPhone } = Object.assign(\n withMergedProps<InputProps, HTMLInputElement>(\n forwardRef<HTMLInputElement, MergedProps<InputProps>>((props, forwardedRef) => {\n const theme = useTheme()\n\n const {\n size = 'm',\n rounded = true,\n primary = true,\n color = 'mineShaft',\n placeholderColor = 'silver',\n width = theme.defaultInputControlsWidth,\n type = 'text',\n labelPosition = 'dynamic',\n iconProps = {},\n controls = {},\n addonButtonProps = {},\n preset,\n className,\n style,\n sizeXXS,\n sizeXS,\n sizeS,\n sizeM,\n sizeL,\n sizeXL,\n sizeUnits,\n sizes,\n margin,\n marginXXS,\n marginXS,\n marginS,\n marginM,\n marginL,\n marginXL,\n marginTop,\n marginTopXXS,\n marginTopXS,\n marginTopS,\n marginTopM,\n marginTopL,\n marginTopXL,\n marginRight,\n marginRightXXS,\n marginRightXS,\n marginRightS,\n marginRightM,\n marginRightL,\n marginRightXL,\n marginBottom,\n marginBottomXXS,\n marginBottomXS,\n marginBottomS,\n marginBottomM,\n marginBottomL,\n marginBottomXL,\n marginLeft,\n marginLeftXXS,\n marginLeftXS,\n marginLeftS,\n marginLeftM,\n marginLeftL,\n marginLeftXL,\n palette,\n widthXXS,\n widthXS,\n widthS,\n widthM,\n widthL,\n widthXL,\n error,\n success,\n label,\n icon,\n text,\n secondary,\n contrast,\n onColored,\n fluid,\n disabled,\n inline,\n inputRef,\n ...inputProps\n } = props\n\n const sizeProps = {\n size,\n sizeXXS,\n sizeXS,\n sizeS,\n sizeM,\n sizeL,\n sizeXL,\n }\n\n const { icon: additionalControlIcon, buttonProps: additionalControlButtonProps = {} } = controls.additional ?? {}\n\n const [iconBefore, iconAfter = !additionalControlButtonProps.onClick ? additionalControlIcon : undefined] =\n Array.isArray(icon) ? icon : [icon]\n\n const addonControlIcon = addonButtonProps.icon ?? additionalControlIcon\n\n const inputAlwaysActive = Boolean(inputProps.mask && inputProps.alwaysShowMask)\n\n const controlPalette = {\n color: palette.controlsColor,\n colorHover: palette.controlsColorHover,\n colorActive: palette.controlsColorActive,\n colorDisabled: palette.controlsColorDisabled,\n backgroundColor: palette.controlsBackgroundColor,\n backgroundColorHover: palette.controlsBackgroundColorHover,\n backgroundColorActive: palette.controlsBackgroundColorActive,\n backgroundColorDisabled: palette.controlsBackgroundColorDisabled,\n }\n\n const ref = useRef<HTMLInputElement | null>(null)\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(forwardedRef, () => ref.current, [])\n\n const addonRef = useRef<HTMLButtonElement | null>(null)\n const minusRef = useRef<HTMLButtonElement | null>(null)\n const plusRef = useRef<HTMLButtonElement | null>(null)\n\n const inputLabelId = useMemo(() => nanoid(), [])\n\n const [inputActive, setInputActive] = useState(() => {\n if (inputAlwaysActive) return true\n\n const initValue = inputProps.value ?? inputProps.defaultValue\n\n return (typeof initValue === 'string' && initValue.length > 0) || typeof initValue === 'number'\n })\n\n const [minusDisabled, setMinusDisabled] = useState(() => {\n if (type !== 'number' || inputProps.min === undefined) return false\n\n const { value = Infinity, defaultValue = Infinity } = inputProps\n\n const initValue = typeof value === 'number' ? value : parseFloat(value)\n const initDefaultValue = typeof defaultValue === 'number' ? defaultValue : parseFloat(defaultValue)\n const minValue = typeof inputProps.min === 'number' ? inputProps.min : parseFloat(inputProps.min)\n\n return Math.min(initValue, initDefaultValue) <= minValue\n })\n\n const [plusDisabled, setPlusDisabled] = useState(() => {\n if (type !== 'number' || inputProps.max === undefined) return false\n\n const { value = -Infinity, defaultValue = -Infinity } = inputProps\n\n const initValue = typeof value === 'number' ? value : parseFloat(value)\n const initDefaultValue = typeof defaultValue === 'number' ? defaultValue : parseFloat(defaultValue)\n const maxValue = typeof inputProps.max === 'number' ? inputProps.max : parseFloat(inputProps.max)\n\n return Math.max(initValue, initDefaultValue) >= maxValue\n })\n\n useLayoutEffect(() => {\n if (inputAlwaysActive) {\n setInputActive(true)\n } else if (\n inputProps.value !== undefined &&\n inputProps.value !== null &&\n ref.current &&\n ref.current !== document.activeElement\n ) {\n setInputActive(\n (typeof inputProps.value === 'string' && inputProps.value.length > 0) ||\n typeof inputProps.value === 'number'\n )\n }\n }, [inputAlwaysActive, inputProps.value])\n\n if (preset !== 'brand') {\n return (\n <Styled.Root\n {...inputProps}\n inputRef={\n inputRef ??\n ((input) => {\n ref.current = input\n })\n }\n className={className}\n style={style}\n size={typeof size === 'number' ? size : undefined}\n rounded={rounded}\n color={color}\n placeholderColor={placeholderColor}\n width={width}\n widthXXS={widthXXS}\n widthXS={widthXS}\n widthS={widthS}\n widthM={widthM}\n widthL={widthL}\n widthXL={widthXL}\n error={error}\n type={type}\n fluid={fluid}\n disabled={disabled}\n />\n )\n }\n\n return (\n <FormInputLabel\n {...sizeProps}\n className={className}\n style={style}\n sizeUnits={sizeUnits}\n sizes={sizes}\n margin={margin}\n marginXXS={marginXXS}\n marginXS={marginXS}\n marginS={marginS}\n marginM={marginM}\n marginL={marginL}\n marginXL={marginXL}\n marginTop={marginTop}\n marginTopXXS={marginTopXXS}\n marginTopXS={marginTopXS}\n marginTopS={marginTopS}\n marginTopM={marginTopM}\n marginTopL={marginTopL}\n marginTopXL={marginTopXL}\n marginRight={marginRight}\n marginRightXXS={marginRightXXS}\n marginRightXS={marginRightXS}\n marginRightS={marginRightS}\n marginRightM={marginRightM}\n marginRightL={marginRightL}\n marginRightXL={marginRightXL}\n marginBottom={marginBottom}\n marginBottomXXS={marginBottomXXS}\n marginBottomXS={marginBottomXS}\n marginBottomS={marginBottomS}\n marginBottomM={marginBottomM}\n marginBottomL={marginBottomL}\n marginBottomXL={marginBottomXL}\n marginLeft={marginLeft}\n marginLeftXXS={marginLeftXXS}\n marginLeftXS={marginLeftXS}\n marginLeftS={marginLeftS}\n marginLeftM={marginLeftM}\n marginLeftL={marginLeftL}\n marginLeftXL={marginLeftXL}\n error={error}\n success={success}\n label={label}\n labelId={inputLabelId}\n labelPosition={labelPosition}\n icon={[iconBefore, iconAfter]}\n text={text}\n primary={primary}\n secondary={secondary}\n contrast={contrast}\n onColored={onColored}\n disabled={disabled}\n inline={inline}\n active={inputActive}\n palette={{\n color: disabled ? palette.colorDisabled : palette.color,\n backgroundColor: disabled ? palette.backgroundColorDisabled : palette.backgroundColor,\n backgroundColorHover: disabled ? palette.backgroundColorDisabled : palette.backgroundColorHover,\n borderColor: disabled ? palette.borderColorDisabled : palette.borderColor,\n }}\n iconProps={{\n color: disabled ? 'content-disabled' : 'content-onmain-tertiary',\n sizes: SIZES_ICON,\n ...sizeProps,\n ...iconProps,\n }}\n onClick={() => {\n if (ref.current) {\n ref.current.focus()\n }\n }}\n onFocus={(evt) => {\n if (evt.target !== evt.currentTarget) {\n setInputActive(true)\n }\n }}\n onPointerDown={(evt) => {\n if (\n evt.target === ref.current ||\n !(evt.target instanceof Node) ||\n addonRef.current?.contains(evt.target) ||\n minusRef.current?.contains(evt.target) ||\n plusRef.current?.contains(evt.target)\n ) {\n return\n }\n evt.preventDefault()\n }}\n onBlur={(evt) => {\n if (!inputAlwaysActive && ref.current && !evt.currentTarget.contains(evt.relatedTarget)) {\n setInputActive(Boolean(ref.current.value))\n }\n }}\n input={\n <FormInput\n {...inputProps}\n aria-labelledby={label ? inputLabelId : undefined}\n ref={ref}\n type={type}\n disabled={disabled}\n palette={{\n color: palette.inputColor,\n placeholderColor: palette.inputPlaceholderColor,\n colorDisabled: palette.inputColorDisabled,\n placeholderColorDisabled: palette.inputPlaceholderColorDisabled,\n }}\n onChange={(evt) => {\n if (inputProps.onChange) {\n inputProps.onChange(evt)\n }\n\n if (type === 'number') {\n const currentValue = parseFloat(evt.currentTarget.value)\n\n const minValueReached = currentValue <= parseFloat(evt.currentTarget.min)\n const maxValueReached = currentValue >= parseFloat(evt.currentTarget.max)\n\n setMinusDisabled(minValueReached)\n setPlusDisabled(maxValueReached)\n\n if (minValueReached || maxValueReached) {\n evt.currentTarget.focus()\n }\n }\n }}\n />\n }\n addon={\n (addonButtonProps.onClick || additionalControlButtonProps.onClick) && addonControlIcon ? (\n <IconButton\n ref={addonRef}\n sizes={SIZES_CONTROL}\n palette={controlPalette}\n {...sizeProps}\n {...additionalControlButtonProps}\n {...addonButtonProps}\n icon={addonControlIcon}\n disabled={disabled || addonButtonProps.disabled || additionalControlButtonProps.disabled}\n marginLeft={12}\n onClick={(evt) => {\n evt.stopPropagation()\n if (inputProps.readOnly) return\n\n if (addonButtonProps.onClick) addonButtonProps.onClick(evt)\n if (additionalControlButtonProps.onClick) additionalControlButtonProps.onClick(evt)\n }}\n />\n ) : undefined\n }\n controls={\n type === 'number' ? (\n <>\n <IconButton\n {...sizeProps}\n ref={minusRef}\n icon='minus'\n sizes={SIZES_CONTROL}\n palette={controlPalette}\n disabled={disabled || minusDisabled}\n marginLeft={12}\n onClick={(evt) => {\n evt.stopPropagation()\n if (inputProps.readOnly) return\n\n try {\n if (ref.current) {\n setInputActive(true)\n\n const prev = ref.current.value\n ref.current.stepDown()\n\n const decremented = ref.current.value\n if (prev !== decremented) {\n const event = new Event('input', { bubbles: true })\n ref.current.dispatchEvent(event)\n }\n }\n } catch (err) {\n console.error(err)\n }\n }}\n />\n <Styled.IconButtonSeparated\n {...sizeProps}\n ref={plusRef}\n icon='plus'\n sizes={SIZES_CONTROL}\n palette={controlPalette}\n disabled={disabled || plusDisabled}\n onClick={(evt) => {\n evt.stopPropagation()\n if (inputProps.readOnly) return\n\n try {\n if (ref.current) {\n setInputActive(true)\n\n const prev = ref.current.value\n ref.current.stepUp()\n\n const incremented = ref.current.value\n if (prev !== incremented) {\n const event = new Event('input', { bubbles: true })\n ref.current.dispatchEvent(event)\n }\n }\n } catch (err) {\n console.error(err)\n }\n }}\n />\n </>\n ) : undefined\n }\n />\n )\n }),\n {\n sizes: SIZES,\n displayName: COMPONENT_NAME,\n }\n ),\n {\n Phone: InputPhone,\n }\n)\n\nexport { Input, COMPONENT_NAME }\n"],"names":["Input","Object","assign","withMergedProps","forwardRef","props","forwardedRef","theme","useTheme","size","rounded","primary","color","placeholderColor","width","defaultInputControlsWidth","type","labelPosition","iconProps","controls","addonButtonProps","preset","className","style","sizeXXS","sizeXS","sizeS","sizeM","sizeL","sizeXL","sizeUnits","sizes","margin","marginXXS","marginXS","marginS","marginM","marginL","marginXL","marginTop","marginTopXXS","marginTopXS","marginTopS","marginTopM","marginTopL","marginTopXL","marginRight","marginRightXXS","marginRightXS","marginRightS","marginRightM","marginRightL","marginRightXL","marginBottom","marginBottomXXS","marginBottomXS","marginBottomS","marginBottomM","marginBottomL","marginBottomXL","marginLeft","marginLeftXXS","marginLeftXS","marginLeftS","marginLeftM","marginLeftL","marginLeftXL","palette","widthXXS","widthXS","widthS","widthM","widthL","widthXL","error","success","label","icon","text","secondary","contrast","onColored","fluid","disabled","inline","inputRef","inputProps","sizeProps","additionalControlIcon","buttonProps","additionalControlButtonProps","additional","iconBefore","iconAfter","onClick","undefined","Array","isArray","addonControlIcon","inputAlwaysActive","Boolean","mask","alwaysShowMask","controlPalette","controlsColor","colorHover","controlsColorHover","colorActive","controlsColorActive","colorDisabled","controlsColorDisabled","backgroundColor","controlsBackgroundColor","backgroundColorHover","controlsBackgroundColorHover","backgroundColorActive","controlsBackgroundColorActive","backgroundColorDisabled","controlsBackgroundColorDisabled","ref","useRef","useImperativeHandle","current","addonRef","minusRef","plusRef","inputLabelId","useMemo","nanoid","inputActive","setInputActive","useState","initValue","value","defaultValue","length","minusDisabled","setMinusDisabled","min","Infinity","parseFloat","initDefaultValue","minValue","Math","plusDisabled","setPlusDisabled","max","maxValue","useLayoutEffect","document","activeElement","_jsx","Styled","input","FormInputLabel","labelId","active","borderColor","borderColorDisabled","SIZES_ICON","focus","onFocus","evt","target","currentTarget","onPointerDown","Node","contains","preventDefault","onBlur","relatedTarget","jsx","FormInput","inputColor","inputPlaceholderColor","inputColorDisabled","placeholderColorDisabled","inputPlaceholderColorDisabled","onChange","currentValue","minValueReached","maxValueReached","addon","IconButton","SIZES_CONTROL","stopPropagation","readOnly","_jsxs","_Fragment","children","prev","stepDown","event","Event","bubbles","dispatchEvent","err","console","stepUp","SIZES","displayName","Phone","InputPhone"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Input.js","sources":["../../../../src/components/Input/Input.tsx"],"sourcesContent":["import { forwardRef, useState, useImperativeHandle, useRef, useLayoutEffect, useMemo } from 'react'\nimport { useTheme } from 'styled-components'\nimport { nanoid } from 'nanoid'\nimport { withMergedProps } from 'hocs/withMergedProps'\nimport type { MergedProps } from 'hocs/withMergedProps'\nimport { FormInputLabel, SIZES } from 'components/FormInputLabel'\nimport { FormInput } from 'components/FormInput'\nimport { InputPhone } from 'components/Input.Phone'\nimport { IconButton } from 'components/IconButton'\nimport { SIZES_ICON, SIZES_CONTROL } from './sizes'\nimport * as Styled from './style'\nimport type { InputProps } from './types'\n\nconst COMPONENT_NAME = 'Input'\n\n/**\n *\n * Компонент для приема однострочного ввода.\n *\n * Поддерживается \"ref\" и все нативные атрибуты \\<input\\> элемента.\n */\nconst Input: React.ForwardRefExoticComponent<InputProps> & { Phone: typeof InputPhone } = Object.assign(\n withMergedProps<InputProps, HTMLInputElement>(\n forwardRef<HTMLInputElement, MergedProps<InputProps>>((props, forwardedRef) => {\n const theme = useTheme()\n\n const {\n size = 'm',\n rounded = true,\n primary = true,\n color = 'mineShaft',\n placeholderColor = 'silver',\n width = theme.defaultInputControlsWidth,\n type = 'text',\n labelPosition = 'dynamic',\n iconProps = {},\n controls = {},\n addonButtonProps = {},\n preset,\n className,\n style,\n sizeXXS,\n sizeXS,\n sizeS,\n sizeM,\n sizeL,\n sizeXL,\n sizeUnits,\n sizes,\n margin,\n marginXXS,\n marginXS,\n marginS,\n marginM,\n marginL,\n marginXL,\n marginTop,\n marginTopXXS,\n marginTopXS,\n marginTopS,\n marginTopM,\n marginTopL,\n marginTopXL,\n marginRight,\n marginRightXXS,\n marginRightXS,\n marginRightS,\n marginRightM,\n marginRightL,\n marginRightXL,\n marginBottom,\n marginBottomXXS,\n marginBottomXS,\n marginBottomS,\n marginBottomM,\n marginBottomL,\n marginBottomXL,\n marginLeft,\n marginLeftXXS,\n marginLeftXS,\n marginLeftS,\n marginLeftM,\n marginLeftL,\n marginLeftXL,\n palette,\n widthXXS,\n widthXS,\n widthS,\n widthM,\n widthL,\n widthXL,\n error,\n success,\n label,\n icon,\n text,\n secondary,\n contrast,\n onColored,\n fluid,\n disabled,\n inline,\n inputRef,\n ...inputProps\n } = props\n\n const sizeProps = {\n size,\n sizeXXS,\n sizeXS,\n sizeS,\n sizeM,\n sizeL,\n sizeXL,\n }\n\n const { icon: additionalControlIcon, buttonProps: additionalControlButtonProps = {} } = controls.additional ?? {}\n\n const [iconBefore, iconAfter = !additionalControlButtonProps.onClick ? additionalControlIcon : undefined] =\n Array.isArray(icon) ? icon : [icon]\n\n const addonControlIcon = addonButtonProps.icon ?? additionalControlIcon\n\n const inputAlwaysActive = Boolean(inputProps.mask && inputProps.alwaysShowMask)\n\n const controlPalette = {\n color: palette.controlsColor,\n colorHover: palette.controlsColorHover,\n colorActive: palette.controlsColorActive,\n colorDisabled: palette.controlsColorDisabled,\n backgroundColor: palette.controlsBackgroundColor,\n backgroundColorHover: palette.controlsBackgroundColorHover,\n backgroundColorActive: palette.controlsBackgroundColorActive,\n backgroundColorDisabled: palette.controlsBackgroundColorDisabled,\n }\n\n const ref = useRef<HTMLInputElement | null>(null)\n useImperativeHandle<HTMLInputElement | null, HTMLInputElement | null>(forwardedRef, () => ref.current, [])\n\n const addonRef = useRef<HTMLButtonElement | null>(null)\n const minusRef = useRef<HTMLButtonElement | null>(null)\n const plusRef = useRef<HTMLButtonElement | null>(null)\n\n const inputLabelId = useMemo(() => nanoid(), [])\n\n const [inputActive, setInputActive] = useState(() => {\n if (inputAlwaysActive) return true\n\n const initValue = inputProps.value ?? inputProps.defaultValue\n\n return (typeof initValue === 'string' && initValue.length > 0) || typeof initValue === 'number'\n })\n\n const [minusDisabled, setMinusDisabled] = useState(() => {\n if (type !== 'number' || inputProps.min === undefined) return false\n\n const { value = Infinity, defaultValue = Infinity } = inputProps\n\n const initValue = typeof value === 'number' ? value : parseFloat(value)\n const initDefaultValue = typeof defaultValue === 'number' ? defaultValue : parseFloat(defaultValue)\n const minValue = typeof inputProps.min === 'number' ? inputProps.min : parseFloat(inputProps.min)\n\n return Math.min(initValue, initDefaultValue) <= minValue\n })\n\n const [plusDisabled, setPlusDisabled] = useState(() => {\n if (type !== 'number' || inputProps.max === undefined) return false\n\n const { value = -Infinity, defaultValue = -Infinity } = inputProps\n\n const initValue = typeof value === 'number' ? value : parseFloat(value)\n const initDefaultValue = typeof defaultValue === 'number' ? defaultValue : parseFloat(defaultValue)\n const maxValue = typeof inputProps.max === 'number' ? inputProps.max : parseFloat(inputProps.max)\n\n return Math.max(initValue, initDefaultValue) >= maxValue\n })\n\n useLayoutEffect(() => {\n if (inputAlwaysActive) {\n setInputActive(true)\n } else if (\n inputProps.value !== undefined &&\n inputProps.value !== null &&\n ref.current &&\n ref.current !== document.activeElement\n ) {\n setInputActive(\n (typeof inputProps.value === 'string' && inputProps.value.length > 0) ||\n typeof inputProps.value === 'number'\n )\n }\n }, [inputAlwaysActive, inputProps.value])\n\n if (preset !== 'brand') {\n return (\n <Styled.Root\n {...inputProps}\n inputRef={\n inputRef ??\n ((input) => {\n ref.current = input\n })\n }\n className={className}\n style={style}\n size={typeof size === 'number' ? size : undefined}\n rounded={rounded}\n color={color}\n placeholderColor={placeholderColor}\n width={width}\n widthXXS={widthXXS}\n widthXS={widthXS}\n widthS={widthS}\n widthM={widthM}\n widthL={widthL}\n widthXL={widthXL}\n error={error}\n type={type}\n fluid={fluid}\n disabled={disabled}\n />\n )\n }\n\n return (\n <FormInputLabel\n {...sizeProps}\n className={className}\n style={style}\n sizeUnits={sizeUnits}\n sizes={sizes}\n margin={margin}\n marginXXS={marginXXS}\n marginXS={marginXS}\n marginS={marginS}\n marginM={marginM}\n marginL={marginL}\n marginXL={marginXL}\n marginTop={marginTop}\n marginTopXXS={marginTopXXS}\n marginTopXS={marginTopXS}\n marginTopS={marginTopS}\n marginTopM={marginTopM}\n marginTopL={marginTopL}\n marginTopXL={marginTopXL}\n marginRight={marginRight}\n marginRightXXS={marginRightXXS}\n marginRightXS={marginRightXS}\n marginRightS={marginRightS}\n marginRightM={marginRightM}\n marginRightL={marginRightL}\n marginRightXL={marginRightXL}\n marginBottom={marginBottom}\n marginBottomXXS={marginBottomXXS}\n marginBottomXS={marginBottomXS}\n marginBottomS={marginBottomS}\n marginBottomM={marginBottomM}\n marginBottomL={marginBottomL}\n marginBottomXL={marginBottomXL}\n marginLeft={marginLeft}\n marginLeftXXS={marginLeftXXS}\n marginLeftXS={marginLeftXS}\n marginLeftS={marginLeftS}\n marginLeftM={marginLeftM}\n marginLeftL={marginLeftL}\n marginLeftXL={marginLeftXL}\n error={error}\n success={success}\n icon={[iconBefore, iconAfter]}\n text={text}\n primary={primary}\n secondary={secondary}\n contrast={contrast}\n onColored={onColored}\n disabled={disabled}\n inline={inline}\n palette={{\n color: disabled ? palette.colorDisabled : palette.color,\n backgroundColor: disabled ? palette.backgroundColorDisabled : palette.backgroundColor,\n backgroundColorHover: disabled ? palette.backgroundColorDisabled : palette.backgroundColorHover,\n borderColor: disabled ? palette.borderColorDisabled : palette.borderColor,\n }}\n iconProps={{\n color: disabled ? 'content-disabled' : 'content-onmain-tertiary',\n sizes: SIZES_ICON,\n ...sizeProps,\n ...iconProps,\n }}\n onClick={() => {\n if (ref.current) {\n ref.current.focus()\n }\n }}\n onFocus={(evt) => {\n if (evt.target !== evt.currentTarget) {\n setInputActive(true)\n }\n }}\n onPointerDown={(evt) => {\n if (\n evt.target === ref.current ||\n !(evt.target instanceof Node) ||\n addonRef.current?.contains(evt.target) ||\n minusRef.current?.contains(evt.target) ||\n plusRef.current?.contains(evt.target)\n ) {\n return\n }\n evt.preventDefault()\n }}\n onBlur={(evt) => {\n if (!inputAlwaysActive && ref.current && !evt.currentTarget.contains(evt.relatedTarget)) {\n setInputActive(Boolean(ref.current.value))\n }\n }}\n input={\n <FormInput\n {...sizeProps}\n {...inputProps}\n ref={ref}\n type={type}\n disabled={disabled}\n active={inputActive}\n label={label}\n labelId={inputLabelId}\n labelPosition={labelPosition}\n palette={{\n color: palette.inputColor,\n placeholderColor: palette.inputPlaceholderColor,\n colorDisabled: palette.inputColorDisabled,\n placeholderColorDisabled: palette.inputPlaceholderColorDisabled,\n }}\n onChange={(evt) => {\n if (inputProps.onChange) {\n inputProps.onChange(evt)\n }\n\n if (type === 'number') {\n const currentValue = parseFloat(evt.currentTarget.value)\n\n const minValueReached = currentValue <= parseFloat(evt.currentTarget.min)\n const maxValueReached = currentValue >= parseFloat(evt.currentTarget.max)\n\n setMinusDisabled(minValueReached)\n setPlusDisabled(maxValueReached)\n\n if (minValueReached || maxValueReached) {\n evt.currentTarget.focus()\n }\n }\n }}\n />\n }\n addon={\n (addonButtonProps.onClick || additionalControlButtonProps.onClick) && addonControlIcon ? (\n <IconButton\n ref={addonRef}\n sizes={SIZES_CONTROL}\n palette={controlPalette}\n {...sizeProps}\n {...additionalControlButtonProps}\n {...addonButtonProps}\n icon={addonControlIcon}\n disabled={disabled || addonButtonProps.disabled || additionalControlButtonProps.disabled}\n marginLeft='var(--gap, 12px)'\n onClick={(evt) => {\n evt.stopPropagation()\n if (inputProps.readOnly) return\n\n if (addonButtonProps.onClick) addonButtonProps.onClick(evt)\n if (additionalControlButtonProps.onClick) additionalControlButtonProps.onClick(evt)\n }}\n />\n ) : undefined\n }\n controls={\n type === 'number' ? (\n <>\n <IconButton\n {...sizeProps}\n ref={minusRef}\n icon='minus'\n sizes={SIZES_CONTROL}\n palette={controlPalette}\n disabled={disabled || minusDisabled}\n marginLeft='var(--gap, 12px)'\n onClick={(evt) => {\n evt.stopPropagation()\n if (inputProps.readOnly) return\n\n try {\n if (ref.current) {\n setInputActive(true)\n\n const prev = ref.current.value\n ref.current.stepDown()\n\n const decremented = ref.current.value\n if (prev !== decremented) {\n const event = new Event('input', { bubbles: true })\n ref.current.dispatchEvent(event)\n }\n }\n } catch (err) {\n console.error(err)\n }\n }}\n />\n <Styled.IconButtonSeparated\n {...sizeProps}\n ref={plusRef}\n icon='plus'\n sizes={SIZES_CONTROL}\n palette={controlPalette}\n disabled={disabled || plusDisabled}\n onClick={(evt) => {\n evt.stopPropagation()\n if (inputProps.readOnly) return\n\n try {\n if (ref.current) {\n setInputActive(true)\n\n const prev = ref.current.value\n ref.current.stepUp()\n\n const incremented = ref.current.value\n if (prev !== incremented) {\n const event = new Event('input', { bubbles: true })\n ref.current.dispatchEvent(event)\n }\n }\n } catch (err) {\n console.error(err)\n }\n }}\n />\n </>\n ) : undefined\n }\n />\n )\n }),\n {\n sizes: SIZES,\n displayName: COMPONENT_NAME,\n }\n ),\n {\n Phone: InputPhone,\n }\n)\n\nexport { Input, COMPONENT_NAME }\n"],"names":["Input","Object","assign","withMergedProps","forwardRef","props","forwardedRef","theme","useTheme","size","rounded","primary","color","placeholderColor","width","defaultInputControlsWidth","type","labelPosition","iconProps","controls","addonButtonProps","preset","className","style","sizeXXS","sizeXS","sizeS","sizeM","sizeL","sizeXL","sizeUnits","sizes","margin","marginXXS","marginXS","marginS","marginM","marginL","marginXL","marginTop","marginTopXXS","marginTopXS","marginTopS","marginTopM","marginTopL","marginTopXL","marginRight","marginRightXXS","marginRightXS","marginRightS","marginRightM","marginRightL","marginRightXL","marginBottom","marginBottomXXS","marginBottomXS","marginBottomS","marginBottomM","marginBottomL","marginBottomXL","marginLeft","marginLeftXXS","marginLeftXS","marginLeftS","marginLeftM","marginLeftL","marginLeftXL","palette","widthXXS","widthXS","widthS","widthM","widthL","widthXL","error","success","label","icon","text","secondary","contrast","onColored","fluid","disabled","inline","inputRef","inputProps","sizeProps","additionalControlIcon","buttonProps","additionalControlButtonProps","additional","iconBefore","iconAfter","onClick","undefined","Array","isArray","addonControlIcon","inputAlwaysActive","Boolean","mask","alwaysShowMask","controlPalette","controlsColor","colorHover","controlsColorHover","colorActive","controlsColorActive","colorDisabled","controlsColorDisabled","backgroundColor","controlsBackgroundColor","backgroundColorHover","controlsBackgroundColorHover","backgroundColorActive","controlsBackgroundColorActive","backgroundColorDisabled","controlsBackgroundColorDisabled","ref","useRef","useImperativeHandle","current","addonRef","minusRef","plusRef","inputLabelId","useMemo","nanoid","inputActive","setInputActive","useState","initValue","value","defaultValue","length","minusDisabled","setMinusDisabled","min","Infinity","parseFloat","initDefaultValue","minValue","Math","plusDisabled","setPlusDisabled","max","maxValue","useLayoutEffect","document","activeElement","_jsx","Styled","input","FormInputLabel","borderColor","borderColorDisabled","SIZES_ICON","focus","onFocus","evt","target","currentTarget","onPointerDown","Node","contains","preventDefault","onBlur","relatedTarget","jsx","FormInput","active","labelId","inputColor","inputPlaceholderColor","inputColorDisabled","placeholderColorDisabled","inputPlaceholderColorDisabled","onChange","currentValue","minValueReached","maxValueReached","addon","IconButton","SIZES_CONTROL","stopPropagation","readOnly","_jsxs","_Fragment","children","prev","stepDown","event","Event","bubbles","dispatchEvent","err","console","stepUp","SIZES","displayName","Phone","InputPhone"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{forwardRef,useRef,useImperativeHandle,useMemo,useState,useLayoutEffect}from'react';import{useTheme}from'styled-components';import{nanoid}from'nanoid';import{withMergedProps}from'../../hocs/withMergedProps.mjs';import{SIZES_ICON,SIZES_CONTROL}from'./
|
|
1
|
+
import{forwardRef,useRef,useImperativeHandle,useMemo,useState,useLayoutEffect}from'react';import{useTheme}from'styled-components';import{nanoid}from'nanoid';import{withMergedProps}from'../../hocs/withMergedProps.mjs';import{SIZES_ICON,SIZES_CONTROL}from'./sizes.mjs';import{Root,IconButtonSeparated}from'./style.mjs';import{jsx,jsxs,Fragment}from'react/jsx-runtime';import{InputPhone}from'../Input.Phone/Input.Phone.mjs';import{SIZES}from'../FormInputLabel/sizes.mjs';import{FormInputLabel}from'../FormInputLabel/FormInputLabel.mjs';import{FormInput}from'../FormInput/FormInput.mjs';import{IconButton}from'../IconButton/IconButton.mjs';const COMPONENT_NAME='Input';const Input=Object.assign(withMergedProps(forwardRef(((o,r)=>{const t=useTheme();const{size:e="m",rounded:n=!0,primary:a=!0,color:i="mineShaft",placeholderColor:s="silver",width:l=t.defaultInputControlsWidth,type:c="text",labelPosition:m="dynamic",iconProps:u={},controls:g={},addonButtonProps:d={},preset:p,className:f,style:b,sizeXXS:S,sizeXS:h,sizeS:X,sizeM:L,sizeL:C,sizeXL:v,sizeUnits:I,sizes:y,margin:B,marginXXS:R,marginXS:T,marginS:k,marginM:z,marginL:M,marginXL:w,marginTop:x,marginTopXXS:P,marginTopXS:F,marginTopS:j,marginTopM:E,marginTopL:O,marginTopXL:N,marginRight:D,marginRightXXS:A,marginRightXS:H,marginRightS:Z,marginRightM:_,marginRightL:U,marginRightXL:V,marginBottom:W,marginBottomXXS:q,marginBottomXS:G,marginBottomS:J,marginBottomM:K,marginBottomL:Q,marginBottomXL:Y,marginLeft:$,marginLeftXXS:oo,marginLeftXS:ro,marginLeftS:to,marginLeftM:eo,marginLeftL:no,marginLeftXL:ao,palette:io,widthXXS:so,widthXS:lo,widthS:co,widthM:mo,widthL:uo,widthXL:go,error:po,success:fo,label:bo,icon:So,text:ho,secondary:Xo,contrast:Lo,onColored:Co,fluid:vo,disabled:Io,inline:yo,inputRef:Bo,...Ro}=o;const To={size:e,sizeXXS:S,sizeXS:h,sizeS:X,sizeM:L,sizeL:C,sizeXL:v};const{icon:ko,buttonProps:zo={}}=g.additional??{};const[Mo,wo=(zo.onClick?void 0:ko)]=Array.isArray(So)?So:[So];const xo=d.icon??ko;const Po=Boolean(Ro.mask&&Ro.alwaysShowMask);const Fo={color:io.controlsColor,colorHover:io.controlsColorHover,colorActive:io.controlsColorActive,colorDisabled:io.controlsColorDisabled,backgroundColor:io.controlsBackgroundColor,backgroundColorHover:io.controlsBackgroundColorHover,backgroundColorActive:io.controlsBackgroundColorActive,backgroundColorDisabled:io.controlsBackgroundColorDisabled};const jo=useRef(null);useImperativeHandle(r,(()=>jo.current),[]);const Eo=useRef(null);const Oo=useRef(null);const No=useRef(null);const Do=useMemo((()=>nanoid()),[]);const[Ao,Ho]=useState((()=>{if(Po)return!0;const o=Ro.value??Ro.defaultValue;return typeof o=='string'&&o.length>0||typeof o=='number'}));const[Zo,_o]=useState((()=>{if(c!=='number'||Ro.min===void 0)return!1;const{value:o=1/0,defaultValue:r=1/0}=Ro;const t=typeof o=='number'?o:parseFloat(o);const e=typeof r=='number'?r:parseFloat(r);const n=typeof Ro.min=='number'?Ro.min:parseFloat(Ro.min);return Math.min(t,e)<=n}));const[Uo,Vo]=useState((()=>{if(c!=='number'||Ro.max===void 0)return!1;const{value:o=-1/0,defaultValue:r=-1/0}=Ro;const t=typeof o=='number'?o:parseFloat(o);const e=typeof r=='number'?r:parseFloat(r);const n=typeof Ro.max=='number'?Ro.max:parseFloat(Ro.max);return Math.max(t,e)>=n}));return useLayoutEffect((()=>{Po?Ho(!0):Ro.value!==void 0&&Ro.value!==null&&jo.current&&jo.current!==document.activeElement&&Ho(typeof Ro.value=='string'&&Ro.value.length>0||typeof Ro.value=='number')}),[Po,Ro.value]),p!=='brand'?jsx(Root,{...Ro,inputRef:Bo??(o=>{jo.current=o}),className:f,style:b,size:typeof e=='number'?e:void 0,rounded:n,color:i,placeholderColor:s,width:l,widthXXS:so,widthXS:lo,widthS:co,widthM:mo,widthL:uo,widthXL:go,error:po,type:c,fluid:vo,disabled:Io}):jsx(FormInputLabel,{...To,className:f,style:b,sizeUnits:I,sizes:y,margin:B,marginXXS:R,marginXS:T,marginS:k,marginM:z,marginL:M,marginXL:w,marginTop:x,marginTopXXS:P,marginTopXS:F,marginTopS:j,marginTopM:E,marginTopL:O,marginTopXL:N,marginRight:D,marginRightXXS:A,marginRightXS:H,marginRightS:Z,marginRightM:_,marginRightL:U,marginRightXL:V,marginBottom:W,marginBottomXXS:q,marginBottomXS:G,marginBottomS:J,marginBottomM:K,marginBottomL:Q,marginBottomXL:Y,marginLeft:$,marginLeftXXS:oo,marginLeftXS:ro,marginLeftS:to,marginLeftM:eo,marginLeftL:no,marginLeftXL:ao,error:po,success:fo,icon:[Mo,wo],text:ho,primary:a,secondary:Xo,contrast:Lo,onColored:Co,disabled:Io,inline:yo,palette:{color:Io?io.colorDisabled:io.color,backgroundColor:Io?io.backgroundColorDisabled:io.backgroundColor,backgroundColorHover:Io?io.backgroundColorDisabled:io.backgroundColorHover,borderColor:Io?io.borderColorDisabled:io.borderColor},iconProps:{color:Io?'content-disabled':'content-onmain-tertiary',sizes:SIZES_ICON,...To,...u},onClick:()=>{jo.current&&jo.current.focus()},onFocus:o=>{o.target!==o.currentTarget&&Ho(!0)},onPointerDown:o=>{o.target!==jo.current&&o.target instanceof Node&&!Eo.current?.contains(o.target)&&!Oo.current?.contains(o.target)&&!No.current?.contains(o.target)&&o.preventDefault()},onBlur:o=>{Po||!jo.current||o.currentTarget.contains(o.relatedTarget)||Ho(Boolean(jo.current.value))},input:jsx(FormInput,{...To,...Ro,ref:jo,type:c,disabled:Io,active:Ao,label:bo,labelId:Do,labelPosition:m,palette:{color:io.inputColor,placeholderColor:io.inputPlaceholderColor,colorDisabled:io.inputColorDisabled,placeholderColorDisabled:io.inputPlaceholderColorDisabled},onChange:o=>{if(Ro.onChange&&Ro.onChange(o),c==='number'){const r=parseFloat(o.currentTarget.value);const t=r<=parseFloat(o.currentTarget.min);const e=r>=parseFloat(o.currentTarget.max);_o(t),Vo(e),(t||e)&&o.currentTarget.focus()}}}),addon:(d.onClick||zo.onClick)&&xo?jsx(IconButton,{ref:Eo,sizes:SIZES_CONTROL,palette:Fo,...To,...zo,...d,icon:xo,disabled:Io||d.disabled||zo.disabled,marginLeft:"var(--gap, 12px)",onClick:o=>{o.stopPropagation(),Ro.readOnly||(d.onClick&&d.onClick(o),zo.onClick&&zo.onClick(o))}}):void 0,controls:c==='number'?jsxs(Fragment,{children:[jsx(IconButton,{...To,ref:Oo,icon:"minus",sizes:SIZES_CONTROL,palette:Fo,disabled:Io||Zo,marginLeft:"var(--gap, 12px)",onClick:o=>{if(o.stopPropagation(),!Ro.readOnly)try{if(jo.current){Ho(!0);const o=jo.current.value;if(jo.current.stepDown(),o!==jo.current.value){const o=new Event('input',{bubbles:!0});jo.current.dispatchEvent(o)}}}catch(o){console.error(o)}}}),jsx(IconButtonSeparated,{...To,ref:No,icon:"plus",sizes:SIZES_CONTROL,palette:Fo,disabled:Io||Uo,onClick:o=>{if(o.stopPropagation(),!Ro.readOnly)try{if(jo.current){Ho(!0);const o=jo.current.value;if(jo.current.stepUp(),o!==jo.current.value){const o=new Event('input',{bubbles:!0});jo.current.dispatchEvent(o)}}}catch(o){console.error(o)}}})]}):void 0})})),{sizes:SIZES,displayName:"Input"}),{Phone:InputPhone});export{COMPONENT_NAME,Input};
|
|
2
2
|
//# sourceMappingURL=Input.mjs.map
|