@legion-ui-kit/react-core
Version:
To install the package into your project:
1 lines • 3.77 kB
Source Map (JSON)
{"version":3,"file":"index.cjs","sources":["../../../../src/components/Switch/index.tsx"],"sourcesContent":["// Modules\r\nimport { useId } from 'react';\r\nimport cn from 'classnames';\r\n\r\n// Types\r\nimport type { TSwitchProps } from './Switch.type';\r\n\r\n// Styles\r\nimport styles from './styles.module.scss';\r\n\r\n// Helpers\r\nimport { kebabCase } from '../../helpers/typography';\r\n\r\n// Constants\r\nimport { INPUT_TYPE, SWITCH_DEFAULT_PROPS, SWITCH_LABEL_POSITION, SWITCH_TYPE } from './Switch.constant';\r\n\r\nconst Switch = (props: TSwitchProps) => {\r\n const {\r\n className,\r\n disabled,\r\n fieldClassName,\r\n fieldStyle,\r\n id,\r\n inputClassName,\r\n inputStyle,\r\n label,\r\n labelClassName,\r\n labelPosition = SWITCH_DEFAULT_PROPS.labelPosition,\r\n labelStyle,\r\n size = SWITCH_DEFAULT_PROPS.size,\r\n style,\r\n toggleClassName,\r\n toggleStyle,\r\n type = SWITCH_DEFAULT_PROPS.type,\r\n ...restProps\r\n } = props;\r\n const initId = useId();\r\n const inputId = id || `legion_switch_${kebabCase(initId)}`;\r\n const inputType = type === SWITCH_TYPE.multiple ? INPUT_TYPE.checkbox : INPUT_TYPE.radio;\r\n const isLeftLabel = labelPosition === SWITCH_LABEL_POSITION.left;\r\n\r\n const switchCN = cn(styles.legion_switch, className, styles[size!], {\r\n [styles.disabled]: !!disabled,\r\n [styles.left_label]: isLeftLabel\r\n });\r\n const toggleCN = cn(styles.switch_toggle, toggleClassName);\r\n const fieldCN = cn(styles.switch_field, fieldClassName);\r\n const labelCN = cn(styles.switch_label, labelClassName);\r\n\r\n return (\r\n <div className={switchCN} style={style}>\r\n <div className={fieldCN} style={fieldStyle}>\r\n <input className={inputClassName} id={inputId} type={inputType} disabled={disabled}\r\n style={inputStyle} {...restProps}/>\r\n <span className={toggleCN} style={toggleStyle}/>\r\n </div>\r\n {label && (\r\n <label htmlFor={inputId} className={labelCN} style={labelStyle}>\r\n {label}\r\n </label>\r\n )}\r\n </div>\r\n );\r\n};\r\n\r\nexport default Switch;\r\n"],"names":["props","className","disabled","fieldClassName","fieldStyle","id","inputClassName","inputStyle","label","labelClassName","labelPosition","SWITCH_DEFAULT_PROPS","labelStyle","size","style","toggleClassName","toggleStyle","type","restProps","initId","useId","inputId","kebabCase","inputType","SWITCH_TYPE","multiple","INPUT_TYPE","checkbox","radio","isLeftLabel","SWITCH_LABEL_POSITION","left","switchCN","cn","styles","legion_switch","left_label","toggleCN","switch_toggle","fieldCN","switch_field","labelCN","switch_label","_jsxs","children","_jsx","htmlFor"],"mappings":"mVAgBgBA,IACd,MAAMC,UACJA,EAASC,SACTA,EAAQC,eACRA,EAAcC,WACdA,EAAUC,GACVA,EAAEC,eACFA,EAAcC,WACdA,EAAUC,MACVA,EAAKC,eACLA,EAAcC,cACdA,EAAgBC,EAAAA,qBAAqBD,cAAaE,WAClDA,EAAUC,KACVA,EAAOF,EAAAA,qBAAqBE,KAAIC,MAChCA,EAAKC,gBACLA,EAAeC,YACfA,EAAWC,KACXA,EAAON,EAAAA,qBAAqBM,QACzBC,GACDlB,EACEmB,EAASC,EAAAA,QACTC,EAAUhB,GAAM,iBAAiBiB,EAAAA,UAAUH,KAC3CI,EAAYN,IAASO,EAAAA,YAAYC,SAAWC,aAAWC,SAAWD,EAAAA,WAAWE,MAC7EC,EAAcnB,IAAkBoB,EAAAA,sBAAsBC,KAEtDC,EAAWC,EAAAA,QAAGC,EAAAA,QAAOC,cAAelC,EAAWiC,EAAAA,QAAOrB,GAAQ,CAClE,CAACqB,EAAAA,QAAOhC,YAAaA,EACrB,CAACgC,EAAAA,QAAOE,YAAaP,IAEjBQ,EAAWJ,EAAAA,QAAGC,UAAOI,cAAevB,GACpCwB,EAAUN,EAAAA,QAAGC,UAAOM,aAAcrC,GAClCsC,EAAUR,EAAAA,QAAGC,UAAOQ,aAAcjC,GAExC,OACEkC,EAAAA,KAAA,MAAA,CAAK1C,UAAW+B,EAAUlB,MAAOA,YAC/B6B,EAAAA,KAAA,MAAA,CAAK1C,UAAWsC,EAASzB,MAAOV,EAAUwC,SAAA,CACxCC,eAAO5C,UAAWK,EAAgBD,GAAIgB,EAASJ,KAAMM,EAAWrB,SAAUA,EACnEY,MAAOP,KAAgBW,IAC9B2B,EAAAA,IAAA,OAAA,CAAM5C,UAAWoC,EAAUvB,MAAOE,OAEnCR,GACCqC,EAAAA,IAAA,QAAA,CAAOC,QAASzB,EAASpB,UAAWwC,EAAS3B,MAAOF,WACjDJ"}