elseware-ui 3.0.3 → 3.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.css +0 -38
- package/dist/index.css.map +1 -1
- package/dist/index.d.mts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +132 -100
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +132 -100
- package/dist/index.mjs.map +1 -1
- package/dist/index.native.d.mts +2 -2
- package/dist/index.native.d.ts +2 -2
- package/dist/index.native.js +72 -53
- package/dist/index.native.js.map +1 -1
- package/dist/index.native.mjs +72 -53
- package/dist/index.native.mjs.map +1 -1
- package/dist/{resolveGlobalConfigs-CL-Puk7Y.d.mts → resolveGlobalConfigs-PbcnVEZr.d.mts} +3 -1
- package/dist/{resolveGlobalConfigs-CL-Puk7Y.d.ts → resolveGlobalConfigs-PbcnVEZr.d.ts} +3 -1
- package/package.json +1 -1
package/dist/index.native.d.mts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { B as ButtonProps, C as CheckboxProps, F as FormProps, a as FormResponseProps, I as InputProps, b as InputLabelProps, c as InputResponseProps } from './resolveGlobalConfigs-
|
|
3
|
-
export { d as ButtonIcon, e as ButtonMode, f as CheckboxOption, E as EUIComponentDefaults,
|
|
2
|
+
import { B as ButtonProps, C as CheckboxProps, F as FormProps, a as FormResponseProps, I as InputProps, b as InputLabelProps, c as InputResponseProps } from './resolveGlobalConfigs-PbcnVEZr.mjs';
|
|
3
|
+
export { d as ButtonIcon, e as ButtonMode, f as CheckboxColumns, g as CheckboxOption, E as EUIComponentDefaults, h as EUIConfigs, i as EUIProvider, j as EUIRoute, k as FormChangeMeta, l as FormChildren, r as resolveWithGlobal, u as useEUIConfig } from './resolveGlobalConfigs-PbcnVEZr.mjs';
|
|
4
4
|
import { FormikValues } from 'formik';
|
|
5
5
|
|
|
6
6
|
declare function Button({ icon, text, children, loading, disabled, block, compact, mode, contentClassName, labelClassName, className, variant, appearance, shape, size, accessibilityRole, accessibilityState, type: _type, onClick: _onClick, onMouseMove: _onMouseMove, onPress, ...rest }: ButtonProps): React.JSX.Element;
|
package/dist/index.native.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { B as ButtonProps, C as CheckboxProps, F as FormProps, a as FormResponseProps, I as InputProps, b as InputLabelProps, c as InputResponseProps } from './resolveGlobalConfigs-
|
|
3
|
-
export { d as ButtonIcon, e as ButtonMode, f as CheckboxOption, E as EUIComponentDefaults,
|
|
2
|
+
import { B as ButtonProps, C as CheckboxProps, F as FormProps, a as FormResponseProps, I as InputProps, b as InputLabelProps, c as InputResponseProps } from './resolveGlobalConfigs-PbcnVEZr.js';
|
|
3
|
+
export { d as ButtonIcon, e as ButtonMode, f as CheckboxColumns, g as CheckboxOption, E as EUIComponentDefaults, h as EUIConfigs, i as EUIProvider, j as EUIRoute, k as FormChangeMeta, l as FormChildren, r as resolveWithGlobal, u as useEUIConfig } from './resolveGlobalConfigs-PbcnVEZr.js';
|
|
4
4
|
import { FormikValues } from 'formik';
|
|
5
5
|
|
|
6
6
|
declare function Button({ icon, text, children, loading, disabled, block, compact, mode, contentClassName, labelClassName, className, variant, appearance, shape, size, accessibilityRole, accessibilityState, type: _type, onClick: _onClick, onMouseMove: _onMouseMove, onPress, ...rest }: ButtonProps): React.JSX.Element;
|
package/dist/index.native.js
CHANGED
|
@@ -330,6 +330,17 @@ var Button_native_default = Button;
|
|
|
330
330
|
function isMultiCheckbox(props) {
|
|
331
331
|
return Array.isArray(props.options);
|
|
332
332
|
}
|
|
333
|
+
function resolveCheckboxColumns(columns) {
|
|
334
|
+
return columns ?? 1;
|
|
335
|
+
}
|
|
336
|
+
function chunkCheckboxOptions(options, columns) {
|
|
337
|
+
const resolvedColumns = resolveCheckboxColumns(columns);
|
|
338
|
+
const chunkSize = Math.ceil(options.length / resolvedColumns);
|
|
339
|
+
return Array.from(
|
|
340
|
+
{ length: resolvedColumns },
|
|
341
|
+
(_, columnIndex) => options.slice(columnIndex * chunkSize, (columnIndex + 1) * chunkSize)
|
|
342
|
+
).filter((columnOptions) => columnOptions.length > 0);
|
|
343
|
+
}
|
|
333
344
|
function useResolvedCheckboxConfig({
|
|
334
345
|
label,
|
|
335
346
|
placeholder,
|
|
@@ -339,7 +350,7 @@ function useResolvedCheckboxConfig({
|
|
|
339
350
|
const eui = useEUIConfig();
|
|
340
351
|
return {
|
|
341
352
|
shape: shape ?? eui?.config?.global?.shape ?? "roundedSquare",
|
|
342
|
-
variant: variant ?? "
|
|
353
|
+
variant: variant ?? "success",
|
|
343
354
|
label: label ?? placeholder
|
|
344
355
|
};
|
|
345
356
|
}
|
|
@@ -483,6 +494,7 @@ function Checkbox(checkboxProps) {
|
|
|
483
494
|
const variantStyles = resolveNativeCheckboxVariantStyles(resolvedVariant);
|
|
484
495
|
const activeMeta = isMulti ? multiMeta : singleMeta;
|
|
485
496
|
const multiProps = isMultiCheckbox(checkboxProps) ? checkboxProps : null;
|
|
497
|
+
const optionColumns = multiProps ? chunkCheckboxOptions(multiProps.options, multiProps.columns) : [];
|
|
486
498
|
const singleChecked = singleField.value;
|
|
487
499
|
const errorText = activeMeta.touched && typeof activeMeta.error === "string" ? activeMeta.error : null;
|
|
488
500
|
return /* @__PURE__ */ jsxRuntime$1.jsxs(reactNative.View, { className: cn(checkboxGroupClassName, groupClassName), children: [
|
|
@@ -523,61 +535,68 @@ function Checkbox(checkboxProps) {
|
|
|
523
535
|
]
|
|
524
536
|
}
|
|
525
537
|
),
|
|
526
|
-
isMulti && multiProps
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
disabled: optionDisabled,
|
|
551
|
-
indicatorClassName,
|
|
552
|
-
checkedIndicatorClassName,
|
|
553
|
-
resolvedShape,
|
|
554
|
-
variantCheckedClassName: variantStyles.checkedClassName
|
|
555
|
-
}),
|
|
556
|
-
children: checked ? /* @__PURE__ */ jsxRuntime$1.jsx(
|
|
557
|
-
Tick,
|
|
538
|
+
isMulti && multiProps ? /* @__PURE__ */ jsxRuntime$1.jsx(reactNative.View, { className: "w-full flex-row gap-6", children: optionColumns.map((columnOptions, columnIndex) => /* @__PURE__ */ jsxRuntime$1.jsx(
|
|
539
|
+
reactNative.View,
|
|
540
|
+
{
|
|
541
|
+
className: "min-w-0 flex-1 flex-col gap-2",
|
|
542
|
+
children: columnOptions.map((option) => {
|
|
543
|
+
const values = multiField.value ?? [];
|
|
544
|
+
const checked = values.includes(option.value);
|
|
545
|
+
const optionDisabled = disabled || option.disabled === true;
|
|
546
|
+
return /* @__PURE__ */ jsxRuntime$1.jsxs(
|
|
547
|
+
reactNative.Pressable,
|
|
548
|
+
{
|
|
549
|
+
accessibilityRole: "checkbox",
|
|
550
|
+
accessibilityState: {
|
|
551
|
+
checked,
|
|
552
|
+
disabled: optionDisabled
|
|
553
|
+
},
|
|
554
|
+
className: cn(checkboxOptionRowClassName, optionClassName),
|
|
555
|
+
disabled: optionDisabled,
|
|
556
|
+
onPress: () => multiHelpers.setValue(
|
|
557
|
+
checked ? values.filter((value) => value !== option.value) : [...values, option.value]
|
|
558
|
+
),
|
|
559
|
+
children: [
|
|
560
|
+
/* @__PURE__ */ jsxRuntime$1.jsx(
|
|
561
|
+
reactNative.View,
|
|
558
562
|
{
|
|
559
|
-
|
|
560
|
-
|
|
563
|
+
className: getIndicatorClassName({
|
|
564
|
+
checked,
|
|
565
|
+
className,
|
|
566
|
+
disabled: optionDisabled,
|
|
567
|
+
indicatorClassName,
|
|
568
|
+
checkedIndicatorClassName,
|
|
569
|
+
resolvedShape,
|
|
570
|
+
variantCheckedClassName: variantStyles.checkedClassName
|
|
571
|
+
}),
|
|
572
|
+
children: checked ? /* @__PURE__ */ jsxRuntime$1.jsx(
|
|
573
|
+
Tick,
|
|
574
|
+
{
|
|
575
|
+
checkedIconClassName,
|
|
576
|
+
iconClassName: variantStyles.iconClassName
|
|
577
|
+
}
|
|
578
|
+
) : null
|
|
561
579
|
}
|
|
562
|
-
) : null
|
|
563
|
-
}
|
|
564
|
-
),
|
|
565
|
-
/* @__PURE__ */ jsxRuntime$1.jsx(
|
|
566
|
-
reactNative.Text,
|
|
567
|
-
{
|
|
568
|
-
className: cn(
|
|
569
|
-
checkboxLabelClassName,
|
|
570
|
-
optionDisabled && "opacity-60",
|
|
571
|
-
labelClassName
|
|
572
580
|
),
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
+
/* @__PURE__ */ jsxRuntime$1.jsx(
|
|
582
|
+
reactNative.Text,
|
|
583
|
+
{
|
|
584
|
+
className: cn(
|
|
585
|
+
checkboxLabelClassName,
|
|
586
|
+
optionDisabled && "opacity-60",
|
|
587
|
+
labelClassName
|
|
588
|
+
),
|
|
589
|
+
children: option.label
|
|
590
|
+
}
|
|
591
|
+
)
|
|
592
|
+
]
|
|
593
|
+
},
|
|
594
|
+
option.value
|
|
595
|
+
);
|
|
596
|
+
})
|
|
597
|
+
},
|
|
598
|
+
`${multiField.name}-column-${columnIndex}`
|
|
599
|
+
)) }) : null,
|
|
581
600
|
errorText ? /* @__PURE__ */ jsxRuntime$1.jsx(reactNative.Text, { className: "px-2 py-1 text-sm font-medium text-eui-danger-500", children: errorText }) : null
|
|
582
601
|
] });
|
|
583
602
|
}
|
package/dist/index.native.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../node_modules/clsx/dist/clsx.mjs","../src/utils/cn.ts","../src/utils/styles.ts","../src/components/eui/EUIProvider.tsx","../src/components/eui/resolveGlobalConfigs.tsx","../src/components/data-entry/button/base/Button.config.ts","../src/data/styles.tsx","../src/components/data-entry/button/base/Button.styles.ts","../src/components/data-entry/button/native/Button.native.styles.ts","../src/components/data-entry/button/native/Button.native.tsx","../src/components/data-entry/checkbox/base/Checkbox.config.ts","../src/components/data-entry/checkbox/base/Checkbox.styles.ts","../src/components/data-entry/checkbox/native/Checkbox.native.styles.ts","../src/components/data-entry/checkbox/native/Checkbox.native.tsx","../src/components/data-entry/form/form/base/Form.shared.tsx","../src/components/data-entry/form/form/native/Form.native.tsx","../src/components/data-entry/form/form-response/base/FormResponse.styles.ts","../src/components/data-entry/form/form-response/native/FormResponse.native.tsx","../src/components/data-entry/input/input-label/base/InputLabel.styles.ts","../src/components/data-entry/input/input-label/native/InputLabel.native.tsx","../src/components/data-entry/input/input-response/base/InputResponse.styles.ts","../src/components/data-entry/input/input-response/native/InputResponse.native.tsx","../src/components/data-entry/input/input/base/Input.config.ts","../src/components/data-entry/input/input/base/Input.styles.ts","../src/components/data-entry/input/input/native/Input.native.styles.ts","../src/components/data-entry/input/input/native/Input.native.tsx"],"names":["twMerge","createContext","useState","jsx","useContext","Pressable","jsxs","View","ActivityIndicator","Text","useField","useRef","useEffect","Formik","Animated","Easing","ErrorMessage","TextInput"],"mappings":"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","file":"index.native.js","sourcesContent":["function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","import { ClassValue } from \"clsx\";\nimport clsx from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","import { Appearance, Variant } from \"../types\";\n\ninterface ResolveAppearanceStylesProps<T> {\n appearance?: Appearance;\n variant: Variant;\n solid: Record<Variant, T>;\n lite: Record<Variant, T>;\n ghost: Record<Variant, T>;\n}\n\nexport function resolveAppearanceStyles<T = string>({\n appearance = \"solid\",\n variant = \"default\",\n solid,\n lite,\n ghost,\n}: ResolveAppearanceStylesProps<T>): T {\n switch (appearance) {\n case \"ghost\":\n return ghost[variant];\n\n case \"lite\":\n return lite[variant];\n\n default:\n return solid[variant];\n }\n}\n","import React, { createContext, useContext, useState } from \"react\";\nimport { EUIConfigs } from \"./EUITypes\";\n\ninterface EUIContextValue {\n config: EUIConfigs;\n setConfig: React.Dispatch<React.SetStateAction<EUIConfigs>>;\n}\n\nconst EUIContext = createContext<EUIContextValue | null>(null);\n\nexport const EUIProvider = ({\n config,\n children,\n}: {\n config: EUIConfigs;\n children: React.ReactNode;\n}) => {\n const [state, setState] = useState<EUIConfigs>(config);\n\n return (\n <EUIContext.Provider value={{ config: state, setConfig: setState }}>\n {children}\n </EUIContext.Provider>\n );\n};\n\nexport const useEUIConfig = () => {\n const ctx = useContext(EUIContext);\n if (!ctx) {\n throw new Error(\"useEUIConfig must be used inside EUIProvider\");\n }\n return ctx;\n};\n","import { EUIConfigs } from \"./EUITypes\";\n\nexport function resolveWithGlobal<T>(\n config: EUIConfigs | null,\n props: T,\n defaults: Partial<T>,\n): T {\n return {\n ...defaults,\n ...(config?.global ?? {}),\n ...props,\n } as T;\n}\n","import { useEUIConfig } from \"../../../eui\";\n\nimport type { Appearance, Shape, Size, Variant } from \"../../../../types\";\nimport type { ButtonMode, ButtonProps } from \"./Button.types\";\n\nexport const buttonModeAppearance: Record<ButtonMode, Appearance> = {\n contained: \"solid\",\n \"contained-tonal\": \"lite\",\n outlined: \"ghost\",\n text: \"ghost\",\n};\n\nexport interface ResolvedButtonConfig {\n shape: Shape;\n size: Size;\n variant: Variant;\n appearance: Appearance;\n}\n\nexport function useResolvedButtonConfig({\n compact = false,\n mode,\n variant,\n appearance,\n shape,\n size,\n}: Pick<\n ButtonProps,\n \"compact\" | \"mode\" | \"variant\" | \"appearance\" | \"shape\" | \"size\"\n>): ResolvedButtonConfig {\n const eui = useEUIConfig();\n const configuredSize = size ?? eui?.config?.global?.size ?? \"md\";\n\n return {\n shape: shape ?? eui?.config?.global?.shape ?? \"square\",\n size: compact && configuredSize === \"md\" ? \"sm\" : configuredSize,\n variant: variant ?? eui?.config?.global?.variant ?? \"success\",\n appearance: appearance ?? (mode ? buttonModeAppearance[mode] : \"solid\"),\n };\n}\n","import {\n Decoration,\n Shape,\n Target,\n ToastPosition,\n ToastStatus,\n Variant,\n} from \"./enums\";\n\nexport const variantsSolid: Record<Variant, string> = {\n [Variant.default]:\n \"bg-gray-300 text-gray-900 hover:bg-gray-200 dark:bg-gray-700 dark:text-gray-100 dark:hover:bg-gray-600\",\n [Variant.primary]: \"bg-eui-primary-500 text-white hover:bg-eui-primary-600\",\n [Variant.secondary]:\n \"bg-eui-secondary-500 text-white hover:bg-eui-secondary-600\",\n [Variant.success]: \"bg-eui-success-500 text-white hover:bg-eui-success-600\",\n [Variant.danger]: \"bg-eui-danger-500 text-white hover:bg-eui-danger-600\",\n [Variant.warning]: \"bg-eui-warning-500 text-black hover:bg-eui-warning-400\",\n [Variant.info]: \"bg-eui-info-500 text-white hover:bg-eui-info-600\",\n [Variant.light]:\n \"bg-eui-light-400 text-gray-900 hover:bg-eui-light-300 dark:bg-gray-200 dark:text-gray-900 dark:hover:bg-gray-100\",\n [Variant.dark]:\n \"bg-eui-dark-500 text-white hover:bg-eui-dark-400 dark:bg-eui-dark-400 dark:hover:bg-eui-dark-300\",\n};\n\nexport const variantsLite: Record<Variant, string> = {\n [Variant.default]:\n \"bg-gray-500/10 border border-gray-300 text-gray-700 dark:bg-gray-400/10 dark:border-gray-700 dark:text-gray-200\",\n [Variant.primary]:\n \"bg-eui-primary-500/10 border border-eui-primary-500/30 text-eui-primary-400 dark:text-eui-primary-300\",\n [Variant.secondary]:\n \"bg-eui-secondary-500/10 border border-eui-secondary-500/30 text-eui-secondary-500 dark:text-eui-secondary-400\",\n [Variant.success]:\n \"bg-eui-success-500/10 border border-eui-success-500/30 text-eui-success-500 dark:text-eui-success-400\",\n [Variant.danger]:\n \"bg-eui-danger-500/10 border border-eui-danger-500/30 text-eui-danger-500 dark:text-eui-danger-400\",\n [Variant.warning]:\n \"bg-eui-warning-500/10 border border-eui-warning-500/30 text-eui-warning-600 dark:text-eui-warning-400\",\n [Variant.info]:\n \"bg-eui-info-500/10 border border-eui-info-500/30 text-eui-info-500 dark:text-eui-info-400\",\n [Variant.light]:\n \"bg-white/40 border border-white/30 text-gray-800 dark:bg-white/10 dark:border-white/10 dark:text-gray-100\",\n [Variant.dark]:\n \"bg-eui-dark-500/10 border border-eui-dark-500/30 text-eui-dark-500 dark:text-eui-dark-300\",\n};\n\nexport const variantsGhost: Record<Variant, string> = {\n [Variant.default]:\n \"bg-transparent border border-gray-300 text-gray-700 hover:bg-gray-100 dark:border-gray-700 dark:text-gray-200 dark:hover:bg-gray-800\",\n [Variant.primary]:\n \"bg-transparent border border-eui-primary-500 text-eui-primary-500 hover:bg-eui-primary-500/10 dark:text-eui-primary-300 dark:border-eui-primary-400\",\n [Variant.secondary]:\n \"bg-transparent border border-eui-secondary-500 text-eui-secondary-500 hover:bg-eui-secondary-500/10 dark:text-eui-secondary-400 dark:border-eui-secondary-400\",\n [Variant.success]:\n \"bg-transparent border border-eui-success-500 text-eui-success-500 hover:bg-eui-success-500/10 dark:text-eui-success-400 dark:border-eui-success-400\",\n [Variant.danger]:\n \"bg-transparent border border-eui-danger-500 text-eui-danger-500 hover:bg-eui-danger-500/10 dark:text-eui-danger-400 dark:border-eui-danger-400\",\n [Variant.warning]:\n \"bg-transparent border border-eui-warning-500 text-eui-warning-600 hover:bg-eui-warning-500/10 dark:text-eui-warning-400 dark:border-eui-warning-400\",\n [Variant.info]:\n \"bg-transparent border border-eui-info-500 text-eui-info-500 hover:bg-eui-info-500/10 dark:text-eui-info-400 dark:border-eui-info-400\",\n [Variant.light]:\n \"bg-transparent border border-gray-300 text-gray-700 hover:bg-white/10 dark:border-gray-500 dark:text-gray-100 dark:hover:bg-white/5\",\n [Variant.dark]:\n \"bg-transparent border border-eui-dark-500 text-eui-dark-500 hover:bg-eui-dark-500/10 dark:text-eui-dark-300 dark:border-eui-dark-300\",\n};\n\nexport const textVariants: Record<Variant, string> = {\n [Variant.default]: \"eui-text-md\",\n [Variant.primary]: \"text-blue-500\",\n [Variant.secondary]: \"text-gray-500\",\n [Variant.success]: \"text-green-500\",\n [Variant.danger]: \"text-red-500\",\n [Variant.warning]: \"text-yellow-500\",\n [Variant.info]: \"text-blue-400\",\n [Variant.light]: \"text-gray-300\",\n [Variant.dark]: \"text-gray-900\",\n};\n\nexport const borderVariants: Record<Variant, string> = {\n [Variant.default]: \"border-gray-300\",\n [Variant.primary]: \"border-eui-primary-500\",\n [Variant.secondary]: \"border-eui-secondary-500\",\n [Variant.success]: \"border-eui-success-500\",\n [Variant.danger]: \"border-eui-danger-500\",\n [Variant.warning]: \"border-eui-warning-500\",\n [Variant.info]: \"border-eui-info-500\",\n [Variant.light]: \"border-eui-light-500\",\n [Variant.dark]: \"border-eui-dark-500\",\n};\n\nexport const decorations: Record<Decoration, string> = {\n [Decoration.underline]: \"underline\",\n [Decoration.overline]: \"overline\",\n [Decoration.lineThrough]: \"line-through\",\n [Decoration.noUnderline]: \"no-underline\",\n};\n\nexport const targets: Record<Target, string> = {\n [Target.blank]: \"_blank\",\n [Target.self]: \"_self\",\n [Target.parent]: \"_parent\",\n [Target.top]: \"_top\",\n};\n\nexport const shapes: Record<Shape, string> = {\n [Shape.square]: \"rounded-none\",\n [Shape.roundedSquare]: \"rounded-md\",\n [Shape.softRoundedSquare]: \"rounded-lg\",\n [Shape.circle]: \"rounded-full\",\n};\n\nexport const cardBorderVariants: Record<Variant, string> = {\n [Variant.default]: \"border-white/10\",\n [Variant.primary]: \"border-eui-primary-500/30\",\n [Variant.secondary]: \"border-eui-secondary-500/30\",\n [Variant.success]: \"border-eui-success-500/30\",\n [Variant.danger]: \"border-eui-danger-500/30\",\n [Variant.warning]: \"border-eui-warning-500/30\",\n [Variant.info]: \"border-eui-info-500/30\",\n [Variant.light]: \"border-eui-light-500/30\",\n [Variant.dark]: \"border-eui-dark-500/30\",\n};\n\nexport const cardHoverBorderVariants: Record<Variant, string> = {\n [Variant.default]: \"hover:border-white/20\",\n [Variant.primary]: \"hover:border-eui-primary-500\",\n [Variant.secondary]: \"hover:border-eui-secondary-500\",\n [Variant.success]: \"hover:border-eui-success-500\",\n [Variant.danger]: \"hover:border-eui-danger-500\",\n [Variant.warning]: \"hover:border-eui-warning-500\",\n [Variant.info]: \"hover:border-eui-info-500\",\n [Variant.light]: \"hover:border-eui-light-500\",\n [Variant.dark]: \"hover:border-eui-dark-500\",\n};\n\nexport const cardBgVariants: Record<Variant, string> = {\n [Variant.default]: \"bg-white/5\",\n [Variant.primary]: \"bg-eui-primary-500/10\",\n [Variant.secondary]: \"bg-eui-secondary-500/10\",\n [Variant.success]: \"bg-eui-success-500/10\",\n [Variant.danger]: \"bg-eui-danger-500/10\",\n [Variant.warning]: \"bg-eui-warning-500/10\",\n [Variant.info]: \"bg-eui-info-500/10\",\n [Variant.light]: \"bg-eui-light-500/10\",\n [Variant.dark]: \"bg-eui-dark-500/20\",\n};\n\nexport const toastPositionStyles: Record<ToastPosition, string> = {\n [ToastPosition.topLeft]: \"top-4 left-4 items-start\",\n [ToastPosition.topCenter]: \"top-4 left-1/2 -translate-x-1/2 items-center\",\n [ToastPosition.topRight]: \"top-4 right-4 items-end\",\n\n [ToastPosition.bottomLeft]: \"bottom-4 left-4 items-start\",\n [ToastPosition.bottomCenter]:\n \"bottom-4 left-1/2 -translate-x-1/2 items-center\",\n [ToastPosition.bottomRight]: \"bottom-4 right-4 items-end\",\n};\n\nexport type ToastDisplayVariant =\n | Variant.default\n | Variant.success\n | Variant.warning\n | Variant.danger\n | Variant.info;\n\nexport interface ToastVariantStyle {\n root: string;\n icon: string;\n progress: string;\n title: string;\n message: string;\n}\n\nexport const toastStatusVariantMap: Record<ToastStatus, ToastDisplayVariant> = {\n [ToastStatus.default]: Variant.default,\n [ToastStatus.success]: Variant.success,\n [ToastStatus.warning]: Variant.warning,\n [ToastStatus.error]: Variant.danger,\n [ToastStatus.danger]: Variant.danger,\n [ToastStatus.info]: Variant.info,\n};\n\nexport const toastVariantStyles: Record<\n ToastDisplayVariant,\n ToastVariantStyle\n> = {\n [Variant.default]: {\n root: \"border-gray-200 bg-white text-gray-900 shadow-xl dark:border-gray-700 dark:bg-gray-900 dark:text-white\",\n icon: \"bg-gray-100 text-gray-700 dark:bg-gray-800 dark:text-gray-200\",\n progress: \"bg-gray-500\",\n title: \"text-gray-950 dark:text-white\",\n message: \"text-gray-600 dark:text-gray-300\",\n },\n\n [Variant.success]: {\n root: \"border-eui-success-500/30 bg-eui-success-500/10 text-eui-success-700 shadow-xl dark:border-eui-success-400/40 dark:bg-eui-success-500/15 dark:text-eui-success-300\",\n icon: \"bg-eui-success-500/15 text-eui-success-600 dark:bg-eui-success-500/20 dark:text-eui-success-300\",\n progress: \"bg-eui-success-500\",\n title: \"text-eui-success-700 dark:text-eui-success-300\",\n message: \"text-eui-success-600 dark:text-eui-success-300/80\",\n },\n\n [Variant.warning]: {\n root: \"border-eui-warning-500/30 bg-eui-warning-500/10 text-eui-warning-700 shadow-xl dark:border-eui-warning-400/40 dark:bg-eui-warning-500/15 dark:text-eui-warning-300\",\n icon: \"bg-eui-warning-500/15 text-eui-warning-600 dark:bg-eui-warning-500/20 dark:text-eui-warning-300\",\n progress: \"bg-eui-warning-500\",\n title: \"text-eui-warning-700 dark:text-eui-warning-300\",\n message: \"text-eui-warning-600 dark:text-eui-warning-300/80\",\n },\n\n [Variant.danger]: {\n root: \"border-eui-danger-500/30 bg-eui-danger-500/10 text-eui-danger-700 shadow-xl dark:border-eui-danger-400/40 dark:bg-eui-danger-500/15 dark:text-eui-danger-300\",\n icon: \"bg-eui-danger-500/15 text-eui-danger-600 dark:bg-eui-danger-500/20 dark:text-eui-danger-300\",\n progress: \"bg-eui-danger-500\",\n title: \"text-eui-danger-700 dark:text-eui-danger-300\",\n message: \"text-eui-danger-600 dark:text-eui-danger-300/80\",\n },\n\n [Variant.info]: {\n root: \"border-eui-info-500/30 bg-eui-info-500/10 text-eui-info-700 shadow-xl dark:border-eui-info-400/40 dark:bg-eui-info-500/15 dark:text-eui-info-300\",\n icon: \"bg-eui-info-500/15 text-eui-info-600 dark:bg-eui-info-500/20 dark:text-eui-info-300\",\n progress: \"bg-eui-info-500\",\n title: \"text-eui-info-700 dark:text-eui-info-300\",\n message: \"text-eui-info-600 dark:text-eui-info-300/80\",\n },\n};\n\nexport const toastShapeStyles: Record<Shape, string> = {\n [Shape.circle]: \"!rounded-3xl\",\n [Shape.roundedSquare]: \"!rounded-lg\",\n [Shape.softRoundedSquare]: \"!rounded-3xl\",\n [Shape.square]: \"!rounded-none\",\n};\n","import {\n shapes,\n variantsGhost,\n variantsLite,\n variantsSolid,\n} from \"../../../../data/styles\";\nimport type { Shape, Size } from \"../../../../types\";\nimport { resolveAppearanceStyles } from \"../../../../utils\";\nimport type { ResolvedButtonConfig } from \"./Button.config\";\n\nexport const buttonShapes: Record<Shape, string> = shapes;\n\nexport const buttonIconSizes: Record<Size, number> = {\n xs: 14,\n sm: 16,\n md: 18,\n lg: 20,\n xl: 22,\n};\n\nexport function resolveButtonVariantStyles({\n appearance,\n variant,\n}: Pick<ResolvedButtonConfig, \"appearance\" | \"variant\">): string {\n return resolveAppearanceStyles({\n appearance,\n variant,\n solid: variantsSolid,\n lite: variantsLite,\n ghost: variantsGhost,\n });\n}\n\nexport function getButtonLabelColorClassName(className: string): string {\n return className\n .split(/\\s+/)\n .filter(\n (token) =>\n token.startsWith(\"text-\") ||\n token.startsWith(\"dark:text-\") ||\n token.startsWith(\"disabled:text-\"),\n )\n .join(\" \");\n}\n","import type { Size } from \"../../../../types\";\n\nexport interface NativeButtonSizeStyles {\n rootClassName: string;\n labelClassName: string;\n slotClassName: string;\n}\n\nexport const nativeButtonSizes: Record<Size, NativeButtonSizeStyles> = {\n xs: {\n rootClassName: \"min-h-[30px] px-2.5 py-1\",\n labelClassName: \"text-xs leading-[14px]\",\n slotClassName: \"h-[14px] w-[14px]\",\n },\n sm: {\n rootClassName: \"min-h-9 px-3 py-1.5\",\n labelClassName: \"text-sm leading-4\",\n slotClassName: \"h-4 w-4\",\n },\n md: {\n rootClassName: \"min-h-11 px-4 py-2\",\n labelClassName: \"text-[15px] leading-[18px]\",\n slotClassName: \"h-[18px] w-[18px]\",\n },\n lg: {\n rootClassName: \"min-h-[50px] px-[18px] py-3\",\n labelClassName: \"text-[17px] leading-5\",\n slotClassName: \"h-5 w-5\",\n },\n xl: {\n rootClassName: \"min-h-14 px-[22px] py-4\",\n labelClassName: \"text-[19px] leading-[22px]\",\n slotClassName: \"h-[22px] w-[22px]\",\n },\n};\n","/** @jsxImportSource nativewind */\n// External\nimport { ActivityIndicator, Pressable, Text, View } from \"react-native\";\n\n// Internal\nimport { cn } from \"../../../../utils\";\nimport {\n getButtonLabelColorClassName,\n resolveButtonVariantStyles,\n useResolvedButtonConfig,\n} from \"../base\";\n\n// Types\nimport type { ButtonProps } from \"../base\";\n\n// Data\nimport { buttonIconSizes, buttonShapes } from \"../base\";\nimport { nativeButtonSizes } from \"./Button.native.styles\";\n\nconst nativeLabelBaseStyle = {\n includeFontPadding: false,\n textAlignVertical: \"center\",\n} as const;\n\nfunction Button({\n icon,\n text,\n children,\n loading = false,\n disabled = false,\n block = false,\n compact = false,\n mode,\n contentClassName,\n labelClassName,\n className,\n variant,\n appearance,\n shape,\n size,\n accessibilityRole = \"button\",\n accessibilityState,\n type: _type,\n onClick: _onClick,\n onMouseMove: _onMouseMove,\n onPress,\n ...rest\n}: ButtonProps) {\n const {\n shape: resolvedShape,\n size: resolvedSize,\n variant: resolvedVariant,\n appearance: resolvedAppearance,\n } = useResolvedButtonConfig({\n compact,\n mode,\n variant,\n appearance,\n shape,\n size,\n });\n\n const metrics = nativeButtonSizes[resolvedSize];\n const iconSize = buttonIconSizes[resolvedSize];\n const variantStyles = resolveButtonVariantStyles({\n appearance: resolvedAppearance,\n variant: resolvedVariant,\n });\n const labelColorClassName = getButtonLabelColorClassName(variantStyles);\n const content = text ?? children;\n const resolvedIcon =\n typeof icon === \"function\"\n ? icon({ color: \"currentColor\", size: iconSize })\n : icon;\n\n return (\n <Pressable\n {...rest}\n accessibilityRole={accessibilityRole}\n accessibilityState={{\n disabled: disabled || loading,\n ...(accessibilityState as object),\n }}\n className={cn(\n \"relative items-center justify-center overflow-hidden\",\n variantStyles,\n buttonShapes[resolvedShape],\n metrics.rootClassName,\n block && \"w-full\",\n mode === \"text\" && \"border-transparent bg-transparent\",\n (disabled || loading) && \"opacity-55\",\n !disabled && !loading && \"active:opacity-80\",\n className,\n )}\n disabled={disabled || loading}\n onPress={onPress}\n style={({ pressed }: { pressed: boolean }) => [\n pressed && !disabled && !loading ? { opacity: 0.82 } : null,\n disabled || loading ? { opacity: 0.55 } : null,\n ]}\n >\n <View\n className={cn(\n \"z-10 flex-row items-center justify-center gap-2\",\n contentClassName,\n )}\n >\n {loading ? (\n <View\n className={cn(\n \"shrink-0 items-center justify-center\",\n metrics.slotClassName,\n )}\n >\n <ActivityIndicator className={labelColorClassName} size=\"small\" />\n </View>\n ) : null}\n {!loading && resolvedIcon ? (\n <View\n className={cn(\n \"shrink-0 items-center justify-center\",\n metrics.slotClassName,\n )}\n >\n {resolvedIcon}\n </View>\n ) : null}\n {typeof content === \"string\" || typeof content === \"number\" ? (\n <View className=\"items-center justify-center\">\n <Text\n className={cn(\n \"font-bold\",\n metrics.labelClassName,\n labelColorClassName,\n labelClassName,\n )}\n numberOfLines={1}\n style={nativeLabelBaseStyle}\n >\n {content}\n </Text>\n </View>\n ) : (\n content\n )}\n </View>\n </Pressable>\n );\n}\n\nexport default Button;\n","import {\n useField,\n type FieldHelperProps,\n type FieldHookConfig,\n type FieldInputProps,\n type FieldMetaProps,\n} from \"formik\";\n\nimport { useEUIConfig } from \"../../../eui\";\n\nimport type { Shape, Variant } from \"../../../../types\";\nimport type {\n CheckboxOption,\n CheckboxProps,\n FormikCheckboxProps,\n} from \"./Checkbox.types\";\n\nexport interface ResolvedCheckboxConfig {\n shape: Shape;\n variant: Variant;\n label?: string;\n}\n\nexport interface CheckboxFieldState {\n isMulti: boolean;\n multiField: FieldInputProps<string[]>;\n multiMeta: FieldMetaProps<string[]>;\n multiHelpers: FieldHelperProps<string[]>;\n singleField: FieldInputProps<boolean>;\n singleMeta: FieldMetaProps<boolean>;\n singleHelpers: FieldHelperProps<boolean>;\n}\n\nexport function isMultiCheckbox(\n props: CheckboxProps,\n): props is Extract<CheckboxProps, { options: CheckboxOption[] }> {\n return Array.isArray(props.options);\n}\n\nexport function useResolvedCheckboxConfig({\n label,\n placeholder,\n variant,\n shape,\n}: Pick<\n CheckboxProps,\n \"label\" | \"placeholder\" | \"variant\" | \"shape\"\n>): ResolvedCheckboxConfig {\n const eui = useEUIConfig();\n\n return {\n shape: shape ?? eui?.config?.global?.shape ?? \"roundedSquare\",\n variant: variant ?? \"secondary\",\n label: label ?? placeholder,\n };\n}\n\nexport function useCheckboxFieldState(\n props: FormikCheckboxProps,\n): CheckboxFieldState {\n const isMulti = isMultiCheckbox(props);\n const [multiField, multiMeta, multiHelpers] = useField<string[]>(\n props as FieldHookConfig<string[]>,\n );\n const [singleField, singleMeta, singleHelpers] = useField<boolean>(\n props as FieldHookConfig<boolean>,\n );\n\n return {\n isMulti,\n multiField,\n multiMeta,\n multiHelpers,\n singleField,\n singleMeta,\n singleHelpers,\n };\n}\n","import { shapes } from \"../../../../data/styles\";\n\nexport const checkboxShapes = shapes;\n\nexport const checkboxGroupClassName = \"flex flex-col gap-2\";\nexport const checkboxOptionRowClassName = \"flex flex-row items-start gap-3\";\nexport const checkboxLabelClassName =\n \"cursor-pointer select-none text-sm leading-relaxed text-gray-800 dark:text-gray-200\";\nexport const checkboxIndicatorBaseClassName =\n \"relative h-5 w-5 min-h-[1.25rem] min-w-[1.25rem] shrink-0 appearance-none border-2 border-gray-300 bg-white transition-all duration-300 hover:border-gray-400 focus:outline-none focus:ring-2 focus:ring-eui-primary-500/30 dark:border-neutral-600 dark:bg-neutral-900 dark:hover:border-neutral-500\";\nexport const checkboxIndicatorDisabledClassName =\n \"cursor-not-allowed opacity-50\";\n","import type { Variant } from \"../../../../types\";\n\nexport interface NativeCheckboxVariantStyles {\n checkedClassName: string;\n iconClassName: string;\n}\n\nexport const nativeCheckboxVariants: Record<\n Variant,\n NativeCheckboxVariantStyles\n> = {\n default: {\n checkedClassName:\n \"border-eui-secondary-600 bg-eui-secondary-600 dark:border-eui-secondary-500 dark:bg-eui-secondary-500\",\n iconClassName: \"text-white\",\n },\n primary: {\n checkedClassName:\n \"border-eui-primary-600 bg-eui-primary-600 dark:border-eui-primary-500 dark:bg-eui-primary-500\",\n iconClassName: \"text-white\",\n },\n secondary: {\n checkedClassName:\n \"border-eui-secondary-600 bg-eui-secondary-600 dark:border-eui-secondary-500 dark:bg-eui-secondary-500\",\n iconClassName: \"text-white\",\n },\n success: {\n checkedClassName:\n \"border-eui-success-600 bg-eui-success-600 dark:border-eui-success-500 dark:bg-eui-success-500\",\n iconClassName: \"text-white\",\n },\n danger: {\n checkedClassName:\n \"border-eui-danger-600 bg-eui-danger-600 dark:border-eui-danger-500 dark:bg-eui-danger-500\",\n iconClassName: \"text-white\",\n },\n warning: {\n checkedClassName:\n \"border-eui-warning-500 bg-eui-warning-500 dark:border-eui-warning-400 dark:bg-eui-warning-400\",\n iconClassName: \"text-black\",\n },\n info: {\n checkedClassName:\n \"border-eui-info-600 bg-eui-info-600 dark:border-eui-info-500 dark:bg-eui-info-500\",\n iconClassName: \"text-white\",\n },\n light: {\n checkedClassName:\n \"border-eui-light-400 bg-eui-light-400 dark:border-gray-200 dark:bg-gray-200\",\n iconClassName: \"text-gray-900\",\n },\n dark: {\n checkedClassName:\n \"border-eui-dark-500 bg-eui-dark-500 dark:border-eui-dark-300 dark:bg-eui-dark-300\",\n iconClassName: \"text-white\",\n },\n};\n\nexport function resolveNativeCheckboxVariantStyles(variant: Variant) {\n return nativeCheckboxVariants[variant];\n}\n","/** @jsxImportSource nativewind */\n// External\nimport { Pressable, Text, View } from \"react-native\";\n\n// Internal\nimport { cn } from \"../../../../utils\";\nimport {\n checkboxGroupClassName,\n checkboxIndicatorDisabledClassName,\n checkboxLabelClassName,\n checkboxOptionRowClassName,\n checkboxShapes,\n isMultiCheckbox,\n useCheckboxFieldState,\n useResolvedCheckboxConfig,\n} from \"../base\";\nimport { resolveNativeCheckboxVariantStyles } from \"./Checkbox.native.styles\";\n\n// Types\nimport type { CheckboxProps } from \"../base\";\nimport type { Shape } from \"../../../../types\";\n\nfunction getIndicatorClassName({\n checked,\n className,\n disabled,\n indicatorClassName,\n checkedIndicatorClassName,\n resolvedShape,\n variantCheckedClassName,\n}: {\n checked: boolean;\n className?: string;\n disabled?: boolean;\n indicatorClassName?: string;\n checkedIndicatorClassName?: string;\n resolvedShape: Shape;\n variantCheckedClassName: string;\n}) {\n return cn(\n \"h-5 w-5 shrink-0 items-center justify-center border-2 border-gray-300 bg-white dark:border-neutral-600 dark:bg-neutral-900\",\n checkboxShapes[resolvedShape],\n indicatorClassName,\n className,\n checked && variantCheckedClassName,\n checked && checkedIndicatorClassName,\n disabled && checkboxIndicatorDisabledClassName,\n );\n}\n\nfunction Tick({\n checkedIconClassName,\n iconClassName,\n}: {\n checkedIconClassName?: string;\n iconClassName: string;\n}) {\n return (\n <Text\n className={cn(\n \"text-sm font-bold leading-none\",\n iconClassName,\n checkedIconClassName,\n )}\n >\n ✓\n </Text>\n );\n}\n\nfunction Checkbox(checkboxProps: CheckboxProps) {\n const {\n label,\n placeholder,\n variant,\n shape,\n disabled = false,\n className,\n groupClassName,\n optionClassName,\n indicatorClassName,\n checkedIndicatorClassName,\n checkedIconClassName,\n labelClassName,\n } = checkboxProps;\n const {\n shape: resolvedShape,\n variant: resolvedVariant,\n label: resolvedLabel,\n } = useResolvedCheckboxConfig({\n label,\n placeholder,\n variant,\n shape,\n });\n const {\n isMulti,\n multiField,\n multiMeta,\n multiHelpers,\n singleField,\n singleMeta,\n singleHelpers,\n } = useCheckboxFieldState(checkboxProps);\n const variantStyles = resolveNativeCheckboxVariantStyles(resolvedVariant);\n const activeMeta = isMulti ? multiMeta : singleMeta;\n const multiProps = isMultiCheckbox(checkboxProps) ? checkboxProps : null;\n const singleChecked = singleField.value;\n const errorText =\n activeMeta.touched && typeof activeMeta.error === \"string\"\n ? activeMeta.error\n : null;\n\n return (\n <View className={cn(checkboxGroupClassName, groupClassName)}>\n {!isMulti && (\n <Pressable\n accessibilityRole=\"checkbox\"\n accessibilityState={{\n checked: singleChecked,\n disabled,\n }}\n className={cn(checkboxOptionRowClassName, optionClassName)}\n disabled={disabled}\n onPress={() => singleHelpers.setValue(!singleChecked)}\n >\n <View\n className={getIndicatorClassName({\n checked: singleChecked,\n className,\n disabled,\n indicatorClassName,\n checkedIndicatorClassName,\n resolvedShape,\n variantCheckedClassName: variantStyles.checkedClassName,\n })}\n >\n {singleChecked ? (\n <Tick\n checkedIconClassName={checkedIconClassName}\n iconClassName={variantStyles.iconClassName}\n />\n ) : null}\n </View>\n\n {resolvedLabel ? (\n <Text className={cn(checkboxLabelClassName, labelClassName)}>\n {resolvedLabel}\n </Text>\n ) : null}\n </Pressable>\n )}\n\n {isMulti &&\n multiProps?.options.map((option) => {\n const values = multiField.value ?? [];\n const checked = values.includes(option.value);\n const optionDisabled = disabled || option.disabled === true;\n\n return (\n <Pressable\n key={option.value}\n accessibilityRole=\"checkbox\"\n accessibilityState={{\n checked,\n disabled: optionDisabled,\n }}\n className={cn(checkboxOptionRowClassName, optionClassName)}\n disabled={optionDisabled}\n onPress={() =>\n multiHelpers.setValue(\n checked\n ? values.filter((value) => value !== option.value)\n : [...values, option.value],\n )\n }\n >\n <View\n className={getIndicatorClassName({\n checked,\n className,\n disabled: optionDisabled,\n indicatorClassName,\n checkedIndicatorClassName,\n resolvedShape,\n variantCheckedClassName: variantStyles.checkedClassName,\n })}\n >\n {checked ? (\n <Tick\n checkedIconClassName={checkedIconClassName}\n iconClassName={variantStyles.iconClassName}\n />\n ) : null}\n </View>\n\n <Text\n className={cn(\n checkboxLabelClassName,\n optionDisabled && \"opacity-60\",\n labelClassName,\n )}\n >\n {option.label}\n </Text>\n </Pressable>\n );\n })}\n\n {errorText ? (\n <Text className=\"px-2 py-1 text-sm font-medium text-eui-danger-500\">\n {errorText}\n </Text>\n ) : null}\n </View>\n );\n}\n\nexport { Checkbox };\nexport default Checkbox;\n","import { useEffect, useRef } from \"react\";\nimport type { FormikProps, FormikValues } from \"formik\";\n\nimport type { FormChildren, FormProps } from \"./Form.types\";\n\ntype FormObserversProps<Values extends FormikValues> = Pick<\n FormProps<Values>,\n \"onChange\" | \"onDirtyChange\"\n> & {\n formik: FormikProps<Values>;\n};\n\nexport function renderFormChildren<Values extends FormikValues>(\n children: FormChildren<Values> | undefined,\n formik: FormikProps<Values>,\n) {\n return typeof children === \"function\" ? children(formik) : children;\n}\n\nexport function FormObservers<Values extends FormikValues>({\n formik,\n onChange,\n onDirtyChange,\n}: FormObserversProps<Values>) {\n const prevValuesRef = useRef(formik.values);\n\n useEffect(() => {\n onDirtyChange?.(formik.dirty);\n }, [formik.dirty, onDirtyChange]);\n\n useEffect(() => {\n if (!onChange) return;\n\n const currentValues = formik.values;\n const prevValues = prevValuesRef.current;\n const changed: Partial<Values> = {};\n\n Object.keys(currentValues).forEach((key) => {\n if (currentValues[key] !== prevValues[key]) {\n changed[key as keyof Values] = currentValues[key];\n }\n });\n\n if (Object.keys(changed).length > 0) {\n onChange(currentValues, { changed });\n }\n\n prevValuesRef.current = currentValues;\n }, [formik.values, onChange]);\n\n return null;\n}\n","/** @jsxImportSource nativewind */\nimport { Formik, type FormikValues } from \"formik\";\nimport { View } from \"react-native\";\n\nimport { cn } from \"../../../../../utils\";\nimport { FormObservers, renderFormChildren, type FormProps } from \"../base\";\n\nexport function Form<Values extends FormikValues = FormikValues>({\n initialValues = {} as Values,\n validationSchema,\n enableReinitialize,\n children,\n className,\n contentClassName,\n onSubmit,\n onChange,\n onDirtyChange,\n}: FormProps<Values>) {\n return (\n <Formik<Values>\n initialValues={initialValues}\n validationSchema={validationSchema}\n enableReinitialize={enableReinitialize}\n onSubmit={async (values, helpers) => {\n await onSubmit(values, helpers);\n }}\n >\n {(formik) => (\n <View className={cn(className)}>\n <FormObservers\n formik={formik}\n onChange={onChange}\n onDirtyChange={onDirtyChange}\n />\n <View className={cn(contentClassName)}>\n {renderFormChildren(children, formik)}\n </View>\n </View>\n )}\n </Formik>\n );\n}\n","import { shapes, variantsLite } from \"../../../../../data/styles\";\nimport type { Shape, Size, Variant } from \"../../../../../types\";\n\nexport const formResponseSizeStyles: Record<\n Size,\n {\n root: string;\n text: string;\n }\n> = {\n xs: {\n root: \"px-2 py-1\",\n text: \"text-xs\",\n },\n sm: {\n root: \"px-3 py-2\",\n text: \"text-sm\",\n },\n md: {\n root: \"px-4 py-2\",\n text: \"text-base\",\n },\n lg: {\n root: \"px-5 py-3\",\n text: \"text-lg\",\n },\n xl: {\n root: \"px-6 py-4\",\n text: \"text-xl\",\n },\n};\n\nfunction isTextClassName(token: string) {\n const styleToken = token.split(\":\").pop() ?? token;\n\n return styleToken.startsWith(\"text-\");\n}\n\nfunction splitClassName(className: string) {\n const tokens = className.split(/\\s+/).filter(Boolean);\n\n return {\n root: tokens.filter((token) => !isTextClassName(token)).join(\" \"),\n text: tokens.filter(isTextClassName).join(\" \"),\n };\n}\n\nexport function resolveFormResponseStyles({\n shape,\n size,\n variant,\n}: {\n shape: Shape;\n size: Size;\n variant: Variant;\n}) {\n const variantClassNames = splitClassName(variantsLite[variant]);\n const sizeClassNames = formResponseSizeStyles[size];\n\n return {\n rootClassName: [\n \"border\",\n variantClassNames.root,\n shapes[shape],\n sizeClassNames.root,\n ]\n .filter(Boolean)\n .join(\" \"),\n textClassName: [\n \"font-poppins font-light\",\n variantClassNames.text,\n sizeClassNames.text,\n ]\n .filter(Boolean)\n .join(\" \"),\n };\n}\n","/** @jsxImportSource nativewind */\nimport { Text, View } from \"react-native\";\n\nimport { cn } from \"../../../../../utils\";\nimport { resolveFormResponseStyles, type FormResponseProps } from \"../base\";\n\nexport function FormResponse({\n text,\n variant = \"default\",\n shape = \"roundedSquare\",\n size = \"md\",\n className,\n textClassName,\n}: FormResponseProps) {\n if (!text) {\n return null;\n }\n\n const styles = resolveFormResponseStyles({ shape, size, variant });\n\n return (\n <View className={cn(styles.rootClassName, className)}>\n <Text className={cn(styles.textClassName, textClassName)}>{text}</Text>\n </View>\n );\n}\n","export const inputLabelStaticClassName =\n \"pointer-events-none select-none px-0 text-[13.5px] leading-none text-[#6B7280]\";\nexport const inputLabelBaseClassName =\n \"pointer-events-none absolute left-3 z-10 select-none bg-white/95 px-1 font-medium leading-none dark:bg-eui-dark-800\";\nexport const inputLabelTransitionClassName =\n \"transition-all duration-200 ease-out\";\nexport const inputLabelRestingClassName =\n \"top-[18px] translate-y-0 text-base leading-none text-[#6B7280]\";\nexport const inputLabelFloatingClassName =\n \"top-1.5 translate-y-0 text-xs leading-none text-[#6B7280]\";\nexport const inputLabelErrorClassName = \"text-[#6B7280]\";\nexport const inputLabelDisabledClassName = \"opacity-60\";\n\nexport const nativeInputLabelColors = {\n default: \"#6B7280\",\n disabled: \"#9CA3AF\",\n} as const;\n\nexport const nativeInputLabelStyle = {\n left: 12,\n position: \"absolute\",\n zIndex: 10,\n} as const;\n\nexport const nativeInputLabelMetrics = {\n floatingFontSize: 12,\n floatingTop: 6,\n restingFontSize: 16,\n restingTop: 18,\n} as const;\n","/** @jsxImportSource nativewind */\n// External\nimport { Animated } from \"react-native\";\n\n// Internal\nimport { cn } from \"../../../../../utils\";\nimport {\n inputLabelBaseClassName,\n inputLabelDisabledClassName,\n inputLabelErrorClassName,\n inputLabelStaticClassName,\n nativeInputLabelColors,\n nativeInputLabelStyle,\n nativeInputLabelMetrics,\n} from \"../base\";\n\n// Types\nimport type { InputLabelProps } from \"../base\";\n\nfunction getLabelColor({ disabled }: Pick<InputLabelProps, \"disabled\">) {\n if (disabled) {\n return nativeInputLabelColors.disabled;\n }\n\n return nativeInputLabelColors.default;\n}\n\nfunction InputLabel({\n text,\n children,\n className,\n floating,\n errored = false,\n disabled = false,\n animatedValue,\n}: InputLabelProps) {\n const isFloatingLabel = typeof floating === \"boolean\";\n const progress = animatedValue as\n | {\n interpolate: (config: {\n inputRange: number[];\n outputRange: Array<number | string>;\n }) => unknown;\n }\n | undefined;\n const animatedStyle = progress\n ? {\n fontSize: progress.interpolate({\n inputRange: [0, 1],\n outputRange: [\n nativeInputLabelMetrics.restingFontSize,\n nativeInputLabelMetrics.floatingFontSize,\n ],\n }),\n lineHeight: progress.interpolate({\n inputRange: [0, 1],\n outputRange: [\n nativeInputLabelMetrics.restingFontSize,\n nativeInputLabelMetrics.floatingFontSize,\n ],\n }),\n top: progress.interpolate({\n inputRange: [0, 1],\n outputRange: [\n nativeInputLabelMetrics.restingTop,\n nativeInputLabelMetrics.floatingTop,\n ],\n }),\n }\n : {\n fontSize:\n floating === true\n ? nativeInputLabelMetrics.floatingFontSize\n : nativeInputLabelMetrics.restingFontSize,\n lineHeight:\n floating === true\n ? nativeInputLabelMetrics.floatingFontSize\n : nativeInputLabelMetrics.restingFontSize,\n top:\n floating === true\n ? nativeInputLabelMetrics.floatingTop\n : nativeInputLabelMetrics.restingTop,\n };\n\n return (\n <Animated.Text\n className={cn(\n isFloatingLabel ? inputLabelBaseClassName : inputLabelStaticClassName,\n isFloatingLabel && \"bg-transparent px-0 dark:bg-transparent\",\n errored && inputLabelErrorClassName,\n disabled && inputLabelDisabledClassName,\n className,\n )}\n style={[\n isFloatingLabel ? nativeInputLabelStyle : null,\n isFloatingLabel ? animatedStyle : null,\n {\n color: getLabelColor({ disabled }),\n includeFontPadding: false,\n },\n ]}\n >\n {text || children}\n </Animated.Text>\n );\n}\n\nexport { InputLabel };\nexport default InputLabel;\n","import { textVariants } from \"../../../../../data/styles\";\n\nimport type { TextVariant } from \"../../../../../data/enums\";\n\nexport const inputResponseBaseClassName = \"px-2 pt-1.5 text-sm font-medium\";\n\nexport const inputResponseVariants: Record<keyof typeof TextVariant, string> =\n textVariants as Record<keyof typeof TextVariant, string>;\n","/** @jsxImportSource nativewind */\n// External\nimport { useEffect, useRef, useState } from \"react\";\nimport { Animated, Easing, Text } from \"react-native\";\nimport { ErrorMessage } from \"formik\";\n\n// Internal\nimport { cn } from \"../../../../../utils\";\nimport { inputResponseBaseClassName, inputResponseVariants } from \"../base\";\n\n// Types\nimport type { InputResponseProps } from \"../base\";\n\nfunction InputResponse({\n name,\n visibility = false,\n variant = \"default\",\n className,\n message,\n}: InputResponseProps) {\n const [mounted, setMounted] = useState(Boolean(visibility));\n const progress = useRef(new Animated.Value(visibility ? 1 : 0)).current;\n\n useEffect(() => {\n if (visibility) {\n setMounted(true);\n }\n\n Animated.timing(progress, {\n duration: visibility ? 180 : 120,\n easing: visibility ? Easing.out(Easing.cubic) : Easing.in(Easing.cubic),\n toValue: visibility ? 1 : 0,\n useNativeDriver: true,\n }).start(() => {\n if (!visibility) {\n setMounted(false);\n }\n });\n }, [progress, visibility]);\n\n if (!mounted) {\n return null;\n }\n\n const animatedStyle = {\n opacity: progress,\n transform: [\n {\n translateY: progress.interpolate({\n inputRange: [0, 1],\n outputRange: [6, 0],\n }),\n },\n ],\n };\n\n const content = message ?? (\n <ErrorMessage name={name}>\n {(errorMessage) => String(errorMessage)}\n </ErrorMessage>\n );\n\n return (\n <Animated.View className=\"w-full\" style={animatedStyle}>\n <Text\n className={cn(\n inputResponseBaseClassName,\n inputResponseVariants[variant],\n className,\n )}\n style={{ includeFontPadding: false }}\n >\n {content}\n </Text>\n </Animated.View>\n );\n}\n\nexport { InputResponse };\nexport default InputResponse;\n","import {\n useField,\n type FieldHelperProps,\n type FieldInputProps,\n type FieldMetaProps,\n} from \"formik\";\n\nimport { useEUIConfig } from \"../../../../eui\";\n\nimport type { Shape } from \"../../../../../types\";\nimport type { InputProps, InputType } from \"./Input.types\";\n\nexport interface ResolvedInputConfig {\n shape: Shape;\n type: InputType;\n label: string;\n}\n\nexport interface InputFieldState {\n field: FieldInputProps<string>;\n meta: FieldMetaProps<string>;\n helpers: FieldHelperProps<string>;\n}\n\nexport function resolveInputType({\n passwordVisible,\n type,\n}: {\n passwordVisible: boolean;\n type: InputType;\n}): InputType {\n return type === \"password\" && passwordVisible ? \"text\" : type;\n}\n\nexport function useResolvedInputConfig({\n label,\n placeholder,\n shape,\n type = \"text\",\n}: Pick<\n InputProps,\n \"label\" | \"placeholder\" | \"shape\" | \"type\"\n>): ResolvedInputConfig {\n const eui = useEUIConfig();\n\n return {\n shape: shape ?? eui?.config?.global?.shape ?? \"square\",\n type,\n label: label ?? placeholder,\n };\n}\n\nexport function useInputFieldState(props: InputProps): InputFieldState {\n const [field, meta, helpers] = useField<string>(props);\n\n return {\n field,\n meta,\n helpers,\n };\n}\n","import { shapes } from \"../../../../../data/styles\";\n\nimport type { Shape } from \"../../../../../types\";\n\nexport const inputShapes: Record<Shape, string> = shapes;\n\nexport const inputRootClassName = \"relative w-full\";\nexport const inputFrameClassName =\n \"relative h-14 w-full overflow-hidden border bg-white/95 px-3 dark:bg-eui-dark-800\";\nexport const inputFrameIdleClassName =\n \"border-gray-300 hover:border-gray-400 dark:border-eui-dark-300 dark:hover:border-eui-dark-200\";\nexport const inputFrameActiveClassName = \"border-eui-secondary-600\";\nexport const inputFrameErrorClassName = \"border-eui-danger-500\";\nexport const inputFrameDisabledClassName = \"cursor-not-allowed opacity-60\";\nexport const inputControlClassName =\n \"w-full bg-transparent pt-5 pb-2 text-base font-medium text-gray-950 dark:text-gray-50\";\nexport const inputErrorTextClassName =\n \"px-2 py-1 text-sm font-medium text-eui-danger-500\";\n","export const nativeInputControlClassName = \"h-full\";\nexport const nativePasswordInputClassName = \"pr-16\";\nexport const nativePasswordToggleClassName =\n \"absolute right-3 top-[18px] h-5 items-center justify-center\";\nexport const nativePasswordToggleTextClassName =\n \"text-xs font-semibold text-eui-dark-200\";\n\nexport const nativeInputControlStyle = {\n backgroundColor: \"transparent\",\n borderBottomWidth: 0,\n borderColor: \"transparent\",\n borderWidth: 0,\n includeFontPadding: false,\n outlineColor: \"transparent\",\n outlineStyle: \"none\",\n textAlignVertical: \"center\",\n} as const;\n","/** @jsxImportSource nativewind */\n// External\nimport { useEffect, useRef, useState } from \"react\";\nimport {\n Animated,\n Easing,\n Pressable,\n Text,\n TextInput,\n View,\n} from \"react-native\";\n\n// Internal\nimport { InputLabel } from \"../../input-label/index.native\";\nimport { InputResponse } from \"../../input-response/index.native\";\nimport { cn } from \"../../../../../utils\";\nimport {\n inputControlClassName,\n inputFrameActiveClassName,\n inputFrameClassName,\n inputFrameDisabledClassName,\n inputFrameErrorClassName,\n inputFrameIdleClassName,\n inputRootClassName,\n inputShapes,\n resolveInputType,\n useInputFieldState,\n useResolvedInputConfig,\n} from \"../base\";\nimport {\n nativeInputControlClassName,\n nativeInputControlStyle,\n nativePasswordInputClassName,\n nativePasswordToggleClassName,\n nativePasswordToggleTextClassName,\n} from \"./Input.native.styles\";\n\n// Types\nimport type { InputProps } from \"../base\";\n\nfunction Input(inputProps: InputProps) {\n const {\n type = \"text\",\n label,\n placeholder,\n inputClassName,\n labelClassName,\n responseClassName,\n step: _step,\n shape,\n disabled = false,\n className,\n onBlur,\n onFocus,\n onChange: _onChange,\n ..._props\n } = inputProps;\n const { field, helpers, meta } = useInputFieldState(inputProps);\n const [focused, setFocused] = useState(false);\n const [passwordVisible, setPasswordVisible] = useState(false);\n const labelProgress = useRef(\n new Animated.Value(String(field.value ?? \"\").length > 0 ? 1 : 0),\n ).current;\n const {\n shape: resolvedShape,\n type: resolvedType,\n label: resolvedLabel,\n } = useResolvedInputConfig({\n label,\n placeholder,\n shape,\n type,\n });\n const inputType = resolveInputType({\n passwordVisible,\n type: resolvedType,\n });\n const hasError = Boolean(meta.touched && meta.error);\n const errorText =\n hasError && typeof meta.error === \"string\" ? meta.error : null;\n const hasValue = String(field.value ?? \"\").length > 0;\n const floating = focused || hasValue;\n\n useEffect(() => {\n Animated.timing(labelProgress, {\n duration: 190,\n easing: Easing.out(Easing.cubic),\n toValue: floating ? 1 : 0,\n useNativeDriver: false,\n }).start();\n }, [floating, labelProgress]);\n\n const handleBlur = (event: unknown) => {\n setFocused(false);\n helpers.setTouched(true);\n onBlur?.(event as Parameters<NonNullable<InputProps[\"onBlur\"]>>[0]);\n };\n\n const handleFocus = (event: unknown) => {\n setFocused(true);\n onFocus?.(event as Parameters<NonNullable<InputProps[\"onFocus\"]>>[0]);\n };\n\n return (\n <View className={inputRootClassName}>\n <View\n className={cn(\n inputFrameClassName,\n hasError\n ? inputFrameErrorClassName\n : focused\n ? inputFrameActiveClassName\n : inputFrameIdleClassName,\n inputShapes[resolvedShape],\n disabled && inputFrameDisabledClassName,\n className,\n )}\n >\n <TextInput\n accessibilityLabel={resolvedLabel}\n className={cn(\n inputControlClassName,\n nativeInputControlClassName,\n type === \"password\" && nativePasswordInputClassName,\n inputClassName,\n )}\n editable={!disabled}\n keyboardType={inputType === \"number\" ? \"numeric\" : \"default\"}\n onBlur={handleBlur}\n onChangeText={(value: string) => helpers.setValue(value)}\n onFocus={handleFocus}\n placeholder=\"\"\n secureTextEntry={type === \"password\" && !passwordVisible}\n style={nativeInputControlStyle}\n underlineColorAndroid=\"transparent\"\n value={field.value ?? \"\"}\n />\n </View>\n\n <InputLabel\n animatedValue={labelProgress}\n disabled={disabled}\n errored={hasError}\n floating={floating}\n text={resolvedLabel}\n className={labelClassName}\n />\n\n {type === \"password\" ? (\n <Pressable\n accessibilityRole=\"button\"\n accessibilityLabel={\n passwordVisible ? \"Hide password\" : \"Show password\"\n }\n className={nativePasswordToggleClassName}\n disabled={disabled}\n onPress={() => setPasswordVisible((current) => !current)}\n >\n <Text className={nativePasswordToggleTextClassName}>\n {passwordVisible ? \"Hide\" : \"Show\"}\n </Text>\n </Pressable>\n ) : null}\n\n <InputResponse\n message={errorText}\n name={field.name}\n visibility={Boolean(errorText)}\n variant=\"danger\"\n className={responseClassName}\n />\n </View>\n );\n}\n\nexport { Input };\nexport default Input;\n"]}
|
|
1
|
+
{"version":3,"sources":["../node_modules/clsx/dist/clsx.mjs","../src/utils/cn.ts","../src/utils/styles.ts","../src/components/eui/EUIProvider.tsx","../src/components/eui/resolveGlobalConfigs.tsx","../src/components/data-entry/button/base/Button.config.ts","../src/data/styles.tsx","../src/components/data-entry/button/base/Button.styles.ts","../src/components/data-entry/button/native/Button.native.styles.ts","../src/components/data-entry/button/native/Button.native.tsx","../src/components/data-entry/checkbox/base/Checkbox.config.ts","../src/components/data-entry/checkbox/base/Checkbox.styles.ts","../src/components/data-entry/checkbox/native/Checkbox.native.styles.ts","../src/components/data-entry/checkbox/native/Checkbox.native.tsx","../src/components/data-entry/form/form/base/Form.shared.tsx","../src/components/data-entry/form/form/native/Form.native.tsx","../src/components/data-entry/form/form-response/base/FormResponse.styles.ts","../src/components/data-entry/form/form-response/native/FormResponse.native.tsx","../src/components/data-entry/input/input-label/base/InputLabel.styles.ts","../src/components/data-entry/input/input-label/native/InputLabel.native.tsx","../src/components/data-entry/input/input-response/base/InputResponse.styles.ts","../src/components/data-entry/input/input-response/native/InputResponse.native.tsx","../src/components/data-entry/input/input/base/Input.config.ts","../src/components/data-entry/input/input/base/Input.styles.ts","../src/components/data-entry/input/input/native/Input.native.styles.ts","../src/components/data-entry/input/input/native/Input.native.tsx"],"names":["twMerge","createContext","useState","jsx","useContext","Pressable","jsxs","View","ActivityIndicator","Text","useField","useRef","useEffect","Formik","Animated","Easing","ErrorMessage","TextInput"],"mappings":"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","file":"index.native.js","sourcesContent":["function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","import { ClassValue } from \"clsx\";\nimport clsx from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","import { Appearance, Variant } from \"../types\";\n\ninterface ResolveAppearanceStylesProps<T> {\n appearance?: Appearance;\n variant: Variant;\n solid: Record<Variant, T>;\n lite: Record<Variant, T>;\n ghost: Record<Variant, T>;\n}\n\nexport function resolveAppearanceStyles<T = string>({\n appearance = \"solid\",\n variant = \"default\",\n solid,\n lite,\n ghost,\n}: ResolveAppearanceStylesProps<T>): T {\n switch (appearance) {\n case \"ghost\":\n return ghost[variant];\n\n case \"lite\":\n return lite[variant];\n\n default:\n return solid[variant];\n }\n}\n","import React, { createContext, useContext, useState } from \"react\";\nimport { EUIConfigs } from \"./EUITypes\";\n\ninterface EUIContextValue {\n config: EUIConfigs;\n setConfig: React.Dispatch<React.SetStateAction<EUIConfigs>>;\n}\n\nconst EUIContext = createContext<EUIContextValue | null>(null);\n\nexport const EUIProvider = ({\n config,\n children,\n}: {\n config: EUIConfigs;\n children: React.ReactNode;\n}) => {\n const [state, setState] = useState<EUIConfigs>(config);\n\n return (\n <EUIContext.Provider value={{ config: state, setConfig: setState }}>\n {children}\n </EUIContext.Provider>\n );\n};\n\nexport const useEUIConfig = () => {\n const ctx = useContext(EUIContext);\n if (!ctx) {\n throw new Error(\"useEUIConfig must be used inside EUIProvider\");\n }\n return ctx;\n};\n","import { EUIConfigs } from \"./EUITypes\";\n\nexport function resolveWithGlobal<T>(\n config: EUIConfigs | null,\n props: T,\n defaults: Partial<T>,\n): T {\n return {\n ...defaults,\n ...(config?.global ?? {}),\n ...props,\n } as T;\n}\n","import { useEUIConfig } from \"../../../eui\";\n\nimport type { Appearance, Shape, Size, Variant } from \"../../../../types\";\nimport type { ButtonMode, ButtonProps } from \"./Button.types\";\n\nexport const buttonModeAppearance: Record<ButtonMode, Appearance> = {\n contained: \"solid\",\n \"contained-tonal\": \"lite\",\n outlined: \"ghost\",\n text: \"ghost\",\n};\n\nexport interface ResolvedButtonConfig {\n shape: Shape;\n size: Size;\n variant: Variant;\n appearance: Appearance;\n}\n\nexport function useResolvedButtonConfig({\n compact = false,\n mode,\n variant,\n appearance,\n shape,\n size,\n}: Pick<\n ButtonProps,\n \"compact\" | \"mode\" | \"variant\" | \"appearance\" | \"shape\" | \"size\"\n>): ResolvedButtonConfig {\n const eui = useEUIConfig();\n const configuredSize = size ?? eui?.config?.global?.size ?? \"md\";\n\n return {\n shape: shape ?? eui?.config?.global?.shape ?? \"square\",\n size: compact && configuredSize === \"md\" ? \"sm\" : configuredSize,\n variant: variant ?? eui?.config?.global?.variant ?? \"success\",\n appearance: appearance ?? (mode ? buttonModeAppearance[mode] : \"solid\"),\n };\n}\n","import {\n Decoration,\n Shape,\n Target,\n ToastPosition,\n ToastStatus,\n Variant,\n} from \"./enums\";\n\nexport const variantsSolid: Record<Variant, string> = {\n [Variant.default]:\n \"bg-gray-300 text-gray-900 hover:bg-gray-200 dark:bg-gray-700 dark:text-gray-100 dark:hover:bg-gray-600\",\n [Variant.primary]: \"bg-eui-primary-500 text-white hover:bg-eui-primary-600\",\n [Variant.secondary]:\n \"bg-eui-secondary-500 text-white hover:bg-eui-secondary-600\",\n [Variant.success]: \"bg-eui-success-500 text-white hover:bg-eui-success-600\",\n [Variant.danger]: \"bg-eui-danger-500 text-white hover:bg-eui-danger-600\",\n [Variant.warning]: \"bg-eui-warning-500 text-black hover:bg-eui-warning-400\",\n [Variant.info]: \"bg-eui-info-500 text-white hover:bg-eui-info-600\",\n [Variant.light]:\n \"bg-eui-light-400 text-gray-900 hover:bg-eui-light-300 dark:bg-gray-200 dark:text-gray-900 dark:hover:bg-gray-100\",\n [Variant.dark]:\n \"bg-eui-dark-500 text-white hover:bg-eui-dark-400 dark:bg-eui-dark-400 dark:hover:bg-eui-dark-300\",\n};\n\nexport const variantsLite: Record<Variant, string> = {\n [Variant.default]:\n \"bg-gray-500/10 border border-gray-300 text-gray-700 dark:bg-gray-400/10 dark:border-gray-700 dark:text-gray-200\",\n [Variant.primary]:\n \"bg-eui-primary-500/10 border border-eui-primary-500/30 text-eui-primary-400 dark:text-eui-primary-300\",\n [Variant.secondary]:\n \"bg-eui-secondary-500/10 border border-eui-secondary-500/30 text-eui-secondary-500 dark:text-eui-secondary-400\",\n [Variant.success]:\n \"bg-eui-success-500/10 border border-eui-success-500/30 text-eui-success-500 dark:text-eui-success-400\",\n [Variant.danger]:\n \"bg-eui-danger-500/10 border border-eui-danger-500/30 text-eui-danger-500 dark:text-eui-danger-400\",\n [Variant.warning]:\n \"bg-eui-warning-500/10 border border-eui-warning-500/30 text-eui-warning-600 dark:text-eui-warning-400\",\n [Variant.info]:\n \"bg-eui-info-500/10 border border-eui-info-500/30 text-eui-info-500 dark:text-eui-info-400\",\n [Variant.light]:\n \"bg-white/40 border border-white/30 text-gray-800 dark:bg-white/10 dark:border-white/10 dark:text-gray-100\",\n [Variant.dark]:\n \"bg-eui-dark-500/10 border border-eui-dark-500/30 text-eui-dark-500 dark:text-eui-dark-300\",\n};\n\nexport const variantsGhost: Record<Variant, string> = {\n [Variant.default]:\n \"bg-transparent border border-gray-300 text-gray-700 hover:bg-gray-100 dark:border-gray-700 dark:text-gray-200 dark:hover:bg-gray-800\",\n [Variant.primary]:\n \"bg-transparent border border-eui-primary-500 text-eui-primary-500 hover:bg-eui-primary-500/10 dark:text-eui-primary-300 dark:border-eui-primary-400\",\n [Variant.secondary]:\n \"bg-transparent border border-eui-secondary-500 text-eui-secondary-500 hover:bg-eui-secondary-500/10 dark:text-eui-secondary-400 dark:border-eui-secondary-400\",\n [Variant.success]:\n \"bg-transparent border border-eui-success-500 text-eui-success-500 hover:bg-eui-success-500/10 dark:text-eui-success-400 dark:border-eui-success-400\",\n [Variant.danger]:\n \"bg-transparent border border-eui-danger-500 text-eui-danger-500 hover:bg-eui-danger-500/10 dark:text-eui-danger-400 dark:border-eui-danger-400\",\n [Variant.warning]:\n \"bg-transparent border border-eui-warning-500 text-eui-warning-600 hover:bg-eui-warning-500/10 dark:text-eui-warning-400 dark:border-eui-warning-400\",\n [Variant.info]:\n \"bg-transparent border border-eui-info-500 text-eui-info-500 hover:bg-eui-info-500/10 dark:text-eui-info-400 dark:border-eui-info-400\",\n [Variant.light]:\n \"bg-transparent border border-gray-300 text-gray-700 hover:bg-white/10 dark:border-gray-500 dark:text-gray-100 dark:hover:bg-white/5\",\n [Variant.dark]:\n \"bg-transparent border border-eui-dark-500 text-eui-dark-500 hover:bg-eui-dark-500/10 dark:text-eui-dark-300 dark:border-eui-dark-300\",\n};\n\nexport const textVariants: Record<Variant, string> = {\n [Variant.default]: \"eui-text-md\",\n [Variant.primary]: \"text-blue-500\",\n [Variant.secondary]: \"text-gray-500\",\n [Variant.success]: \"text-green-500\",\n [Variant.danger]: \"text-red-500\",\n [Variant.warning]: \"text-yellow-500\",\n [Variant.info]: \"text-blue-400\",\n [Variant.light]: \"text-gray-300\",\n [Variant.dark]: \"text-gray-900\",\n};\n\nexport const borderVariants: Record<Variant, string> = {\n [Variant.default]: \"border-gray-300\",\n [Variant.primary]: \"border-eui-primary-500\",\n [Variant.secondary]: \"border-eui-secondary-500\",\n [Variant.success]: \"border-eui-success-500\",\n [Variant.danger]: \"border-eui-danger-500\",\n [Variant.warning]: \"border-eui-warning-500\",\n [Variant.info]: \"border-eui-info-500\",\n [Variant.light]: \"border-eui-light-500\",\n [Variant.dark]: \"border-eui-dark-500\",\n};\n\nexport const decorations: Record<Decoration, string> = {\n [Decoration.underline]: \"underline\",\n [Decoration.overline]: \"overline\",\n [Decoration.lineThrough]: \"line-through\",\n [Decoration.noUnderline]: \"no-underline\",\n};\n\nexport const targets: Record<Target, string> = {\n [Target.blank]: \"_blank\",\n [Target.self]: \"_self\",\n [Target.parent]: \"_parent\",\n [Target.top]: \"_top\",\n};\n\nexport const shapes: Record<Shape, string> = {\n [Shape.square]: \"rounded-none\",\n [Shape.roundedSquare]: \"rounded-md\",\n [Shape.softRoundedSquare]: \"rounded-lg\",\n [Shape.circle]: \"rounded-full\",\n};\n\nexport const cardBorderVariants: Record<Variant, string> = {\n [Variant.default]: \"border-white/10\",\n [Variant.primary]: \"border-eui-primary-500/30\",\n [Variant.secondary]: \"border-eui-secondary-500/30\",\n [Variant.success]: \"border-eui-success-500/30\",\n [Variant.danger]: \"border-eui-danger-500/30\",\n [Variant.warning]: \"border-eui-warning-500/30\",\n [Variant.info]: \"border-eui-info-500/30\",\n [Variant.light]: \"border-eui-light-500/30\",\n [Variant.dark]: \"border-eui-dark-500/30\",\n};\n\nexport const cardHoverBorderVariants: Record<Variant, string> = {\n [Variant.default]: \"hover:border-white/20\",\n [Variant.primary]: \"hover:border-eui-primary-500\",\n [Variant.secondary]: \"hover:border-eui-secondary-500\",\n [Variant.success]: \"hover:border-eui-success-500\",\n [Variant.danger]: \"hover:border-eui-danger-500\",\n [Variant.warning]: \"hover:border-eui-warning-500\",\n [Variant.info]: \"hover:border-eui-info-500\",\n [Variant.light]: \"hover:border-eui-light-500\",\n [Variant.dark]: \"hover:border-eui-dark-500\",\n};\n\nexport const cardBgVariants: Record<Variant, string> = {\n [Variant.default]: \"bg-white/5\",\n [Variant.primary]: \"bg-eui-primary-500/10\",\n [Variant.secondary]: \"bg-eui-secondary-500/10\",\n [Variant.success]: \"bg-eui-success-500/10\",\n [Variant.danger]: \"bg-eui-danger-500/10\",\n [Variant.warning]: \"bg-eui-warning-500/10\",\n [Variant.info]: \"bg-eui-info-500/10\",\n [Variant.light]: \"bg-eui-light-500/10\",\n [Variant.dark]: \"bg-eui-dark-500/20\",\n};\n\nexport const toastPositionStyles: Record<ToastPosition, string> = {\n [ToastPosition.topLeft]: \"top-4 left-4 items-start\",\n [ToastPosition.topCenter]: \"top-4 left-1/2 -translate-x-1/2 items-center\",\n [ToastPosition.topRight]: \"top-4 right-4 items-end\",\n\n [ToastPosition.bottomLeft]: \"bottom-4 left-4 items-start\",\n [ToastPosition.bottomCenter]:\n \"bottom-4 left-1/2 -translate-x-1/2 items-center\",\n [ToastPosition.bottomRight]: \"bottom-4 right-4 items-end\",\n};\n\nexport type ToastDisplayVariant =\n | Variant.default\n | Variant.success\n | Variant.warning\n | Variant.danger\n | Variant.info;\n\nexport interface ToastVariantStyle {\n root: string;\n icon: string;\n progress: string;\n title: string;\n message: string;\n}\n\nexport const toastStatusVariantMap: Record<ToastStatus, ToastDisplayVariant> = {\n [ToastStatus.default]: Variant.default,\n [ToastStatus.success]: Variant.success,\n [ToastStatus.warning]: Variant.warning,\n [ToastStatus.error]: Variant.danger,\n [ToastStatus.danger]: Variant.danger,\n [ToastStatus.info]: Variant.info,\n};\n\nexport const toastVariantStyles: Record<\n ToastDisplayVariant,\n ToastVariantStyle\n> = {\n [Variant.default]: {\n root: \"border-gray-200 bg-white text-gray-900 shadow-xl dark:border-gray-700 dark:bg-gray-900 dark:text-white\",\n icon: \"bg-gray-100 text-gray-700 dark:bg-gray-800 dark:text-gray-200\",\n progress: \"bg-gray-500\",\n title: \"text-gray-950 dark:text-white\",\n message: \"text-gray-600 dark:text-gray-300\",\n },\n\n [Variant.success]: {\n root: \"border-eui-success-500/30 bg-eui-success-500/10 text-eui-success-700 shadow-xl dark:border-eui-success-400/40 dark:bg-eui-success-500/15 dark:text-eui-success-300\",\n icon: \"bg-eui-success-500/15 text-eui-success-600 dark:bg-eui-success-500/20 dark:text-eui-success-300\",\n progress: \"bg-eui-success-500\",\n title: \"text-eui-success-700 dark:text-eui-success-300\",\n message: \"text-eui-success-600 dark:text-eui-success-300/80\",\n },\n\n [Variant.warning]: {\n root: \"border-eui-warning-500/30 bg-eui-warning-500/10 text-eui-warning-700 shadow-xl dark:border-eui-warning-400/40 dark:bg-eui-warning-500/15 dark:text-eui-warning-300\",\n icon: \"bg-eui-warning-500/15 text-eui-warning-600 dark:bg-eui-warning-500/20 dark:text-eui-warning-300\",\n progress: \"bg-eui-warning-500\",\n title: \"text-eui-warning-700 dark:text-eui-warning-300\",\n message: \"text-eui-warning-600 dark:text-eui-warning-300/80\",\n },\n\n [Variant.danger]: {\n root: \"border-eui-danger-500/30 bg-eui-danger-500/10 text-eui-danger-700 shadow-xl dark:border-eui-danger-400/40 dark:bg-eui-danger-500/15 dark:text-eui-danger-300\",\n icon: \"bg-eui-danger-500/15 text-eui-danger-600 dark:bg-eui-danger-500/20 dark:text-eui-danger-300\",\n progress: \"bg-eui-danger-500\",\n title: \"text-eui-danger-700 dark:text-eui-danger-300\",\n message: \"text-eui-danger-600 dark:text-eui-danger-300/80\",\n },\n\n [Variant.info]: {\n root: \"border-eui-info-500/30 bg-eui-info-500/10 text-eui-info-700 shadow-xl dark:border-eui-info-400/40 dark:bg-eui-info-500/15 dark:text-eui-info-300\",\n icon: \"bg-eui-info-500/15 text-eui-info-600 dark:bg-eui-info-500/20 dark:text-eui-info-300\",\n progress: \"bg-eui-info-500\",\n title: \"text-eui-info-700 dark:text-eui-info-300\",\n message: \"text-eui-info-600 dark:text-eui-info-300/80\",\n },\n};\n\nexport const toastShapeStyles: Record<Shape, string> = {\n [Shape.circle]: \"!rounded-3xl\",\n [Shape.roundedSquare]: \"!rounded-lg\",\n [Shape.softRoundedSquare]: \"!rounded-3xl\",\n [Shape.square]: \"!rounded-none\",\n};\n","import {\n shapes,\n variantsGhost,\n variantsLite,\n variantsSolid,\n} from \"../../../../data/styles\";\nimport type { Shape, Size } from \"../../../../types\";\nimport { resolveAppearanceStyles } from \"../../../../utils\";\nimport type { ResolvedButtonConfig } from \"./Button.config\";\n\nexport const buttonShapes: Record<Shape, string> = shapes;\n\nexport const buttonIconSizes: Record<Size, number> = {\n xs: 14,\n sm: 16,\n md: 18,\n lg: 20,\n xl: 22,\n};\n\nexport function resolveButtonVariantStyles({\n appearance,\n variant,\n}: Pick<ResolvedButtonConfig, \"appearance\" | \"variant\">): string {\n return resolveAppearanceStyles({\n appearance,\n variant,\n solid: variantsSolid,\n lite: variantsLite,\n ghost: variantsGhost,\n });\n}\n\nexport function getButtonLabelColorClassName(className: string): string {\n return className\n .split(/\\s+/)\n .filter(\n (token) =>\n token.startsWith(\"text-\") ||\n token.startsWith(\"dark:text-\") ||\n token.startsWith(\"disabled:text-\"),\n )\n .join(\" \");\n}\n","import type { Size } from \"../../../../types\";\n\nexport interface NativeButtonSizeStyles {\n rootClassName: string;\n labelClassName: string;\n slotClassName: string;\n}\n\nexport const nativeButtonSizes: Record<Size, NativeButtonSizeStyles> = {\n xs: {\n rootClassName: \"min-h-[30px] px-2.5 py-1\",\n labelClassName: \"text-xs leading-[14px]\",\n slotClassName: \"h-[14px] w-[14px]\",\n },\n sm: {\n rootClassName: \"min-h-9 px-3 py-1.5\",\n labelClassName: \"text-sm leading-4\",\n slotClassName: \"h-4 w-4\",\n },\n md: {\n rootClassName: \"min-h-11 px-4 py-2\",\n labelClassName: \"text-[15px] leading-[18px]\",\n slotClassName: \"h-[18px] w-[18px]\",\n },\n lg: {\n rootClassName: \"min-h-[50px] px-[18px] py-3\",\n labelClassName: \"text-[17px] leading-5\",\n slotClassName: \"h-5 w-5\",\n },\n xl: {\n rootClassName: \"min-h-14 px-[22px] py-4\",\n labelClassName: \"text-[19px] leading-[22px]\",\n slotClassName: \"h-[22px] w-[22px]\",\n },\n};\n","/** @jsxImportSource nativewind */\n// External\nimport { ActivityIndicator, Pressable, Text, View } from \"react-native\";\n\n// Internal\nimport { cn } from \"../../../../utils\";\nimport {\n getButtonLabelColorClassName,\n resolveButtonVariantStyles,\n useResolvedButtonConfig,\n} from \"../base\";\n\n// Types\nimport type { ButtonProps } from \"../base\";\n\n// Data\nimport { buttonIconSizes, buttonShapes } from \"../base\";\nimport { nativeButtonSizes } from \"./Button.native.styles\";\n\nconst nativeLabelBaseStyle = {\n includeFontPadding: false,\n textAlignVertical: \"center\",\n} as const;\n\nfunction Button({\n icon,\n text,\n children,\n loading = false,\n disabled = false,\n block = false,\n compact = false,\n mode,\n contentClassName,\n labelClassName,\n className,\n variant,\n appearance,\n shape,\n size,\n accessibilityRole = \"button\",\n accessibilityState,\n type: _type,\n onClick: _onClick,\n onMouseMove: _onMouseMove,\n onPress,\n ...rest\n}: ButtonProps) {\n const {\n shape: resolvedShape,\n size: resolvedSize,\n variant: resolvedVariant,\n appearance: resolvedAppearance,\n } = useResolvedButtonConfig({\n compact,\n mode,\n variant,\n appearance,\n shape,\n size,\n });\n\n const metrics = nativeButtonSizes[resolvedSize];\n const iconSize = buttonIconSizes[resolvedSize];\n const variantStyles = resolveButtonVariantStyles({\n appearance: resolvedAppearance,\n variant: resolvedVariant,\n });\n const labelColorClassName = getButtonLabelColorClassName(variantStyles);\n const content = text ?? children;\n const resolvedIcon =\n typeof icon === \"function\"\n ? icon({ color: \"currentColor\", size: iconSize })\n : icon;\n\n return (\n <Pressable\n {...rest}\n accessibilityRole={accessibilityRole}\n accessibilityState={{\n disabled: disabled || loading,\n ...(accessibilityState as object),\n }}\n className={cn(\n \"relative items-center justify-center overflow-hidden\",\n variantStyles,\n buttonShapes[resolvedShape],\n metrics.rootClassName,\n block && \"w-full\",\n mode === \"text\" && \"border-transparent bg-transparent\",\n (disabled || loading) && \"opacity-55\",\n !disabled && !loading && \"active:opacity-80\",\n className,\n )}\n disabled={disabled || loading}\n onPress={onPress}\n style={({ pressed }: { pressed: boolean }) => [\n pressed && !disabled && !loading ? { opacity: 0.82 } : null,\n disabled || loading ? { opacity: 0.55 } : null,\n ]}\n >\n <View\n className={cn(\n \"z-10 flex-row items-center justify-center gap-2\",\n contentClassName,\n )}\n >\n {loading ? (\n <View\n className={cn(\n \"shrink-0 items-center justify-center\",\n metrics.slotClassName,\n )}\n >\n <ActivityIndicator className={labelColorClassName} size=\"small\" />\n </View>\n ) : null}\n {!loading && resolvedIcon ? (\n <View\n className={cn(\n \"shrink-0 items-center justify-center\",\n metrics.slotClassName,\n )}\n >\n {resolvedIcon}\n </View>\n ) : null}\n {typeof content === \"string\" || typeof content === \"number\" ? (\n <View className=\"items-center justify-center\">\n <Text\n className={cn(\n \"font-bold\",\n metrics.labelClassName,\n labelColorClassName,\n labelClassName,\n )}\n numberOfLines={1}\n style={nativeLabelBaseStyle}\n >\n {content}\n </Text>\n </View>\n ) : (\n content\n )}\n </View>\n </Pressable>\n );\n}\n\nexport default Button;\n","import {\n useField,\n type FieldHelperProps,\n type FieldHookConfig,\n type FieldInputProps,\n type FieldMetaProps,\n} from \"formik\";\n\nimport { useEUIConfig } from \"../../../eui\";\n\nimport type { Shape, Variant } from \"../../../../types\";\nimport type {\n CheckboxColumns,\n CheckboxOption,\n CheckboxProps,\n FormikCheckboxProps,\n} from \"./Checkbox.types\";\n\nexport interface ResolvedCheckboxConfig {\n shape: Shape;\n variant: Variant;\n label?: string;\n}\n\nexport interface CheckboxFieldState {\n isMulti: boolean;\n multiField: FieldInputProps<string[]>;\n multiMeta: FieldMetaProps<string[]>;\n multiHelpers: FieldHelperProps<string[]>;\n singleField: FieldInputProps<boolean>;\n singleMeta: FieldMetaProps<boolean>;\n singleHelpers: FieldHelperProps<boolean>;\n}\n\nexport function isMultiCheckbox(\n props: CheckboxProps,\n): props is Extract<CheckboxProps, { options: CheckboxOption[] }> {\n return Array.isArray(props.options);\n}\n\nexport function resolveCheckboxColumns(columns?: CheckboxColumns) {\n return columns ?? 1;\n}\n\nexport function chunkCheckboxOptions(\n options: CheckboxOption[],\n columns?: CheckboxColumns,\n) {\n const resolvedColumns = resolveCheckboxColumns(columns);\n const chunkSize = Math.ceil(options.length / resolvedColumns);\n\n return Array.from({ length: resolvedColumns }, (_, columnIndex) =>\n options.slice(columnIndex * chunkSize, (columnIndex + 1) * chunkSize),\n ).filter((columnOptions) => columnOptions.length > 0);\n}\n\nexport function useResolvedCheckboxConfig({\n label,\n placeholder,\n variant,\n shape,\n}: Pick<\n CheckboxProps,\n \"label\" | \"placeholder\" | \"variant\" | \"shape\"\n>): ResolvedCheckboxConfig {\n const eui = useEUIConfig();\n\n return {\n shape: shape ?? eui?.config?.global?.shape ?? \"roundedSquare\",\n variant: variant ?? \"success\",\n label: label ?? placeholder,\n };\n}\n\nexport function useCheckboxFieldState(\n props: FormikCheckboxProps,\n): CheckboxFieldState {\n const isMulti = isMultiCheckbox(props);\n const [multiField, multiMeta, multiHelpers] = useField<string[]>(\n props as FieldHookConfig<string[]>,\n );\n const [singleField, singleMeta, singleHelpers] = useField<boolean>(\n props as FieldHookConfig<boolean>,\n );\n\n return {\n isMulti,\n multiField,\n multiMeta,\n multiHelpers,\n singleField,\n singleMeta,\n singleHelpers,\n };\n}\n","import { shapes } from \"../../../../data/styles\";\n\nexport const checkboxShapes = shapes;\n\nexport const checkboxGroupClassName = \"flex flex-col gap-2\";\nexport const checkboxOptionRowClassName = \"flex flex-row items-start gap-3\";\nexport const checkboxLabelClassName =\n \"cursor-pointer select-none text-sm leading-relaxed text-gray-800 dark:text-gray-200\";\nexport const checkboxIndicatorBaseClassName =\n \"relative h-5 w-5 min-h-[1.25rem] min-w-[1.25rem] shrink-0 appearance-none border-2 border-gray-300 bg-white transition-all duration-300 hover:border-gray-400 focus:outline-none focus:ring-2 focus:ring-eui-primary-500/30 dark:border-neutral-600 dark:bg-neutral-900 dark:hover:border-neutral-500\";\nexport const checkboxIndicatorDisabledClassName =\n \"cursor-not-allowed opacity-50\";\n","import type { Variant } from \"../../../../types\";\n\nexport interface NativeCheckboxVariantStyles {\n checkedClassName: string;\n iconClassName: string;\n}\n\nexport const nativeCheckboxVariants: Record<\n Variant,\n NativeCheckboxVariantStyles\n> = {\n default: {\n checkedClassName:\n \"border-eui-secondary-600 bg-eui-secondary-600 dark:border-eui-secondary-500 dark:bg-eui-secondary-500\",\n iconClassName: \"text-white\",\n },\n primary: {\n checkedClassName:\n \"border-eui-primary-600 bg-eui-primary-600 dark:border-eui-primary-500 dark:bg-eui-primary-500\",\n iconClassName: \"text-white\",\n },\n secondary: {\n checkedClassName:\n \"border-eui-secondary-600 bg-eui-secondary-600 dark:border-eui-secondary-500 dark:bg-eui-secondary-500\",\n iconClassName: \"text-white\",\n },\n success: {\n checkedClassName:\n \"border-eui-success-600 bg-eui-success-600 dark:border-eui-success-500 dark:bg-eui-success-500\",\n iconClassName: \"text-white\",\n },\n danger: {\n checkedClassName:\n \"border-eui-danger-600 bg-eui-danger-600 dark:border-eui-danger-500 dark:bg-eui-danger-500\",\n iconClassName: \"text-white\",\n },\n warning: {\n checkedClassName:\n \"border-eui-warning-500 bg-eui-warning-500 dark:border-eui-warning-400 dark:bg-eui-warning-400\",\n iconClassName: \"text-black\",\n },\n info: {\n checkedClassName:\n \"border-eui-info-600 bg-eui-info-600 dark:border-eui-info-500 dark:bg-eui-info-500\",\n iconClassName: \"text-white\",\n },\n light: {\n checkedClassName:\n \"border-eui-light-400 bg-eui-light-400 dark:border-gray-200 dark:bg-gray-200\",\n iconClassName: \"text-gray-900\",\n },\n dark: {\n checkedClassName:\n \"border-eui-dark-500 bg-eui-dark-500 dark:border-eui-dark-300 dark:bg-eui-dark-300\",\n iconClassName: \"text-white\",\n },\n};\n\nexport function resolveNativeCheckboxVariantStyles(variant: Variant) {\n return nativeCheckboxVariants[variant];\n}\n","/** @jsxImportSource nativewind */\n// External\nimport { Pressable, Text, View } from \"react-native\";\n\n// Internal\nimport { cn } from \"../../../../utils\";\nimport {\n checkboxGroupClassName,\n checkboxIndicatorDisabledClassName,\n checkboxLabelClassName,\n checkboxOptionRowClassName,\n checkboxShapes,\n chunkCheckboxOptions,\n isMultiCheckbox,\n useCheckboxFieldState,\n useResolvedCheckboxConfig,\n} from \"../base\";\nimport { resolveNativeCheckboxVariantStyles } from \"./Checkbox.native.styles\";\n\n// Types\nimport type { CheckboxProps } from \"../base\";\nimport type { Shape } from \"../../../../types\";\n\nfunction getIndicatorClassName({\n checked,\n className,\n disabled,\n indicatorClassName,\n checkedIndicatorClassName,\n resolvedShape,\n variantCheckedClassName,\n}: {\n checked: boolean;\n className?: string;\n disabled?: boolean;\n indicatorClassName?: string;\n checkedIndicatorClassName?: string;\n resolvedShape: Shape;\n variantCheckedClassName: string;\n}) {\n return cn(\n \"h-5 w-5 shrink-0 items-center justify-center border-2 border-gray-300 bg-white dark:border-neutral-600 dark:bg-neutral-900\",\n checkboxShapes[resolvedShape],\n indicatorClassName,\n className,\n checked && variantCheckedClassName,\n checked && checkedIndicatorClassName,\n disabled && checkboxIndicatorDisabledClassName,\n );\n}\n\nfunction Tick({\n checkedIconClassName,\n iconClassName,\n}: {\n checkedIconClassName?: string;\n iconClassName: string;\n}) {\n return (\n <Text\n className={cn(\n \"text-sm font-bold leading-none\",\n iconClassName,\n checkedIconClassName,\n )}\n >\n ✓\n </Text>\n );\n}\n\nfunction Checkbox(checkboxProps: CheckboxProps) {\n const {\n label,\n placeholder,\n variant,\n shape,\n disabled = false,\n className,\n groupClassName,\n optionClassName,\n indicatorClassName,\n checkedIndicatorClassName,\n checkedIconClassName,\n labelClassName,\n } = checkboxProps;\n const {\n shape: resolvedShape,\n variant: resolvedVariant,\n label: resolvedLabel,\n } = useResolvedCheckboxConfig({\n label,\n placeholder,\n variant,\n shape,\n });\n const {\n isMulti,\n multiField,\n multiMeta,\n multiHelpers,\n singleField,\n singleMeta,\n singleHelpers,\n } = useCheckboxFieldState(checkboxProps);\n const variantStyles = resolveNativeCheckboxVariantStyles(resolvedVariant);\n const activeMeta = isMulti ? multiMeta : singleMeta;\n const multiProps = isMultiCheckbox(checkboxProps) ? checkboxProps : null;\n const optionColumns = multiProps\n ? chunkCheckboxOptions(multiProps.options, multiProps.columns)\n : [];\n const singleChecked = singleField.value;\n const errorText =\n activeMeta.touched && typeof activeMeta.error === \"string\"\n ? activeMeta.error\n : null;\n\n return (\n <View className={cn(checkboxGroupClassName, groupClassName)}>\n {!isMulti && (\n <Pressable\n accessibilityRole=\"checkbox\"\n accessibilityState={{\n checked: singleChecked,\n disabled,\n }}\n className={cn(checkboxOptionRowClassName, optionClassName)}\n disabled={disabled}\n onPress={() => singleHelpers.setValue(!singleChecked)}\n >\n <View\n className={getIndicatorClassName({\n checked: singleChecked,\n className,\n disabled,\n indicatorClassName,\n checkedIndicatorClassName,\n resolvedShape,\n variantCheckedClassName: variantStyles.checkedClassName,\n })}\n >\n {singleChecked ? (\n <Tick\n checkedIconClassName={checkedIconClassName}\n iconClassName={variantStyles.iconClassName}\n />\n ) : null}\n </View>\n\n {resolvedLabel ? (\n <Text className={cn(checkboxLabelClassName, labelClassName)}>\n {resolvedLabel}\n </Text>\n ) : null}\n </Pressable>\n )}\n\n {isMulti && multiProps ? (\n <View className=\"w-full flex-row gap-6\">\n {optionColumns.map((columnOptions, columnIndex) => (\n <View\n key={`${multiField.name}-column-${columnIndex}`}\n className=\"min-w-0 flex-1 flex-col gap-2\"\n >\n {columnOptions.map((option) => {\n const values = multiField.value ?? [];\n const checked = values.includes(option.value);\n const optionDisabled = disabled || option.disabled === true;\n\n return (\n <Pressable\n key={option.value}\n accessibilityRole=\"checkbox\"\n accessibilityState={{\n checked,\n disabled: optionDisabled,\n }}\n className={cn(checkboxOptionRowClassName, optionClassName)}\n disabled={optionDisabled}\n onPress={() =>\n multiHelpers.setValue(\n checked\n ? values.filter((value) => value !== option.value)\n : [...values, option.value],\n )\n }\n >\n <View\n className={getIndicatorClassName({\n checked,\n className,\n disabled: optionDisabled,\n indicatorClassName,\n checkedIndicatorClassName,\n resolvedShape,\n variantCheckedClassName: variantStyles.checkedClassName,\n })}\n >\n {checked ? (\n <Tick\n checkedIconClassName={checkedIconClassName}\n iconClassName={variantStyles.iconClassName}\n />\n ) : null}\n </View>\n\n <Text\n className={cn(\n checkboxLabelClassName,\n optionDisabled && \"opacity-60\",\n labelClassName,\n )}\n >\n {option.label}\n </Text>\n </Pressable>\n );\n })}\n </View>\n ))}\n </View>\n ) : null}\n\n {errorText ? (\n <Text className=\"px-2 py-1 text-sm font-medium text-eui-danger-500\">\n {errorText}\n </Text>\n ) : null}\n </View>\n );\n}\n\nexport { Checkbox };\nexport default Checkbox;\n","import { useEffect, useRef } from \"react\";\nimport type { FormikProps, FormikValues } from \"formik\";\n\nimport type { FormChildren, FormProps } from \"./Form.types\";\n\ntype FormObserversProps<Values extends FormikValues> = Pick<\n FormProps<Values>,\n \"onChange\" | \"onDirtyChange\"\n> & {\n formik: FormikProps<Values>;\n};\n\nexport function renderFormChildren<Values extends FormikValues>(\n children: FormChildren<Values> | undefined,\n formik: FormikProps<Values>,\n) {\n return typeof children === \"function\" ? children(formik) : children;\n}\n\nexport function FormObservers<Values extends FormikValues>({\n formik,\n onChange,\n onDirtyChange,\n}: FormObserversProps<Values>) {\n const prevValuesRef = useRef(formik.values);\n\n useEffect(() => {\n onDirtyChange?.(formik.dirty);\n }, [formik.dirty, onDirtyChange]);\n\n useEffect(() => {\n if (!onChange) return;\n\n const currentValues = formik.values;\n const prevValues = prevValuesRef.current;\n const changed: Partial<Values> = {};\n\n Object.keys(currentValues).forEach((key) => {\n if (currentValues[key] !== prevValues[key]) {\n changed[key as keyof Values] = currentValues[key];\n }\n });\n\n if (Object.keys(changed).length > 0) {\n onChange(currentValues, { changed });\n }\n\n prevValuesRef.current = currentValues;\n }, [formik.values, onChange]);\n\n return null;\n}\n","/** @jsxImportSource nativewind */\nimport { Formik, type FormikValues } from \"formik\";\nimport { View } from \"react-native\";\n\nimport { cn } from \"../../../../../utils\";\nimport { FormObservers, renderFormChildren, type FormProps } from \"../base\";\n\nexport function Form<Values extends FormikValues = FormikValues>({\n initialValues = {} as Values,\n validationSchema,\n enableReinitialize,\n children,\n className,\n contentClassName,\n onSubmit,\n onChange,\n onDirtyChange,\n}: FormProps<Values>) {\n return (\n <Formik<Values>\n initialValues={initialValues}\n validationSchema={validationSchema}\n enableReinitialize={enableReinitialize}\n onSubmit={async (values, helpers) => {\n await onSubmit(values, helpers);\n }}\n >\n {(formik) => (\n <View className={cn(className)}>\n <FormObservers\n formik={formik}\n onChange={onChange}\n onDirtyChange={onDirtyChange}\n />\n <View className={cn(contentClassName)}>\n {renderFormChildren(children, formik)}\n </View>\n </View>\n )}\n </Formik>\n );\n}\n","import { shapes, variantsLite } from \"../../../../../data/styles\";\nimport type { Shape, Size, Variant } from \"../../../../../types\";\n\nexport const formResponseSizeStyles: Record<\n Size,\n {\n root: string;\n text: string;\n }\n> = {\n xs: {\n root: \"px-2 py-1\",\n text: \"text-xs\",\n },\n sm: {\n root: \"px-3 py-2\",\n text: \"text-sm\",\n },\n md: {\n root: \"px-4 py-2\",\n text: \"text-base\",\n },\n lg: {\n root: \"px-5 py-3\",\n text: \"text-lg\",\n },\n xl: {\n root: \"px-6 py-4\",\n text: \"text-xl\",\n },\n};\n\nfunction isTextClassName(token: string) {\n const styleToken = token.split(\":\").pop() ?? token;\n\n return styleToken.startsWith(\"text-\");\n}\n\nfunction splitClassName(className: string) {\n const tokens = className.split(/\\s+/).filter(Boolean);\n\n return {\n root: tokens.filter((token) => !isTextClassName(token)).join(\" \"),\n text: tokens.filter(isTextClassName).join(\" \"),\n };\n}\n\nexport function resolveFormResponseStyles({\n shape,\n size,\n variant,\n}: {\n shape: Shape;\n size: Size;\n variant: Variant;\n}) {\n const variantClassNames = splitClassName(variantsLite[variant]);\n const sizeClassNames = formResponseSizeStyles[size];\n\n return {\n rootClassName: [\n \"border\",\n variantClassNames.root,\n shapes[shape],\n sizeClassNames.root,\n ]\n .filter(Boolean)\n .join(\" \"),\n textClassName: [\n \"font-poppins font-light\",\n variantClassNames.text,\n sizeClassNames.text,\n ]\n .filter(Boolean)\n .join(\" \"),\n };\n}\n","/** @jsxImportSource nativewind */\nimport { Text, View } from \"react-native\";\n\nimport { cn } from \"../../../../../utils\";\nimport { resolveFormResponseStyles, type FormResponseProps } from \"../base\";\n\nexport function FormResponse({\n text,\n variant = \"default\",\n shape = \"roundedSquare\",\n size = \"md\",\n className,\n textClassName,\n}: FormResponseProps) {\n if (!text) {\n return null;\n }\n\n const styles = resolveFormResponseStyles({ shape, size, variant });\n\n return (\n <View className={cn(styles.rootClassName, className)}>\n <Text className={cn(styles.textClassName, textClassName)}>{text}</Text>\n </View>\n );\n}\n","export const inputLabelStaticClassName =\n \"pointer-events-none select-none px-0 text-[13.5px] leading-none text-[#6B7280]\";\nexport const inputLabelBaseClassName =\n \"pointer-events-none absolute left-3 z-10 select-none bg-white/95 px-1 font-medium leading-none dark:bg-eui-dark-800\";\nexport const inputLabelTransitionClassName =\n \"transition-all duration-200 ease-out\";\nexport const inputLabelRestingClassName =\n \"top-[18px] translate-y-0 text-base leading-none text-[#6B7280]\";\nexport const inputLabelFloatingClassName =\n \"top-1.5 translate-y-0 text-xs leading-none text-[#6B7280]\";\nexport const inputLabelErrorClassName = \"text-[#6B7280]\";\nexport const inputLabelDisabledClassName = \"opacity-60\";\n\nexport const nativeInputLabelColors = {\n default: \"#6B7280\",\n disabled: \"#9CA3AF\",\n} as const;\n\nexport const nativeInputLabelStyle = {\n left: 12,\n position: \"absolute\",\n zIndex: 10,\n} as const;\n\nexport const nativeInputLabelMetrics = {\n floatingFontSize: 12,\n floatingTop: 6,\n restingFontSize: 16,\n restingTop: 18,\n} as const;\n","/** @jsxImportSource nativewind */\n// External\nimport { Animated } from \"react-native\";\n\n// Internal\nimport { cn } from \"../../../../../utils\";\nimport {\n inputLabelBaseClassName,\n inputLabelDisabledClassName,\n inputLabelErrorClassName,\n inputLabelStaticClassName,\n nativeInputLabelColors,\n nativeInputLabelStyle,\n nativeInputLabelMetrics,\n} from \"../base\";\n\n// Types\nimport type { InputLabelProps } from \"../base\";\n\nfunction getLabelColor({ disabled }: Pick<InputLabelProps, \"disabled\">) {\n if (disabled) {\n return nativeInputLabelColors.disabled;\n }\n\n return nativeInputLabelColors.default;\n}\n\nfunction InputLabel({\n text,\n children,\n className,\n floating,\n errored = false,\n disabled = false,\n animatedValue,\n}: InputLabelProps) {\n const isFloatingLabel = typeof floating === \"boolean\";\n const progress = animatedValue as\n | {\n interpolate: (config: {\n inputRange: number[];\n outputRange: Array<number | string>;\n }) => unknown;\n }\n | undefined;\n const animatedStyle = progress\n ? {\n fontSize: progress.interpolate({\n inputRange: [0, 1],\n outputRange: [\n nativeInputLabelMetrics.restingFontSize,\n nativeInputLabelMetrics.floatingFontSize,\n ],\n }),\n lineHeight: progress.interpolate({\n inputRange: [0, 1],\n outputRange: [\n nativeInputLabelMetrics.restingFontSize,\n nativeInputLabelMetrics.floatingFontSize,\n ],\n }),\n top: progress.interpolate({\n inputRange: [0, 1],\n outputRange: [\n nativeInputLabelMetrics.restingTop,\n nativeInputLabelMetrics.floatingTop,\n ],\n }),\n }\n : {\n fontSize:\n floating === true\n ? nativeInputLabelMetrics.floatingFontSize\n : nativeInputLabelMetrics.restingFontSize,\n lineHeight:\n floating === true\n ? nativeInputLabelMetrics.floatingFontSize\n : nativeInputLabelMetrics.restingFontSize,\n top:\n floating === true\n ? nativeInputLabelMetrics.floatingTop\n : nativeInputLabelMetrics.restingTop,\n };\n\n return (\n <Animated.Text\n className={cn(\n isFloatingLabel ? inputLabelBaseClassName : inputLabelStaticClassName,\n isFloatingLabel && \"bg-transparent px-0 dark:bg-transparent\",\n errored && inputLabelErrorClassName,\n disabled && inputLabelDisabledClassName,\n className,\n )}\n style={[\n isFloatingLabel ? nativeInputLabelStyle : null,\n isFloatingLabel ? animatedStyle : null,\n {\n color: getLabelColor({ disabled }),\n includeFontPadding: false,\n },\n ]}\n >\n {text || children}\n </Animated.Text>\n );\n}\n\nexport { InputLabel };\nexport default InputLabel;\n","import { textVariants } from \"../../../../../data/styles\";\n\nimport type { TextVariant } from \"../../../../../data/enums\";\n\nexport const inputResponseBaseClassName = \"px-2 pt-1.5 text-sm font-medium\";\n\nexport const inputResponseVariants: Record<keyof typeof TextVariant, string> =\n textVariants as Record<keyof typeof TextVariant, string>;\n","/** @jsxImportSource nativewind */\n// External\nimport { useEffect, useRef, useState } from \"react\";\nimport { Animated, Easing, Text } from \"react-native\";\nimport { ErrorMessage } from \"formik\";\n\n// Internal\nimport { cn } from \"../../../../../utils\";\nimport { inputResponseBaseClassName, inputResponseVariants } from \"../base\";\n\n// Types\nimport type { InputResponseProps } from \"../base\";\n\nfunction InputResponse({\n name,\n visibility = false,\n variant = \"default\",\n className,\n message,\n}: InputResponseProps) {\n const [mounted, setMounted] = useState(Boolean(visibility));\n const progress = useRef(new Animated.Value(visibility ? 1 : 0)).current;\n\n useEffect(() => {\n if (visibility) {\n setMounted(true);\n }\n\n Animated.timing(progress, {\n duration: visibility ? 180 : 120,\n easing: visibility ? Easing.out(Easing.cubic) : Easing.in(Easing.cubic),\n toValue: visibility ? 1 : 0,\n useNativeDriver: true,\n }).start(() => {\n if (!visibility) {\n setMounted(false);\n }\n });\n }, [progress, visibility]);\n\n if (!mounted) {\n return null;\n }\n\n const animatedStyle = {\n opacity: progress,\n transform: [\n {\n translateY: progress.interpolate({\n inputRange: [0, 1],\n outputRange: [6, 0],\n }),\n },\n ],\n };\n\n const content = message ?? (\n <ErrorMessage name={name}>\n {(errorMessage) => String(errorMessage)}\n </ErrorMessage>\n );\n\n return (\n <Animated.View className=\"w-full\" style={animatedStyle}>\n <Text\n className={cn(\n inputResponseBaseClassName,\n inputResponseVariants[variant],\n className,\n )}\n style={{ includeFontPadding: false }}\n >\n {content}\n </Text>\n </Animated.View>\n );\n}\n\nexport { InputResponse };\nexport default InputResponse;\n","import {\n useField,\n type FieldHelperProps,\n type FieldInputProps,\n type FieldMetaProps,\n} from \"formik\";\n\nimport { useEUIConfig } from \"../../../../eui\";\n\nimport type { Shape } from \"../../../../../types\";\nimport type { InputProps, InputType } from \"./Input.types\";\n\nexport interface ResolvedInputConfig {\n shape: Shape;\n type: InputType;\n label: string;\n}\n\nexport interface InputFieldState {\n field: FieldInputProps<string>;\n meta: FieldMetaProps<string>;\n helpers: FieldHelperProps<string>;\n}\n\nexport function resolveInputType({\n passwordVisible,\n type,\n}: {\n passwordVisible: boolean;\n type: InputType;\n}): InputType {\n return type === \"password\" && passwordVisible ? \"text\" : type;\n}\n\nexport function useResolvedInputConfig({\n label,\n placeholder,\n shape,\n type = \"text\",\n}: Pick<\n InputProps,\n \"label\" | \"placeholder\" | \"shape\" | \"type\"\n>): ResolvedInputConfig {\n const eui = useEUIConfig();\n\n return {\n shape: shape ?? eui?.config?.global?.shape ?? \"square\",\n type,\n label: label ?? placeholder,\n };\n}\n\nexport function useInputFieldState(props: InputProps): InputFieldState {\n const [field, meta, helpers] = useField<string>(props);\n\n return {\n field,\n meta,\n helpers,\n };\n}\n","import { shapes } from \"../../../../../data/styles\";\n\nimport type { Shape } from \"../../../../../types\";\n\nexport const inputShapes: Record<Shape, string> = shapes;\n\nexport const inputRootClassName = \"relative w-full\";\nexport const inputFrameClassName =\n \"relative h-14 w-full overflow-hidden border bg-white/95 px-3 dark:bg-eui-dark-800\";\nexport const inputFrameIdleClassName =\n \"border-gray-300 hover:border-gray-400 dark:border-eui-dark-300 dark:hover:border-eui-dark-200\";\nexport const inputFrameActiveClassName = \"border-eui-secondary-600\";\nexport const inputFrameErrorClassName = \"border-eui-danger-500\";\nexport const inputFrameDisabledClassName = \"cursor-not-allowed opacity-60\";\nexport const inputControlClassName =\n \"w-full bg-transparent pt-5 pb-2 text-base font-medium text-gray-950 dark:text-gray-50\";\nexport const inputErrorTextClassName =\n \"px-2 py-1 text-sm font-medium text-eui-danger-500\";\n","export const nativeInputControlClassName = \"h-full\";\nexport const nativePasswordInputClassName = \"pr-16\";\nexport const nativePasswordToggleClassName =\n \"absolute right-3 top-[18px] h-5 items-center justify-center\";\nexport const nativePasswordToggleTextClassName =\n \"text-xs font-semibold text-eui-dark-200\";\n\nexport const nativeInputControlStyle = {\n backgroundColor: \"transparent\",\n borderBottomWidth: 0,\n borderColor: \"transparent\",\n borderWidth: 0,\n includeFontPadding: false,\n outlineColor: \"transparent\",\n outlineStyle: \"none\",\n textAlignVertical: \"center\",\n} as const;\n","/** @jsxImportSource nativewind */\n// External\nimport { useEffect, useRef, useState } from \"react\";\nimport {\n Animated,\n Easing,\n Pressable,\n Text,\n TextInput,\n View,\n} from \"react-native\";\n\n// Internal\nimport { InputLabel } from \"../../input-label/index.native\";\nimport { InputResponse } from \"../../input-response/index.native\";\nimport { cn } from \"../../../../../utils\";\nimport {\n inputControlClassName,\n inputFrameActiveClassName,\n inputFrameClassName,\n inputFrameDisabledClassName,\n inputFrameErrorClassName,\n inputFrameIdleClassName,\n inputRootClassName,\n inputShapes,\n resolveInputType,\n useInputFieldState,\n useResolvedInputConfig,\n} from \"../base\";\nimport {\n nativeInputControlClassName,\n nativeInputControlStyle,\n nativePasswordInputClassName,\n nativePasswordToggleClassName,\n nativePasswordToggleTextClassName,\n} from \"./Input.native.styles\";\n\n// Types\nimport type { InputProps } from \"../base\";\n\nfunction Input(inputProps: InputProps) {\n const {\n type = \"text\",\n label,\n placeholder,\n inputClassName,\n labelClassName,\n responseClassName,\n step: _step,\n shape,\n disabled = false,\n className,\n onBlur,\n onFocus,\n onChange: _onChange,\n ..._props\n } = inputProps;\n const { field, helpers, meta } = useInputFieldState(inputProps);\n const [focused, setFocused] = useState(false);\n const [passwordVisible, setPasswordVisible] = useState(false);\n const labelProgress = useRef(\n new Animated.Value(String(field.value ?? \"\").length > 0 ? 1 : 0),\n ).current;\n const {\n shape: resolvedShape,\n type: resolvedType,\n label: resolvedLabel,\n } = useResolvedInputConfig({\n label,\n placeholder,\n shape,\n type,\n });\n const inputType = resolveInputType({\n passwordVisible,\n type: resolvedType,\n });\n const hasError = Boolean(meta.touched && meta.error);\n const errorText =\n hasError && typeof meta.error === \"string\" ? meta.error : null;\n const hasValue = String(field.value ?? \"\").length > 0;\n const floating = focused || hasValue;\n\n useEffect(() => {\n Animated.timing(labelProgress, {\n duration: 190,\n easing: Easing.out(Easing.cubic),\n toValue: floating ? 1 : 0,\n useNativeDriver: false,\n }).start();\n }, [floating, labelProgress]);\n\n const handleBlur = (event: unknown) => {\n setFocused(false);\n helpers.setTouched(true);\n onBlur?.(event as Parameters<NonNullable<InputProps[\"onBlur\"]>>[0]);\n };\n\n const handleFocus = (event: unknown) => {\n setFocused(true);\n onFocus?.(event as Parameters<NonNullable<InputProps[\"onFocus\"]>>[0]);\n };\n\n return (\n <View className={inputRootClassName}>\n <View\n className={cn(\n inputFrameClassName,\n hasError\n ? inputFrameErrorClassName\n : focused\n ? inputFrameActiveClassName\n : inputFrameIdleClassName,\n inputShapes[resolvedShape],\n disabled && inputFrameDisabledClassName,\n className,\n )}\n >\n <TextInput\n accessibilityLabel={resolvedLabel}\n className={cn(\n inputControlClassName,\n nativeInputControlClassName,\n type === \"password\" && nativePasswordInputClassName,\n inputClassName,\n )}\n editable={!disabled}\n keyboardType={inputType === \"number\" ? \"numeric\" : \"default\"}\n onBlur={handleBlur}\n onChangeText={(value: string) => helpers.setValue(value)}\n onFocus={handleFocus}\n placeholder=\"\"\n secureTextEntry={type === \"password\" && !passwordVisible}\n style={nativeInputControlStyle}\n underlineColorAndroid=\"transparent\"\n value={field.value ?? \"\"}\n />\n </View>\n\n <InputLabel\n animatedValue={labelProgress}\n disabled={disabled}\n errored={hasError}\n floating={floating}\n text={resolvedLabel}\n className={labelClassName}\n />\n\n {type === \"password\" ? (\n <Pressable\n accessibilityRole=\"button\"\n accessibilityLabel={\n passwordVisible ? \"Hide password\" : \"Show password\"\n }\n className={nativePasswordToggleClassName}\n disabled={disabled}\n onPress={() => setPasswordVisible((current) => !current)}\n >\n <Text className={nativePasswordToggleTextClassName}>\n {passwordVisible ? \"Hide\" : \"Show\"}\n </Text>\n </Pressable>\n ) : null}\n\n <InputResponse\n message={errorText}\n name={field.name}\n visibility={Boolean(errorText)}\n variant=\"danger\"\n className={responseClassName}\n />\n </View>\n );\n}\n\nexport { Input };\nexport default Input;\n"]}
|