elseware-ui 3.0.1 → 3.0.3

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.
@@ -3,7 +3,7 @@ import { twMerge } from 'tailwind-merge';
3
3
  import { createContext, useState, useContext, useRef, useEffect } from 'react';
4
4
  import { jsx } from 'react/jsx-runtime';
5
5
  import { jsx as jsx$1, jsxs } from 'nativewind/jsx-runtime';
6
- import { ErrorMessage, useField } from 'formik';
6
+ import { Formik, ErrorMessage, useField } from 'formik';
7
7
 
8
8
  // src/components/data-entry/button/native/Button.native.tsx
9
9
 
@@ -459,7 +459,11 @@ function Checkbox(checkboxProps) {
459
459
  checkedIconClassName,
460
460
  labelClassName
461
461
  } = checkboxProps;
462
- const { shape: resolvedShape, variant: resolvedVariant, label: resolvedLabel } = useResolvedCheckboxConfig({
462
+ const {
463
+ shape: resolvedShape,
464
+ variant: resolvedVariant,
465
+ label: resolvedLabel
466
+ } = useResolvedCheckboxConfig({
463
467
  label,
464
468
  placeholder,
465
469
  variant,
@@ -575,6 +579,139 @@ function Checkbox(checkboxProps) {
575
579
  errorText ? /* @__PURE__ */ jsx$1(Text, { className: "px-2 py-1 text-sm font-medium text-eui-danger-500", children: errorText }) : null
576
580
  ] });
577
581
  }
582
+ function renderFormChildren(children, formik) {
583
+ return typeof children === "function" ? children(formik) : children;
584
+ }
585
+ function FormObservers({
586
+ formik,
587
+ onChange,
588
+ onDirtyChange
589
+ }) {
590
+ const prevValuesRef = useRef(formik.values);
591
+ useEffect(() => {
592
+ onDirtyChange?.(formik.dirty);
593
+ }, [formik.dirty, onDirtyChange]);
594
+ useEffect(() => {
595
+ if (!onChange) return;
596
+ const currentValues = formik.values;
597
+ const prevValues = prevValuesRef.current;
598
+ const changed = {};
599
+ Object.keys(currentValues).forEach((key) => {
600
+ if (currentValues[key] !== prevValues[key]) {
601
+ changed[key] = currentValues[key];
602
+ }
603
+ });
604
+ if (Object.keys(changed).length > 0) {
605
+ onChange(currentValues, { changed });
606
+ }
607
+ prevValuesRef.current = currentValues;
608
+ }, [formik.values, onChange]);
609
+ return null;
610
+ }
611
+ function Form({
612
+ initialValues = {},
613
+ validationSchema,
614
+ enableReinitialize,
615
+ children,
616
+ className,
617
+ contentClassName,
618
+ onSubmit,
619
+ onChange,
620
+ onDirtyChange
621
+ }) {
622
+ return /* @__PURE__ */ jsx$1(
623
+ Formik,
624
+ {
625
+ initialValues,
626
+ validationSchema,
627
+ enableReinitialize,
628
+ onSubmit: async (values, helpers) => {
629
+ await onSubmit(values, helpers);
630
+ },
631
+ children: (formik) => /* @__PURE__ */ jsxs(View, { className: cn(className), children: [
632
+ /* @__PURE__ */ jsx$1(
633
+ FormObservers,
634
+ {
635
+ formik,
636
+ onChange,
637
+ onDirtyChange
638
+ }
639
+ ),
640
+ /* @__PURE__ */ jsx$1(View, { className: cn(contentClassName), children: renderFormChildren(children, formik) })
641
+ ] })
642
+ }
643
+ );
644
+ }
645
+
646
+ // src/components/data-entry/form/form-response/base/FormResponse.styles.ts
647
+ var formResponseSizeStyles = {
648
+ xs: {
649
+ root: "px-2 py-1",
650
+ text: "text-xs"
651
+ },
652
+ sm: {
653
+ root: "px-3 py-2",
654
+ text: "text-sm"
655
+ },
656
+ md: {
657
+ root: "px-4 py-2",
658
+ text: "text-base"
659
+ },
660
+ lg: {
661
+ root: "px-5 py-3",
662
+ text: "text-lg"
663
+ },
664
+ xl: {
665
+ root: "px-6 py-4",
666
+ text: "text-xl"
667
+ }
668
+ };
669
+ function isTextClassName(token) {
670
+ const styleToken = token.split(":").pop() ?? token;
671
+ return styleToken.startsWith("text-");
672
+ }
673
+ function splitClassName(className) {
674
+ const tokens = className.split(/\s+/).filter(Boolean);
675
+ return {
676
+ root: tokens.filter((token) => !isTextClassName(token)).join(" "),
677
+ text: tokens.filter(isTextClassName).join(" ")
678
+ };
679
+ }
680
+ function resolveFormResponseStyles({
681
+ shape,
682
+ size,
683
+ variant
684
+ }) {
685
+ const variantClassNames = splitClassName(variantsLite[variant]);
686
+ const sizeClassNames = formResponseSizeStyles[size];
687
+ return {
688
+ rootClassName: [
689
+ "border",
690
+ variantClassNames.root,
691
+ shapes[shape],
692
+ sizeClassNames.root
693
+ ].filter(Boolean).join(" "),
694
+ textClassName: [
695
+ "font-poppins font-light",
696
+ variantClassNames.text,
697
+ sizeClassNames.text
698
+ ].filter(Boolean).join(" ")
699
+ };
700
+ }
701
+ function FormResponse({
702
+ text,
703
+ variant = "default",
704
+ shape = "roundedSquare",
705
+ size = "md",
706
+ className,
707
+ textClassName
708
+ }) {
709
+ if (!text) {
710
+ return null;
711
+ }
712
+ const styles = resolveFormResponseStyles({ shape, size, variant });
713
+ return /* @__PURE__ */ jsx$1(View, { className: cn(styles.rootClassName, className), children: /* @__PURE__ */ jsx$1(Text, { className: cn(styles.textClassName, textClassName), children: text }) });
714
+ }
578
715
 
579
716
  // src/components/data-entry/input/input-label/base/InputLabel.styles.ts
580
717
  var inputLabelStaticClassName = "pointer-events-none select-none px-0 text-[13.5px] leading-none text-[#6B7280]";
@@ -899,6 +1036,6 @@ function Input(inputProps) {
899
1036
  ] });
900
1037
  }
901
1038
 
902
- export { Button_native_default as Button, Checkbox, EUIProvider, Input, InputLabel, InputResponse, resolveWithGlobal, useEUIConfig };
1039
+ export { Button_native_default as Button, Checkbox, EUIProvider, Form, FormResponse, Input, InputLabel, InputResponse, resolveWithGlobal, useEUIConfig };
903
1040
  //# sourceMappingURL=index.native.mjs.map
904
1041
  //# sourceMappingURL=index.native.mjs.map
@@ -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/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":["jsx","Text","jsxs","View","Pressable","useState","Animated","useField","useRef","useEffect","Easing"],"mappings":"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","file":"index.native.mjs","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\";\r\nimport clsx from \"clsx\";\r\nimport { twMerge } from \"tailwind-merge\";\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n return twMerge(clsx(inputs));\r\n}\r\n","import { Appearance, Variant } from \"../types\";\r\n\r\ninterface ResolveAppearanceStylesProps<T> {\r\n appearance?: Appearance;\r\n variant: Variant;\r\n solid: Record<Variant, T>;\r\n lite: Record<Variant, T>;\r\n ghost: Record<Variant, T>;\r\n}\r\n\r\nexport function resolveAppearanceStyles<T = string>({\r\n appearance = \"solid\",\r\n variant = \"default\",\r\n solid,\r\n lite,\r\n ghost,\r\n}: ResolveAppearanceStylesProps<T>): T {\r\n switch (appearance) {\r\n case \"ghost\":\r\n return ghost[variant];\r\n\r\n case \"lite\":\r\n return lite[variant];\r\n\r\n default:\r\n return solid[variant];\r\n }\r\n}\r\n","import React, { createContext, useContext, useState } from \"react\";\r\nimport { EUIConfigs } from \"./EUITypes\";\r\n\r\ninterface EUIContextValue {\r\n config: EUIConfigs;\r\n setConfig: React.Dispatch<React.SetStateAction<EUIConfigs>>;\r\n}\r\n\r\nconst EUIContext = createContext<EUIContextValue | null>(null);\r\n\r\nexport const EUIProvider = ({\r\n config,\r\n children,\r\n}: {\r\n config: EUIConfigs;\r\n children: React.ReactNode;\r\n}) => {\r\n const [state, setState] = useState<EUIConfigs>(config);\r\n\r\n return (\r\n <EUIContext.Provider value={{ config: state, setConfig: setState }}>\r\n {children}\r\n </EUIContext.Provider>\r\n );\r\n};\r\n\r\nexport const useEUIConfig = () => {\r\n const ctx = useContext(EUIContext);\r\n if (!ctx) {\r\n throw new Error(\"useEUIConfig must be used inside EUIProvider\");\r\n }\r\n return ctx;\r\n};\r\n","import { EUIConfigs } from \"./EUITypes\";\r\n\r\nexport function resolveWithGlobal<T>(\r\n config: EUIConfigs | null,\r\n props: T,\r\n defaults: Partial<T>,\r\n): T {\r\n return {\r\n ...defaults,\r\n ...(config?.global ?? {}),\r\n ...props,\r\n } as T;\r\n}\r\n","import { useEUIConfig } from \"../../../eui\";\r\n\r\nimport type { Appearance, Shape, Size, Variant } from \"../../../../types\";\r\nimport type { ButtonMode, ButtonProps } from \"./Button.types\";\r\n\r\nexport const buttonModeAppearance: Record<ButtonMode, Appearance> = {\r\n contained: \"solid\",\r\n \"contained-tonal\": \"lite\",\r\n outlined: \"ghost\",\r\n text: \"ghost\",\r\n};\r\n\r\nexport interface ResolvedButtonConfig {\r\n shape: Shape;\r\n size: Size;\r\n variant: Variant;\r\n appearance: Appearance;\r\n}\r\n\r\nexport function useResolvedButtonConfig({\r\n compact = false,\r\n mode,\r\n variant,\r\n appearance,\r\n shape,\r\n size,\r\n}: Pick<\r\n ButtonProps,\r\n \"compact\" | \"mode\" | \"variant\" | \"appearance\" | \"shape\" | \"size\"\r\n>): ResolvedButtonConfig {\r\n const eui = useEUIConfig();\r\n const configuredSize = size ?? eui?.config?.global?.size ?? \"md\";\r\n\r\n return {\r\n shape: shape ?? eui?.config?.global?.shape ?? \"square\",\r\n size: compact && configuredSize === \"md\" ? \"sm\" : configuredSize,\r\n variant: variant ?? eui?.config?.global?.variant ?? \"success\",\r\n appearance: appearance ?? (mode ? buttonModeAppearance[mode] : \"solid\"),\r\n };\r\n}\r\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\";\r\n\r\nexport interface NativeButtonSizeStyles {\r\n rootClassName: string;\r\n labelClassName: string;\r\n slotClassName: string;\r\n}\r\n\r\nexport const nativeButtonSizes: Record<Size, NativeButtonSizeStyles> = {\r\n xs: {\r\n rootClassName: \"min-h-[30px] px-2.5 py-1\",\r\n labelClassName: \"text-xs leading-[14px]\",\r\n slotClassName: \"h-[14px] w-[14px]\",\r\n },\r\n sm: {\r\n rootClassName: \"min-h-9 px-3 py-1.5\",\r\n labelClassName: \"text-sm leading-4\",\r\n slotClassName: \"h-4 w-4\",\r\n },\r\n md: {\r\n rootClassName: \"min-h-11 px-4 py-2\",\r\n labelClassName: \"text-[15px] leading-[18px]\",\r\n slotClassName: \"h-[18px] w-[18px]\",\r\n },\r\n lg: {\r\n rootClassName: \"min-h-[50px] px-[18px] py-3\",\r\n labelClassName: \"text-[17px] leading-5\",\r\n slotClassName: \"h-5 w-5\",\r\n },\r\n xl: {\r\n rootClassName: \"min-h-14 px-[22px] py-4\",\r\n labelClassName: \"text-[19px] leading-[22px]\",\r\n slotClassName: \"h-[22px] w-[22px]\",\r\n },\r\n};\r\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 {\r\n useField,\r\n type FieldHelperProps,\r\n type FieldHookConfig,\r\n type FieldInputProps,\r\n type FieldMetaProps,\r\n} from \"formik\";\r\n\r\nimport { useEUIConfig } from \"../../../eui\";\r\n\r\nimport type { Shape, Variant } from \"../../../../types\";\r\nimport type {\r\n CheckboxOption,\r\n CheckboxProps,\r\n FormikCheckboxProps,\r\n} from \"./Checkbox.types\";\r\n\r\nexport interface ResolvedCheckboxConfig {\r\n shape: Shape;\r\n variant: Variant;\r\n label?: string;\r\n}\r\n\r\nexport interface CheckboxFieldState {\r\n isMulti: boolean;\r\n multiField: FieldInputProps<string[]>;\r\n multiMeta: FieldMetaProps<string[]>;\r\n multiHelpers: FieldHelperProps<string[]>;\r\n singleField: FieldInputProps<boolean>;\r\n singleMeta: FieldMetaProps<boolean>;\r\n singleHelpers: FieldHelperProps<boolean>;\r\n}\r\n\r\nexport function isMultiCheckbox(\r\n props: CheckboxProps,\r\n): props is Extract<CheckboxProps, { options: CheckboxOption[] }> {\r\n return Array.isArray(props.options);\r\n}\r\n\r\nexport function useResolvedCheckboxConfig({\r\n label,\r\n placeholder,\r\n variant,\r\n shape,\r\n}: Pick<CheckboxProps, \"label\" | \"placeholder\" | \"variant\" | \"shape\">): ResolvedCheckboxConfig {\r\n const eui = useEUIConfig();\r\n\r\n return {\r\n shape: shape ?? eui?.config?.global?.shape ?? \"roundedSquare\",\r\n variant: variant ?? \"secondary\",\r\n label: label ?? placeholder,\r\n };\r\n}\r\n\r\nexport function useCheckboxFieldState(\r\n props: FormikCheckboxProps,\r\n): CheckboxFieldState {\r\n const isMulti = isMultiCheckbox(props);\r\n const [multiField, multiMeta, multiHelpers] = useField<string[]>(\r\n props as FieldHookConfig<string[]>,\r\n );\r\n const [singleField, singleMeta, singleHelpers] = useField<boolean>(\r\n props as FieldHookConfig<boolean>,\r\n );\r\n\r\n return {\r\n isMulti,\r\n multiField,\r\n multiMeta,\r\n multiHelpers,\r\n singleField,\r\n singleMeta,\r\n singleHelpers,\r\n };\r\n}\r\n","import { shapes } from \"../../../../data/styles\";\r\n\r\nexport const checkboxShapes = shapes;\r\n\r\nexport const checkboxGroupClassName = \"flex flex-col gap-2\";\r\nexport const checkboxOptionRowClassName = \"flex flex-row items-start gap-3\";\r\nexport const checkboxLabelClassName =\r\n \"cursor-pointer select-none text-sm leading-relaxed text-gray-800 dark:text-gray-200\";\r\nexport const checkboxIndicatorBaseClassName =\r\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\";\r\nexport const checkboxIndicatorDisabledClassName =\r\n \"cursor-not-allowed opacity-50\";\r\n","import type { Variant } from \"../../../../types\";\r\n\r\nexport interface NativeCheckboxVariantStyles {\r\n checkedClassName: string;\r\n iconClassName: string;\r\n}\r\n\r\nexport const nativeCheckboxVariants: Record<\r\n Variant,\r\n NativeCheckboxVariantStyles\r\n> = {\r\n default: {\r\n checkedClassName:\r\n \"border-eui-secondary-600 bg-eui-secondary-600 dark:border-eui-secondary-500 dark:bg-eui-secondary-500\",\r\n iconClassName: \"text-white\",\r\n },\r\n primary: {\r\n checkedClassName:\r\n \"border-eui-primary-600 bg-eui-primary-600 dark:border-eui-primary-500 dark:bg-eui-primary-500\",\r\n iconClassName: \"text-white\",\r\n },\r\n secondary: {\r\n checkedClassName:\r\n \"border-eui-secondary-600 bg-eui-secondary-600 dark:border-eui-secondary-500 dark:bg-eui-secondary-500\",\r\n iconClassName: \"text-white\",\r\n },\r\n success: {\r\n checkedClassName:\r\n \"border-eui-success-600 bg-eui-success-600 dark:border-eui-success-500 dark:bg-eui-success-500\",\r\n iconClassName: \"text-white\",\r\n },\r\n danger: {\r\n checkedClassName:\r\n \"border-eui-danger-600 bg-eui-danger-600 dark:border-eui-danger-500 dark:bg-eui-danger-500\",\r\n iconClassName: \"text-white\",\r\n },\r\n warning: {\r\n checkedClassName:\r\n \"border-eui-warning-500 bg-eui-warning-500 dark:border-eui-warning-400 dark:bg-eui-warning-400\",\r\n iconClassName: \"text-black\",\r\n },\r\n info: {\r\n checkedClassName:\r\n \"border-eui-info-600 bg-eui-info-600 dark:border-eui-info-500 dark:bg-eui-info-500\",\r\n iconClassName: \"text-white\",\r\n },\r\n light: {\r\n checkedClassName:\r\n \"border-eui-light-400 bg-eui-light-400 dark:border-gray-200 dark:bg-gray-200\",\r\n iconClassName: \"text-gray-900\",\r\n },\r\n dark: {\r\n checkedClassName:\r\n \"border-eui-dark-500 bg-eui-dark-500 dark:border-eui-dark-300 dark:bg-eui-dark-300\",\r\n iconClassName: \"text-white\",\r\n },\r\n};\r\n\r\nexport function resolveNativeCheckboxVariantStyles(variant: Variant) {\r\n return nativeCheckboxVariants[variant];\r\n}\r\n","/** @jsxImportSource nativewind */\r\n// External\r\nimport { Pressable, Text, View } from \"react-native\";\r\n\r\n// Internal\r\nimport { cn } from \"../../../../utils\";\r\nimport {\r\n checkboxGroupClassName,\r\n checkboxIndicatorDisabledClassName,\r\n checkboxLabelClassName,\r\n checkboxOptionRowClassName,\r\n checkboxShapes,\r\n isMultiCheckbox,\r\n useCheckboxFieldState,\r\n useResolvedCheckboxConfig,\r\n} from \"../base\";\r\nimport { resolveNativeCheckboxVariantStyles } from \"./Checkbox.native.styles\";\r\n\r\n// Types\r\nimport type { CheckboxProps } from \"../base\";\r\nimport type { Shape } from \"../../../../types\";\r\n\r\nfunction getIndicatorClassName({\r\n checked,\r\n className,\r\n disabled,\r\n indicatorClassName,\r\n checkedIndicatorClassName,\r\n resolvedShape,\r\n variantCheckedClassName,\r\n}: {\r\n checked: boolean;\r\n className?: string;\r\n disabled?: boolean;\r\n indicatorClassName?: string;\r\n checkedIndicatorClassName?: string;\r\n resolvedShape: Shape;\r\n variantCheckedClassName: string;\r\n}) {\r\n return cn(\r\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\",\r\n checkboxShapes[resolvedShape],\r\n indicatorClassName,\r\n className,\r\n checked && variantCheckedClassName,\r\n checked && checkedIndicatorClassName,\r\n disabled && checkboxIndicatorDisabledClassName,\r\n );\r\n}\r\n\r\nfunction Tick({\r\n checkedIconClassName,\r\n iconClassName,\r\n}: {\r\n checkedIconClassName?: string;\r\n iconClassName: string;\r\n}) {\r\n return (\r\n <Text\r\n className={cn(\r\n \"text-sm font-bold leading-none\",\r\n iconClassName,\r\n checkedIconClassName,\r\n )}\r\n >\r\n ✓\r\n </Text>\r\n );\r\n}\r\n\r\nfunction Checkbox(checkboxProps: CheckboxProps) {\r\n const {\r\n label,\r\n placeholder,\r\n variant,\r\n shape,\r\n disabled = false,\r\n className,\r\n groupClassName,\r\n optionClassName,\r\n indicatorClassName,\r\n checkedIndicatorClassName,\r\n checkedIconClassName,\r\n labelClassName,\r\n } = checkboxProps;\r\n const { shape: resolvedShape, variant: resolvedVariant, label: resolvedLabel } =\r\n useResolvedCheckboxConfig({\r\n label,\r\n placeholder,\r\n variant,\r\n shape,\r\n });\r\n const {\r\n isMulti,\r\n multiField,\r\n multiMeta,\r\n multiHelpers,\r\n singleField,\r\n singleMeta,\r\n singleHelpers,\r\n } = useCheckboxFieldState(checkboxProps);\r\n const variantStyles = resolveNativeCheckboxVariantStyles(resolvedVariant);\r\n const activeMeta = isMulti ? multiMeta : singleMeta;\r\n const multiProps = isMultiCheckbox(checkboxProps) ? checkboxProps : null;\r\n const singleChecked = singleField.value;\r\n const errorText =\r\n activeMeta.touched && typeof activeMeta.error === \"string\"\r\n ? activeMeta.error\r\n : null;\r\n\r\n return (\r\n <View className={cn(checkboxGroupClassName, groupClassName)}>\r\n {!isMulti && (\r\n <Pressable\r\n accessibilityRole=\"checkbox\"\r\n accessibilityState={{\r\n checked: singleChecked,\r\n disabled,\r\n }}\r\n className={cn(checkboxOptionRowClassName, optionClassName)}\r\n disabled={disabled}\r\n onPress={() => singleHelpers.setValue(!singleChecked)}\r\n >\r\n <View\r\n className={getIndicatorClassName({\r\n checked: singleChecked,\r\n className,\r\n disabled,\r\n indicatorClassName,\r\n checkedIndicatorClassName,\r\n resolvedShape,\r\n variantCheckedClassName: variantStyles.checkedClassName,\r\n })}\r\n >\r\n {singleChecked ? (\r\n <Tick\r\n checkedIconClassName={checkedIconClassName}\r\n iconClassName={variantStyles.iconClassName}\r\n />\r\n ) : null}\r\n </View>\r\n\r\n {resolvedLabel ? (\r\n <Text className={cn(checkboxLabelClassName, labelClassName)}>\r\n {resolvedLabel}\r\n </Text>\r\n ) : null}\r\n </Pressable>\r\n )}\r\n\r\n {isMulti &&\r\n multiProps?.options.map((option) => {\r\n const values = multiField.value ?? [];\r\n const checked = values.includes(option.value);\r\n const optionDisabled = disabled || option.disabled === true;\r\n\r\n return (\r\n <Pressable\r\n key={option.value}\r\n accessibilityRole=\"checkbox\"\r\n accessibilityState={{\r\n checked,\r\n disabled: optionDisabled,\r\n }}\r\n className={cn(checkboxOptionRowClassName, optionClassName)}\r\n disabled={optionDisabled}\r\n onPress={() =>\r\n multiHelpers.setValue(\r\n checked\r\n ? values.filter((value) => value !== option.value)\r\n : [...values, option.value],\r\n )\r\n }\r\n >\r\n <View\r\n className={getIndicatorClassName({\r\n checked,\r\n className,\r\n disabled: optionDisabled,\r\n indicatorClassName,\r\n checkedIndicatorClassName,\r\n resolvedShape,\r\n variantCheckedClassName: variantStyles.checkedClassName,\r\n })}\r\n >\r\n {checked ? (\r\n <Tick\r\n checkedIconClassName={checkedIconClassName}\r\n iconClassName={variantStyles.iconClassName}\r\n />\r\n ) : null}\r\n </View>\r\n\r\n <Text\r\n className={cn(\r\n checkboxLabelClassName,\r\n optionDisabled && \"opacity-60\",\r\n labelClassName,\r\n )}\r\n >\r\n {option.label}\r\n </Text>\r\n </Pressable>\r\n );\r\n })}\r\n\r\n {errorText ? (\r\n <Text className=\"px-2 py-1 text-sm font-medium text-eui-danger-500\">\r\n {errorText}\r\n </Text>\r\n ) : null}\r\n </View>\r\n );\r\n}\r\n\r\nexport { Checkbox };\r\nexport default Checkbox;\r\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 {\r\n useField,\r\n type FieldHelperProps,\r\n type FieldInputProps,\r\n type FieldMetaProps,\r\n} from \"formik\";\r\n\r\nimport { useEUIConfig } from \"../../../../eui\";\r\n\r\nimport type { Shape } from \"../../../../../types\";\r\nimport type { InputProps, InputType } from \"./Input.types\";\r\n\r\nexport interface ResolvedInputConfig {\r\n shape: Shape;\r\n type: InputType;\r\n label: string;\r\n}\r\n\r\nexport interface InputFieldState {\r\n field: FieldInputProps<string>;\r\n meta: FieldMetaProps<string>;\r\n helpers: FieldHelperProps<string>;\r\n}\r\n\r\nexport function resolveInputType({\r\n passwordVisible,\r\n type,\r\n}: {\r\n passwordVisible: boolean;\r\n type: InputType;\r\n}): InputType {\r\n return type === \"password\" && passwordVisible ? \"text\" : type;\r\n}\r\n\r\nexport function useResolvedInputConfig({\r\n label,\r\n placeholder,\r\n shape,\r\n type = \"text\",\r\n}: Pick<\r\n InputProps,\r\n \"label\" | \"placeholder\" | \"shape\" | \"type\"\r\n>): ResolvedInputConfig {\r\n const eui = useEUIConfig();\r\n\r\n return {\r\n shape: shape ?? eui?.config?.global?.shape ?? \"square\",\r\n type,\r\n label: label ?? placeholder,\r\n };\r\n}\r\n\r\nexport function useInputFieldState(props: InputProps): InputFieldState {\r\n const [field, meta, helpers] = useField<string>(props);\r\n\r\n return {\r\n field,\r\n meta,\r\n helpers,\r\n };\r\n}\r\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":["jsx","Text","jsxs","View","Pressable","useState","useRef","Animated","useEffect","useField","Easing"],"mappings":"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","file":"index.native.mjs","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,5 +1,5 @@
1
1
  import React__default, { HTMLAttributes, ReactNode } from 'react';
2
- import { FieldHookConfig } from 'formik';
2
+ import { FieldHookConfig, FormikValues, FormikConfig, FormikProps, FormikHelpers } from 'formik';
3
3
 
4
4
  declare const CURRENCIES: {
5
5
  name: string;
@@ -222,6 +222,32 @@ interface MultiCheckboxProps extends BaseCheckboxProps {
222
222
  type FormikCheckboxProps = (SingleCheckboxProps & FieldHookConfig<boolean>) | (MultiCheckboxProps & FieldHookConfig<string[]>);
223
223
  type CheckboxProps = FormikCheckboxProps;
224
224
 
225
+ type FormChildren<Values extends FormikValues = FormikValues> = ReactNode | ((formik: FormikProps<Values>) => ReactNode);
226
+ type FormChangeMeta<Values extends FormikValues = FormikValues> = {
227
+ changed: Partial<Values>;
228
+ };
229
+ interface FormProps<Values extends FormikValues = FormikValues> {
230
+ initialValues?: Values;
231
+ validationSchema?: FormikConfig<Values>["validationSchema"];
232
+ enableReinitialize?: boolean;
233
+ children?: FormChildren<Values>;
234
+ className?: string;
235
+ contentClassName?: string;
236
+ onSubmit: (values: Values, helpers: FormikHelpers<Values>) => void | Promise<unknown>;
237
+ onChange?: (values: Values, meta?: FormChangeMeta<Values>) => void;
238
+ warnOnUnsavedChanges?: boolean;
239
+ onDirtyChange?: (dirty: boolean) => void;
240
+ }
241
+
242
+ interface FormResponseProps {
243
+ text: string | undefined;
244
+ variant?: Variant;
245
+ shape?: Shape;
246
+ size?: Size;
247
+ className?: string;
248
+ textClassName?: string;
249
+ }
250
+
225
251
  type InputType = "text" | "password" | "number";
226
252
  interface BaseInputProps extends BaseComponentProps<HTMLInputElement> {
227
253
  type?: InputType;
@@ -285,4 +311,4 @@ declare const useEUIConfig: () => EUIContextValue;
285
311
 
286
312
  declare function resolveWithGlobal<T>(config: EUIConfigs | null, props: T, defaults: Partial<T>): T;
287
313
 
288
- export { type Appearance as A, type ButtonProps as B, type CheckboxProps as C, Decoration as D, type EUIComponentDefaults as E, type CornerPosition as F, type HyperRefTarget as G, type HorizontalPosition as H, type InputProps as I, type VerticalPosition as J, type ListBulletType as L, type OctilePosition as O, type RouteTabMode as R, type Shape as S, type TitleBannerLevel as T, type Variant as V, type InputLabelProps as a, type InputResponseProps as b, type ButtonIcon as c, type ButtonMode as d, type CheckboxOption as e, type EUIConfigs as f, EUIProvider as g, type EUIRoute as h, type BaseComponentProps as i, type Size as j, type ListDirection as k, type ListAlign as l, type CurrencyCode as m, type SpinnerType as n, type SpinnerDirection as o, type TextDecoration as p, Shape$1 as q, resolveWithGlobal as r, Variant$1 as s, Size$1 as t, useEUIConfig as u, ToastStatus as v, ToastPosition as w, Target as x, TextVariant as y, type CardinalPosition as z };
314
+ export { type Appearance as A, type ButtonProps as B, type CheckboxProps as C, Decoration as D, type EUIComponentDefaults as E, type FormProps as F, Variant$1 as G, type CardinalPosition as H, type InputProps as I, type CornerPosition as J, type HorizontalPosition as K, type ListBulletType as L, type HyperRefTarget as M, type VerticalPosition as N, type OctilePosition as O, type RouteTabMode as R, type Shape as S, type TitleBannerLevel as T, type Variant as V, type FormResponseProps as a, type InputLabelProps as b, type InputResponseProps as c, type ButtonIcon as d, type ButtonMode as e, type CheckboxOption as f, type EUIConfigs as g, EUIProvider as h, type EUIRoute as i, type FormChangeMeta as j, type FormChildren as k, type BaseComponentProps as l, type Size as m, type ListDirection as n, type ListAlign as o, type CurrencyCode as p, type SpinnerType as q, resolveWithGlobal as r, type SpinnerDirection as s, type TextDecoration as t, useEUIConfig as u, Shape$1 as v, ToastStatus as w, ToastPosition as x, Target as y, TextVariant as z };