inconel 0.1.21 → 0.1.23

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.
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("react/jsx-runtime"),u=require("react"),Ve=require("../FieldFeedback/FieldFeedback.cjs");;/* empty css */;/* empty css */;/* empty css */;/* empty css */const i=require("./utils.cjs"),Ne=require("../../adapters/context.cjs"),qe=u.forwardRef(function({id:H,label:d,hint:B,errorMessage:J,startAdornment:E,endAdornment:R,fullWidth:S=!1,inputClassName:O,labelClassName:w,className:x,required:b,disabled:h,value:y,defaultValue:Q="",onChange:v,onBlur:U,onFocus:X,onKeyDown:Z,onMouseEnter:A,onMouseLeave:W,type:n="text",locale:f="tr-TR",currency:T="TRY",decimalScale:m=0,roundMode:ee="floor",roundOnBlur:ne=!1,min:V,max:N,allowNegative:$=!1,debounceMs:z=0,validateOnSubmit:D=!1,validationMessages:re,mask:s,limit:j,isClearable:ie=!1,readOnly:te=!1,clearButtonLabel:oe,readOnlyEmptyValue:le=null,size:L="md",variant:ue="outlined",autoComplete:se="off","aria-describedby":ae,...ce},de){const fe=Ne.useInconelAdapters(),pe=oe??String(fe.translate?.("clear","Temizle")??"Temizle"),he=u.useId(),I=H??`inconel-input-${he.replace(/:/g,"")}`,C=`${I}-hint`,P=`${I}-error`,K=y!==void 0,[me,je]=u.useState(Q),o=K?y:me,[Y,q]=u.useState(""),[Ie,k]=u.useState(!1),[ge,F]=u.useState(null),a=u.useRef(null),be=re??{},p=J??ge,g=e=>i.validateInputValue(e,{required:!!b,type:n,min:V,max:N,mask:s,messages:be}),M=u.useMemo(()=>i.formatInputValue(o,n,f,m,T,s),[o,T,m,f,s,n]),c=(e,r,l=null)=>({rawValue:e,formattedValue:i.formatInputValue(e,n,f,m,T,s),error:!!g(e),char:l,eventType:r}),_=(e,r=!1)=>{K||je(e.rawValue),a.current&&clearTimeout(a.current),v&&(r||z<=0?v(e):a.current=setTimeout(()=>v(e),z))};u.useEffect(()=>()=>{a.current&&clearTimeout(a.current)},[]),u.useEffect(()=>{D&&F(g(o))},[D]);const G=e=>{if(n==="phone"&&s)return e.replace(/\D/g,"");if(i.isFormattedInputType(n)){const r=i.parseInputNumber(e,f);return r===null?e===""?null:e:$?r:Math.abs(r)}return e},ve=e=>{const r=e.replace(/\D/g,"");if(j&&(i.isFormattedInputType(n)||n==="phone")&&r.length>j||j&&i.isLengthValidatedInputType(n)&&e.length>j)return;const l=G(e);typeof l=="number"&&(typeof V=="number"&&l<V||typeof N=="number"&&l>N)||(q(n==="phone"&&s?i.applyInputMask(l,s):e),_(c(l,"change",e.slice(-1)||null)))},Te=[ae,B&&!p?C:void 0,p?P:void 0].filter(Boolean).join(" ")||void 0;return te?t.jsxs("div",{className:["inconel-field",`inconel-size-${L}`,S?"inconel-field--full-width":"",x??""].join(" "),children:[d&&t.jsx("span",{className:["inconel-field__label",w??""].join(" "),children:d}),t.jsx("div",{className:"inconel-input-readonly","aria-label":d,children:M||le})]}):t.jsxs("div",{className:["inconel-field",`inconel-size-${L}`,S?"inconel-field--full-width":"",x??""].join(" "),children:[d&&t.jsxs("label",{className:["inconel-field__label",w??""].join(" "),htmlFor:I,children:[d,b&&t.jsx("span",{className:"inconel-field__required","aria-hidden":"true",children:" *"})]}),t.jsxs("div",{className:["inconel-input-control",ue==="plain"?"inconel-input-control--plain":"",p?"inconel-is-invalid":"",h?"inconel-is-disabled":""].join(" "),children:[E&&t.jsx("span",{className:"inconel-input-adornment","aria-hidden":"true",children:E}),t.jsx("input",{...ce,ref:de,id:I,type:n==="password"||n==="email"?n:"text",inputMode:i.isFormattedInputType(n)?"decimal":n==="phone"?"tel":void 0,value:Ie?Y:M,required:b,disabled:h,autoComplete:se,"aria-invalid":!!p,"aria-describedby":Te,className:["inconel-input",O??""].join(" "),onChange:e=>ve(e.target.value),onFocus:e=>{if(h)return;k(!0);const r=n==="phone"&&s?i.applyInputMask(o,s):i.isFormattedInputType(n)?String(o??"").replace(".",i.getInputSeparators(f).decimal):String(o??"");q(r),X?.(c(o,"focus"),e)},onBlur:e=>{k(!1),a.current&&clearTimeout(a.current);let r=G(Y);typeof r=="number"&&(r=i.roundInputNumber(r,m,ne?ee:"floor")),F(g(r));const l=c(r,"blur");_(l,!0),U?.(l,e)},onKeyDown:e=>{!$&&(e.key==="-"||e.key==="Subtract")&&e.preventDefault(),Z?.(c(o,"keydown",e.key),e)},onMouseEnter:e=>A?.(c(o,"mouseenter"),e),onMouseLeave:e=>W?.(c(o,"mouseleave"),e)}),ie&&!h&&M&&t.jsx("button",{type:"button",className:"inconel-input-clear","aria-label":pe,onClick:()=>{q(""),F(g(null)),_(c(null,"clear"),!0)},children:"×"}),R&&t.jsx("span",{className:"inconel-input-adornment","aria-hidden":"true",children:R})]}),t.jsx(Ve.default,{hint:B,errorMessage:p,hintId:C,errorId:P})]})});exports.default=qe;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const i=require("react/jsx-runtime"),u=require("react"),Ve=require("../FieldFeedback/FieldFeedback.cjs");;/* empty css */;/* empty css */;/* empty css */;/* empty css */const t=require("./utils.cjs"),Ne=require("../../adapters/context.cjs"),qe=u.forwardRef(function({id:H,label:d,hint:_,errorMessage:J,startAdornment:B,endAdornment:E,fullWidth:R=!1,inputClassName:O,labelClassName:S,className:w,required:b,disabled:h,value:y,defaultValue:Q="",onChange:v,onBlur:U,onFocus:X,onKeyDown:Z,onMouseEnter:A,onMouseLeave:W,type:n="text",locale:f="tr-TR",currency:T="TRY",decimalScale:m=0,roundMode:ee="floor",roundOnBlur:ne=!1,min:V,max:N,allowNegative:$=!1,debounceMs:z=0,validateOnSubmit:D=!1,validationMessages:re,mask:s,limit:j,isClearable:te=!1,readOnly:ie=!1,clearButtonLabel:oe,readOnlyEmptyValue:le=null,size:L="md",variant:ue="outlined",autoComplete:se="off","aria-describedby":ae,...ce},de){const fe=Ne.useInconelAdapters(),pe=oe??String(fe.translate?.("clear","Temizle")??"Temizle"),he=u.useId(),I=H??`inconel-input-${he.replace(/:/g,"")}`,C=`${I}-hint`,P=`${I}-error`,K=y!==void 0,[me,je]=u.useState(Q),o=K?y:me,[Y,q]=u.useState(""),[Ie,k]=u.useState(!1),[ge,F]=u.useState(null),a=u.useRef(null),be=re??{},p=J??ge,g=e=>t.validateInputValue(e,{required:!!b,type:n,min:V,max:N,mask:s,messages:be}),M=u.useMemo(()=>t.formatInputValue(o,n,f,m,T,s),[o,T,m,f,s,n]),c=(e,r,l=null)=>({rawValue:e,formattedValue:t.formatInputValue(e,n,f,m,T,s),error:!!g(e),char:l,eventType:r}),x=(e,r=!1)=>{K||je(e.rawValue),a.current&&clearTimeout(a.current),v&&(r||z<=0?v(e):a.current=setTimeout(()=>v(e),z))};u.useEffect(()=>()=>{a.current&&clearTimeout(a.current)},[]),u.useEffect(()=>{D&&F(g(o))},[D]);const G=e=>{if(n==="phone"&&s)return e.replace(/\D/g,"");if(t.isFormattedInputType(n)){const r=t.parseInputNumber(e,f);return r===null?null:$?r:Math.abs(r)}return e},ve=e=>{const r=e.replace(/\D/g,"");if(j&&(t.isFormattedInputType(n)||n==="phone")&&r.length>j||j&&t.isLengthValidatedInputType(n)&&e.length>j)return;const l=G(e);typeof l=="number"&&(typeof V=="number"&&l<V||typeof N=="number"&&l>N)||(q(n==="phone"&&s?t.applyInputMask(l,s):e),x(c(l,"change",e.slice(-1)||null)))},Te=[ae,_&&!p?C:void 0,p?P:void 0].filter(Boolean).join(" ")||void 0;return ie?i.jsxs("div",{className:["inconel-field",`inconel-size-${L}`,R?"inconel-field--full-width":"",w??""].join(" "),children:[d&&i.jsx("span",{className:["inconel-field__label",S??""].join(" "),children:d}),i.jsx("div",{className:"inconel-input-readonly","aria-label":d,children:M||le})]}):i.jsxs("div",{className:["inconel-field",`inconel-size-${L}`,R?"inconel-field--full-width":"",w??""].join(" "),children:[d&&i.jsxs("label",{className:["inconel-field__label",S??""].join(" "),htmlFor:I,children:[d,b&&i.jsx("span",{className:"inconel-field__required","aria-hidden":"true",children:" *"})]}),i.jsxs("div",{className:["inconel-input-control",ue==="plain"?"inconel-input-control--plain":"",p?"inconel-is-invalid":"",h?"inconel-is-disabled":""].join(" "),children:[B&&i.jsx("span",{className:"inconel-input-adornment","aria-hidden":"true",children:B}),i.jsx("input",{...ce,ref:de,id:I,type:n==="password"||n==="email"?n:"text",inputMode:t.isFormattedInputType(n)?"decimal":n==="phone"?"tel":void 0,value:Ie?Y:M,required:b,disabled:h,autoComplete:se,"aria-invalid":!!p,"aria-describedby":Te,className:["inconel-input",O??""].join(" "),onChange:e=>ve(e.target.value),onFocus:e=>{if(h)return;k(!0);const r=n==="phone"&&s?t.applyInputMask(o,s):t.isFormattedInputType(n)?String(o??"").replace(".",t.getInputSeparators(f).decimal):String(o??"");q(r),X?.(c(o,"focus"),e)},onBlur:e=>{k(!1),a.current&&clearTimeout(a.current);let r=G(Y);typeof r=="number"&&(r=t.roundInputNumber(r,m,ne?ee:"floor")),F(g(r));const l=c(r,"blur");x(l,!0),U?.(l,e)},onKeyDown:e=>{!$&&(e.key==="-"||e.key==="Subtract")&&e.preventDefault(),Z?.(c(o,"keydown",e.key),e)},onMouseEnter:e=>A?.(c(o,"mouseenter"),e),onMouseLeave:e=>W?.(c(o,"mouseleave"),e)}),te&&!h&&M&&i.jsx("button",{type:"button",className:"inconel-input-clear","aria-label":pe,onClick:()=>{q(""),F(g(null)),x(c(null,"clear"),!0)},children:"×"}),E&&i.jsx("span",{className:"inconel-input-adornment","aria-hidden":"true",children:E})]}),i.jsx(Ve.default,{hint:_,errorMessage:p,hintId:C,errorId:P})]})});exports.default=qe;
2
2
  //# sourceMappingURL=Input.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Input.cjs","sources":["../../../../src/components/Input/Input.tsx"],"sourcesContent":["import {\n forwardRef,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n type FocusEvent,\n type InputHTMLAttributes,\n type KeyboardEvent,\n type MouseEvent,\n type ReactNode,\n} from 'react'\n\nimport { useInconelAdapters } from '../../adapters'\nimport FieldFeedback from '../FieldFeedback/FieldFeedback'\nimport type { FieldFeedbackContentProps } from '../FieldFeedback/FieldFeedback'\nimport '../shared/field.css'\nimport '../shared/field-controls.css'\nimport '../shared/sizes.css'\nimport type { ControlSize } from '../shared/types'\nimport './styles.css'\nimport {\n applyInputMask,\n formatInputValue,\n getInputSeparators,\n isFormattedInputType,\n isLengthValidatedInputType,\n parseInputNumber,\n roundInputNumber,\n validateInputValue,\n} from './utils'\n\nexport type InputType =\n | 'text'\n | 'number'\n | 'currency'\n | 'percent'\n | 'phone'\n | 'email'\n | 'password'\n\nexport type InputRoundMode = 'ceil' | 'floor' | 'round'\nexport type InputValue = string | number | null\nexport type InputEventType =\n | 'change'\n | 'blur'\n | 'focus'\n | 'keydown'\n | 'mouseenter'\n | 'mouseleave'\n | 'clear'\n\nexport interface InputPayload {\n rawValue: InputValue\n formattedValue: string\n error: boolean\n char: string | null\n eventType: InputEventType\n}\n\nexport interface InputValidationMessages {\n required?: string\n invalidNumber?: string\n minNumber?: string\n maxNumber?: string\n minLength?: string\n maxLength?: string\n invalidPhone?: string\n invalidEmail?: string\n}\n\ntype NativeInputProps = Omit<\n InputHTMLAttributes<HTMLInputElement>,\n | 'type'\n | 'value'\n | 'defaultValue'\n | 'onChange'\n | 'onBlur'\n | 'onFocus'\n | 'onKeyDown'\n | 'onMouseEnter'\n | 'onMouseLeave'\n | 'min'\n | 'max'\n | 'size'\n | 'readOnly'\n>\n\nexport interface InputProps extends NativeInputProps, FieldFeedbackContentProps {\n label?: string\n startAdornment?: ReactNode\n endAdornment?: ReactNode\n fullWidth?: boolean\n inputClassName?: string\n labelClassName?: string\n value?: InputValue\n defaultValue?: InputValue\n onChange?: (payload: InputPayload) => void\n onBlur?: (payload: InputPayload, event: FocusEvent<HTMLInputElement>) => void\n onFocus?: (payload: InputPayload, event: FocusEvent<HTMLInputElement>) => void\n onKeyDown?: (\n payload: InputPayload,\n event: KeyboardEvent<HTMLInputElement>,\n ) => void\n onMouseEnter?: (\n payload: InputPayload,\n event: MouseEvent<HTMLInputElement>,\n ) => void\n onMouseLeave?: (\n payload: InputPayload,\n event: MouseEvent<HTMLInputElement>,\n ) => void\n type?: InputType\n locale?: string\n currency?: string\n decimalScale?: number\n roundMode?: InputRoundMode\n roundOnBlur?: boolean\n min?: number\n max?: number\n allowNegative?: boolean\n debounceMs?: number\n validateOnSubmit?: boolean\n validationMessages?: InputValidationMessages\n mask?: string\n limit?: number\n isClearable?: boolean\n readOnly?: boolean\n clearButtonLabel?: string\n readOnlyEmptyValue?: ReactNode\n size?: ControlSize\n variant?: 'outlined' | 'plain'\n}\n\nconst Input = forwardRef<HTMLInputElement, InputProps>(function Input(\n {\n id,\n label,\n hint,\n errorMessage,\n startAdornment,\n endAdornment,\n fullWidth = false,\n inputClassName,\n labelClassName,\n className,\n required,\n disabled,\n value,\n defaultValue = '',\n onChange,\n onBlur,\n onFocus,\n onKeyDown,\n onMouseEnter,\n onMouseLeave,\n type = 'text',\n locale = 'tr-TR',\n currency = 'TRY',\n decimalScale = 0,\n roundMode = 'floor',\n roundOnBlur = false,\n min,\n max,\n allowNegative = false,\n debounceMs = 0,\n validateOnSubmit = false,\n validationMessages,\n mask,\n limit,\n isClearable = false,\n readOnly = false,\n clearButtonLabel,\n readOnlyEmptyValue = null,\n size = 'md',\n variant = 'outlined',\n autoComplete = 'off',\n 'aria-describedby': ariaDescribedBy,\n ...inputProps\n },\n ref,\n) {\n const adapters = useInconelAdapters()\n const resolvedClearButtonLabel =\n clearButtonLabel ??\n String(adapters.translate?.('clear', 'Temizle') ?? 'Temizle')\n\n const generatedId = useId()\n const inputId = id ?? `inconel-input-${generatedId.replace(/:/g, '')}`\n const hintId = `${inputId}-hint`\n const errorId = `${inputId}-error`\n const controlled = value !== undefined\n const [localValue, setLocalValue] = useState<InputValue>(defaultValue)\n const currentValue = controlled ? value : localValue\n const [editingValue, setEditingValue] = useState('')\n const [focused, setFocused] = useState(false)\n const [validationError, setValidationError] = useState<string | null>(null)\n const debounceRef = useRef<ReturnType<typeof setTimeout> | null>(null)\n const messages = validationMessages ?? {}\n const visibleError = errorMessage ?? validationError\n\n const validate = (candidate: InputValue) =>\n validateInputValue(candidate, {\n required: Boolean(required),\n type,\n min,\n max,\n mask,\n messages,\n })\n\n const formattedValue = useMemo(\n () =>\n formatInputValue(\n currentValue,\n type,\n locale,\n decimalScale,\n currency,\n mask,\n ),\n [currentValue, currency, decimalScale, locale, mask, type],\n )\n\n const buildPayload = (\n rawValue: InputValue,\n eventType: InputEventType,\n char: string | null = null,\n ): InputPayload => ({\n rawValue,\n formattedValue: formatInputValue(\n rawValue,\n type,\n locale,\n decimalScale,\n currency,\n mask,\n ),\n error: Boolean(validate(rawValue)),\n char,\n eventType,\n })\n\n const emitChange = (payload: InputPayload, immediate = false) => {\n if (!controlled) setLocalValue(payload.rawValue)\n if (debounceRef.current) clearTimeout(debounceRef.current)\n if (!onChange) return\n if (immediate || debounceMs <= 0) onChange(payload)\n else debounceRef.current = setTimeout(() => onChange(payload), debounceMs)\n }\n\n useEffect(() => () => {\n if (debounceRef.current) clearTimeout(debounceRef.current)\n }, [])\n\n useEffect(() => {\n if (validateOnSubmit) setValidationError(validate(currentValue))\n // Validation intentionally runs when submit state changes.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [validateOnSubmit])\n\n const normalize = (text: string): InputValue => {\n if (type === 'phone' && mask) return text.replace(/\\D/g, '')\n if (isFormattedInputType(type)) {\n const parsed = parseInputNumber(text, locale)\n if (parsed === null) return text === '' ? null : text\n return allowNegative ? parsed : Math.abs(parsed)\n }\n return text\n }\n\n const handleChange = (text: string) => {\n const digits = text.replace(/\\D/g, '')\n if (\n limit &&\n (isFormattedInputType(type) || type === 'phone') &&\n digits.length > limit\n ) return\n if (limit && isLengthValidatedInputType(type) && text.length > limit) return\n const rawValue = normalize(text)\n if (typeof rawValue === 'number') {\n if (typeof min === 'number' && rawValue < min) return\n if (typeof max === 'number' && rawValue > max) return\n }\n setEditingValue(\n type === 'phone' && mask ? applyInputMask(rawValue, mask) : text,\n )\n emitChange(buildPayload(rawValue, 'change', text.slice(-1) || null))\n }\n\n const describedBy = [\n ariaDescribedBy,\n hint && !visibleError ? hintId : undefined,\n visibleError ? errorId : undefined,\n ].filter(Boolean).join(' ') || undefined\n\n if (readOnly) {\n return (\n <div className={['inconel-field', `inconel-size-${size}`, fullWidth ? 'inconel-field--full-width' : '', className ?? ''].join(' ')}>\n {label && <span className={['inconel-field__label', labelClassName ?? ''].join(' ')}>{label}</span>}\n <div className=\"inconel-input-readonly\" aria-label={label}>\n {formattedValue || readOnlyEmptyValue}\n </div>\n </div>\n )\n }\n\n return (\n <div className={['inconel-field', `inconel-size-${size}`, fullWidth ? 'inconel-field--full-width' : '', className ?? ''].join(' ')}>\n {label && (\n <label className={['inconel-field__label', labelClassName ?? ''].join(' ')} htmlFor={inputId}>\n {label}{required && <span className=\"inconel-field__required\" aria-hidden=\"true\"> *</span>}\n </label>\n )}\n <div className={['inconel-input-control', variant === 'plain' ? 'inconel-input-control--plain' : '', visibleError ? 'inconel-is-invalid' : '', disabled ? 'inconel-is-disabled' : ''].join(' ')}>\n {startAdornment && <span className=\"inconel-input-adornment\" aria-hidden=\"true\">{startAdornment}</span>}\n <input\n {...inputProps}\n ref={ref}\n id={inputId}\n type={type === 'password' || type === 'email' ? type : 'text'}\n inputMode={isFormattedInputType(type) ? 'decimal' : type === 'phone' ? 'tel' : undefined}\n value={focused ? editingValue : formattedValue}\n required={required}\n disabled={disabled}\n autoComplete={autoComplete}\n aria-invalid={Boolean(visibleError)}\n aria-describedby={describedBy}\n className={['inconel-input', inputClassName ?? ''].join(' ')}\n onChange={(event) => handleChange(event.target.value)}\n onFocus={(event) => {\n if (disabled) return\n setFocused(true)\n const editValue = type === 'phone' && mask\n ? applyInputMask(currentValue, mask)\n : isFormattedInputType(type)\n ? String(currentValue ?? '').replace('.', getInputSeparators(locale).decimal)\n : String(currentValue ?? '')\n setEditingValue(editValue)\n onFocus?.(buildPayload(currentValue, 'focus'), event)\n }}\n onBlur={(event) => {\n setFocused(false)\n if (debounceRef.current) clearTimeout(debounceRef.current)\n let rawValue = normalize(editingValue)\n if (typeof rawValue === 'number') {\n rawValue = roundInputNumber(rawValue, decimalScale, roundOnBlur ? roundMode : 'floor')\n }\n setValidationError(validate(rawValue))\n const payload = buildPayload(rawValue, 'blur')\n emitChange(payload, true)\n onBlur?.(payload, event)\n }}\n onKeyDown={(event) => {\n if (!allowNegative && (event.key === '-' || event.key === 'Subtract')) event.preventDefault()\n onKeyDown?.(buildPayload(currentValue, 'keydown', event.key), event)\n }}\n onMouseEnter={(event) => onMouseEnter?.(buildPayload(currentValue, 'mouseenter'), event)}\n onMouseLeave={(event) => onMouseLeave?.(buildPayload(currentValue, 'mouseleave'), event)}\n />\n {isClearable && !disabled && formattedValue && (\n <button\n type=\"button\"\n className=\"inconel-input-clear\"\n aria-label={resolvedClearButtonLabel}\n onClick={() => {\n setEditingValue('')\n setValidationError(validate(null))\n emitChange(buildPayload(null, 'clear'), true)\n }}\n >\n ×\n </button>\n )}\n {endAdornment && <span className=\"inconel-input-adornment\" aria-hidden=\"true\">{endAdornment}</span>}\n </div>\n <FieldFeedback\n hint={hint}\n errorMessage={visibleError}\n hintId={hintId}\n errorId={errorId}\n />\n </div>\n )\n})\n\nexport default Input\n"],"names":["Input","forwardRef","id","label","hint","errorMessage","startAdornment","endAdornment","fullWidth","inputClassName","labelClassName","className","required","disabled","value","defaultValue","onChange","onBlur","onFocus","onKeyDown","onMouseEnter","onMouseLeave","type","locale","currency","decimalScale","roundMode","roundOnBlur","min","max","allowNegative","debounceMs","validateOnSubmit","validationMessages","mask","limit","isClearable","readOnly","clearButtonLabel","readOnlyEmptyValue","size","variant","autoComplete","ariaDescribedBy","inputProps","ref","adapters","useInconelAdapters","resolvedClearButtonLabel","generatedId","useId","inputId","hintId","errorId","controlled","localValue","setLocalValue","useState","currentValue","editingValue","setEditingValue","focused","setFocused","validationError","setValidationError","debounceRef","useRef","messages","visibleError","validate","candidate","validateInputValue","formattedValue","useMemo","formatInputValue","buildPayload","rawValue","eventType","char","emitChange","payload","immediate","useEffect","normalize","text","isFormattedInputType","parsed","parseInputNumber","handleChange","digits","isLengthValidatedInputType","applyInputMask","describedBy","jsx","jsxs","event","editValue","getInputSeparators","roundInputNumber","FieldFeedback"],"mappings":"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"}
1
+ {"version":3,"file":"Input.cjs","sources":["../../../../src/components/Input/Input.tsx"],"sourcesContent":["import {\n forwardRef,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n type FocusEvent,\n type InputHTMLAttributes,\n type KeyboardEvent,\n type MouseEvent,\n type ReactNode,\n} from 'react'\n\nimport { useInconelAdapters } from '../../adapters'\nimport FieldFeedback from '../FieldFeedback/FieldFeedback'\nimport type { FieldFeedbackContentProps } from '../FieldFeedback/FieldFeedback'\nimport '../shared/field.css'\nimport '../shared/field-controls.css'\nimport '../shared/sizes.css'\nimport type { ControlSize } from '../shared/types'\nimport './styles.css'\nimport {\n applyInputMask,\n formatInputValue,\n getInputSeparators,\n isFormattedInputType,\n isLengthValidatedInputType,\n parseInputNumber,\n roundInputNumber,\n validateInputValue,\n} from './utils'\n\nexport type InputType =\n | 'text'\n | 'number'\n | 'currency'\n | 'percent'\n | 'phone'\n | 'email'\n | 'password'\n\nexport type InputRoundMode = 'ceil' | 'floor' | 'round'\nexport type InputValue = string | number | null\nexport type InputEventType =\n | 'change'\n | 'blur'\n | 'focus'\n | 'keydown'\n | 'mouseenter'\n | 'mouseleave'\n | 'clear'\n\nexport interface InputPayload {\n rawValue: InputValue\n formattedValue: string\n error: boolean\n char: string | null\n eventType: InputEventType\n}\n\nexport interface InputValidationMessages {\n required?: string\n invalidNumber?: string\n minNumber?: string\n maxNumber?: string\n minLength?: string\n maxLength?: string\n invalidPhone?: string\n invalidEmail?: string\n}\n\ntype NativeInputProps = Omit<\n InputHTMLAttributes<HTMLInputElement>,\n | 'type'\n | 'value'\n | 'defaultValue'\n | 'onChange'\n | 'onBlur'\n | 'onFocus'\n | 'onKeyDown'\n | 'onMouseEnter'\n | 'onMouseLeave'\n | 'min'\n | 'max'\n | 'size'\n | 'readOnly'\n>\n\nexport interface InputProps extends NativeInputProps, FieldFeedbackContentProps {\n label?: string\n startAdornment?: ReactNode\n endAdornment?: ReactNode\n fullWidth?: boolean\n inputClassName?: string\n labelClassName?: string\n value?: InputValue\n defaultValue?: InputValue\n onChange?: (payload: InputPayload) => void\n onBlur?: (payload: InputPayload, event: FocusEvent<HTMLInputElement>) => void\n onFocus?: (payload: InputPayload, event: FocusEvent<HTMLInputElement>) => void\n onKeyDown?: (\n payload: InputPayload,\n event: KeyboardEvent<HTMLInputElement>,\n ) => void\n onMouseEnter?: (\n payload: InputPayload,\n event: MouseEvent<HTMLInputElement>,\n ) => void\n onMouseLeave?: (\n payload: InputPayload,\n event: MouseEvent<HTMLInputElement>,\n ) => void\n type?: InputType\n locale?: string\n currency?: string\n decimalScale?: number\n roundMode?: InputRoundMode\n roundOnBlur?: boolean\n min?: number\n max?: number\n allowNegative?: boolean\n debounceMs?: number\n validateOnSubmit?: boolean\n validationMessages?: InputValidationMessages\n mask?: string\n limit?: number\n isClearable?: boolean\n readOnly?: boolean\n clearButtonLabel?: string\n readOnlyEmptyValue?: ReactNode\n size?: ControlSize\n variant?: 'outlined' | 'plain'\n}\n\nconst Input = forwardRef<HTMLInputElement, InputProps>(function Input(\n {\n id,\n label,\n hint,\n errorMessage,\n startAdornment,\n endAdornment,\n fullWidth = false,\n inputClassName,\n labelClassName,\n className,\n required,\n disabled,\n value,\n defaultValue = '',\n onChange,\n onBlur,\n onFocus,\n onKeyDown,\n onMouseEnter,\n onMouseLeave,\n type = 'text',\n locale = 'tr-TR',\n currency = 'TRY',\n decimalScale = 0,\n roundMode = 'floor',\n roundOnBlur = false,\n min,\n max,\n allowNegative = false,\n debounceMs = 0,\n validateOnSubmit = false,\n validationMessages,\n mask,\n limit,\n isClearable = false,\n readOnly = false,\n clearButtonLabel,\n readOnlyEmptyValue = null,\n size = 'md',\n variant = 'outlined',\n autoComplete = 'off',\n 'aria-describedby': ariaDescribedBy,\n ...inputProps\n },\n ref,\n) {\n const adapters = useInconelAdapters()\n const resolvedClearButtonLabel =\n clearButtonLabel ??\n String(adapters.translate?.('clear', 'Temizle') ?? 'Temizle')\n\n const generatedId = useId()\n const inputId = id ?? `inconel-input-${generatedId.replace(/:/g, '')}`\n const hintId = `${inputId}-hint`\n const errorId = `${inputId}-error`\n const controlled = value !== undefined\n const [localValue, setLocalValue] = useState<InputValue>(defaultValue)\n const currentValue = controlled ? value : localValue\n const [editingValue, setEditingValue] = useState('')\n const [focused, setFocused] = useState(false)\n const [validationError, setValidationError] = useState<string | null>(null)\n const debounceRef = useRef<ReturnType<typeof setTimeout> | null>(null)\n const messages = validationMessages ?? {}\n const visibleError = errorMessage ?? validationError\n\n const validate = (candidate: InputValue) =>\n validateInputValue(candidate, {\n required: Boolean(required),\n type,\n min,\n max,\n mask,\n messages,\n })\n\n const formattedValue = useMemo(\n () =>\n formatInputValue(\n currentValue,\n type,\n locale,\n decimalScale,\n currency,\n mask,\n ),\n [currentValue, currency, decimalScale, locale, mask, type],\n )\n\n const buildPayload = (\n rawValue: InputValue,\n eventType: InputEventType,\n char: string | null = null,\n ): InputPayload => ({\n rawValue,\n formattedValue: formatInputValue(\n rawValue,\n type,\n locale,\n decimalScale,\n currency,\n mask,\n ),\n error: Boolean(validate(rawValue)),\n char,\n eventType,\n })\n\n const emitChange = (payload: InputPayload, immediate = false) => {\n if (!controlled) setLocalValue(payload.rawValue)\n if (debounceRef.current) clearTimeout(debounceRef.current)\n if (!onChange) return\n if (immediate || debounceMs <= 0) onChange(payload)\n else debounceRef.current = setTimeout(() => onChange(payload), debounceMs)\n }\n\n useEffect(() => () => {\n if (debounceRef.current) clearTimeout(debounceRef.current)\n }, [])\n\n useEffect(() => {\n if (validateOnSubmit) setValidationError(validate(currentValue))\n // Validation intentionally runs when submit state changes.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [validateOnSubmit])\n\n const normalize = (text: string): InputValue => {\n if (type === 'phone' && mask) return text.replace(/\\D/g, '')\n if (isFormattedInputType(type)) {\n const parsed = parseInputNumber(text, locale)\n if (parsed === null) return null\n return allowNegative ? parsed : Math.abs(parsed)\n }\n return text\n }\n\n const handleChange = (text: string) => {\n const digits = text.replace(/\\D/g, '')\n if (\n limit &&\n (isFormattedInputType(type) || type === 'phone') &&\n digits.length > limit\n ) return\n if (limit && isLengthValidatedInputType(type) && text.length > limit) return\n const rawValue = normalize(text)\n if (typeof rawValue === 'number') {\n if (typeof min === 'number' && rawValue < min) return\n if (typeof max === 'number' && rawValue > max) return\n }\n setEditingValue(\n type === 'phone' && mask ? applyInputMask(rawValue, mask) : text,\n )\n emitChange(buildPayload(rawValue, 'change', text.slice(-1) || null))\n }\n\n const describedBy = [\n ariaDescribedBy,\n hint && !visibleError ? hintId : undefined,\n visibleError ? errorId : undefined,\n ].filter(Boolean).join(' ') || undefined\n\n if (readOnly) {\n return (\n <div className={['inconel-field', `inconel-size-${size}`, fullWidth ? 'inconel-field--full-width' : '', className ?? ''].join(' ')}>\n {label && <span className={['inconel-field__label', labelClassName ?? ''].join(' ')}>{label}</span>}\n <div className=\"inconel-input-readonly\" aria-label={label}>\n {formattedValue || readOnlyEmptyValue}\n </div>\n </div>\n )\n }\n\n return (\n <div className={['inconel-field', `inconel-size-${size}`, fullWidth ? 'inconel-field--full-width' : '', className ?? ''].join(' ')}>\n {label && (\n <label className={['inconel-field__label', labelClassName ?? ''].join(' ')} htmlFor={inputId}>\n {label}{required && <span className=\"inconel-field__required\" aria-hidden=\"true\"> *</span>}\n </label>\n )}\n <div className={['inconel-input-control', variant === 'plain' ? 'inconel-input-control--plain' : '', visibleError ? 'inconel-is-invalid' : '', disabled ? 'inconel-is-disabled' : ''].join(' ')}>\n {startAdornment && <span className=\"inconel-input-adornment\" aria-hidden=\"true\">{startAdornment}</span>}\n <input\n {...inputProps}\n ref={ref}\n id={inputId}\n type={type === 'password' || type === 'email' ? type : 'text'}\n inputMode={isFormattedInputType(type) ? 'decimal' : type === 'phone' ? 'tel' : undefined}\n value={focused ? editingValue : formattedValue}\n required={required}\n disabled={disabled}\n autoComplete={autoComplete}\n aria-invalid={Boolean(visibleError)}\n aria-describedby={describedBy}\n className={['inconel-input', inputClassName ?? ''].join(' ')}\n onChange={(event) => handleChange(event.target.value)}\n onFocus={(event) => {\n if (disabled) return\n setFocused(true)\n const editValue = type === 'phone' && mask\n ? applyInputMask(currentValue, mask)\n : isFormattedInputType(type)\n ? String(currentValue ?? '').replace('.', getInputSeparators(locale).decimal)\n : String(currentValue ?? '')\n setEditingValue(editValue)\n onFocus?.(buildPayload(currentValue, 'focus'), event)\n }}\n onBlur={(event) => {\n setFocused(false)\n if (debounceRef.current) clearTimeout(debounceRef.current)\n let rawValue = normalize(editingValue)\n if (typeof rawValue === 'number') {\n rawValue = roundInputNumber(rawValue, decimalScale, roundOnBlur ? roundMode : 'floor')\n }\n setValidationError(validate(rawValue))\n const payload = buildPayload(rawValue, 'blur')\n emitChange(payload, true)\n onBlur?.(payload, event)\n }}\n onKeyDown={(event) => {\n if (!allowNegative && (event.key === '-' || event.key === 'Subtract')) event.preventDefault()\n onKeyDown?.(buildPayload(currentValue, 'keydown', event.key), event)\n }}\n onMouseEnter={(event) => onMouseEnter?.(buildPayload(currentValue, 'mouseenter'), event)}\n onMouseLeave={(event) => onMouseLeave?.(buildPayload(currentValue, 'mouseleave'), event)}\n />\n {isClearable && !disabled && formattedValue && (\n <button\n type=\"button\"\n className=\"inconel-input-clear\"\n aria-label={resolvedClearButtonLabel}\n onClick={() => {\n setEditingValue('')\n setValidationError(validate(null))\n emitChange(buildPayload(null, 'clear'), true)\n }}\n >\n ×\n </button>\n )}\n {endAdornment && <span className=\"inconel-input-adornment\" aria-hidden=\"true\">{endAdornment}</span>}\n </div>\n <FieldFeedback\n hint={hint}\n errorMessage={visibleError}\n hintId={hintId}\n errorId={errorId}\n />\n </div>\n )\n})\n\nexport default Input\n"],"names":["Input","forwardRef","id","label","hint","errorMessage","startAdornment","endAdornment","fullWidth","inputClassName","labelClassName","className","required","disabled","value","defaultValue","onChange","onBlur","onFocus","onKeyDown","onMouseEnter","onMouseLeave","type","locale","currency","decimalScale","roundMode","roundOnBlur","min","max","allowNegative","debounceMs","validateOnSubmit","validationMessages","mask","limit","isClearable","readOnly","clearButtonLabel","readOnlyEmptyValue","size","variant","autoComplete","ariaDescribedBy","inputProps","ref","adapters","useInconelAdapters","resolvedClearButtonLabel","generatedId","useId","inputId","hintId","errorId","controlled","localValue","setLocalValue","useState","currentValue","editingValue","setEditingValue","focused","setFocused","validationError","setValidationError","debounceRef","useRef","messages","visibleError","validate","candidate","validateInputValue","formattedValue","useMemo","formatInputValue","buildPayload","rawValue","eventType","char","emitChange","payload","immediate","useEffect","normalize","text","isFormattedInputType","parsed","parseInputNumber","handleChange","digits","isLengthValidatedInputType","applyInputMask","describedBy","jsx","jsxs","event","editValue","getInputSeparators","roundInputNumber","FieldFeedback"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),n=require("react"),m=require("../shared/classNames.cjs"),se=require("./constants.cjs");;/* empty css */const ae=require("../../adapters/context.cjs"),le=require("../Svg/Svg.cjs"),C=require("../Button/Button.cjs");function ne({id:L,open:M,show:z,title:$,modalTitle:k,modalType:a="info",children:f,footer:v,customButtons:t,closeLabel:D=se.DEFAULT_MODAL_CLOSE_LABEL,closeButton:E=!0,closeOnBackdrop:F=!0,backdrop:_=!0,keyboard:O=!0,centered:S=!0,scrollable:w=!0,size:I="md",maximize:R=!1,maximizeIcon:U,fullSize:h=!1,hideFooter:A=!1,okText:i,okAction:o,okButtonType:H="button",cancelText:r,cancelAction:c,cancelButtonType:P="button",onClose:G,onHide:J,onShow:j,onEnter:b,onEntering:x,onEntered:N,onExit:p,onExiting:y,onExited:g,onEscapeKeyDown:K,dialogClassName:Q,backdropClassName:V,bodyClassName:W,className:X}){const q=ae.useInconelAdapters(),[Y,Z]=n.useState(!1),l=M??z??!1,d=()=>{G?.(),J?.()};if(n.useEffect(()=>{l?(b?.(),x?.(),j?.(),N?.()):(p?.(),y?.(),g?.())},[l,b,N,x,p,g,y,j]),n.useEffect(()=>{if(!l||!O)return;const s=ee=>{ee.key==="Escape"&&(K?.(),d())};return document.addEventListener("keydown",s),()=>document.removeEventListener("keydown",s)}),!l)return null;const u=$??k??q.translate?.(`modalTitle${a[0].toUpperCase()}${a.slice(1)}`,a==="success"?"Başarılı":a==="error"||a==="danger"?"Hata":"Bilgi"),B=U??q.assets?.maximize,T=!A&&(v!==void 0||t!==void 0||!!(r&&c)||!!(i&&o));return e.jsx("div",{className:m.classNames("inconel-modal-backdrop",V),role:"presentation",onMouseDown:s=>{_!=="static"&&_!==!1&&F&&s.target===s.currentTarget&&d()},children:e.jsxs("section",{id:L??void 0,className:m.classNames("inconel-modal",`inconel-modal--${I}`,`inconel-modal--${a}`,S&&"inconel-modal--centered",w&&"inconel-modal--scrollable",(Y||h)&&"inconel-is-maximized",h&&"inconel-is-full-size",Q,X),role:"dialog","aria-modal":"true","aria-label":typeof u=="string"?u:void 0,children:[e.jsxs("header",{className:"inconel-modal__header",children:[e.jsx("div",{className:"inconel-modal__title",children:u}),e.jsxs("div",{className:"inconel-modal__header-actions",children:[R&&e.jsx("button",{type:"button",className:"inconel-modal__maximize",onClick:()=>Z(s=>!s),"aria-label":"Büyüt",children:B?e.jsx(le.default,{src:B}):"□"}),E&&e.jsx("button",{type:"button",className:"inconel-modal__close","aria-label":D,onClick:d,children:"×"})]})]}),f&&e.jsx("div",{className:m.classNames("inconel-modal__content",W),children:f}),T&&e.jsx("footer",{className:"inconel-modal__footer",children:v??(t!==void 0?n.Children.toArray(t):e.jsxs(e.Fragment,{children:[r&&c&&e.jsx(C.Button,{type:P,variant:"secondary",onClick:c,children:r}),i&&o&&e.jsx(C.Button,{type:H,buttonType:"success",onClick:o,children:i})]}))})]})})}exports.Modal=ne;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),n=require("react"),m=require("../shared/classNames.cjs"),ae=require("./constants.cjs");;/* empty css */const le=require("../../adapters/context.cjs"),ne=require("../Svg/Svg.cjs"),C=require("../Button/Button.cjs");function te({id:L,open:M,show:z,title:$,modalTitle:k,modalType:a="info",children:f,footer:v,customButtons:t,closeLabel:D=ae.DEFAULT_MODAL_CLOSE_LABEL,closeButton:E=!0,closeOnBackdrop:F=!0,backdrop:_=!0,keyboard:O=!0,centered:S=!0,scrollable:w=!0,size:I="md",maximize:R=!1,maximizeIcon:U,fullSize:h=!1,hideHeader:A=!1,hideFooter:H=!1,okText:i,okAction:o,okButtonType:P="button",cancelText:r,cancelAction:c,cancelButtonType:G="button",onClose:J,onHide:K,onShow:j,onEnter:b,onEntering:x,onEntered:N,onExit:p,onExiting:y,onExited:g,onEscapeKeyDown:Q,dialogClassName:V,backdropClassName:W,bodyClassName:X,className:Y}){const q=le.useInconelAdapters(),[Z,T]=n.useState(!1),l=M??z??!1,d=()=>{J?.(),K?.()};if(n.useEffect(()=>{l?(b?.(),x?.(),j?.(),N?.()):(p?.(),y?.(),g?.())},[l,b,N,x,p,g,y,j]),n.useEffect(()=>{if(!l||!O)return;const s=se=>{se.key==="Escape"&&(Q?.(),d())};return document.addEventListener("keydown",s),()=>document.removeEventListener("keydown",s)}),!l)return null;const u=$??k??q.translate?.(`modalTitle${a[0].toUpperCase()}${a.slice(1)}`,a==="success"?"Başarılı":a==="error"||a==="danger"?"Hata":"Bilgi"),B=U??q.assets?.maximize,ee=!H&&(v!==void 0||t!==void 0||!!(r&&c)||!!(i&&o));return e.jsx("div",{className:m.classNames("inconel-modal-backdrop",W),role:"presentation",onMouseDown:s=>{_!=="static"&&_!==!1&&F&&s.target===s.currentTarget&&d()},children:e.jsxs("section",{id:L??void 0,className:m.classNames("inconel-modal",`inconel-modal--${I}`,`inconel-modal--${a}`,S&&"inconel-modal--centered",w&&"inconel-modal--scrollable",(Z||h)&&"inconel-is-maximized",h&&"inconel-is-full-size",V,Y),role:"dialog","aria-modal":"true","aria-label":typeof u=="string"?u:void 0,children:[!A&&e.jsxs("header",{className:"inconel-modal__header",children:[e.jsx("div",{className:"inconel-modal__title",children:u}),e.jsxs("div",{className:"inconel-modal__header-actions",children:[R&&e.jsx("button",{type:"button",className:"inconel-modal__maximize",onClick:()=>T(s=>!s),"aria-label":"Büyüt",children:B?e.jsx(ne.default,{src:B}):"□"}),E&&e.jsx("button",{type:"button",className:"inconel-modal__close","aria-label":D,onClick:d,children:"×"})]})]}),f&&e.jsx("div",{className:m.classNames("inconel-modal__content",X),children:f}),ee&&e.jsx("footer",{className:"inconel-modal__footer",children:v??(t!==void 0?n.Children.toArray(t):e.jsxs(e.Fragment,{children:[r&&c&&e.jsx(C.Button,{type:G,variant:"secondary",onClick:c,children:r}),i&&o&&e.jsx(C.Button,{type:P,buttonType:"success",onClick:o,children:i})]}))})]})})}exports.Modal=te;
2
2
  //# sourceMappingURL=Modal.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Modal.cjs","sources":["../../../../src/components/Modal/Modal.tsx"],"sourcesContent":["import {\n Children,\n useEffect,\n useState,\n type ButtonHTMLAttributes,\n type ReactNode,\n} from 'react'\n\nimport { useInconelAdapters } from '../../adapters'\nimport { Button } from '../Button'\nimport { classNames } from '../shared/classNames'\nimport { Svg } from '../Svg'\nimport { DEFAULT_MODAL_CLOSE_LABEL } from './constants'\nimport './styles.css'\n\nexport interface ModalProps {\n id?: string | null\n open?: boolean\n show?: boolean\n title?: ReactNode\n modalTitle?: ReactNode\n modalType?: 'info' | 'success' | 'error' | 'danger' | 'warning'\n children?: ReactNode\n footer?: ReactNode\n customButtons?: ReactNode\n closeLabel?: string\n closeButton?: boolean\n closeOnBackdrop?: boolean\n backdrop?: 'static' | boolean\n keyboard?: boolean\n centered?: boolean\n scrollable?: boolean\n size?: string\n maximize?: boolean\n maximizeIcon?: string\n fullSize?: boolean\n hideFooter?: boolean\n okText?: ReactNode\n okAction?: () => void\n okButtonType?: ButtonHTMLAttributes<HTMLButtonElement>['type']\n okButtonVariant?: string\n cancelText?: ReactNode\n cancelAction?: () => void\n cancelButtonType?: ButtonHTMLAttributes<HTMLButtonElement>['type']\n onClose?: () => void\n onHide?: () => void\n onShow?: () => void\n onEnter?: () => void\n onEntering?: () => void\n onEntered?: () => void\n onExit?: () => void\n onExiting?: () => void\n onExited?: () => void\n onEscapeKeyDown?: () => void\n dialogClassName?: string\n backdropClassName?: string\n bodyClassName?: string\n className?: string | null\n enforceFocus?: boolean\n}\n\nexport function Modal({\n id,\n open,\n show,\n title,\n modalTitle,\n modalType = 'info',\n children,\n footer,\n customButtons,\n closeLabel = DEFAULT_MODAL_CLOSE_LABEL,\n closeButton = true,\n closeOnBackdrop = true,\n backdrop = true,\n keyboard = true,\n centered = true,\n scrollable = true,\n size = 'md',\n maximize = false,\n maximizeIcon,\n fullSize = false,\n hideFooter = false,\n okText,\n okAction,\n okButtonType = 'button',\n cancelText,\n cancelAction,\n cancelButtonType = 'button',\n onClose,\n onHide,\n onShow,\n onEnter,\n onEntering,\n onEntered,\n onExit,\n onExiting,\n onExited,\n onEscapeKeyDown,\n dialogClassName,\n backdropClassName,\n bodyClassName,\n className,\n}: ModalProps) {\n const adapters = useInconelAdapters()\n const [maximized, setMaximized] = useState(false)\n const visible = open ?? show ?? false\n const close = () => {\n onClose?.()\n onHide?.()\n }\n\n useEffect(() => {\n if (visible) {\n onEnter?.()\n onEntering?.()\n onShow?.()\n onEntered?.()\n } else {\n onExit?.()\n onExiting?.()\n onExited?.()\n }\n }, [visible, onEnter, onEntered, onEntering, onExit, onExited, onExiting, onShow])\n\n useEffect(() => {\n if (!visible || !keyboard) return\n const handleEscape = (event: KeyboardEvent) => {\n if (event.key !== 'Escape') return\n onEscapeKeyDown?.()\n close()\n }\n document.addEventListener('keydown', handleEscape)\n return () => document.removeEventListener('keydown', handleEscape)\n })\n\n if (!visible) return null\n\n const resolvedTitle =\n title ??\n modalTitle ??\n adapters.translate?.(\n `modalTitle${modalType[0].toUpperCase()}${modalType.slice(1)}`,\n modalType === 'success'\n ? 'Başarılı'\n : modalType === 'error' || modalType === 'danger'\n ? 'Hata'\n : 'Bilgi',\n )\n const resolvedMaximizeIcon = maximizeIcon ?? adapters.assets?.maximize\n const hasFooter =\n !hideFooter &&\n (footer !== undefined ||\n customButtons !== undefined ||\n Boolean(cancelText && cancelAction) ||\n Boolean(okText && okAction))\n\n return (\n <div\n className={classNames('inconel-modal-backdrop', backdropClassName)}\n role=\"presentation\"\n onMouseDown={(event) => {\n if (\n backdrop !== 'static' &&\n backdrop !== false &&\n closeOnBackdrop &&\n event.target === event.currentTarget\n ) {\n close()\n }\n }}\n >\n <section\n id={id ?? undefined}\n className={classNames(\n 'inconel-modal',\n `inconel-modal--${size}`,\n `inconel-modal--${modalType}`,\n centered && 'inconel-modal--centered',\n scrollable && 'inconel-modal--scrollable',\n (maximized || fullSize) && 'inconel-is-maximized',\n fullSize && 'inconel-is-full-size',\n dialogClassName,\n className,\n )}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={typeof resolvedTitle === 'string' ? resolvedTitle : undefined}\n >\n <header className=\"inconel-modal__header\">\n <div className=\"inconel-modal__title\">{resolvedTitle}</div>\n <div className=\"inconel-modal__header-actions\">\n {maximize && (\n <button\n type=\"button\"\n className=\"inconel-modal__maximize\"\n onClick={() => setMaximized((current) => !current)}\n aria-label=\"Büyüt\"\n >\n {resolvedMaximizeIcon ? (\n <Svg src={resolvedMaximizeIcon} />\n ) : (\n '□'\n )}\n </button>\n )}\n {closeButton && (\n <button\n type=\"button\"\n className=\"inconel-modal__close\"\n aria-label={closeLabel}\n onClick={close}\n >\n ×\n </button>\n )}\n </div>\n </header>\n {children && (\n <div className={classNames('inconel-modal__content', bodyClassName)}>\n {children}\n </div>\n )}\n {hasFooter && (\n <footer className=\"inconel-modal__footer\">\n {footer ??\n (customButtons !== undefined ? (\n Children.toArray(customButtons)\n ) : (\n <>\n {cancelText && cancelAction && (\n <Button\n type={cancelButtonType}\n variant=\"secondary\"\n onClick={cancelAction}\n >\n {cancelText}\n </Button>\n )}\n {okText && okAction && (\n <Button\n type={okButtonType}\n buttonType=\"success\"\n onClick={okAction}\n >\n {okText}\n </Button>\n )}\n </>\n ))}\n </footer>\n )}\n </section>\n </div>\n )\n}\n"],"names":["Modal","id","open","show","title","modalTitle","modalType","children","footer","customButtons","closeLabel","DEFAULT_MODAL_CLOSE_LABEL","closeButton","closeOnBackdrop","backdrop","keyboard","centered","scrollable","size","maximize","maximizeIcon","fullSize","hideFooter","okText","okAction","okButtonType","cancelText","cancelAction","cancelButtonType","onClose","onHide","onShow","onEnter","onEntering","onEntered","onExit","onExiting","onExited","onEscapeKeyDown","dialogClassName","backdropClassName","bodyClassName","className","adapters","useInconelAdapters","maximized","setMaximized","useState","visible","close","useEffect","handleEscape","event","resolvedTitle","resolvedMaximizeIcon","hasFooter","jsx","classNames","jsxs","current","Svg","Children","Fragment","Button"],"mappings":"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"}
1
+ {"version":3,"file":"Modal.cjs","sources":["../../../../src/components/Modal/Modal.tsx"],"sourcesContent":["import {\n Children,\n useEffect,\n useState,\n type ButtonHTMLAttributes,\n type ReactNode,\n} from 'react'\n\nimport { useInconelAdapters } from '../../adapters'\nimport { Button } from '../Button'\nimport { classNames } from '../shared/classNames'\nimport { Svg } from '../Svg'\nimport { DEFAULT_MODAL_CLOSE_LABEL } from './constants'\nimport './styles.css'\n\nexport interface ModalProps {\n id?: string | null\n open?: boolean\n show?: boolean\n title?: ReactNode\n modalTitle?: ReactNode\n modalType?: 'info' | 'success' | 'error' | 'danger' | 'warning'\n children?: ReactNode\n footer?: ReactNode\n customButtons?: ReactNode\n closeLabel?: string\n closeButton?: boolean\n closeOnBackdrop?: boolean\n backdrop?: 'static' | boolean\n keyboard?: boolean\n centered?: boolean\n scrollable?: boolean\n size?: string\n maximize?: boolean\n maximizeIcon?: string\n fullSize?: boolean\n hideHeader?: boolean\n hideFooter?: boolean\n okText?: ReactNode\n okAction?: () => void\n okButtonType?: ButtonHTMLAttributes<HTMLButtonElement>['type']\n okButtonVariant?: string\n cancelText?: ReactNode\n cancelAction?: () => void\n cancelButtonType?: ButtonHTMLAttributes<HTMLButtonElement>['type']\n onClose?: () => void\n onHide?: () => void\n onShow?: () => void\n onEnter?: () => void\n onEntering?: () => void\n onEntered?: () => void\n onExit?: () => void\n onExiting?: () => void\n onExited?: () => void\n onEscapeKeyDown?: () => void\n dialogClassName?: string\n backdropClassName?: string\n bodyClassName?: string\n className?: string | null\n enforceFocus?: boolean\n}\n\nexport function Modal({\n id,\n open,\n show,\n title,\n modalTitle,\n modalType = 'info',\n children,\n footer,\n customButtons,\n closeLabel = DEFAULT_MODAL_CLOSE_LABEL,\n closeButton = true,\n closeOnBackdrop = true,\n backdrop = true,\n keyboard = true,\n centered = true,\n scrollable = true,\n size = 'md',\n maximize = false,\n maximizeIcon,\n fullSize = false,\n hideHeader = false,\n hideFooter = false,\n okText,\n okAction,\n okButtonType = 'button',\n cancelText,\n cancelAction,\n cancelButtonType = 'button',\n onClose,\n onHide,\n onShow,\n onEnter,\n onEntering,\n onEntered,\n onExit,\n onExiting,\n onExited,\n onEscapeKeyDown,\n dialogClassName,\n backdropClassName,\n bodyClassName,\n className,\n}: ModalProps) {\n const adapters = useInconelAdapters()\n const [maximized, setMaximized] = useState(false)\n const visible = open ?? show ?? false\n const close = () => {\n onClose?.()\n onHide?.()\n }\n\n useEffect(() => {\n if (visible) {\n onEnter?.()\n onEntering?.()\n onShow?.()\n onEntered?.()\n } else {\n onExit?.()\n onExiting?.()\n onExited?.()\n }\n }, [visible, onEnter, onEntered, onEntering, onExit, onExited, onExiting, onShow])\n\n useEffect(() => {\n if (!visible || !keyboard) return\n const handleEscape = (event: KeyboardEvent) => {\n if (event.key !== 'Escape') return\n onEscapeKeyDown?.()\n close()\n }\n document.addEventListener('keydown', handleEscape)\n return () => document.removeEventListener('keydown', handleEscape)\n })\n\n if (!visible) return null\n\n const resolvedTitle =\n title ??\n modalTitle ??\n adapters.translate?.(\n `modalTitle${modalType[0].toUpperCase()}${modalType.slice(1)}`,\n modalType === 'success'\n ? 'Başarılı'\n : modalType === 'error' || modalType === 'danger'\n ? 'Hata'\n : 'Bilgi',\n )\n const resolvedMaximizeIcon = maximizeIcon ?? adapters.assets?.maximize\n const hasFooter =\n !hideFooter &&\n (footer !== undefined ||\n customButtons !== undefined ||\n Boolean(cancelText && cancelAction) ||\n Boolean(okText && okAction))\n\n return (\n <div\n className={classNames('inconel-modal-backdrop', backdropClassName)}\n role=\"presentation\"\n onMouseDown={(event) => {\n if (\n backdrop !== 'static' &&\n backdrop !== false &&\n closeOnBackdrop &&\n event.target === event.currentTarget\n ) {\n close()\n }\n }}\n >\n <section\n id={id ?? undefined}\n className={classNames(\n 'inconel-modal',\n `inconel-modal--${size}`,\n `inconel-modal--${modalType}`,\n centered && 'inconel-modal--centered',\n scrollable && 'inconel-modal--scrollable',\n (maximized || fullSize) && 'inconel-is-maximized',\n fullSize && 'inconel-is-full-size',\n dialogClassName,\n className,\n )}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={typeof resolvedTitle === 'string' ? resolvedTitle : undefined}\n >\n {!hideHeader && (\n <header className=\"inconel-modal__header\">\n <div className=\"inconel-modal__title\">{resolvedTitle}</div>\n <div className=\"inconel-modal__header-actions\">\n {maximize && (\n <button\n type=\"button\"\n className=\"inconel-modal__maximize\"\n onClick={() => setMaximized((current) => !current)}\n aria-label=\"Büyüt\"\n >\n {resolvedMaximizeIcon ? (\n <Svg src={resolvedMaximizeIcon} />\n ) : (\n '□'\n )}\n </button>\n )}\n {closeButton && (\n <button\n type=\"button\"\n className=\"inconel-modal__close\"\n aria-label={closeLabel}\n onClick={close}\n >\n ×\n </button>\n )}\n </div>\n </header>\n )}\n {children && (\n <div className={classNames('inconel-modal__content', bodyClassName)}>\n {children}\n </div>\n )}\n {hasFooter && (\n <footer className=\"inconel-modal__footer\">\n {footer ??\n (customButtons !== undefined ? (\n Children.toArray(customButtons)\n ) : (\n <>\n {cancelText && cancelAction && (\n <Button\n type={cancelButtonType}\n variant=\"secondary\"\n onClick={cancelAction}\n >\n {cancelText}\n </Button>\n )}\n {okText && okAction && (\n <Button\n type={okButtonType}\n buttonType=\"success\"\n onClick={okAction}\n >\n {okText}\n </Button>\n )}\n </>\n ))}\n </footer>\n )}\n </section>\n </div>\n )\n}\n"],"names":["Modal","id","open","show","title","modalTitle","modalType","children","footer","customButtons","closeLabel","DEFAULT_MODAL_CLOSE_LABEL","closeButton","closeOnBackdrop","backdrop","keyboard","centered","scrollable","size","maximize","maximizeIcon","fullSize","hideHeader","hideFooter","okText","okAction","okButtonType","cancelText","cancelAction","cancelButtonType","onClose","onHide","onShow","onEnter","onEntering","onEntered","onExit","onExiting","onExited","onEscapeKeyDown","dialogClassName","backdropClassName","bodyClassName","className","adapters","useInconelAdapters","maximized","setMaximized","useState","visible","close","useEffect","handleEscape","event","resolvedTitle","resolvedMaximizeIcon","hasFooter","jsx","classNames","jsxs","current","Svg","Children","Fragment","Button"],"mappings":"sVA8DO,SAASA,GAAM,CACpB,GAAAC,EACA,KAAAC,EACA,KAAAC,EACA,MAAAC,EACA,WAAAC,EACA,UAAAC,EAAY,OACZ,SAAAC,EACA,OAAAC,EACA,cAAAC,EACA,WAAAC,EAAaC,GAAAA,0BACb,YAAAC,EAAc,GACd,gBAAAC,EAAkB,GAClB,SAAAC,EAAW,GACX,SAAAC,EAAW,GACX,SAAAC,EAAW,GACX,WAAAC,EAAa,GACb,KAAAC,EAAO,KACP,SAAAC,EAAW,GACX,aAAAC,EACA,SAAAC,EAAW,GACX,WAAAC,EAAa,GACb,WAAAC,EAAa,GACb,OAAAC,EACA,SAAAC,EACA,aAAAC,EAAe,SACf,WAAAC,EACA,aAAAC,EACA,iBAAAC,EAAmB,SACnB,QAAAC,EACA,OAAAC,EACA,OAAAC,EACA,QAAAC,EACA,WAAAC,EACA,UAAAC,EACA,OAAAC,EACA,UAAAC,EACA,SAAAC,EACA,gBAAAC,EACA,gBAAAC,EACA,kBAAAC,EACA,cAAAC,EACA,UAAAC,CACF,EAAe,CACb,MAAMC,EAAWC,GAAAA,mBAAA,EACX,CAACC,EAAWC,CAAY,EAAIC,EAAAA,SAAS,EAAK,EAC1CC,EAAU/C,GAAQC,GAAQ,GAC1B+C,EAAQ,IAAM,CAClBpB,IAAA,EACAC,IAAA,CACF,EA0BA,GAxBAoB,EAAAA,UAAU,IAAM,CACVF,GACFhB,IAAA,EACAC,IAAA,EACAF,IAAA,EACAG,IAAA,IAEAC,IAAA,EACAC,IAAA,EACAC,IAAA,EAEJ,EAAG,CAACW,EAAShB,EAASE,EAAWD,EAAYE,EAAQE,EAAUD,EAAWL,CAAM,CAAC,EAEjFmB,EAAAA,UAAU,IAAM,CACd,GAAI,CAACF,GAAW,CAAClC,EAAU,OAC3B,MAAMqC,EAAgBC,IAAyB,CACzCA,GAAM,MAAQ,WAClBd,IAAA,EACAW,EAAA,EACF,EACA,gBAAS,iBAAiB,UAAWE,CAAY,EAC1C,IAAM,SAAS,oBAAoB,UAAWA,CAAY,CACnE,CAAC,EAEG,CAACH,EAAS,OAAO,KAErB,MAAMK,EACJlD,GACAC,GACAuC,EAAS,YACP,aAAatC,EAAU,CAAC,EAAE,aAAa,GAAGA,EAAU,MAAM,CAAC,CAAC,GAC5DA,IAAc,UACV,WACAA,IAAc,SAAWA,IAAc,SACrC,OACA,OAAA,EAEJiD,EAAuBnC,GAAgBwB,EAAS,QAAQ,SACxDY,GACJ,CAACjC,IACAf,IAAW,QACVC,IAAkB,QAClB,GAAQkB,GAAcC,IACtB,GAAQJ,GAAUC,IAEtB,OACEgC,EAAAA,IAAC,MAAA,CACC,UAAWC,EAAAA,WAAW,yBAA0BjB,CAAiB,EACjE,KAAK,eACL,YAAcY,GAAU,CAEpBvC,IAAa,UACbA,IAAa,IACbD,GACAwC,EAAM,SAAWA,EAAM,eAEvBH,EAAA,CAEJ,EAEA,SAAAS,EAAAA,KAAC,UAAA,CACC,GAAI1D,GAAM,OACV,UAAWyD,EAAAA,WACT,gBACA,kBAAkBxC,CAAI,GACtB,kBAAkBZ,CAAS,GAC3BU,GAAY,0BACZC,GAAc,6BACb6B,GAAazB,IAAa,uBAC3BA,GAAY,uBACZmB,EACAG,CAAA,EAEF,KAAK,SACL,aAAW,OACX,aAAY,OAAOW,GAAkB,SAAWA,EAAgB,OAE/D,SAAA,CAAA,CAAChC,GACAqC,EAAAA,KAAC,SAAA,CAAO,UAAU,wBAChB,SAAA,CAAAF,EAAAA,IAAC,MAAA,CAAI,UAAU,uBAAwB,SAAAH,EAAc,EACrDK,EAAAA,KAAC,MAAA,CAAI,UAAU,gCACZ,SAAA,CAAAxC,GACCsC,EAAAA,IAAC,SAAA,CACC,KAAK,SACL,UAAU,0BACV,QAAS,IAAMV,EAAca,GAAY,CAACA,CAAO,EACjD,aAAW,QAEV,SAAAL,EACCE,MAACI,GAAAA,QAAA,CAAI,IAAKN,EAAsB,EAEhC,GAAA,CAAA,EAIL3C,GACC6C,EAAAA,IAAC,SAAA,CACC,KAAK,SACL,UAAU,uBACV,aAAY/C,EACZ,QAASwC,EACV,SAAA,GAAA,CAAA,CAED,CAAA,CAEJ,CAAA,EACF,EAED3C,SACE,MAAA,CAAI,UAAWmD,EAAAA,WAAW,yBAA0BhB,CAAa,EAC/D,SAAAnC,EACH,EAEDiD,IACCC,EAAAA,IAAC,SAAA,CAAO,UAAU,wBACf,SAAAjD,IACEC,IAAkB,OACjBqD,EAAAA,SAAS,QAAQrD,CAAa,EAE9BkD,EAAAA,KAAAI,EAAAA,SAAA,CACG,SAAA,CAAApC,GAAcC,GACb6B,EAAAA,IAACO,EAAAA,OAAA,CACC,KAAMnC,EACN,QAAQ,YACR,QAASD,EAER,SAAAD,CAAA,CAAA,EAGJH,GAAUC,GACTgC,EAAAA,IAACO,EAAAA,OAAA,CACC,KAAMtC,EACN,WAAW,UACX,QAASD,EAER,SAAAD,CAAA,CAAA,CACH,CAAA,CAEJ,EAAA,CAEN,CAAA,CAAA,CAAA,CAEJ,CAAA,CAGN"}
@@ -94,7 +94,7 @@ const Xe = Ee(function({
94
94
  if (n === "phone" && l) return e.replace(/\D/g, "");
95
95
  if (v(n)) {
96
96
  const r = De(e, c);
97
- return r === null ? e === "" ? null : e : S ? r : Math.abs(r);
97
+ return r === null ? null : S ? r : Math.abs(r);
98
98
  }
99
99
  return e;
100
100
  }, Be = (e) => {
@@ -1 +1 @@
1
- {"version":3,"file":"Input.js","sources":["../../../src/components/Input/Input.tsx"],"sourcesContent":["import {\n forwardRef,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n type FocusEvent,\n type InputHTMLAttributes,\n type KeyboardEvent,\n type MouseEvent,\n type ReactNode,\n} from 'react'\n\nimport { useInconelAdapters } from '../../adapters'\nimport FieldFeedback from '../FieldFeedback/FieldFeedback'\nimport type { FieldFeedbackContentProps } from '../FieldFeedback/FieldFeedback'\nimport '../shared/field.css'\nimport '../shared/field-controls.css'\nimport '../shared/sizes.css'\nimport type { ControlSize } from '../shared/types'\nimport './styles.css'\nimport {\n applyInputMask,\n formatInputValue,\n getInputSeparators,\n isFormattedInputType,\n isLengthValidatedInputType,\n parseInputNumber,\n roundInputNumber,\n validateInputValue,\n} from './utils'\n\nexport type InputType =\n | 'text'\n | 'number'\n | 'currency'\n | 'percent'\n | 'phone'\n | 'email'\n | 'password'\n\nexport type InputRoundMode = 'ceil' | 'floor' | 'round'\nexport type InputValue = string | number | null\nexport type InputEventType =\n | 'change'\n | 'blur'\n | 'focus'\n | 'keydown'\n | 'mouseenter'\n | 'mouseleave'\n | 'clear'\n\nexport interface InputPayload {\n rawValue: InputValue\n formattedValue: string\n error: boolean\n char: string | null\n eventType: InputEventType\n}\n\nexport interface InputValidationMessages {\n required?: string\n invalidNumber?: string\n minNumber?: string\n maxNumber?: string\n minLength?: string\n maxLength?: string\n invalidPhone?: string\n invalidEmail?: string\n}\n\ntype NativeInputProps = Omit<\n InputHTMLAttributes<HTMLInputElement>,\n | 'type'\n | 'value'\n | 'defaultValue'\n | 'onChange'\n | 'onBlur'\n | 'onFocus'\n | 'onKeyDown'\n | 'onMouseEnter'\n | 'onMouseLeave'\n | 'min'\n | 'max'\n | 'size'\n | 'readOnly'\n>\n\nexport interface InputProps extends NativeInputProps, FieldFeedbackContentProps {\n label?: string\n startAdornment?: ReactNode\n endAdornment?: ReactNode\n fullWidth?: boolean\n inputClassName?: string\n labelClassName?: string\n value?: InputValue\n defaultValue?: InputValue\n onChange?: (payload: InputPayload) => void\n onBlur?: (payload: InputPayload, event: FocusEvent<HTMLInputElement>) => void\n onFocus?: (payload: InputPayload, event: FocusEvent<HTMLInputElement>) => void\n onKeyDown?: (\n payload: InputPayload,\n event: KeyboardEvent<HTMLInputElement>,\n ) => void\n onMouseEnter?: (\n payload: InputPayload,\n event: MouseEvent<HTMLInputElement>,\n ) => void\n onMouseLeave?: (\n payload: InputPayload,\n event: MouseEvent<HTMLInputElement>,\n ) => void\n type?: InputType\n locale?: string\n currency?: string\n decimalScale?: number\n roundMode?: InputRoundMode\n roundOnBlur?: boolean\n min?: number\n max?: number\n allowNegative?: boolean\n debounceMs?: number\n validateOnSubmit?: boolean\n validationMessages?: InputValidationMessages\n mask?: string\n limit?: number\n isClearable?: boolean\n readOnly?: boolean\n clearButtonLabel?: string\n readOnlyEmptyValue?: ReactNode\n size?: ControlSize\n variant?: 'outlined' | 'plain'\n}\n\nconst Input = forwardRef<HTMLInputElement, InputProps>(function Input(\n {\n id,\n label,\n hint,\n errorMessage,\n startAdornment,\n endAdornment,\n fullWidth = false,\n inputClassName,\n labelClassName,\n className,\n required,\n disabled,\n value,\n defaultValue = '',\n onChange,\n onBlur,\n onFocus,\n onKeyDown,\n onMouseEnter,\n onMouseLeave,\n type = 'text',\n locale = 'tr-TR',\n currency = 'TRY',\n decimalScale = 0,\n roundMode = 'floor',\n roundOnBlur = false,\n min,\n max,\n allowNegative = false,\n debounceMs = 0,\n validateOnSubmit = false,\n validationMessages,\n mask,\n limit,\n isClearable = false,\n readOnly = false,\n clearButtonLabel,\n readOnlyEmptyValue = null,\n size = 'md',\n variant = 'outlined',\n autoComplete = 'off',\n 'aria-describedby': ariaDescribedBy,\n ...inputProps\n },\n ref,\n) {\n const adapters = useInconelAdapters()\n const resolvedClearButtonLabel =\n clearButtonLabel ??\n String(adapters.translate?.('clear', 'Temizle') ?? 'Temizle')\n\n const generatedId = useId()\n const inputId = id ?? `inconel-input-${generatedId.replace(/:/g, '')}`\n const hintId = `${inputId}-hint`\n const errorId = `${inputId}-error`\n const controlled = value !== undefined\n const [localValue, setLocalValue] = useState<InputValue>(defaultValue)\n const currentValue = controlled ? value : localValue\n const [editingValue, setEditingValue] = useState('')\n const [focused, setFocused] = useState(false)\n const [validationError, setValidationError] = useState<string | null>(null)\n const debounceRef = useRef<ReturnType<typeof setTimeout> | null>(null)\n const messages = validationMessages ?? {}\n const visibleError = errorMessage ?? validationError\n\n const validate = (candidate: InputValue) =>\n validateInputValue(candidate, {\n required: Boolean(required),\n type,\n min,\n max,\n mask,\n messages,\n })\n\n const formattedValue = useMemo(\n () =>\n formatInputValue(\n currentValue,\n type,\n locale,\n decimalScale,\n currency,\n mask,\n ),\n [currentValue, currency, decimalScale, locale, mask, type],\n )\n\n const buildPayload = (\n rawValue: InputValue,\n eventType: InputEventType,\n char: string | null = null,\n ): InputPayload => ({\n rawValue,\n formattedValue: formatInputValue(\n rawValue,\n type,\n locale,\n decimalScale,\n currency,\n mask,\n ),\n error: Boolean(validate(rawValue)),\n char,\n eventType,\n })\n\n const emitChange = (payload: InputPayload, immediate = false) => {\n if (!controlled) setLocalValue(payload.rawValue)\n if (debounceRef.current) clearTimeout(debounceRef.current)\n if (!onChange) return\n if (immediate || debounceMs <= 0) onChange(payload)\n else debounceRef.current = setTimeout(() => onChange(payload), debounceMs)\n }\n\n useEffect(() => () => {\n if (debounceRef.current) clearTimeout(debounceRef.current)\n }, [])\n\n useEffect(() => {\n if (validateOnSubmit) setValidationError(validate(currentValue))\n // Validation intentionally runs when submit state changes.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [validateOnSubmit])\n\n const normalize = (text: string): InputValue => {\n if (type === 'phone' && mask) return text.replace(/\\D/g, '')\n if (isFormattedInputType(type)) {\n const parsed = parseInputNumber(text, locale)\n if (parsed === null) return text === '' ? null : text\n return allowNegative ? parsed : Math.abs(parsed)\n }\n return text\n }\n\n const handleChange = (text: string) => {\n const digits = text.replace(/\\D/g, '')\n if (\n limit &&\n (isFormattedInputType(type) || type === 'phone') &&\n digits.length > limit\n ) return\n if (limit && isLengthValidatedInputType(type) && text.length > limit) return\n const rawValue = normalize(text)\n if (typeof rawValue === 'number') {\n if (typeof min === 'number' && rawValue < min) return\n if (typeof max === 'number' && rawValue > max) return\n }\n setEditingValue(\n type === 'phone' && mask ? applyInputMask(rawValue, mask) : text,\n )\n emitChange(buildPayload(rawValue, 'change', text.slice(-1) || null))\n }\n\n const describedBy = [\n ariaDescribedBy,\n hint && !visibleError ? hintId : undefined,\n visibleError ? errorId : undefined,\n ].filter(Boolean).join(' ') || undefined\n\n if (readOnly) {\n return (\n <div className={['inconel-field', `inconel-size-${size}`, fullWidth ? 'inconel-field--full-width' : '', className ?? ''].join(' ')}>\n {label && <span className={['inconel-field__label', labelClassName ?? ''].join(' ')}>{label}</span>}\n <div className=\"inconel-input-readonly\" aria-label={label}>\n {formattedValue || readOnlyEmptyValue}\n </div>\n </div>\n )\n }\n\n return (\n <div className={['inconel-field', `inconel-size-${size}`, fullWidth ? 'inconel-field--full-width' : '', className ?? ''].join(' ')}>\n {label && (\n <label className={['inconel-field__label', labelClassName ?? ''].join(' ')} htmlFor={inputId}>\n {label}{required && <span className=\"inconel-field__required\" aria-hidden=\"true\"> *</span>}\n </label>\n )}\n <div className={['inconel-input-control', variant === 'plain' ? 'inconel-input-control--plain' : '', visibleError ? 'inconel-is-invalid' : '', disabled ? 'inconel-is-disabled' : ''].join(' ')}>\n {startAdornment && <span className=\"inconel-input-adornment\" aria-hidden=\"true\">{startAdornment}</span>}\n <input\n {...inputProps}\n ref={ref}\n id={inputId}\n type={type === 'password' || type === 'email' ? type : 'text'}\n inputMode={isFormattedInputType(type) ? 'decimal' : type === 'phone' ? 'tel' : undefined}\n value={focused ? editingValue : formattedValue}\n required={required}\n disabled={disabled}\n autoComplete={autoComplete}\n aria-invalid={Boolean(visibleError)}\n aria-describedby={describedBy}\n className={['inconel-input', inputClassName ?? ''].join(' ')}\n onChange={(event) => handleChange(event.target.value)}\n onFocus={(event) => {\n if (disabled) return\n setFocused(true)\n const editValue = type === 'phone' && mask\n ? applyInputMask(currentValue, mask)\n : isFormattedInputType(type)\n ? String(currentValue ?? '').replace('.', getInputSeparators(locale).decimal)\n : String(currentValue ?? '')\n setEditingValue(editValue)\n onFocus?.(buildPayload(currentValue, 'focus'), event)\n }}\n onBlur={(event) => {\n setFocused(false)\n if (debounceRef.current) clearTimeout(debounceRef.current)\n let rawValue = normalize(editingValue)\n if (typeof rawValue === 'number') {\n rawValue = roundInputNumber(rawValue, decimalScale, roundOnBlur ? roundMode : 'floor')\n }\n setValidationError(validate(rawValue))\n const payload = buildPayload(rawValue, 'blur')\n emitChange(payload, true)\n onBlur?.(payload, event)\n }}\n onKeyDown={(event) => {\n if (!allowNegative && (event.key === '-' || event.key === 'Subtract')) event.preventDefault()\n onKeyDown?.(buildPayload(currentValue, 'keydown', event.key), event)\n }}\n onMouseEnter={(event) => onMouseEnter?.(buildPayload(currentValue, 'mouseenter'), event)}\n onMouseLeave={(event) => onMouseLeave?.(buildPayload(currentValue, 'mouseleave'), event)}\n />\n {isClearable && !disabled && formattedValue && (\n <button\n type=\"button\"\n className=\"inconel-input-clear\"\n aria-label={resolvedClearButtonLabel}\n onClick={() => {\n setEditingValue('')\n setValidationError(validate(null))\n emitChange(buildPayload(null, 'clear'), true)\n }}\n >\n ×\n </button>\n )}\n {endAdornment && <span className=\"inconel-input-adornment\" aria-hidden=\"true\">{endAdornment}</span>}\n </div>\n <FieldFeedback\n hint={hint}\n errorMessage={visibleError}\n hintId={hintId}\n errorId={errorId}\n />\n </div>\n )\n})\n\nexport default Input\n"],"names":["Input","forwardRef","id","label","hint","errorMessage","startAdornment","endAdornment","fullWidth","inputClassName","labelClassName","className","required","disabled","value","defaultValue","onChange","onBlur","onFocus","onKeyDown","onMouseEnter","onMouseLeave","type","locale","currency","decimalScale","roundMode","roundOnBlur","min","max","allowNegative","debounceMs","validateOnSubmit","validationMessages","mask","limit","isClearable","readOnly","clearButtonLabel","readOnlyEmptyValue","size","variant","autoComplete","ariaDescribedBy","inputProps","ref","adapters","useInconelAdapters","resolvedClearButtonLabel","generatedId","useId","inputId","hintId","errorId","controlled","localValue","setLocalValue","useState","currentValue","editingValue","setEditingValue","focused","setFocused","validationError","setValidationError","debounceRef","useRef","messages","visibleError","validate","candidate","validateInputValue","formattedValue","useMemo","formatInputValue","buildPayload","rawValue","eventType","char","emitChange","payload","immediate","useEffect","normalize","text","isFormattedInputType","parsed","parseInputNumber","handleChange","digits","isLengthValidatedInputType","applyInputMask","describedBy","jsx","jsxs","event","editValue","getInputSeparators","roundInputNumber","FieldFeedback"],"mappings":"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"}
1
+ {"version":3,"file":"Input.js","sources":["../../../src/components/Input/Input.tsx"],"sourcesContent":["import {\n forwardRef,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n type FocusEvent,\n type InputHTMLAttributes,\n type KeyboardEvent,\n type MouseEvent,\n type ReactNode,\n} from 'react'\n\nimport { useInconelAdapters } from '../../adapters'\nimport FieldFeedback from '../FieldFeedback/FieldFeedback'\nimport type { FieldFeedbackContentProps } from '../FieldFeedback/FieldFeedback'\nimport '../shared/field.css'\nimport '../shared/field-controls.css'\nimport '../shared/sizes.css'\nimport type { ControlSize } from '../shared/types'\nimport './styles.css'\nimport {\n applyInputMask,\n formatInputValue,\n getInputSeparators,\n isFormattedInputType,\n isLengthValidatedInputType,\n parseInputNumber,\n roundInputNumber,\n validateInputValue,\n} from './utils'\n\nexport type InputType =\n | 'text'\n | 'number'\n | 'currency'\n | 'percent'\n | 'phone'\n | 'email'\n | 'password'\n\nexport type InputRoundMode = 'ceil' | 'floor' | 'round'\nexport type InputValue = string | number | null\nexport type InputEventType =\n | 'change'\n | 'blur'\n | 'focus'\n | 'keydown'\n | 'mouseenter'\n | 'mouseleave'\n | 'clear'\n\nexport interface InputPayload {\n rawValue: InputValue\n formattedValue: string\n error: boolean\n char: string | null\n eventType: InputEventType\n}\n\nexport interface InputValidationMessages {\n required?: string\n invalidNumber?: string\n minNumber?: string\n maxNumber?: string\n minLength?: string\n maxLength?: string\n invalidPhone?: string\n invalidEmail?: string\n}\n\ntype NativeInputProps = Omit<\n InputHTMLAttributes<HTMLInputElement>,\n | 'type'\n | 'value'\n | 'defaultValue'\n | 'onChange'\n | 'onBlur'\n | 'onFocus'\n | 'onKeyDown'\n | 'onMouseEnter'\n | 'onMouseLeave'\n | 'min'\n | 'max'\n | 'size'\n | 'readOnly'\n>\n\nexport interface InputProps extends NativeInputProps, FieldFeedbackContentProps {\n label?: string\n startAdornment?: ReactNode\n endAdornment?: ReactNode\n fullWidth?: boolean\n inputClassName?: string\n labelClassName?: string\n value?: InputValue\n defaultValue?: InputValue\n onChange?: (payload: InputPayload) => void\n onBlur?: (payload: InputPayload, event: FocusEvent<HTMLInputElement>) => void\n onFocus?: (payload: InputPayload, event: FocusEvent<HTMLInputElement>) => void\n onKeyDown?: (\n payload: InputPayload,\n event: KeyboardEvent<HTMLInputElement>,\n ) => void\n onMouseEnter?: (\n payload: InputPayload,\n event: MouseEvent<HTMLInputElement>,\n ) => void\n onMouseLeave?: (\n payload: InputPayload,\n event: MouseEvent<HTMLInputElement>,\n ) => void\n type?: InputType\n locale?: string\n currency?: string\n decimalScale?: number\n roundMode?: InputRoundMode\n roundOnBlur?: boolean\n min?: number\n max?: number\n allowNegative?: boolean\n debounceMs?: number\n validateOnSubmit?: boolean\n validationMessages?: InputValidationMessages\n mask?: string\n limit?: number\n isClearable?: boolean\n readOnly?: boolean\n clearButtonLabel?: string\n readOnlyEmptyValue?: ReactNode\n size?: ControlSize\n variant?: 'outlined' | 'plain'\n}\n\nconst Input = forwardRef<HTMLInputElement, InputProps>(function Input(\n {\n id,\n label,\n hint,\n errorMessage,\n startAdornment,\n endAdornment,\n fullWidth = false,\n inputClassName,\n labelClassName,\n className,\n required,\n disabled,\n value,\n defaultValue = '',\n onChange,\n onBlur,\n onFocus,\n onKeyDown,\n onMouseEnter,\n onMouseLeave,\n type = 'text',\n locale = 'tr-TR',\n currency = 'TRY',\n decimalScale = 0,\n roundMode = 'floor',\n roundOnBlur = false,\n min,\n max,\n allowNegative = false,\n debounceMs = 0,\n validateOnSubmit = false,\n validationMessages,\n mask,\n limit,\n isClearable = false,\n readOnly = false,\n clearButtonLabel,\n readOnlyEmptyValue = null,\n size = 'md',\n variant = 'outlined',\n autoComplete = 'off',\n 'aria-describedby': ariaDescribedBy,\n ...inputProps\n },\n ref,\n) {\n const adapters = useInconelAdapters()\n const resolvedClearButtonLabel =\n clearButtonLabel ??\n String(adapters.translate?.('clear', 'Temizle') ?? 'Temizle')\n\n const generatedId = useId()\n const inputId = id ?? `inconel-input-${generatedId.replace(/:/g, '')}`\n const hintId = `${inputId}-hint`\n const errorId = `${inputId}-error`\n const controlled = value !== undefined\n const [localValue, setLocalValue] = useState<InputValue>(defaultValue)\n const currentValue = controlled ? value : localValue\n const [editingValue, setEditingValue] = useState('')\n const [focused, setFocused] = useState(false)\n const [validationError, setValidationError] = useState<string | null>(null)\n const debounceRef = useRef<ReturnType<typeof setTimeout> | null>(null)\n const messages = validationMessages ?? {}\n const visibleError = errorMessage ?? validationError\n\n const validate = (candidate: InputValue) =>\n validateInputValue(candidate, {\n required: Boolean(required),\n type,\n min,\n max,\n mask,\n messages,\n })\n\n const formattedValue = useMemo(\n () =>\n formatInputValue(\n currentValue,\n type,\n locale,\n decimalScale,\n currency,\n mask,\n ),\n [currentValue, currency, decimalScale, locale, mask, type],\n )\n\n const buildPayload = (\n rawValue: InputValue,\n eventType: InputEventType,\n char: string | null = null,\n ): InputPayload => ({\n rawValue,\n formattedValue: formatInputValue(\n rawValue,\n type,\n locale,\n decimalScale,\n currency,\n mask,\n ),\n error: Boolean(validate(rawValue)),\n char,\n eventType,\n })\n\n const emitChange = (payload: InputPayload, immediate = false) => {\n if (!controlled) setLocalValue(payload.rawValue)\n if (debounceRef.current) clearTimeout(debounceRef.current)\n if (!onChange) return\n if (immediate || debounceMs <= 0) onChange(payload)\n else debounceRef.current = setTimeout(() => onChange(payload), debounceMs)\n }\n\n useEffect(() => () => {\n if (debounceRef.current) clearTimeout(debounceRef.current)\n }, [])\n\n useEffect(() => {\n if (validateOnSubmit) setValidationError(validate(currentValue))\n // Validation intentionally runs when submit state changes.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [validateOnSubmit])\n\n const normalize = (text: string): InputValue => {\n if (type === 'phone' && mask) return text.replace(/\\D/g, '')\n if (isFormattedInputType(type)) {\n const parsed = parseInputNumber(text, locale)\n if (parsed === null) return null\n return allowNegative ? parsed : Math.abs(parsed)\n }\n return text\n }\n\n const handleChange = (text: string) => {\n const digits = text.replace(/\\D/g, '')\n if (\n limit &&\n (isFormattedInputType(type) || type === 'phone') &&\n digits.length > limit\n ) return\n if (limit && isLengthValidatedInputType(type) && text.length > limit) return\n const rawValue = normalize(text)\n if (typeof rawValue === 'number') {\n if (typeof min === 'number' && rawValue < min) return\n if (typeof max === 'number' && rawValue > max) return\n }\n setEditingValue(\n type === 'phone' && mask ? applyInputMask(rawValue, mask) : text,\n )\n emitChange(buildPayload(rawValue, 'change', text.slice(-1) || null))\n }\n\n const describedBy = [\n ariaDescribedBy,\n hint && !visibleError ? hintId : undefined,\n visibleError ? errorId : undefined,\n ].filter(Boolean).join(' ') || undefined\n\n if (readOnly) {\n return (\n <div className={['inconel-field', `inconel-size-${size}`, fullWidth ? 'inconel-field--full-width' : '', className ?? ''].join(' ')}>\n {label && <span className={['inconel-field__label', labelClassName ?? ''].join(' ')}>{label}</span>}\n <div className=\"inconel-input-readonly\" aria-label={label}>\n {formattedValue || readOnlyEmptyValue}\n </div>\n </div>\n )\n }\n\n return (\n <div className={['inconel-field', `inconel-size-${size}`, fullWidth ? 'inconel-field--full-width' : '', className ?? ''].join(' ')}>\n {label && (\n <label className={['inconel-field__label', labelClassName ?? ''].join(' ')} htmlFor={inputId}>\n {label}{required && <span className=\"inconel-field__required\" aria-hidden=\"true\"> *</span>}\n </label>\n )}\n <div className={['inconel-input-control', variant === 'plain' ? 'inconel-input-control--plain' : '', visibleError ? 'inconel-is-invalid' : '', disabled ? 'inconel-is-disabled' : ''].join(' ')}>\n {startAdornment && <span className=\"inconel-input-adornment\" aria-hidden=\"true\">{startAdornment}</span>}\n <input\n {...inputProps}\n ref={ref}\n id={inputId}\n type={type === 'password' || type === 'email' ? type : 'text'}\n inputMode={isFormattedInputType(type) ? 'decimal' : type === 'phone' ? 'tel' : undefined}\n value={focused ? editingValue : formattedValue}\n required={required}\n disabled={disabled}\n autoComplete={autoComplete}\n aria-invalid={Boolean(visibleError)}\n aria-describedby={describedBy}\n className={['inconel-input', inputClassName ?? ''].join(' ')}\n onChange={(event) => handleChange(event.target.value)}\n onFocus={(event) => {\n if (disabled) return\n setFocused(true)\n const editValue = type === 'phone' && mask\n ? applyInputMask(currentValue, mask)\n : isFormattedInputType(type)\n ? String(currentValue ?? '').replace('.', getInputSeparators(locale).decimal)\n : String(currentValue ?? '')\n setEditingValue(editValue)\n onFocus?.(buildPayload(currentValue, 'focus'), event)\n }}\n onBlur={(event) => {\n setFocused(false)\n if (debounceRef.current) clearTimeout(debounceRef.current)\n let rawValue = normalize(editingValue)\n if (typeof rawValue === 'number') {\n rawValue = roundInputNumber(rawValue, decimalScale, roundOnBlur ? roundMode : 'floor')\n }\n setValidationError(validate(rawValue))\n const payload = buildPayload(rawValue, 'blur')\n emitChange(payload, true)\n onBlur?.(payload, event)\n }}\n onKeyDown={(event) => {\n if (!allowNegative && (event.key === '-' || event.key === 'Subtract')) event.preventDefault()\n onKeyDown?.(buildPayload(currentValue, 'keydown', event.key), event)\n }}\n onMouseEnter={(event) => onMouseEnter?.(buildPayload(currentValue, 'mouseenter'), event)}\n onMouseLeave={(event) => onMouseLeave?.(buildPayload(currentValue, 'mouseleave'), event)}\n />\n {isClearable && !disabled && formattedValue && (\n <button\n type=\"button\"\n className=\"inconel-input-clear\"\n aria-label={resolvedClearButtonLabel}\n onClick={() => {\n setEditingValue('')\n setValidationError(validate(null))\n emitChange(buildPayload(null, 'clear'), true)\n }}\n >\n ×\n </button>\n )}\n {endAdornment && <span className=\"inconel-input-adornment\" aria-hidden=\"true\">{endAdornment}</span>}\n </div>\n <FieldFeedback\n hint={hint}\n errorMessage={visibleError}\n hintId={hintId}\n errorId={errorId}\n />\n </div>\n )\n})\n\nexport default Input\n"],"names":["Input","forwardRef","id","label","hint","errorMessage","startAdornment","endAdornment","fullWidth","inputClassName","labelClassName","className","required","disabled","value","defaultValue","onChange","onBlur","onFocus","onKeyDown","onMouseEnter","onMouseLeave","type","locale","currency","decimalScale","roundMode","roundOnBlur","min","max","allowNegative","debounceMs","validateOnSubmit","validationMessages","mask","limit","isClearable","readOnly","clearButtonLabel","readOnlyEmptyValue","size","variant","autoComplete","ariaDescribedBy","inputProps","ref","adapters","useInconelAdapters","resolvedClearButtonLabel","generatedId","useId","inputId","hintId","errorId","controlled","localValue","setLocalValue","useState","currentValue","editingValue","setEditingValue","focused","setFocused","validationError","setValidationError","debounceRef","useRef","messages","visibleError","validate","candidate","validateInputValue","formattedValue","useMemo","formatInputValue","buildPayload","rawValue","eventType","char","emitChange","payload","immediate","useEffect","normalize","text","isFormattedInputType","parsed","parseInputNumber","handleChange","digits","isLengthValidatedInputType","applyInputMask","describedBy","jsx","jsxs","event","editValue","getInputSeparators","roundInputNumber","FieldFeedback"],"mappings":"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"}
@@ -20,6 +20,7 @@ export interface ModalProps {
20
20
  maximize?: boolean;
21
21
  maximizeIcon?: string;
22
22
  fullSize?: boolean;
23
+ hideHeader?: boolean;
23
24
  hideFooter?: boolean;
24
25
  okText?: ReactNode;
25
26
  okAction?: () => void;
@@ -44,5 +45,5 @@ export interface ModalProps {
44
45
  className?: string | null;
45
46
  enforceFocus?: boolean;
46
47
  }
47
- export declare function Modal({ id, open, show, title, modalTitle, modalType, children, footer, customButtons, closeLabel, closeButton, closeOnBackdrop, backdrop, keyboard, centered, scrollable, size, maximize, maximizeIcon, fullSize, hideFooter, okText, okAction, okButtonType, cancelText, cancelAction, cancelButtonType, onClose, onHide, onShow, onEnter, onEntering, onEntered, onExit, onExiting, onExited, onEscapeKeyDown, dialogClassName, backdropClassName, bodyClassName, className, }: ModalProps): import("react").JSX.Element | null;
48
+ export declare function Modal({ id, open, show, title, modalTitle, modalType, children, footer, customButtons, closeLabel, closeButton, closeOnBackdrop, backdrop, keyboard, centered, scrollable, size, maximize, maximizeIcon, fullSize, hideHeader, hideFooter, okText, okAction, okButtonType, cancelText, cancelAction, cancelButtonType, onClose, onHide, onShow, onEnter, onEntering, onEntered, onExit, onExiting, onExited, onEscapeKeyDown, dialogClassName, backdropClassName, bodyClassName, className, }: ModalProps): import("react").JSX.Element | null;
48
49
  //# sourceMappingURL=Modal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../../src/components/Modal/Modal.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../../src/components/Modal/Modal.tsx"],"names":[],"mappings":"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"}
@@ -1,12 +1,12 @@
1
- import { jsx as e, jsxs as i, Fragment as le } from "react/jsx-runtime";
2
- import { useState as oe, useEffect as M, Children as ie } from "react";
1
+ import { jsx as e, jsxs as i, Fragment as oe } from "react/jsx-runtime";
2
+ import { useState as ie, useEffect as M, Children as re } from "react";
3
3
  import { classNames as u } from "../shared/classNames.js";
4
- import { DEFAULT_MODAL_CLOSE_LABEL as re } from "./constants.js";
4
+ import { DEFAULT_MODAL_CLOSE_LABEL as ne } from "./constants.js";
5
5
  /* empty css */
6
- import { useInconelAdapters as ne } from "../../adapters/context.js";
7
- import se from "../Svg/Svg.js";
6
+ import { useInconelAdapters as se } from "../../adapters/context.js";
7
+ import te from "../Svg/Svg.js";
8
8
  import { Button as $ } from "../Button/Button.js";
9
- function ve({
9
+ function he({
10
10
  id: k,
11
11
  open: D,
12
12
  show: F,
@@ -16,7 +16,7 @@ function ve({
16
16
  children: f,
17
17
  footer: p,
18
18
  customButtons: r,
19
- closeLabel: x = re,
19
+ closeLabel: x = ne,
20
20
  closeButton: E = !0,
21
21
  closeOnBackdrop: I = !0,
22
22
  backdrop: _ = !0,
@@ -27,15 +27,16 @@ function ve({
27
27
  maximize: S = !1,
28
28
  maximizeIcon: q,
29
29
  fullSize: v = !1,
30
- hideFooter: G = !1,
30
+ hideHeader: G = !1,
31
+ hideFooter: J = !1,
31
32
  okText: n,
32
33
  okAction: s,
33
- okButtonType: J = "button",
34
+ okButtonType: K = "button",
34
35
  cancelText: t,
35
36
  cancelAction: c,
36
- cancelButtonType: K = "button",
37
- onClose: P,
38
- onHide: Q,
37
+ cancelButtonType: P = "button",
38
+ onClose: Q,
39
+ onHide: R,
39
40
  onShow: h,
40
41
  onEnter: b,
41
42
  onEntering: N,
@@ -43,32 +44,32 @@ function ve({
43
44
  onExit: C,
44
45
  onExiting: L,
45
46
  onExited: g,
46
- onEscapeKeyDown: R,
47
- dialogClassName: V,
48
- backdropClassName: W,
49
- bodyClassName: X,
50
- className: Y
47
+ onEscapeKeyDown: V,
48
+ dialogClassName: W,
49
+ backdropClassName: X,
50
+ bodyClassName: Y,
51
+ className: Z
51
52
  }) {
52
- const z = ne(), [Z, T] = oe(!1), o = D ?? F ?? !1, d = () => {
53
- P?.(), Q?.();
53
+ const z = se(), [T, ee] = ie(!1), o = D ?? F ?? !1, d = () => {
54
+ Q?.(), R?.();
54
55
  };
55
56
  if (M(() => {
56
57
  o ? (b?.(), N?.(), h?.(), y?.()) : (C?.(), L?.(), g?.());
57
58
  }, [o, b, y, N, C, g, L, h]), M(() => {
58
59
  if (!o || !O) return;
59
- const a = (ae) => {
60
- ae.key === "Escape" && (R?.(), d());
60
+ const a = (le) => {
61
+ le.key === "Escape" && (V?.(), d());
61
62
  };
62
63
  return document.addEventListener("keydown", a), () => document.removeEventListener("keydown", a);
63
64
  }), !o) return null;
64
65
  const m = j ?? w ?? z.translate?.(
65
66
  `modalTitle${l[0].toUpperCase()}${l.slice(1)}`,
66
67
  l === "success" ? "Başarılı" : l === "error" || l === "danger" ? "Hata" : "Bilgi"
67
- ), B = q ?? z.assets?.maximize, ee = !G && (p !== void 0 || r !== void 0 || !!(t && c) || !!(n && s));
68
+ ), B = q ?? z.assets?.maximize, ae = !J && (p !== void 0 || r !== void 0 || !!(t && c) || !!(n && s));
68
69
  return /* @__PURE__ */ e(
69
70
  "div",
70
71
  {
71
- className: u("inconel-modal-backdrop", W),
72
+ className: u("inconel-modal-backdrop", X),
72
73
  role: "presentation",
73
74
  onMouseDown: (a) => {
74
75
  _ !== "static" && _ !== !1 && I && a.target === a.currentTarget && d();
@@ -83,16 +84,16 @@ function ve({
83
84
  `inconel-modal--${l}`,
84
85
  U && "inconel-modal--centered",
85
86
  A && "inconel-modal--scrollable",
86
- (Z || v) && "inconel-is-maximized",
87
+ (T || v) && "inconel-is-maximized",
87
88
  v && "inconel-is-full-size",
88
- V,
89
- Y
89
+ W,
90
+ Z
90
91
  ),
91
92
  role: "dialog",
92
93
  "aria-modal": "true",
93
94
  "aria-label": typeof m == "string" ? m : void 0,
94
95
  children: [
95
- /* @__PURE__ */ i("header", { className: "inconel-modal__header", children: [
96
+ !G && /* @__PURE__ */ i("header", { className: "inconel-modal__header", children: [
96
97
  /* @__PURE__ */ e("div", { className: "inconel-modal__title", children: m }),
97
98
  /* @__PURE__ */ i("div", { className: "inconel-modal__header-actions", children: [
98
99
  S && /* @__PURE__ */ e(
@@ -100,9 +101,9 @@ function ve({
100
101
  {
101
102
  type: "button",
102
103
  className: "inconel-modal__maximize",
103
- onClick: () => T((a) => !a),
104
+ onClick: () => ee((a) => !a),
104
105
  "aria-label": "Büyüt",
105
- children: B ? /* @__PURE__ */ e(se, { src: B }) : "□"
106
+ children: B ? /* @__PURE__ */ e(te, { src: B }) : "□"
106
107
  }
107
108
  ),
108
109
  E && /* @__PURE__ */ e(
@@ -117,12 +118,12 @@ function ve({
117
118
  )
118
119
  ] })
119
120
  ] }),
120
- f && /* @__PURE__ */ e("div", { className: u("inconel-modal__content", X), children: f }),
121
- ee && /* @__PURE__ */ e("footer", { className: "inconel-modal__footer", children: p ?? (r !== void 0 ? ie.toArray(r) : /* @__PURE__ */ i(le, { children: [
121
+ f && /* @__PURE__ */ e("div", { className: u("inconel-modal__content", Y), children: f }),
122
+ ae && /* @__PURE__ */ e("footer", { className: "inconel-modal__footer", children: p ?? (r !== void 0 ? re.toArray(r) : /* @__PURE__ */ i(oe, { children: [
122
123
  t && c && /* @__PURE__ */ e(
123
124
  $,
124
125
  {
125
- type: K,
126
+ type: P,
126
127
  variant: "secondary",
127
128
  onClick: c,
128
129
  children: t
@@ -131,7 +132,7 @@ function ve({
131
132
  n && s && /* @__PURE__ */ e(
132
133
  $,
133
134
  {
134
- type: J,
135
+ type: K,
135
136
  buttonType: "success",
136
137
  onClick: s,
137
138
  children: n
@@ -145,6 +146,6 @@ function ve({
145
146
  );
146
147
  }
147
148
  export {
148
- ve as Modal
149
+ he as Modal
149
150
  };
150
151
  //# sourceMappingURL=Modal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Modal.js","sources":["../../../src/components/Modal/Modal.tsx"],"sourcesContent":["import {\n Children,\n useEffect,\n useState,\n type ButtonHTMLAttributes,\n type ReactNode,\n} from 'react'\n\nimport { useInconelAdapters } from '../../adapters'\nimport { Button } from '../Button'\nimport { classNames } from '../shared/classNames'\nimport { Svg } from '../Svg'\nimport { DEFAULT_MODAL_CLOSE_LABEL } from './constants'\nimport './styles.css'\n\nexport interface ModalProps {\n id?: string | null\n open?: boolean\n show?: boolean\n title?: ReactNode\n modalTitle?: ReactNode\n modalType?: 'info' | 'success' | 'error' | 'danger' | 'warning'\n children?: ReactNode\n footer?: ReactNode\n customButtons?: ReactNode\n closeLabel?: string\n closeButton?: boolean\n closeOnBackdrop?: boolean\n backdrop?: 'static' | boolean\n keyboard?: boolean\n centered?: boolean\n scrollable?: boolean\n size?: string\n maximize?: boolean\n maximizeIcon?: string\n fullSize?: boolean\n hideFooter?: boolean\n okText?: ReactNode\n okAction?: () => void\n okButtonType?: ButtonHTMLAttributes<HTMLButtonElement>['type']\n okButtonVariant?: string\n cancelText?: ReactNode\n cancelAction?: () => void\n cancelButtonType?: ButtonHTMLAttributes<HTMLButtonElement>['type']\n onClose?: () => void\n onHide?: () => void\n onShow?: () => void\n onEnter?: () => void\n onEntering?: () => void\n onEntered?: () => void\n onExit?: () => void\n onExiting?: () => void\n onExited?: () => void\n onEscapeKeyDown?: () => void\n dialogClassName?: string\n backdropClassName?: string\n bodyClassName?: string\n className?: string | null\n enforceFocus?: boolean\n}\n\nexport function Modal({\n id,\n open,\n show,\n title,\n modalTitle,\n modalType = 'info',\n children,\n footer,\n customButtons,\n closeLabel = DEFAULT_MODAL_CLOSE_LABEL,\n closeButton = true,\n closeOnBackdrop = true,\n backdrop = true,\n keyboard = true,\n centered = true,\n scrollable = true,\n size = 'md',\n maximize = false,\n maximizeIcon,\n fullSize = false,\n hideFooter = false,\n okText,\n okAction,\n okButtonType = 'button',\n cancelText,\n cancelAction,\n cancelButtonType = 'button',\n onClose,\n onHide,\n onShow,\n onEnter,\n onEntering,\n onEntered,\n onExit,\n onExiting,\n onExited,\n onEscapeKeyDown,\n dialogClassName,\n backdropClassName,\n bodyClassName,\n className,\n}: ModalProps) {\n const adapters = useInconelAdapters()\n const [maximized, setMaximized] = useState(false)\n const visible = open ?? show ?? false\n const close = () => {\n onClose?.()\n onHide?.()\n }\n\n useEffect(() => {\n if (visible) {\n onEnter?.()\n onEntering?.()\n onShow?.()\n onEntered?.()\n } else {\n onExit?.()\n onExiting?.()\n onExited?.()\n }\n }, [visible, onEnter, onEntered, onEntering, onExit, onExited, onExiting, onShow])\n\n useEffect(() => {\n if (!visible || !keyboard) return\n const handleEscape = (event: KeyboardEvent) => {\n if (event.key !== 'Escape') return\n onEscapeKeyDown?.()\n close()\n }\n document.addEventListener('keydown', handleEscape)\n return () => document.removeEventListener('keydown', handleEscape)\n })\n\n if (!visible) return null\n\n const resolvedTitle =\n title ??\n modalTitle ??\n adapters.translate?.(\n `modalTitle${modalType[0].toUpperCase()}${modalType.slice(1)}`,\n modalType === 'success'\n ? 'Başarılı'\n : modalType === 'error' || modalType === 'danger'\n ? 'Hata'\n : 'Bilgi',\n )\n const resolvedMaximizeIcon = maximizeIcon ?? adapters.assets?.maximize\n const hasFooter =\n !hideFooter &&\n (footer !== undefined ||\n customButtons !== undefined ||\n Boolean(cancelText && cancelAction) ||\n Boolean(okText && okAction))\n\n return (\n <div\n className={classNames('inconel-modal-backdrop', backdropClassName)}\n role=\"presentation\"\n onMouseDown={(event) => {\n if (\n backdrop !== 'static' &&\n backdrop !== false &&\n closeOnBackdrop &&\n event.target === event.currentTarget\n ) {\n close()\n }\n }}\n >\n <section\n id={id ?? undefined}\n className={classNames(\n 'inconel-modal',\n `inconel-modal--${size}`,\n `inconel-modal--${modalType}`,\n centered && 'inconel-modal--centered',\n scrollable && 'inconel-modal--scrollable',\n (maximized || fullSize) && 'inconel-is-maximized',\n fullSize && 'inconel-is-full-size',\n dialogClassName,\n className,\n )}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={typeof resolvedTitle === 'string' ? resolvedTitle : undefined}\n >\n <header className=\"inconel-modal__header\">\n <div className=\"inconel-modal__title\">{resolvedTitle}</div>\n <div className=\"inconel-modal__header-actions\">\n {maximize && (\n <button\n type=\"button\"\n className=\"inconel-modal__maximize\"\n onClick={() => setMaximized((current) => !current)}\n aria-label=\"Büyüt\"\n >\n {resolvedMaximizeIcon ? (\n <Svg src={resolvedMaximizeIcon} />\n ) : (\n '□'\n )}\n </button>\n )}\n {closeButton && (\n <button\n type=\"button\"\n className=\"inconel-modal__close\"\n aria-label={closeLabel}\n onClick={close}\n >\n ×\n </button>\n )}\n </div>\n </header>\n {children && (\n <div className={classNames('inconel-modal__content', bodyClassName)}>\n {children}\n </div>\n )}\n {hasFooter && (\n <footer className=\"inconel-modal__footer\">\n {footer ??\n (customButtons !== undefined ? (\n Children.toArray(customButtons)\n ) : (\n <>\n {cancelText && cancelAction && (\n <Button\n type={cancelButtonType}\n variant=\"secondary\"\n onClick={cancelAction}\n >\n {cancelText}\n </Button>\n )}\n {okText && okAction && (\n <Button\n type={okButtonType}\n buttonType=\"success\"\n onClick={okAction}\n >\n {okText}\n </Button>\n )}\n </>\n ))}\n </footer>\n )}\n </section>\n </div>\n )\n}\n"],"names":["Modal","id","open","show","title","modalTitle","modalType","children","footer","customButtons","closeLabel","DEFAULT_MODAL_CLOSE_LABEL","closeButton","closeOnBackdrop","backdrop","keyboard","centered","scrollable","size","maximize","maximizeIcon","fullSize","hideFooter","okText","okAction","okButtonType","cancelText","cancelAction","cancelButtonType","onClose","onHide","onShow","onEnter","onEntering","onEntered","onExit","onExiting","onExited","onEscapeKeyDown","dialogClassName","backdropClassName","bodyClassName","className","adapters","useInconelAdapters","maximized","setMaximized","useState","visible","close","useEffect","handleEscape","event","resolvedTitle","resolvedMaximizeIcon","hasFooter","jsx","classNames","jsxs","current","Svg","Children","Fragment","Button"],"mappings":";;;;;;;;AA6DO,SAASA,GAAM;AAAA,EACpB,IAAAC;AAAA,EACA,MAAAC;AAAA,EACA,MAAAC;AAAA,EACA,OAAAC;AAAA,EACA,YAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,UAAAC;AAAA,EACA,QAAAC;AAAA,EACA,eAAAC;AAAA,EACA,YAAAC,IAAaC;AAAA,EACb,aAAAC,IAAc;AAAA,EACd,iBAAAC,IAAkB;AAAA,EAClB,UAAAC,IAAW;AAAA,EACX,UAAAC,IAAW;AAAA,EACX,UAAAC,IAAW;AAAA,EACX,YAAAC,IAAa;AAAA,EACb,MAAAC,IAAO;AAAA,EACP,UAAAC,IAAW;AAAA,EACX,cAAAC;AAAA,EACA,UAAAC,IAAW;AAAA,EACX,YAAAC,IAAa;AAAA,EACb,QAAAC;AAAA,EACA,UAAAC;AAAA,EACA,cAAAC,IAAe;AAAA,EACf,YAAAC;AAAA,EACA,cAAAC;AAAA,EACA,kBAAAC,IAAmB;AAAA,EACnB,SAAAC;AAAA,EACA,QAAAC;AAAA,EACA,QAAAC;AAAA,EACA,SAAAC;AAAA,EACA,YAAAC;AAAA,EACA,WAAAC;AAAA,EACA,QAAAC;AAAA,EACA,WAAAC;AAAA,EACA,UAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,mBAAAC;AAAA,EACA,eAAAC;AAAA,EACA,WAAAC;AACF,GAAe;AACb,QAAMC,IAAWC,GAAA,GACX,CAACC,GAAWC,CAAY,IAAIC,GAAS,EAAK,GAC1CC,IAAU9C,KAAQC,KAAQ,IAC1B8C,IAAQ,MAAM;AAClB,IAAApB,IAAA,GACAC,IAAA;AAAA,EACF;AA0BA,MAxBAoB,EAAU,MAAM;AACd,IAAIF,KACFhB,IAAA,GACAC,IAAA,GACAF,IAAA,GACAG,IAAA,MAEAC,IAAA,GACAC,IAAA,GACAC,IAAA;AAAA,EAEJ,GAAG,CAACW,GAAShB,GAASE,GAAWD,GAAYE,GAAQE,GAAUD,GAAWL,CAAM,CAAC,GAEjFmB,EAAU,MAAM;AACd,QAAI,CAACF,KAAW,CAACjC,EAAU;AAC3B,UAAMoC,IAAe,CAACC,OAAyB;AAC7C,MAAIA,GAAM,QAAQ,aAClBd,IAAA,GACAW,EAAA;AAAA,IACF;AACA,oBAAS,iBAAiB,WAAWE,CAAY,GAC1C,MAAM,SAAS,oBAAoB,WAAWA,CAAY;AAAA,EACnE,CAAC,GAEG,CAACH,EAAS,QAAO;AAErB,QAAMK,IACJjD,KACAC,KACAsC,EAAS;AAAA,IACP,aAAarC,EAAU,CAAC,EAAE,aAAa,GAAGA,EAAU,MAAM,CAAC,CAAC;AAAA,IAC5DA,MAAc,YACV,aACAA,MAAc,WAAWA,MAAc,WACrC,SACA;AAAA,EAAA,GAEJgD,IAAuBlC,KAAgBuB,EAAS,QAAQ,UACxDY,KACJ,CAACjC,MACAd,MAAW,UACVC,MAAkB,UAClB,GAAQiB,KAAcC,MACtB,GAAQJ,KAAUC;AAEtB,SACE,gBAAAgC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC,EAAW,0BAA0BjB,CAAiB;AAAA,MACjE,MAAK;AAAA,MACL,aAAa,CAACY,MAAU;AACtB,QACEtC,MAAa,YACbA,MAAa,MACbD,KACAuC,EAAM,WAAWA,EAAM,iBAEvBH,EAAA;AAAA,MAEJ;AAAA,MAEA,UAAA,gBAAAS;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,IAAIzD,KAAM;AAAA,UACV,WAAWwD;AAAA,YACT;AAAA,YACA,kBAAkBvC,CAAI;AAAA,YACtB,kBAAkBZ,CAAS;AAAA,YAC3BU,KAAY;AAAA,YACZC,KAAc;AAAA,aACb4B,KAAaxB,MAAa;AAAA,YAC3BA,KAAY;AAAA,YACZkB;AAAA,YACAG;AAAA,UAAA;AAAA,UAEF,MAAK;AAAA,UACL,cAAW;AAAA,UACX,cAAY,OAAOW,KAAkB,WAAWA,IAAgB;AAAA,UAEhE,UAAA;AAAA,YAAA,gBAAAK,EAAC,UAAA,EAAO,WAAU,yBAChB,UAAA;AAAA,cAAA,gBAAAF,EAAC,OAAA,EAAI,WAAU,wBAAwB,UAAAH,GAAc;AAAA,cACrD,gBAAAK,EAAC,OAAA,EAAI,WAAU,iCACZ,UAAA;AAAA,gBAAAvC,KACC,gBAAAqC;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,MAAK;AAAA,oBACL,WAAU;AAAA,oBACV,SAAS,MAAMV,EAAa,CAACa,MAAY,CAACA,CAAO;AAAA,oBACjD,cAAW;AAAA,oBAEV,UAAAL,IACC,gBAAAE,EAACI,IAAA,EAAI,KAAKN,GAAsB,IAEhC;AAAA,kBAAA;AAAA,gBAAA;AAAA,gBAIL1C,KACC,gBAAA4C;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,MAAK;AAAA,oBACL,WAAU;AAAA,oBACV,cAAY9C;AAAA,oBACZ,SAASuC;AAAA,oBACV,UAAA;AAAA,kBAAA;AAAA,gBAAA;AAAA,cAED,EAAA,CAEJ;AAAA,YAAA,GACF;AAAA,YACC1C,uBACE,OAAA,EAAI,WAAWkD,EAAW,0BAA0BhB,CAAa,GAC/D,UAAAlC,GACH;AAAA,YAEDgD,MACC,gBAAAC,EAAC,UAAA,EAAO,WAAU,yBACf,UAAAhD,MACEC,MAAkB,SACjBoD,GAAS,QAAQpD,CAAa,IAE9B,gBAAAiD,EAAAI,IAAA,EACG,UAAA;AAAA,cAAApC,KAAcC,KACb,gBAAA6B;AAAA,gBAACO;AAAA,gBAAA;AAAA,kBACC,MAAMnC;AAAA,kBACN,SAAQ;AAAA,kBACR,SAASD;AAAA,kBAER,UAAAD;AAAA,gBAAA;AAAA,cAAA;AAAA,cAGJH,KAAUC,KACT,gBAAAgC;AAAA,gBAACO;AAAA,gBAAA;AAAA,kBACC,MAAMtC;AAAA,kBACN,YAAW;AAAA,kBACX,SAASD;AAAA,kBAER,UAAAD;AAAA,gBAAA;AAAA,cAAA;AAAA,YACH,EAAA,CAEJ,GAAA,CAEN;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAEJ;AAAA,EAAA;AAGN;"}
1
+ {"version":3,"file":"Modal.js","sources":["../../../src/components/Modal/Modal.tsx"],"sourcesContent":["import {\n Children,\n useEffect,\n useState,\n type ButtonHTMLAttributes,\n type ReactNode,\n} from 'react'\n\nimport { useInconelAdapters } from '../../adapters'\nimport { Button } from '../Button'\nimport { classNames } from '../shared/classNames'\nimport { Svg } from '../Svg'\nimport { DEFAULT_MODAL_CLOSE_LABEL } from './constants'\nimport './styles.css'\n\nexport interface ModalProps {\n id?: string | null\n open?: boolean\n show?: boolean\n title?: ReactNode\n modalTitle?: ReactNode\n modalType?: 'info' | 'success' | 'error' | 'danger' | 'warning'\n children?: ReactNode\n footer?: ReactNode\n customButtons?: ReactNode\n closeLabel?: string\n closeButton?: boolean\n closeOnBackdrop?: boolean\n backdrop?: 'static' | boolean\n keyboard?: boolean\n centered?: boolean\n scrollable?: boolean\n size?: string\n maximize?: boolean\n maximizeIcon?: string\n fullSize?: boolean\n hideHeader?: boolean\n hideFooter?: boolean\n okText?: ReactNode\n okAction?: () => void\n okButtonType?: ButtonHTMLAttributes<HTMLButtonElement>['type']\n okButtonVariant?: string\n cancelText?: ReactNode\n cancelAction?: () => void\n cancelButtonType?: ButtonHTMLAttributes<HTMLButtonElement>['type']\n onClose?: () => void\n onHide?: () => void\n onShow?: () => void\n onEnter?: () => void\n onEntering?: () => void\n onEntered?: () => void\n onExit?: () => void\n onExiting?: () => void\n onExited?: () => void\n onEscapeKeyDown?: () => void\n dialogClassName?: string\n backdropClassName?: string\n bodyClassName?: string\n className?: string | null\n enforceFocus?: boolean\n}\n\nexport function Modal({\n id,\n open,\n show,\n title,\n modalTitle,\n modalType = 'info',\n children,\n footer,\n customButtons,\n closeLabel = DEFAULT_MODAL_CLOSE_LABEL,\n closeButton = true,\n closeOnBackdrop = true,\n backdrop = true,\n keyboard = true,\n centered = true,\n scrollable = true,\n size = 'md',\n maximize = false,\n maximizeIcon,\n fullSize = false,\n hideHeader = false,\n hideFooter = false,\n okText,\n okAction,\n okButtonType = 'button',\n cancelText,\n cancelAction,\n cancelButtonType = 'button',\n onClose,\n onHide,\n onShow,\n onEnter,\n onEntering,\n onEntered,\n onExit,\n onExiting,\n onExited,\n onEscapeKeyDown,\n dialogClassName,\n backdropClassName,\n bodyClassName,\n className,\n}: ModalProps) {\n const adapters = useInconelAdapters()\n const [maximized, setMaximized] = useState(false)\n const visible = open ?? show ?? false\n const close = () => {\n onClose?.()\n onHide?.()\n }\n\n useEffect(() => {\n if (visible) {\n onEnter?.()\n onEntering?.()\n onShow?.()\n onEntered?.()\n } else {\n onExit?.()\n onExiting?.()\n onExited?.()\n }\n }, [visible, onEnter, onEntered, onEntering, onExit, onExited, onExiting, onShow])\n\n useEffect(() => {\n if (!visible || !keyboard) return\n const handleEscape = (event: KeyboardEvent) => {\n if (event.key !== 'Escape') return\n onEscapeKeyDown?.()\n close()\n }\n document.addEventListener('keydown', handleEscape)\n return () => document.removeEventListener('keydown', handleEscape)\n })\n\n if (!visible) return null\n\n const resolvedTitle =\n title ??\n modalTitle ??\n adapters.translate?.(\n `modalTitle${modalType[0].toUpperCase()}${modalType.slice(1)}`,\n modalType === 'success'\n ? 'Başarılı'\n : modalType === 'error' || modalType === 'danger'\n ? 'Hata'\n : 'Bilgi',\n )\n const resolvedMaximizeIcon = maximizeIcon ?? adapters.assets?.maximize\n const hasFooter =\n !hideFooter &&\n (footer !== undefined ||\n customButtons !== undefined ||\n Boolean(cancelText && cancelAction) ||\n Boolean(okText && okAction))\n\n return (\n <div\n className={classNames('inconel-modal-backdrop', backdropClassName)}\n role=\"presentation\"\n onMouseDown={(event) => {\n if (\n backdrop !== 'static' &&\n backdrop !== false &&\n closeOnBackdrop &&\n event.target === event.currentTarget\n ) {\n close()\n }\n }}\n >\n <section\n id={id ?? undefined}\n className={classNames(\n 'inconel-modal',\n `inconel-modal--${size}`,\n `inconel-modal--${modalType}`,\n centered && 'inconel-modal--centered',\n scrollable && 'inconel-modal--scrollable',\n (maximized || fullSize) && 'inconel-is-maximized',\n fullSize && 'inconel-is-full-size',\n dialogClassName,\n className,\n )}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={typeof resolvedTitle === 'string' ? resolvedTitle : undefined}\n >\n {!hideHeader && (\n <header className=\"inconel-modal__header\">\n <div className=\"inconel-modal__title\">{resolvedTitle}</div>\n <div className=\"inconel-modal__header-actions\">\n {maximize && (\n <button\n type=\"button\"\n className=\"inconel-modal__maximize\"\n onClick={() => setMaximized((current) => !current)}\n aria-label=\"Büyüt\"\n >\n {resolvedMaximizeIcon ? (\n <Svg src={resolvedMaximizeIcon} />\n ) : (\n '□'\n )}\n </button>\n )}\n {closeButton && (\n <button\n type=\"button\"\n className=\"inconel-modal__close\"\n aria-label={closeLabel}\n onClick={close}\n >\n ×\n </button>\n )}\n </div>\n </header>\n )}\n {children && (\n <div className={classNames('inconel-modal__content', bodyClassName)}>\n {children}\n </div>\n )}\n {hasFooter && (\n <footer className=\"inconel-modal__footer\">\n {footer ??\n (customButtons !== undefined ? (\n Children.toArray(customButtons)\n ) : (\n <>\n {cancelText && cancelAction && (\n <Button\n type={cancelButtonType}\n variant=\"secondary\"\n onClick={cancelAction}\n >\n {cancelText}\n </Button>\n )}\n {okText && okAction && (\n <Button\n type={okButtonType}\n buttonType=\"success\"\n onClick={okAction}\n >\n {okText}\n </Button>\n )}\n </>\n ))}\n </footer>\n )}\n </section>\n </div>\n )\n}\n"],"names":["Modal","id","open","show","title","modalTitle","modalType","children","footer","customButtons","closeLabel","DEFAULT_MODAL_CLOSE_LABEL","closeButton","closeOnBackdrop","backdrop","keyboard","centered","scrollable","size","maximize","maximizeIcon","fullSize","hideHeader","hideFooter","okText","okAction","okButtonType","cancelText","cancelAction","cancelButtonType","onClose","onHide","onShow","onEnter","onEntering","onEntered","onExit","onExiting","onExited","onEscapeKeyDown","dialogClassName","backdropClassName","bodyClassName","className","adapters","useInconelAdapters","maximized","setMaximized","useState","visible","close","useEffect","handleEscape","event","resolvedTitle","resolvedMaximizeIcon","hasFooter","jsx","classNames","jsxs","current","Svg","Children","Fragment","Button"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "inconel",
3
- "version": "0.1.21",
3
+ "version": "0.1.23",
4
4
  "description": "Accessible, type-safe React UI components for modern applications.",
5
5
  "keywords": [
6
6
  "react",