elseware-ui 3.0.14 → 3.0.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +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/base/Button.tokens.ts","../src/components/data-entry/button/base/useButton.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/data/styles/shared.styles.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/native/Input.native.styles.ts","../src/components/data-entry/date-selector/base/DateSelector.config.ts","../src/components/data-entry/date-selector/native/DateSelector.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/base/Input.config.ts","../src/components/data-entry/input/input/native/Input.native.tsx","../src/components/data-entry/input/input-file/base/InputFile.config.ts","../src/components/data-entry/input/input-file/native/InputFile.native.tsx","../src/components/data-entry/select/base/Select.config.ts","../src/components/data-entry/select/native/Select.native.tsx","../src/components/data-entry/tags/base/Tags.config.ts","../src/components/data-entry/tags/native/Tags.native.tsx","../src/components/data-entry/text-area/base/TextArea.config.ts","../src/components/data-entry/text-area/native/TextArea.native.tsx"],"names":["jsx","Button","Text","jsxs","View","Pressable","useState","Animated","useField","useRef","useEffect","Easing","TextInput"],"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\";\r\n\r\n/**\r\n * Pull the text-color utilities out of a Tailwind class string.\r\n *\r\n * On the web, a root element's text color cascades to its children, so a\r\n * button's variant classes color the label automatically. React Native's\r\n * `<Text>` does not inherit color from a parent `View`, so cross-platform\r\n * components must re-apply the foreground color directly on the text node.\r\n * Keep this shared so every RN-capable component (Button, Badge, Chip, Input …)\r\n * resolves label color the same way.\r\n */\r\nexport function extractTextColorClasses(className: string): string {\r\n return className\r\n .split(/\\s+/)\r\n .filter(\r\n (token) =>\r\n token.startsWith(\"text-\") ||\r\n token.startsWith(\"dark:text-\") ||\r\n token.startsWith(\"disabled:text-\"),\r\n )\r\n .join(\" \");\r\n}\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\";\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 {\r\n variantsGhost,\r\n variantsLite,\r\n variantsSolid,\r\n} from \"../../../../data/styles\";\r\nimport { resolveAppearanceStyles } from \"../../../../utils\";\r\nimport type { ResolvedButtonConfig } from \"./Button.config\";\r\n\r\n/** Map the resolved appearance + variant to the shared design-token classes. */\r\nexport function resolveButtonVariantStyles({\r\n appearance,\r\n variant,\r\n}: Pick<ResolvedButtonConfig, \"appearance\" | \"variant\">): string {\r\n return resolveAppearanceStyles({\r\n appearance,\r\n variant,\r\n solid: variantsSolid,\r\n lite: variantsLite,\r\n ghost: variantsGhost,\r\n });\r\n}\r\n","import { shapes } from \"../../../../data/styles\";\r\nimport type { Shape, Size } from \"../../../../types\";\r\n\r\n/**\r\n * One size scale, annotated per platform, so web and native stay visually\r\n * identical from a single source. Shared fields (`padding`, `text`, `icon`)\r\n * describe the design; native-only fields cover concerns the web gets for free\r\n * (tap-target height, explicit text leading, fixed icon/spinner boxes).\r\n */\r\nexport interface ButtonSizeTokens {\r\n /** Shared horizontal/vertical padding. */\r\n padding: string;\r\n /** Shared font size (web root, native `<Text>`). */\r\n text: string;\r\n /** Shared numeric icon/spinner size in px. */\r\n icon: number;\r\n /** Native minimum tap-target height. */\r\n minHeight: string;\r\n /** Native `<Text>` line height (RN needs it explicit to center vertically). */\r\n leading: string;\r\n /** Native fixed icon/spinner slot box. */\r\n slot: string;\r\n}\r\n\r\nexport const buttonSizeTokens: Record<Size, ButtonSizeTokens> = {\r\n xs: {\r\n padding: \"px-2 py-1\",\r\n text: \"text-xs\",\r\n icon: 14,\r\n minHeight: \"min-h-[30px]\",\r\n leading: \"leading-[14px]\",\r\n slot: \"h-[14px] w-[14px]\",\r\n },\r\n sm: {\r\n padding: \"px-3 py-1.5\",\r\n text: \"text-sm\",\r\n icon: 16,\r\n minHeight: \"min-h-9\",\r\n leading: \"leading-4\",\r\n slot: \"h-4 w-4\",\r\n },\r\n md: {\r\n padding: \"px-4 py-2\",\r\n text: \"text-base\",\r\n icon: 18,\r\n minHeight: \"min-h-11\",\r\n leading: \"leading-[18px]\",\r\n slot: \"h-[18px] w-[18px]\",\r\n },\r\n lg: {\r\n padding: \"px-5 py-3\",\r\n text: \"text-lg\",\r\n icon: 20,\r\n minHeight: \"min-h-[50px]\",\r\n leading: \"leading-5\",\r\n slot: \"h-5 w-5\",\r\n },\r\n xl: {\r\n padding: \"px-6 py-4\",\r\n text: \"text-xl\",\r\n icon: 22,\r\n minHeight: \"min-h-14\",\r\n leading: \"leading-[22px]\",\r\n slot: \"h-[22px] w-[22px]\",\r\n },\r\n};\r\n\r\n/** Shape → radius classes (reuses the library-wide shape tokens). */\r\nexport const buttonShapes: Record<Shape, string> = shapes;\r\n\r\n/** Shared class applied when `mode === \"text\"`. */\r\nexport const buttonTextModeClassName = \"border-transparent bg-transparent\";\r\n","import type { ReactNode } from \"react\";\r\n\r\nimport { extractTextColorClasses } from \"../../../../utils\";\r\nimport type { Shape, Size } from \"../../../../types\";\r\n\r\nimport { useResolvedButtonConfig } from \"./Button.config\";\r\nimport { resolveButtonVariantStyles } from \"./Button.styles\";\r\nimport { buttonShapes, buttonSizeTokens } from \"./Button.tokens\";\r\nimport type { ButtonSizeTokens } from \"./Button.tokens\";\r\nimport type { ButtonProps } from \"./Button.types\";\r\n\r\n/**\r\n * The platform-agnostic view model for a Button. `useButton` does every design\r\n * and behavior decision once; the web and native views only map this model onto\r\n * their primitives. Anything genuinely platform-specific (which element, the web\r\n * glow, interaction classes) stays in the views.\r\n */\r\nexport interface ButtonModel {\r\n size: Size;\r\n shape: Shape;\r\n tokens: ButtonSizeTokens;\r\n\r\n /** disabled || loading */\r\n isBusy: boolean;\r\n /** !disabled && !loading */\r\n isInteractive: boolean;\r\n isTextMode: boolean;\r\n block: boolean;\r\n loading: boolean;\r\n\r\n iconSize: number;\r\n /** Icon resolved to an element (render-fn icons are already invoked). */\r\n icon: ReactNode;\r\n /** Which side of the label the icon/spinner render on. */\r\n iconPosition: \"leading\" | \"trailing\";\r\n /** text ?? children */\r\n label: ReactNode;\r\n /** True when the label is plain text/number (native wraps it in `<Text>`). */\r\n hasTextLabel: boolean;\r\n\r\n /** Shared variant classes (background / border / text color). */\r\n variantClassName: string;\r\n shapeClassName: string;\r\n /** Foreground color classes, re-applied on the native label + spinner. */\r\n labelColorClassName: string;\r\n\r\n selected?: boolean;\r\n onPress?: () => void;\r\n\r\n /** Unknown pass-through props, safe to spread on the platform root. */\r\n rootRest: Record<string, unknown>;\r\n}\r\n\r\nexport function useButton(props: ButtonProps): ButtonModel {\r\n const {\r\n // Consumed by the shared model\r\n icon,\r\n iconPosition = \"leading\",\r\n text,\r\n children,\r\n loading = false,\r\n disabled = false,\r\n block = false,\r\n compact = false,\r\n mode,\r\n variant,\r\n appearance,\r\n shape,\r\n size,\r\n accessibilityState,\r\n onPress,\r\n // Owned by the platform views — pulled out here only so `rootRest` is a\r\n // clean pass-through (no library props leak onto the DOM / native root).\r\n type: _type,\r\n glow: _glow,\r\n className: _className,\r\n contentClassName: _contentClassName,\r\n labelClassName: _labelClassName,\r\n accessibilityLabel: _accessibilityLabel,\r\n accessibilityRole: _accessibilityRole,\r\n testID: _testID,\r\n onClick: _onClick,\r\n onMouseMove: _onMouseMove,\r\n ...rootRest\r\n } = props;\r\n\r\n const { shape: resolvedShape, size: resolvedSize, variant: resolvedVariant, appearance: resolvedAppearance } =\r\n useResolvedButtonConfig({ compact, mode, variant, appearance, shape, size });\r\n\r\n const tokens = buttonSizeTokens[resolvedSize];\r\n const variantClassName = resolveButtonVariantStyles({\r\n appearance: resolvedAppearance,\r\n variant: resolvedVariant,\r\n });\r\n\r\n const label = text ?? children;\r\n const resolvedIcon =\r\n typeof icon === \"function\"\r\n ? icon({ color: \"currentColor\", size: tokens.icon })\r\n : icon;\r\n\r\n const isBusy = disabled || loading;\r\n\r\n return {\r\n size: resolvedSize,\r\n shape: resolvedShape,\r\n tokens,\r\n\r\n isBusy,\r\n isInteractive: !isBusy,\r\n isTextMode: mode === \"text\",\r\n block,\r\n loading,\r\n\r\n iconSize: tokens.icon,\r\n icon: resolvedIcon,\r\n iconPosition,\r\n label,\r\n hasTextLabel: typeof label === \"string\" || typeof label === \"number\",\r\n\r\n variantClassName,\r\n shapeClassName: buttonShapes[resolvedShape],\r\n labelColorClassName: extractTextColorClasses(variantClassName),\r\n\r\n selected: accessibilityState?.selected,\r\n onPress,\r\n\r\n rootRest,\r\n };\r\n}\r\n","/** @jsxImportSource nativewind */\r\n// External\r\nimport { forwardRef } from \"react\";\r\nimport type { ElementRef } from \"react\";\r\nimport { ActivityIndicator, Pressable, Text, View } from \"react-native\";\r\n\r\n// Internal\r\nimport { cn } from \"../../../../utils\";\r\nimport { buttonTextModeClassName, useButton } from \"../base\";\r\n\r\n// Types\r\nimport type { ButtonProps } from \"../base\";\r\n\r\nconst NATIVE_ROOT = \"relative items-center justify-center overflow-hidden\";\r\n\r\nconst nativeLabelBaseStyle = {\r\n includeFontPadding: false,\r\n textAlignVertical: \"center\",\r\n} as const;\r\n\r\nconst Button = forwardRef<ElementRef<typeof Pressable>, ButtonProps>(\r\n function Button(props, ref) {\r\n const {\r\n className,\r\n contentClassName,\r\n labelClassName,\r\n accessibilityLabel,\r\n accessibilityRole = \"button\",\r\n testID,\r\n } = props;\r\n\r\n const model = useButton(props);\r\n const trailing = model.iconPosition === \"trailing\";\r\n\r\n const iconSlot =\r\n model.loading || model.icon ? (\r\n <View\r\n className={cn(\r\n \"shrink-0 items-center justify-center\",\r\n model.tokens.slot,\r\n )}\r\n >\r\n {model.loading ? (\r\n <ActivityIndicator\r\n className={model.labelColorClassName}\r\n size=\"small\"\r\n />\r\n ) : (\r\n model.icon\r\n )}\r\n </View>\r\n ) : null;\r\n\r\n const labelNode = model.hasTextLabel ? (\r\n <Text\r\n className={cn(\r\n \"font-bold\",\r\n model.tokens.text,\r\n model.tokens.leading,\r\n model.labelColorClassName,\r\n labelClassName,\r\n )}\r\n numberOfLines={1}\r\n style={nativeLabelBaseStyle}\r\n >\r\n {model.label}\r\n </Text>\r\n ) : (\r\n model.label\r\n );\r\n\r\n return (\r\n <Pressable\r\n {...model.rootRest}\r\n ref={ref}\r\n accessibilityLabel={accessibilityLabel}\r\n accessibilityRole={accessibilityRole}\r\n accessibilityState={{ disabled: model.isBusy, selected: model.selected }}\r\n testID={testID}\r\n disabled={model.isBusy}\r\n onPress={model.onPress}\r\n className={cn(\r\n NATIVE_ROOT,\r\n model.variantClassName,\r\n model.shapeClassName,\r\n model.tokens.padding,\r\n model.tokens.minHeight,\r\n model.block && \"w-full\",\r\n model.isTextMode && buttonTextModeClassName,\r\n model.isBusy ? \"opacity-55\" : \"active:opacity-80\",\r\n className,\r\n )}\r\n style={({ pressed }: { pressed: boolean }) =>\r\n pressed && model.isInteractive ? { opacity: 0.82 } : null\r\n }\r\n >\r\n <View\r\n className={cn(\r\n \"z-10 flex-row items-center justify-center gap-2\",\r\n contentClassName,\r\n )}\r\n >\r\n {trailing ? labelNode : iconSlot}\r\n {trailing ? iconSlot : labelNode}\r\n </View>\r\n </Pressable>\r\n );\r\n },\r\n);\r\n\r\nexport default Button;\r\n","import {\n useField,\n type FieldHelperProps,\n type FieldHookConfig,\n type FieldInputProps,\n type FieldMetaProps,\n} from \"formik\";\n\nimport { useEUIConfig } from \"../../../eui\";\n\nimport type { Shape, Variant } from \"../../../../types\";\nimport type {\n CheckboxColumns,\n CheckboxOption,\n CheckboxProps,\n FormikCheckboxProps,\n} from \"./Checkbox.types\";\n\nexport interface ResolvedCheckboxConfig {\n shape: Shape;\n variant: Variant;\n label?: string;\n}\n\nexport interface CheckboxFieldState {\n isMulti: boolean;\n multiField: FieldInputProps<string[]>;\n multiMeta: FieldMetaProps<string[]>;\n multiHelpers: FieldHelperProps<string[]>;\n singleField: FieldInputProps<boolean>;\n singleMeta: FieldMetaProps<boolean>;\n singleHelpers: FieldHelperProps<boolean>;\n}\n\nexport function isMultiCheckbox(\n props: CheckboxProps,\n): props is Extract<CheckboxProps, { options: CheckboxOption[] }> {\n return Array.isArray(props.options);\n}\n\nexport function resolveCheckboxColumns(columns?: CheckboxColumns) {\n return columns ?? 1;\n}\n\nexport function chunkCheckboxOptions(\n options: CheckboxOption[],\n columns?: CheckboxColumns,\n) {\n const resolvedColumns = resolveCheckboxColumns(columns);\n const chunkSize = Math.ceil(options.length / resolvedColumns);\n\n return Array.from({ length: resolvedColumns }, (_, columnIndex) =>\n options.slice(columnIndex * chunkSize, (columnIndex + 1) * chunkSize),\n ).filter((columnOptions) => columnOptions.length > 0);\n}\n\nexport function useResolvedCheckboxConfig({\n label,\n placeholder,\n variant,\n shape,\n}: Pick<\n CheckboxProps,\n \"label\" | \"placeholder\" | \"variant\" | \"shape\"\n>): ResolvedCheckboxConfig {\n const eui = useEUIConfig();\n\n return {\n shape: shape ?? eui?.config?.global?.shape ?? \"roundedSquare\",\n variant: variant ?? \"success\",\n label: label ?? placeholder,\n };\n}\n\nexport function useCheckboxFieldState(\n props: FormikCheckboxProps,\n): CheckboxFieldState {\n const isMulti = isMultiCheckbox(props);\n const [multiField, multiMeta, multiHelpers] = useField<string[]>(\n props as FieldHookConfig<string[]>,\n );\n const [singleField, singleMeta, singleHelpers] = useField<boolean>(\n props as FieldHookConfig<boolean>,\n );\n\n return {\n isMulti,\n multiField,\n multiMeta,\n multiHelpers,\n singleField,\n singleMeta,\n singleHelpers,\n };\n}\n","import { shapes } from \"../../../../data/styles\";\n\nexport const checkboxShapes = shapes;\n\nexport const checkboxGroupClassName = \"flex flex-col gap-2\";\nexport const checkboxOptionRowClassName = \"flex flex-row items-start gap-3\";\nexport const checkboxLabelClassName =\n \"cursor-pointer select-none text-sm leading-relaxed text-gray-800 dark:text-gray-200\";\nexport const checkboxIndicatorBaseClassName =\n \"relative h-5 w-5 min-h-[1.25rem] min-w-[1.25rem] shrink-0 appearance-none border-2 border-gray-300 bg-white transition-all duration-300 hover:border-gray-400 focus:outline-none focus:ring-2 focus:ring-eui-primary-500/30 dark:border-neutral-600 dark:bg-neutral-900 dark:hover:border-neutral-500\";\nexport const checkboxIndicatorDisabledClassName =\n \"cursor-not-allowed opacity-50\";\n","import type { Variant } from \"../../../../types\";\n\nexport interface NativeCheckboxVariantStyles {\n checkedClassName: string;\n iconClassName: string;\n}\n\nexport const nativeCheckboxVariants: Record<\n Variant,\n NativeCheckboxVariantStyles\n> = {\n default: {\n checkedClassName:\n \"border-eui-secondary-600 bg-eui-secondary-600 dark:border-eui-secondary-500 dark:bg-eui-secondary-500\",\n iconClassName: \"text-white\",\n },\n primary: {\n checkedClassName:\n \"border-eui-primary-600 bg-eui-primary-600 dark:border-eui-primary-500 dark:bg-eui-primary-500\",\n iconClassName: \"text-white\",\n },\n secondary: {\n checkedClassName:\n \"border-eui-secondary-600 bg-eui-secondary-600 dark:border-eui-secondary-500 dark:bg-eui-secondary-500\",\n iconClassName: \"text-white\",\n },\n success: {\n checkedClassName:\n \"border-eui-success-600 bg-eui-success-600 dark:border-eui-success-500 dark:bg-eui-success-500\",\n iconClassName: \"text-white\",\n },\n danger: {\n checkedClassName:\n \"border-eui-danger-600 bg-eui-danger-600 dark:border-eui-danger-500 dark:bg-eui-danger-500\",\n iconClassName: \"text-white\",\n },\n warning: {\n checkedClassName:\n \"border-eui-warning-500 bg-eui-warning-500 dark:border-eui-warning-400 dark:bg-eui-warning-400\",\n iconClassName: \"text-black\",\n },\n info: {\n checkedClassName:\n \"border-eui-info-600 bg-eui-info-600 dark:border-eui-info-500 dark:bg-eui-info-500\",\n iconClassName: \"text-white\",\n },\n light: {\n checkedClassName:\n \"border-eui-light-400 bg-eui-light-400 dark:border-gray-200 dark:bg-gray-200\",\n iconClassName: \"text-gray-900\",\n },\n dark: {\n checkedClassName:\n \"border-eui-dark-500 bg-eui-dark-500 dark:border-eui-dark-300 dark:bg-eui-dark-300\",\n iconClassName: \"text-white\",\n },\n};\n\nexport function resolveNativeCheckboxVariantStyles(variant: Variant) {\n return nativeCheckboxVariants[variant];\n}\n","/** @jsxImportSource nativewind */\n// External\nimport { Pressable, Text, View } from \"react-native\";\n\n// Internal\nimport { cn } from \"../../../../utils\";\nimport {\n checkboxGroupClassName,\n checkboxIndicatorDisabledClassName,\n checkboxLabelClassName,\n checkboxOptionRowClassName,\n checkboxShapes,\n chunkCheckboxOptions,\n isMultiCheckbox,\n useCheckboxFieldState,\n useResolvedCheckboxConfig,\n} from \"../base\";\nimport { resolveNativeCheckboxVariantStyles } from \"./Checkbox.native.styles\";\n\n// Types\nimport type { CheckboxProps } from \"../base\";\nimport type { Shape } from \"../../../../types\";\n\nfunction getIndicatorClassName({\n checked,\n className,\n disabled,\n indicatorClassName,\n checkedIndicatorClassName,\n resolvedShape,\n variantCheckedClassName,\n}: {\n checked: boolean;\n className?: string;\n disabled?: boolean;\n indicatorClassName?: string;\n checkedIndicatorClassName?: string;\n resolvedShape: Shape;\n variantCheckedClassName: string;\n}) {\n return cn(\n \"h-5 w-5 shrink-0 items-center justify-center border-2 border-gray-300 bg-white dark:border-neutral-600 dark:bg-neutral-900\",\n checkboxShapes[resolvedShape],\n indicatorClassName,\n className,\n checked && variantCheckedClassName,\n checked && checkedIndicatorClassName,\n disabled && checkboxIndicatorDisabledClassName,\n );\n}\n\nfunction Tick({\n checkedIconClassName,\n iconClassName,\n}: {\n checkedIconClassName?: string;\n iconClassName: string;\n}) {\n return (\n <Text\n className={cn(\n \"text-sm font-bold leading-none\",\n iconClassName,\n checkedIconClassName,\n )}\n >\n ✓\n </Text>\n );\n}\n\nfunction Checkbox(checkboxProps: CheckboxProps) {\n const {\n label,\n placeholder,\n variant,\n shape,\n disabled = false,\n className,\n groupClassName,\n optionClassName,\n indicatorClassName,\n checkedIndicatorClassName,\n checkedIconClassName,\n labelClassName,\n } = checkboxProps;\n const {\n shape: resolvedShape,\n variant: resolvedVariant,\n label: resolvedLabel,\n } = useResolvedCheckboxConfig({\n label,\n placeholder,\n variant,\n shape,\n });\n const {\n isMulti,\n multiField,\n multiMeta,\n multiHelpers,\n singleField,\n singleMeta,\n singleHelpers,\n } = useCheckboxFieldState(checkboxProps);\n const variantStyles = resolveNativeCheckboxVariantStyles(resolvedVariant);\n const activeMeta = isMulti ? multiMeta : singleMeta;\n const multiProps = isMultiCheckbox(checkboxProps) ? checkboxProps : null;\n const optionColumns = multiProps\n ? chunkCheckboxOptions(multiProps.options, multiProps.columns)\n : [];\n const singleChecked = singleField.value;\n const errorText =\n activeMeta.touched && typeof activeMeta.error === \"string\"\n ? activeMeta.error\n : null;\n\n return (\n <View className={cn(checkboxGroupClassName, groupClassName)}>\n {!isMulti && (\n <Pressable\n accessibilityRole=\"checkbox\"\n accessibilityState={{\n checked: singleChecked,\n disabled,\n }}\n className={cn(checkboxOptionRowClassName, optionClassName)}\n disabled={disabled}\n onPress={() => singleHelpers.setValue(!singleChecked)}\n >\n <View\n className={getIndicatorClassName({\n checked: singleChecked,\n className,\n disabled,\n indicatorClassName,\n checkedIndicatorClassName,\n resolvedShape,\n variantCheckedClassName: variantStyles.checkedClassName,\n })}\n >\n {singleChecked ? (\n <Tick\n checkedIconClassName={checkedIconClassName}\n iconClassName={variantStyles.iconClassName}\n />\n ) : null}\n </View>\n\n {resolvedLabel ? (\n <Text className={cn(checkboxLabelClassName, labelClassName)}>\n {resolvedLabel}\n </Text>\n ) : null}\n </Pressable>\n )}\n\n {isMulti && multiProps ? (\n <View className=\"w-full flex-row gap-6\">\n {optionColumns.map((columnOptions, columnIndex) => (\n <View\n key={`${multiField.name}-column-${columnIndex}`}\n className=\"min-w-0 flex-1 flex-col gap-2\"\n >\n {columnOptions.map((option) => {\n const values = multiField.value ?? [];\n const checked = values.includes(option.value);\n const optionDisabled = disabled || option.disabled === true;\n\n return (\n <Pressable\n key={option.value}\n accessibilityRole=\"checkbox\"\n accessibilityState={{\n checked,\n disabled: optionDisabled,\n }}\n className={cn(checkboxOptionRowClassName, optionClassName)}\n disabled={optionDisabled}\n onPress={() =>\n multiHelpers.setValue(\n checked\n ? values.filter((value) => value !== option.value)\n : [...values, option.value],\n )\n }\n >\n <View\n className={getIndicatorClassName({\n checked,\n className,\n disabled: optionDisabled,\n indicatorClassName,\n checkedIndicatorClassName,\n resolvedShape,\n variantCheckedClassName: variantStyles.checkedClassName,\n })}\n >\n {checked ? (\n <Tick\n checkedIconClassName={checkedIconClassName}\n iconClassName={variantStyles.iconClassName}\n />\n ) : null}\n </View>\n\n <Text\n className={cn(\n checkboxLabelClassName,\n optionDisabled && \"opacity-60\",\n labelClassName,\n )}\n >\n {option.label}\n </Text>\n </Pressable>\n );\n })}\n </View>\n ))}\n </View>\n ) : null}\n\n {errorText ? (\n <Text className=\"px-2 py-1 text-sm font-medium text-eui-danger-500\">\n {errorText}\n </Text>\n ) : null}\n </View>\n );\n}\n\nexport { Checkbox };\nexport default Checkbox;\n","import { shapes } from \"../styles\";\n\nimport type { Shape } from \"../../types\";\n\nexport const inputShapes: Record<Shape, string> = shapes;\n\nexport const inputInlineInsetPx = 12;\nexport const inputInlineInsetClassName = \"left-3\";\nexport const inputInlinePaddingXClassName = \"px-3\";\nexport const inputRootClassName = \"relative w-full\";\nexport const inputFrameClassName = `relative h-14 w-full overflow-hidden border bg-white/95 ${inputInlinePaddingXClassName} dark:bg-eui-primary-300/10`;\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-normal text-gray-950 dark:text-gray-300\";\nexport const inputErrorTextClassName = `${inputInlinePaddingXClassName} py-1 text-sm font-medium text-eui-danger-500`;\n","import {\n inputInlineInsetClassName,\n inputInlineInsetPx,\n} from \"../../../../../data/styles/shared.styles\";\n\nexport const inputLabelStaticClassName =\n \"pointer-events-none select-none px-0 text-[13.5px] leading-none text-[#6B7280]\";\nexport const inputLabelBaseClassName = `pointer-events-none absolute ${inputInlineInsetClassName} z-10 select-none bg-transparent px-0 font-medium leading-none`;\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: inputInlineInsetPx,\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\";\nimport { inputInlinePaddingXClassName } from \"../../../../../data/styles/shared.styles\";\n\nimport type { TextVariant } from \"../../../../../data/enums\";\n\nexport const inputResponseBaseClassName = `${inputInlinePaddingXClassName} 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","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","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 { DateSelectorProps } from \"./DateSelector.types\";\n\nexport interface ResolvedDateSelectorConfig {\n label: string;\n shape: Shape;\n}\n\nexport interface DateSelectorFieldState {\n field: FieldInputProps<string>;\n helpers: FieldHelperProps<string>;\n meta: FieldMetaProps<string>;\n}\n\nexport function useResolvedDateSelectorConfig({\n label,\n placeholder,\n shape,\n}: Pick<\n DateSelectorProps,\n \"label\" | \"placeholder\" | \"shape\"\n>): ResolvedDateSelectorConfig {\n const eui = useEUIConfig();\n\n return {\n label: label ?? placeholder,\n shape: shape ?? eui?.config?.global?.shape ?? \"square\",\n };\n}\n\nexport function useDateSelectorFieldState(\n props: DateSelectorProps,\n): DateSelectorFieldState {\n const [field, meta, helpers] = useField<string>(props);\n\n return {\n field,\n helpers,\n meta,\n };\n}\n","/** @jsxImportSource nativewind */\nimport { useRef, useState } from \"react\";\nimport { Animated, TextInput, View } from \"react-native\";\n\nimport { InputLabel } from \"../../input/input-label/index.native\";\nimport { InputResponse } from \"../../input/input-response/index.native\";\n\nimport { cn } from \"../../../../utils\";\nimport {\n inputControlClassName,\n inputFrameActiveClassName,\n inputFrameClassName,\n inputFrameDisabledClassName,\n inputFrameErrorClassName,\n inputFrameIdleClassName,\n inputRootClassName,\n inputShapes,\n} from \"../../../../data/styles/shared.styles\";\nimport {\n nativeInputControlClassName,\n nativeInputControlStyle,\n} from \"../../input/input/native/Input.native.styles\";\nimport {\n useDateSelectorFieldState,\n useResolvedDateSelectorConfig,\n} from \"../base\";\n\nimport type { DateSelectorProps } from \"../base\";\n\nfunction DateSelector(dateSelectorProps: DateSelectorProps) {\n const {\n disabled = false,\n inputClassName,\n label,\n labelClassName,\n placeholder,\n responseClassName,\n shape,\n styles,\n className,\n onBlur,\n onFocus,\n } = dateSelectorProps;\n const { field, helpers, meta } = useDateSelectorFieldState(dateSelectorProps);\n const [focused, setFocused] = useState(false);\n const labelProgress = useRef(new Animated.Value(1)).current;\n const { label: resolvedLabel, shape: resolvedShape } =\n useResolvedDateSelectorConfig({\n label,\n placeholder,\n shape,\n });\n const hasError = Boolean(meta.touched && meta.error);\n const errorText =\n hasError && typeof meta.error === \"string\" ? meta.error : null;\n\n const handleBlur = (event: unknown) => {\n setFocused(false);\n helpers.setTouched(true);\n onBlur?.(event as Parameters<NonNullable<DateSelectorProps[\"onBlur\"]>>[0]);\n };\n\n const handleFocus = (event: unknown) => {\n setFocused(true);\n onFocus?.(\n event as Parameters<NonNullable<DateSelectorProps[\"onFocus\"]>>[0],\n );\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 styles,\n )}\n >\n <TextInput\n accessibilityLabel={resolvedLabel}\n className={cn(\n inputControlClassName,\n nativeInputControlClassName,\n inputClassName,\n )}\n editable={!disabled}\n keyboardType=\"numbers-and-punctuation\"\n onBlur={handleBlur}\n onChangeText={(value: string) => helpers.setValue(value)}\n onFocus={handleFocus}\n placeholder=\"\"\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\n text={resolvedLabel}\n className={labelClassName}\n />\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 { DateSelector };\nexport default DateSelector;\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","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","/** @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 resolveInputType,\n useInputFieldState,\n useResolvedInputConfig,\n} from \"../base\";\n\nimport {\n inputControlClassName,\n inputFrameActiveClassName,\n inputFrameClassName,\n inputFrameDisabledClassName,\n inputFrameErrorClassName,\n inputFrameIdleClassName,\n inputRootClassName,\n inputShapes,\n} from \"../../../../../data/styles/shared.styles\";\n\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","import { useField } from \"formik\";\n\nimport { useEUIConfig } from \"../../../../eui\";\n\nimport type { FieldHelperProps, FieldInputProps, FieldMetaProps } from \"formik\";\nimport type {\n InputFileProps,\n InputFileValue,\n NativeInputFileValue,\n} from \"./InputFile.types\";\nimport type { Shape } from \"../../../../../types\";\n\nexport interface ResolvedInputFileConfig {\n label: string;\n shape: Shape;\n}\n\nexport interface InputFileFieldState {\n field: FieldInputProps<InputFileValue>;\n helpers: FieldHelperProps<InputFileValue>;\n meta: FieldMetaProps<InputFileValue>;\n}\n\nexport function useResolvedInputFileConfig({\n label,\n placeholder,\n shape,\n}: Pick<InputFileProps, \"label\" | \"placeholder\" | \"shape\">) {\n const eui = useEUIConfig();\n\n return {\n label: label ?? placeholder,\n shape: shape ?? eui?.config?.global?.shape ?? \"square\",\n };\n}\n\nexport function useInputFileFieldState(\n props: InputFileProps,\n): InputFileFieldState {\n const [field, meta, helpers] = useField<InputFileValue>(props);\n\n return {\n field,\n helpers,\n meta,\n };\n}\n\nfunction isNativeInputFileValue(\n file: InputFileValue,\n): file is NativeInputFileValue {\n return Boolean(file && typeof file === \"object\");\n}\n\nexport function getInputFileName(file: InputFileValue) {\n if (!isNativeInputFileValue(file)) {\n return \"\";\n }\n\n if (\"name\" in file && file.name) {\n return file.name;\n }\n\n if (\"fileName\" in file && file.fileName) {\n return file.fileName;\n }\n\n if (\"uri\" in file && file.uri) {\n return file.uri.split(\"/\").filter(Boolean).pop() ?? \"\";\n }\n\n return \"\";\n}\n\nexport function isAcceptedInputFile(\n file: Pick<File, \"name\" | \"type\">,\n accept?: string,\n) {\n if (!accept) {\n return true;\n }\n\n const acceptedTypes = accept\n .split(\",\")\n .map((acceptedType) => acceptedType.trim().toLowerCase())\n .filter(Boolean);\n const fileName = file.name.toLowerCase();\n const fileType = file.type.toLowerCase();\n\n return acceptedTypes.some((acceptedType) => {\n if (acceptedType.startsWith(\".\")) {\n return fileName.endsWith(acceptedType);\n }\n\n if (acceptedType.endsWith(\"/*\")) {\n return fileType.startsWith(acceptedType.replace(\"/*\", \"/\"));\n }\n\n return fileType === acceptedType;\n });\n}\n","/** @jsxImportSource nativewind */\nimport { useState } from \"react\";\nimport { Pressable, Text, View } from \"react-native\";\n\nimport { InputLabel } from \"../../input-label/index.native\";\nimport { InputResponse } from \"../../input-response/index.native\";\n\nimport { cn } from \"../../../../../utils\";\nimport {\n inputControlClassName,\n inputFrameActiveClassName,\n inputFrameClassName,\n inputFrameDisabledClassName,\n inputFrameErrorClassName,\n inputFrameIdleClassName,\n inputRootClassName,\n inputShapes,\n} from \"../../../../../data/styles/shared.styles\";\nimport {\n getInputFileName,\n useInputFileFieldState,\n useResolvedInputFileConfig,\n} from \"../base\";\n\nimport type { InputFileProps, InputFileValue } from \"../base\";\n\nfunction InputFile(inputFileProps: InputFileProps) {\n const {\n disabled = false,\n inputClassName,\n label,\n labelClassName,\n onFileSelect,\n placeholder,\n responseClassName,\n shape,\n className,\n } = inputFileProps;\n const { field, meta, helpers } = useInputFileFieldState(inputFileProps);\n const [focused, setFocused] = useState(false);\n const { label: resolvedLabel, shape: resolvedShape } =\n useResolvedInputFileConfig({\n label,\n placeholder,\n shape,\n });\n const hasError = Boolean(meta.touched && meta.error);\n const errorText =\n hasError && typeof meta.error === \"string\" ? meta.error : null;\n const fileName = getInputFileName(field.value);\n const floating = focused || Boolean(fileName);\n\n const handlePress = async () => {\n if (disabled || !onFileSelect) {\n return;\n }\n\n setFocused(true);\n const selectedFile = await onFileSelect();\n\n if (selectedFile !== undefined) {\n await helpers.setValue(selectedFile as InputFileValue);\n await helpers.setTouched(true);\n }\n };\n\n return (\n <View className={inputRootClassName}>\n <Pressable\n accessibilityLabel={resolvedLabel}\n accessibilityRole=\"button\"\n disabled={disabled}\n onBlur={() => setFocused(false)}\n onFocus={() => setFocused(true)}\n onPress={() => void handlePress()}\n className={cn(\n inputFrameClassName,\n \"justify-center\",\n hasError\n ? inputFrameErrorClassName\n : focused\n ? inputFrameActiveClassName\n : inputFrameIdleClassName,\n inputShapes[resolvedShape],\n disabled && inputFrameDisabledClassName,\n className,\n )}\n >\n <Text\n numberOfLines={1}\n className={cn(\n inputControlClassName,\n \"pt-5 pb-2\",\n !fileName && \"text-gray-500 dark:text-gray-300\",\n inputClassName,\n )}\n style={{ includeFontPadding: false }}\n >\n {fileName}\n </Text>\n </Pressable>\n\n <InputLabel\n disabled={disabled}\n errored={hasError}\n floating={floating}\n text={resolvedLabel}\n className={labelClassName}\n />\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 { InputFile };\nexport default InputFile;\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 { SelectOption, SelectProps } from \"./Select.types\";\n\nexport interface ResolvedSelectConfig {\n label: string;\n shape: Shape;\n}\n\nexport interface SelectFieldState {\n field: FieldInputProps<string>;\n helpers: FieldHelperProps<string>;\n meta: FieldMetaProps<string>;\n}\n\nexport function useResolvedSelectConfig({\n label,\n placeholder,\n shape,\n}: Pick<SelectProps, \"label\" | \"placeholder\" | \"shape\">): ResolvedSelectConfig {\n const eui = useEUIConfig();\n\n return {\n label: label ?? placeholder,\n shape: shape ?? eui?.config?.global?.shape ?? \"square\",\n };\n}\n\nexport function useSelectFieldState(props: SelectProps): SelectFieldState {\n const [field, meta, helpers] = useField<string>(props);\n\n return {\n field,\n helpers,\n meta,\n };\n}\n\nexport function getSelectOptionLabel(\n options: SelectOption[],\n value: string,\n): string {\n const option = options.find((item) => item.value === value);\n\n if (!option) {\n return \"\";\n }\n\n return String(option.label ?? \"\");\n}\n","/** @jsxImportSource nativewind */\nimport { useState } from \"react\";\nimport { Modal, Pressable, ScrollView, Text, View } from \"react-native\";\n\nimport { InputLabel } from \"../../input/input-label/index.native\";\nimport { InputResponse } from \"../../input/input-response/index.native\";\nimport {\n inputControlClassName,\n inputFrameActiveClassName,\n inputFrameClassName,\n inputFrameDisabledClassName,\n inputFrameErrorClassName,\n inputFrameIdleClassName,\n inputRootClassName,\n inputShapes,\n} from \"../../../../data/styles/shared.styles\";\nimport { cn } from \"../../../../utils\";\nimport {\n getSelectOptionLabel,\n useResolvedSelectConfig,\n useSelectFieldState,\n} from \"../base\";\n\nimport type { SelectOption, SelectProps } from \"../base\";\n\nfunction Select(selectProps: SelectProps) {\n const {\n disabled = false,\n inputClassName,\n label,\n labelClassName,\n options,\n placeholder,\n responseClassName,\n shape,\n styles,\n className,\n onBlur,\n onFocus,\n ..._props\n } = selectProps;\n const { field, helpers, meta } = useSelectFieldState(selectProps);\n const [focused, setFocused] = useState(false);\n const [open, setOpen] = useState(false);\n const { label: resolvedLabel, shape: resolvedShape } =\n useResolvedSelectConfig({\n label,\n placeholder,\n shape,\n });\n const hasError = Boolean(meta.touched && meta.error);\n const errorText =\n hasError && typeof meta.error === \"string\" ? meta.error : null;\n const selectedLabel = getSelectOptionLabel(options, field.value ?? \"\");\n\n const closeOptions = () => {\n setOpen(false);\n setFocused(false);\n void helpers.setTouched(true);\n };\n\n const handleOpen = () => {\n if (disabled) {\n return;\n }\n\n setFocused(true);\n setOpen(true);\n };\n\n const handleSelect = (option: SelectOption) => {\n if (option.disabled) {\n return;\n }\n\n void helpers.setValue(option.value);\n void helpers.setTouched(true);\n setOpen(false);\n setFocused(false);\n };\n\n const handleBlur = (event: unknown) => {\n setFocused(false);\n void helpers.setTouched(true);\n onBlur?.(event as Parameters<NonNullable<SelectProps[\"onBlur\"]>>[0]);\n };\n\n const handleFocus = (event: unknown) => {\n setFocused(true);\n onFocus?.(event as Parameters<NonNullable<SelectProps[\"onFocus\"]>>[0]);\n };\n\n return (\n <View className={inputRootClassName}>\n <Pressable\n accessibilityLabel={resolvedLabel}\n accessibilityRole=\"button\"\n accessibilityState={{ disabled, expanded: open }}\n disabled={disabled}\n onBlur={handleBlur}\n onFocus={handleFocus}\n onPress={handleOpen}\n className={cn(\n inputFrameClassName,\n \"justify-center\",\n hasError\n ? inputFrameErrorClassName\n : focused || open\n ? inputFrameActiveClassName\n : inputFrameIdleClassName,\n inputShapes[resolvedShape],\n disabled && inputFrameDisabledClassName,\n className,\n styles,\n )}\n >\n <Text\n numberOfLines={1}\n className={cn(\n inputControlClassName,\n \"pt-5 pb-2\",\n !selectedLabel && \"text-gray-500 dark:text-gray-300\",\n inputClassName,\n )}\n style={{ includeFontPadding: false }}\n >\n {selectedLabel}\n </Text>\n </Pressable>\n\n <InputLabel\n disabled={disabled}\n errored={hasError}\n floating\n text={resolvedLabel}\n className={labelClassName}\n />\n\n <InputResponse\n message={errorText}\n name={field.name}\n visibility={Boolean(errorText)}\n variant=\"danger\"\n className={responseClassName}\n />\n\n <Modal\n animationType=\"fade\"\n onRequestClose={closeOptions}\n transparent\n visible={open}\n >\n <View className=\"flex-1 justify-end bg-black/40 px-4 py-6\">\n <Pressable\n accessibilityLabel=\"Close select options\"\n accessibilityRole=\"button\"\n className=\"absolute inset-0\"\n onPress={closeOptions}\n />\n\n <View className=\"max-h-[70%] overflow-hidden rounded-lg bg-white shadow-xl dark:bg-eui-dark-500\">\n <ScrollView>\n {options.map((option) => {\n const selected = option.value === field.value;\n\n return (\n <Pressable\n key={option.value}\n accessibilityRole=\"button\"\n accessibilityState={{\n disabled: option.disabled,\n selected,\n }}\n disabled={option.disabled}\n onPress={() => handleSelect(option)}\n className={cn(\n \"min-h-12 justify-center border-b border-gray-200 px-4 py-3 dark:border-eui-dark-300\",\n selected && \"bg-eui-secondary-500/10\",\n option.disabled && \"opacity-50\",\n )}\n >\n <Text className=\"text-base font-medium text-gray-950 dark:text-gray-50\">\n {String(option.label)}\n </Text>\n </Pressable>\n );\n })}\n </ScrollView>\n </View>\n </View>\n </Modal>\n </View>\n );\n}\n\nexport { Select };\nexport default Select;\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 { TagsProps } from \"./Tags.types\";\n\nexport interface ResolvedTagsConfig {\n label: string;\n limit: number;\n shape: Shape;\n}\n\nexport interface TagsFieldState {\n field: FieldInputProps<string[]>;\n helpers: FieldHelperProps<string[]>;\n meta: FieldMetaProps<string[]>;\n}\n\nexport function useResolvedTagsConfig({\n label,\n limit = 10,\n placeholder,\n shape,\n}: Pick<\n TagsProps,\n \"label\" | \"limit\" | \"placeholder\" | \"shape\"\n>): ResolvedTagsConfig {\n const eui = useEUIConfig();\n\n return {\n label: label ?? placeholder,\n limit,\n shape: shape ?? eui?.config?.global?.shape ?? \"square\",\n };\n}\n\nexport function useTagsFieldState(props: TagsProps): TagsFieldState {\n const [field, meta, helpers] = useField<string[]>(props);\n\n return {\n field,\n helpers,\n meta,\n };\n}\n\nexport function getTagsValue(value: unknown): string[] {\n if (!Array.isArray(value)) {\n return [];\n }\n\n return value.filter((tag): tag is string => typeof tag === \"string\");\n}\n\nexport function addTagToList(\n tags: string[],\n value: string,\n limit: number,\n): string[] {\n const trimmed = value.trim();\n\n if (!trimmed || tags.includes(trimmed) || tags.length >= limit) {\n return tags;\n }\n\n return [...tags, trimmed];\n}\n\nexport function removeTagFromList(tags: string[], index: number): string[] {\n return tags.filter((_, tagIndex) => tagIndex !== index);\n}\n","/** @jsxImportSource nativewind */\nimport { useState } from \"react\";\nimport { Pressable, Text, TextInput, View } from \"react-native\";\n\nimport { InputLabel } from \"../../input/input-label/index.native\";\nimport { InputResponse } from \"../../input/input-response/index.native\";\nimport {\n inputControlClassName,\n inputFrameActiveClassName,\n inputFrameClassName,\n inputFrameDisabledClassName,\n inputFrameErrorClassName,\n inputFrameIdleClassName,\n inputRootClassName,\n inputShapes,\n} from \"../../../../data/styles/shared.styles\";\nimport { nativeInputControlStyle } from \"../../input/input/native/Input.native.styles\";\nimport { cn } from \"../../../../utils\";\nimport {\n addTagToList,\n getTagsValue,\n removeTagFromList,\n useResolvedTagsConfig,\n useTagsFieldState,\n} from \"../base\";\n\nimport type { TagsProps } from \"../base\";\n\ntype NativeKeyPressEvent = {\n nativeEvent?: {\n key?: string;\n };\n};\n\nconst nativeTagsInputControlStyle = {\n ...nativeInputControlStyle,\n minHeight: 28,\n paddingBottom: 0,\n paddingTop: 0,\n} as const;\n\nfunction Tags(tagsProps: TagsProps) {\n const {\n disabled = false,\n inputClassName,\n label,\n labelClassName,\n limit,\n placeholder,\n responseClassName,\n shape,\n styles,\n tagClassName,\n removeButtonClassName,\n counterClassName,\n className,\n onBlur,\n onFocus,\n ..._props\n } = tagsProps;\n const { field, helpers, meta } = useTagsFieldState(tagsProps);\n const [input, setInput] = useState(\"\");\n const [focused, setFocused] = useState(false);\n const {\n label: resolvedLabel,\n limit: resolvedLimit,\n shape: resolvedShape,\n } = useResolvedTagsConfig({\n label,\n limit,\n placeholder,\n shape,\n });\n const tags = getTagsValue(field.value);\n const hasError = Boolean(meta.touched && meta.error);\n const errorText =\n hasError && typeof meta.error === \"string\" ? meta.error : null;\n const floating = focused || input.length > 0 || tags.length > 0;\n\n const handleAddTag = (value = input) => {\n if (disabled) {\n return;\n }\n\n const nextTags = addTagToList(tags, value, resolvedLimit);\n\n if (nextTags !== tags) {\n void helpers.setValue(nextTags);\n }\n\n if (value.trim()) {\n void helpers.setTouched(true);\n }\n\n setInput(\"\");\n };\n\n const handleChangeText = (value: string) => {\n if (value.endsWith(\",\")) {\n handleAddTag(value.slice(0, -1));\n return;\n }\n\n setInput(value);\n };\n\n const handleKeyPress = (event: NativeKeyPressEvent) => {\n if (event.nativeEvent?.key === \"Backspace\" && input === \"\" && tags.length) {\n void helpers.setValue(tags.slice(0, -1));\n void helpers.setTouched(true);\n }\n };\n\n const handleRemoveTag = (index: number) => {\n if (disabled) {\n return;\n }\n\n void helpers.setValue(removeTagFromList(tags, index));\n void helpers.setTouched(true);\n };\n\n const handleBlur = (event: unknown) => {\n setFocused(false);\n void helpers.setTouched(true);\n onBlur?.(event);\n };\n\n const handleFocus = (event: unknown) => {\n setFocused(true);\n onFocus?.(event);\n };\n\n return (\n <View className={inputRootClassName}>\n <View\n className={cn(\n inputFrameClassName,\n \"h-auto min-h-14 flex-row flex-wrap items-center gap-2 overflow-visible px-3 pt-6 pb-7\",\n hasError\n ? inputFrameErrorClassName\n : focused\n ? inputFrameActiveClassName\n : inputFrameIdleClassName,\n inputShapes[resolvedShape],\n disabled && inputFrameDisabledClassName,\n className,\n styles,\n )}\n >\n {tags.map((tag, index) => (\n <View\n key={`${tag}-${index}`}\n className={cn(\n \"max-w-full flex-row items-center gap-1 rounded bg-eui-light-300 px-2 py-1 dark:bg-eui-dark-400\",\n tagClassName,\n )}\n >\n <Text\n className=\"shrink text-sm font-medium text-eui-dark-700 dark:text-eui-light-300\"\n numberOfLines={1}\n style={{ includeFontPadding: false }}\n >\n {tag}\n </Text>\n <Pressable\n accessibilityLabel={`Remove ${tag}`}\n accessibilityRole=\"button\"\n className={cn(\n \"h-5 w-5 items-center justify-center\",\n disabled && \"opacity-50\",\n removeButtonClassName,\n )}\n disabled={disabled}\n onPress={() => handleRemoveTag(index)}\n >\n <Text\n className=\"text-xs font-bold text-eui-danger-500\"\n style={{ includeFontPadding: false }}\n >\n x\n </Text>\n </Pressable>\n </View>\n ))}\n\n {tags.length < resolvedLimit ? (\n <TextInput\n accessibilityLabel={resolvedLabel}\n className={cn(\n inputControlClassName,\n \"h-7 w-auto min-w-[120px] flex-1 p-0\",\n inputClassName,\n )}\n editable={!disabled}\n onBlur={handleBlur}\n onChangeText={handleChangeText}\n onFocus={handleFocus}\n onKeyPress={handleKeyPress}\n onSubmitEditing={() => handleAddTag()}\n placeholder=\"\"\n returnKeyType=\"done\"\n style={nativeTagsInputControlStyle}\n underlineColorAndroid=\"transparent\"\n value={input}\n />\n ) : null}\n\n <Text\n className={cn(\n \"absolute bottom-3 right-3 text-xs font-semibold text-eui-dark-50\",\n counterClassName,\n )}\n style={{ includeFontPadding: false }}\n >\n {tags.length}/{resolvedLimit}\n </Text>\n </View>\n\n <InputLabel\n disabled={disabled}\n errored={hasError}\n floating={floating}\n text={resolvedLabel}\n className={labelClassName}\n />\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 { Tags };\nexport default Tags;\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 { TextAreaProps } from \"./TextArea.types\";\n\nexport interface ResolvedTextAreaConfig {\n label: string;\n limit: number;\n shape: Shape;\n}\n\nexport interface TextAreaFieldState {\n field: FieldInputProps<string>;\n helpers: FieldHelperProps<string>;\n meta: FieldMetaProps<string>;\n}\n\nexport function useResolvedTextAreaConfig({\n label,\n limit = 1000,\n placeholder,\n shape,\n}: Pick<\n TextAreaProps,\n \"label\" | \"limit\" | \"placeholder\" | \"shape\"\n>): ResolvedTextAreaConfig {\n const eui = useEUIConfig();\n\n return {\n label: label ?? placeholder,\n limit,\n shape: shape ?? eui?.config?.global?.shape ?? \"square\",\n };\n}\n\nexport function useTextAreaFieldState(\n props: TextAreaProps,\n): TextAreaFieldState {\n const [field, meta, helpers] = useField<string>(props);\n\n return {\n field,\n helpers,\n meta,\n };\n}\n\nexport function getTextAreaCharacterCount(value: unknown): number {\n return String(value ?? \"\").length;\n}\n","/** @jsxImportSource nativewind */\nimport { useState } from \"react\";\nimport { Text, TextInput, View } from \"react-native\";\n\nimport { InputLabel } from \"../../input/input-label/index.native\";\nimport { InputResponse } from \"../../input/input-response/index.native\";\nimport {\n inputControlClassName,\n inputFrameActiveClassName,\n inputFrameClassName,\n inputFrameDisabledClassName,\n inputFrameErrorClassName,\n inputFrameIdleClassName,\n inputRootClassName,\n inputShapes,\n} from \"../../../../data/styles/shared.styles\";\nimport { nativeInputControlStyle } from \"../../input/input/native/Input.native.styles\";\nimport { cn } from \"../../../../utils\";\nimport {\n getTextAreaCharacterCount,\n useResolvedTextAreaConfig,\n useTextAreaFieldState,\n} from \"../base\";\n\nimport type { TextAreaProps } from \"../base\";\n\nconst nativeTextAreaControlStyle = {\n ...nativeInputControlStyle,\n minHeight: 128,\n textAlignVertical: \"top\",\n} as const;\n\nfunction TextArea(textAreaProps: TextAreaProps) {\n const {\n disabled = false,\n inputClassName,\n label,\n labelClassName,\n limit,\n placeholder,\n responseClassName,\n shape,\n styles,\n className,\n onBlur,\n onFocus,\n ..._props\n } = textAreaProps;\n const { field, helpers, meta } = useTextAreaFieldState(textAreaProps);\n const [focused, setFocused] = useState(false);\n const {\n label: resolvedLabel,\n limit: resolvedLimit,\n shape: resolvedShape,\n } = useResolvedTextAreaConfig({\n label,\n limit,\n placeholder,\n shape,\n });\n const hasError = Boolean(meta.touched && meta.error);\n const errorText =\n hasError && typeof meta.error === \"string\" ? meta.error : null;\n const characterCount = getTextAreaCharacterCount(field.value);\n const floating = focused || characterCount > 0;\n\n const handleBlur = (event: unknown) => {\n setFocused(false);\n void helpers.setTouched(true);\n onBlur?.(event as Parameters<NonNullable<TextAreaProps[\"onBlur\"]>>[0]);\n };\n\n const handleFocus = (event: unknown) => {\n setFocused(true);\n onFocus?.(event as Parameters<NonNullable<TextAreaProps[\"onFocus\"]>>[0]);\n };\n\n return (\n <View className={inputRootClassName}>\n <View\n className={cn(\n inputFrameClassName,\n \"h-auto min-h-32 px-3\",\n hasError\n ? inputFrameErrorClassName\n : focused\n ? inputFrameActiveClassName\n : inputFrameIdleClassName,\n inputShapes[resolvedShape],\n disabled && inputFrameDisabledClassName,\n className,\n styles,\n )}\n >\n <TextInput\n accessibilityLabel={resolvedLabel}\n className={cn(inputControlClassName, \"min-h-32 pb-8\", inputClassName)}\n editable={!disabled}\n maxLength={resolvedLimit}\n multiline\n onBlur={handleBlur}\n onChangeText={(value: string) => helpers.setValue(value)}\n onFocus={handleFocus}\n placeholder=\"\"\n style={nativeTextAreaControlStyle}\n underlineColorAndroid=\"transparent\"\n value={field.value ?? \"\"}\n />\n\n <Text className=\"absolute bottom-3 right-3 text-xs font-semibold text-eui-dark-50\">\n {characterCount}/{resolvedLimit}\n </Text>\n </View>\n\n <InputLabel\n disabled={disabled}\n errored={hasError}\n floating={floating}\n text={resolvedLabel}\n className={labelClassName}\n />\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 { TextArea };\nexport default TextArea;\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/base/Button.tokens.ts","../src/components/data-entry/button/base/useButton.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/data/styles/shared.styles.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/native/Input.native.styles.ts","../src/components/data-entry/date-selector/base/DateSelector.config.ts","../src/components/data-entry/date-selector/native/DateSelector.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/base/Input.config.ts","../src/components/data-entry/input/input/native/Input.native.tsx","../src/components/data-entry/input/input-file/base/InputFile.config.ts","../src/components/data-entry/input/input-file/native/InputFile.native.tsx","../src/components/data-entry/select/base/Select.config.ts","../src/components/data-entry/select/native/Select.native.tsx","../src/components/data-entry/tags/base/Tags.config.ts","../src/components/data-entry/tags/native/Tags.native.tsx","../src/components/data-entry/text-area/base/TextArea.config.ts","../src/components/data-entry/text-area/native/TextArea.native.tsx"],"names":["jsx","Button","Text","jsxs","View","Pressable","useState","Animated","useField","useRef","useEffect","Easing","TextInput"],"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\n/**\n * Pull the text-color utilities out of a Tailwind class string.\n *\n * On the web, a root element's text color cascades to its children, so a\n * button's variant classes color the label automatically. React Native's\n * `<Text>` does not inherit color from a parent `View`, so cross-platform\n * components must re-apply the foreground color directly on the text node.\n * Keep this shared so every RN-capable component (Button, Badge, Chip, Input …)\n * resolves label color the same way.\n */\nexport function extractTextColorClasses(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\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 variantsGhost,\n variantsLite,\n variantsSolid,\n} from \"../../../../data/styles\";\nimport { resolveAppearanceStyles } from \"../../../../utils\";\nimport type { ResolvedButtonConfig } from \"./Button.config\";\n\n/** Map the resolved appearance + variant to the shared design-token classes. */\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","import { shapes } from \"../../../../data/styles\";\nimport type { Shape, Size } from \"../../../../types\";\n\n/**\n * One size scale, annotated per platform, so web and native stay visually\n * identical from a single source. Shared fields (`padding`, `text`, `icon`)\n * describe the design; native-only fields cover concerns the web gets for free\n * (tap-target height, explicit text leading, fixed icon/spinner boxes).\n */\nexport interface ButtonSizeTokens {\n /** Shared horizontal/vertical padding. */\n padding: string;\n /** Shared font size (web root, native `<Text>`). */\n text: string;\n /** Shared numeric icon/spinner size in px. */\n icon: number;\n /** Native minimum tap-target height. */\n minHeight: string;\n /** Native `<Text>` line height (RN needs it explicit to center vertically). */\n leading: string;\n /** Native fixed icon/spinner slot box. */\n slot: string;\n}\n\nexport const buttonSizeTokens: Record<Size, ButtonSizeTokens> = {\n xs: {\n padding: \"px-2 py-1\",\n text: \"text-xs\",\n icon: 14,\n minHeight: \"min-h-[30px]\",\n leading: \"leading-[14px]\",\n slot: \"h-[14px] w-[14px]\",\n },\n sm: {\n padding: \"px-3 py-1.5\",\n text: \"text-sm\",\n icon: 16,\n minHeight: \"min-h-9\",\n leading: \"leading-4\",\n slot: \"h-4 w-4\",\n },\n md: {\n padding: \"px-4 py-2\",\n text: \"text-base\",\n icon: 18,\n minHeight: \"min-h-11\",\n leading: \"leading-[18px]\",\n slot: \"h-[18px] w-[18px]\",\n },\n lg: {\n padding: \"px-5 py-3\",\n text: \"text-lg\",\n icon: 20,\n minHeight: \"min-h-[50px]\",\n leading: \"leading-5\",\n slot: \"h-5 w-5\",\n },\n xl: {\n padding: \"px-6 py-4\",\n text: \"text-xl\",\n icon: 22,\n minHeight: \"min-h-14\",\n leading: \"leading-[22px]\",\n slot: \"h-[22px] w-[22px]\",\n },\n};\n\n/** Shape → radius classes (reuses the library-wide shape tokens). */\nexport const buttonShapes: Record<Shape, string> = shapes;\n\n/** Shared class applied when `mode === \"text\"`. */\nexport const buttonTextModeClassName = \"border-transparent bg-transparent\";\n","import type { ReactNode } from \"react\";\n\nimport { extractTextColorClasses } from \"../../../../utils\";\nimport type { Shape, Size } from \"../../../../types\";\n\nimport { useResolvedButtonConfig } from \"./Button.config\";\nimport { resolveButtonVariantStyles } from \"./Button.styles\";\nimport { buttonShapes, buttonSizeTokens } from \"./Button.tokens\";\nimport type { ButtonSizeTokens } from \"./Button.tokens\";\nimport type { ButtonProps } from \"./Button.types\";\n\n/**\n * The platform-agnostic view model for a Button. `useButton` does every design\n * and behavior decision once; the web and native views only map this model onto\n * their primitives. Anything genuinely platform-specific (which element, the web\n * glow, interaction classes) stays in the views.\n */\nexport interface ButtonModel {\n size: Size;\n shape: Shape;\n tokens: ButtonSizeTokens;\n\n /** disabled || loading */\n isBusy: boolean;\n /** !disabled && !loading */\n isInteractive: boolean;\n isTextMode: boolean;\n block: boolean;\n loading: boolean;\n\n iconSize: number;\n /** Icon resolved to an element (render-fn icons are already invoked). */\n icon: ReactNode;\n /** Which side of the label the icon/spinner render on. */\n iconPosition: \"leading\" | \"trailing\";\n /** text ?? children */\n label: ReactNode;\n /** True when the label is plain text/number (native wraps it in `<Text>`). */\n hasTextLabel: boolean;\n\n /** Shared variant classes (background / border / text color). */\n variantClassName: string;\n shapeClassName: string;\n /** Foreground color classes, re-applied on the native label + spinner. */\n labelColorClassName: string;\n\n selected?: boolean;\n onPress?: () => void;\n\n /** Unknown pass-through props, safe to spread on the platform root. */\n rootRest: Record<string, unknown>;\n}\n\nexport function useButton(props: ButtonProps): ButtonModel {\n const {\n // Consumed by the shared model\n icon,\n iconPosition = \"leading\",\n text,\n children,\n loading = false,\n disabled = false,\n block = false,\n compact = false,\n mode,\n variant,\n appearance,\n shape,\n size,\n accessibilityState,\n onPress,\n // Owned by the platform views — pulled out here only so `rootRest` is a\n // clean pass-through (no library props leak onto the DOM / native root).\n type: _type,\n glow: _glow,\n className: _className,\n contentClassName: _contentClassName,\n labelClassName: _labelClassName,\n accessibilityLabel: _accessibilityLabel,\n accessibilityRole: _accessibilityRole,\n testID: _testID,\n onClick: _onClick,\n onMouseMove: _onMouseMove,\n ...rootRest\n } = props;\n\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 tokens = buttonSizeTokens[resolvedSize];\n const variantClassName = resolveButtonVariantStyles({\n appearance: resolvedAppearance,\n variant: resolvedVariant,\n });\n\n const label = text ?? children;\n const resolvedIcon =\n typeof icon === \"function\"\n ? icon({ color: \"currentColor\", size: tokens.icon })\n : icon;\n\n const isBusy = disabled || loading;\n\n return {\n size: resolvedSize,\n shape: resolvedShape,\n tokens,\n\n isBusy,\n isInteractive: !isBusy,\n isTextMode: mode === \"text\",\n block,\n loading,\n\n iconSize: tokens.icon,\n icon: resolvedIcon,\n iconPosition,\n label,\n hasTextLabel: typeof label === \"string\" || typeof label === \"number\",\n\n variantClassName,\n shapeClassName: buttonShapes[resolvedShape],\n labelColorClassName: extractTextColorClasses(variantClassName),\n\n selected: accessibilityState?.selected,\n onPress,\n\n rootRest,\n };\n}\n","/** @jsxImportSource nativewind */\n// External\nimport { forwardRef } from \"react\";\nimport type { ElementRef } from \"react\";\nimport { ActivityIndicator, Pressable, Text, View } from \"react-native\";\n\n// Internal\nimport { cn } from \"../../../../utils\";\nimport { buttonTextModeClassName, useButton } from \"../base\";\n\n// Types\nimport type { ButtonProps } from \"../base\";\n\nconst NATIVE_ROOT = \"relative items-center justify-center overflow-hidden\";\n\nconst nativeLabelBaseStyle = {\n includeFontPadding: false,\n textAlignVertical: \"center\",\n} as const;\n\nconst Button = forwardRef<ElementRef<typeof Pressable>, ButtonProps>(\n function Button(props, ref) {\n const {\n className,\n contentClassName,\n labelClassName,\n accessibilityLabel,\n accessibilityRole = \"button\",\n testID,\n } = props;\n\n const model = useButton(props);\n const trailing = model.iconPosition === \"trailing\";\n\n const iconSlot =\n model.loading || model.icon ? (\n <View\n className={cn(\n \"shrink-0 items-center justify-center\",\n model.tokens.slot,\n )}\n >\n {model.loading ? (\n <ActivityIndicator\n className={model.labelColorClassName}\n size=\"small\"\n />\n ) : (\n model.icon\n )}\n </View>\n ) : null;\n\n const labelNode = model.hasTextLabel ? (\n <Text\n className={cn(\n \"font-bold\",\n model.tokens.text,\n model.tokens.leading,\n model.labelColorClassName,\n labelClassName,\n )}\n numberOfLines={1}\n style={nativeLabelBaseStyle}\n >\n {model.label}\n </Text>\n ) : (\n model.label\n );\n\n return (\n <Pressable\n {...model.rootRest}\n ref={ref}\n accessibilityLabel={accessibilityLabel}\n accessibilityRole={accessibilityRole}\n accessibilityState={{\n disabled: model.isBusy,\n selected: model.selected,\n }}\n testID={testID}\n disabled={model.isBusy}\n onPress={model.onPress}\n className={cn(\n NATIVE_ROOT,\n model.variantClassName,\n model.shapeClassName,\n model.tokens.padding,\n model.tokens.minHeight,\n model.block && \"w-full\",\n model.isTextMode && buttonTextModeClassName,\n model.isBusy ? \"opacity-55\" : \"active:opacity-80\",\n className,\n )}\n style={({ pressed }: { pressed: boolean }) =>\n pressed && model.isInteractive ? { opacity: 0.82 } : null\n }\n >\n <View\n className={cn(\n \"z-10 flex-row items-center justify-center gap-2\",\n contentClassName,\n )}\n >\n {trailing ? labelNode : iconSlot}\n {trailing ? iconSlot : labelNode}\n </View>\n </Pressable>\n );\n },\n);\n\nexport default Button;\n","import {\n useField,\n type FieldHelperProps,\n type FieldHookConfig,\n type FieldInputProps,\n type FieldMetaProps,\n} from \"formik\";\n\nimport { useEUIConfig } from \"../../../eui\";\n\nimport type { Shape, Variant } from \"../../../../types\";\nimport type {\n CheckboxColumns,\n CheckboxOption,\n CheckboxProps,\n FormikCheckboxProps,\n} from \"./Checkbox.types\";\n\nexport interface ResolvedCheckboxConfig {\n shape: Shape;\n variant: Variant;\n label?: string;\n}\n\nexport interface CheckboxFieldState {\n isMulti: boolean;\n multiField: FieldInputProps<string[]>;\n multiMeta: FieldMetaProps<string[]>;\n multiHelpers: FieldHelperProps<string[]>;\n singleField: FieldInputProps<boolean>;\n singleMeta: FieldMetaProps<boolean>;\n singleHelpers: FieldHelperProps<boolean>;\n}\n\nexport function isMultiCheckbox(\n props: CheckboxProps,\n): props is Extract<CheckboxProps, { options: CheckboxOption[] }> {\n return Array.isArray(props.options);\n}\n\nexport function resolveCheckboxColumns(columns?: CheckboxColumns) {\n return columns ?? 1;\n}\n\nexport function chunkCheckboxOptions(\n options: CheckboxOption[],\n columns?: CheckboxColumns,\n) {\n const resolvedColumns = resolveCheckboxColumns(columns);\n const chunkSize = Math.ceil(options.length / resolvedColumns);\n\n return Array.from({ length: resolvedColumns }, (_, columnIndex) =>\n options.slice(columnIndex * chunkSize, (columnIndex + 1) * chunkSize),\n ).filter((columnOptions) => columnOptions.length > 0);\n}\n\nexport function useResolvedCheckboxConfig({\n label,\n placeholder,\n variant,\n shape,\n}: Pick<\n CheckboxProps,\n \"label\" | \"placeholder\" | \"variant\" | \"shape\"\n>): ResolvedCheckboxConfig {\n const eui = useEUIConfig();\n\n return {\n shape: shape ?? eui?.config?.global?.shape ?? \"roundedSquare\",\n variant: variant ?? \"success\",\n label: label ?? placeholder,\n };\n}\n\nexport function useCheckboxFieldState(\n props: FormikCheckboxProps,\n): CheckboxFieldState {\n const isMulti = isMultiCheckbox(props);\n const [multiField, multiMeta, multiHelpers] = useField<string[]>(\n props as FieldHookConfig<string[]>,\n );\n const [singleField, singleMeta, singleHelpers] = useField<boolean>(\n props as FieldHookConfig<boolean>,\n );\n\n return {\n isMulti,\n multiField,\n multiMeta,\n multiHelpers,\n singleField,\n singleMeta,\n singleHelpers,\n };\n}\n","import { shapes } from \"../../../../data/styles\";\n\nexport const checkboxShapes = shapes;\n\nexport const checkboxGroupClassName = \"flex flex-col gap-2\";\nexport const checkboxOptionRowClassName = \"flex flex-row items-start gap-3\";\nexport const checkboxLabelClassName =\n \"cursor-pointer select-none text-sm leading-relaxed text-gray-800 dark:text-gray-200\";\nexport const checkboxIndicatorBaseClassName =\n \"relative h-5 w-5 min-h-[1.25rem] min-w-[1.25rem] shrink-0 appearance-none border-2 border-gray-300 bg-white transition-all duration-300 hover:border-gray-400 focus:outline-none focus:ring-2 focus:ring-eui-primary-500/30 dark:border-neutral-600 dark:bg-neutral-900 dark:hover:border-neutral-500\";\nexport const checkboxIndicatorDisabledClassName =\n \"cursor-not-allowed opacity-50\";\n","import type { Variant } from \"../../../../types\";\n\nexport interface NativeCheckboxVariantStyles {\n checkedClassName: string;\n iconClassName: string;\n}\n\nexport const nativeCheckboxVariants: Record<\n Variant,\n NativeCheckboxVariantStyles\n> = {\n default: {\n checkedClassName:\n \"border-eui-secondary-600 bg-eui-secondary-600 dark:border-eui-secondary-500 dark:bg-eui-secondary-500\",\n iconClassName: \"text-white\",\n },\n primary: {\n checkedClassName:\n \"border-eui-primary-600 bg-eui-primary-600 dark:border-eui-primary-500 dark:bg-eui-primary-500\",\n iconClassName: \"text-white\",\n },\n secondary: {\n checkedClassName:\n \"border-eui-secondary-600 bg-eui-secondary-600 dark:border-eui-secondary-500 dark:bg-eui-secondary-500\",\n iconClassName: \"text-white\",\n },\n success: {\n checkedClassName:\n \"border-eui-success-600 bg-eui-success-600 dark:border-eui-success-500 dark:bg-eui-success-500\",\n iconClassName: \"text-white\",\n },\n danger: {\n checkedClassName:\n \"border-eui-danger-600 bg-eui-danger-600 dark:border-eui-danger-500 dark:bg-eui-danger-500\",\n iconClassName: \"text-white\",\n },\n warning: {\n checkedClassName:\n \"border-eui-warning-500 bg-eui-warning-500 dark:border-eui-warning-400 dark:bg-eui-warning-400\",\n iconClassName: \"text-black\",\n },\n info: {\n checkedClassName:\n \"border-eui-info-600 bg-eui-info-600 dark:border-eui-info-500 dark:bg-eui-info-500\",\n iconClassName: \"text-white\",\n },\n light: {\n checkedClassName:\n \"border-eui-light-400 bg-eui-light-400 dark:border-gray-200 dark:bg-gray-200\",\n iconClassName: \"text-gray-900\",\n },\n dark: {\n checkedClassName:\n \"border-eui-dark-500 bg-eui-dark-500 dark:border-eui-dark-300 dark:bg-eui-dark-300\",\n iconClassName: \"text-white\",\n },\n};\n\nexport function resolveNativeCheckboxVariantStyles(variant: Variant) {\n return nativeCheckboxVariants[variant];\n}\n","/** @jsxImportSource nativewind */\n// External\nimport { Pressable, Text, View } from \"react-native\";\n\n// Internal\nimport { cn } from \"../../../../utils\";\nimport {\n checkboxGroupClassName,\n checkboxIndicatorDisabledClassName,\n checkboxLabelClassName,\n checkboxOptionRowClassName,\n checkboxShapes,\n chunkCheckboxOptions,\n isMultiCheckbox,\n useCheckboxFieldState,\n useResolvedCheckboxConfig,\n} from \"../base\";\nimport { resolveNativeCheckboxVariantStyles } from \"./Checkbox.native.styles\";\n\n// Types\nimport type { CheckboxProps } from \"../base\";\nimport type { Shape } from \"../../../../types\";\n\nfunction getIndicatorClassName({\n checked,\n className,\n disabled,\n indicatorClassName,\n checkedIndicatorClassName,\n resolvedShape,\n variantCheckedClassName,\n}: {\n checked: boolean;\n className?: string;\n disabled?: boolean;\n indicatorClassName?: string;\n checkedIndicatorClassName?: string;\n resolvedShape: Shape;\n variantCheckedClassName: string;\n}) {\n return cn(\n \"h-5 w-5 shrink-0 items-center justify-center border-2 border-gray-300 bg-white dark:border-neutral-600 dark:bg-neutral-900\",\n checkboxShapes[resolvedShape],\n indicatorClassName,\n className,\n checked && variantCheckedClassName,\n checked && checkedIndicatorClassName,\n disabled && checkboxIndicatorDisabledClassName,\n );\n}\n\nfunction Tick({\n checkedIconClassName,\n iconClassName,\n}: {\n checkedIconClassName?: string;\n iconClassName: string;\n}) {\n return (\n <Text\n className={cn(\n \"text-sm font-bold leading-none\",\n iconClassName,\n checkedIconClassName,\n )}\n >\n ✓\n </Text>\n );\n}\n\nfunction Checkbox(checkboxProps: CheckboxProps) {\n const {\n label,\n placeholder,\n variant,\n shape,\n disabled = false,\n className,\n groupClassName,\n optionClassName,\n indicatorClassName,\n checkedIndicatorClassName,\n checkedIconClassName,\n labelClassName,\n } = checkboxProps;\n const {\n shape: resolvedShape,\n variant: resolvedVariant,\n label: resolvedLabel,\n } = useResolvedCheckboxConfig({\n label,\n placeholder,\n variant,\n shape,\n });\n const {\n isMulti,\n multiField,\n multiMeta,\n multiHelpers,\n singleField,\n singleMeta,\n singleHelpers,\n } = useCheckboxFieldState(checkboxProps);\n const variantStyles = resolveNativeCheckboxVariantStyles(resolvedVariant);\n const activeMeta = isMulti ? multiMeta : singleMeta;\n const multiProps = isMultiCheckbox(checkboxProps) ? checkboxProps : null;\n const optionColumns = multiProps\n ? chunkCheckboxOptions(multiProps.options, multiProps.columns)\n : [];\n const singleChecked = singleField.value;\n const errorText =\n activeMeta.touched && typeof activeMeta.error === \"string\"\n ? activeMeta.error\n : null;\n\n return (\n <View className={cn(checkboxGroupClassName, groupClassName)}>\n {!isMulti && (\n <Pressable\n accessibilityRole=\"checkbox\"\n accessibilityState={{\n checked: singleChecked,\n disabled,\n }}\n className={cn(checkboxOptionRowClassName, optionClassName)}\n disabled={disabled}\n onPress={() => singleHelpers.setValue(!singleChecked)}\n >\n <View\n className={getIndicatorClassName({\n checked: singleChecked,\n className,\n disabled,\n indicatorClassName,\n checkedIndicatorClassName,\n resolvedShape,\n variantCheckedClassName: variantStyles.checkedClassName,\n })}\n >\n {singleChecked ? (\n <Tick\n checkedIconClassName={checkedIconClassName}\n iconClassName={variantStyles.iconClassName}\n />\n ) : null}\n </View>\n\n {resolvedLabel ? (\n <Text className={cn(checkboxLabelClassName, labelClassName)}>\n {resolvedLabel}\n </Text>\n ) : null}\n </Pressable>\n )}\n\n {isMulti && multiProps ? (\n <View className=\"w-full flex-row gap-6\">\n {optionColumns.map((columnOptions, columnIndex) => (\n <View\n key={`${multiField.name}-column-${columnIndex}`}\n className=\"min-w-0 flex-1 flex-col gap-2\"\n >\n {columnOptions.map((option) => {\n const values = multiField.value ?? [];\n const checked = values.includes(option.value);\n const optionDisabled = disabled || option.disabled === true;\n\n return (\n <Pressable\n key={option.value}\n accessibilityRole=\"checkbox\"\n accessibilityState={{\n checked,\n disabled: optionDisabled,\n }}\n className={cn(checkboxOptionRowClassName, optionClassName)}\n disabled={optionDisabled}\n onPress={() =>\n multiHelpers.setValue(\n checked\n ? values.filter((value) => value !== option.value)\n : [...values, option.value],\n )\n }\n >\n <View\n className={getIndicatorClassName({\n checked,\n className,\n disabled: optionDisabled,\n indicatorClassName,\n checkedIndicatorClassName,\n resolvedShape,\n variantCheckedClassName: variantStyles.checkedClassName,\n })}\n >\n {checked ? (\n <Tick\n checkedIconClassName={checkedIconClassName}\n iconClassName={variantStyles.iconClassName}\n />\n ) : null}\n </View>\n\n <Text\n className={cn(\n checkboxLabelClassName,\n optionDisabled && \"opacity-60\",\n labelClassName,\n )}\n >\n {option.label}\n </Text>\n </Pressable>\n );\n })}\n </View>\n ))}\n </View>\n ) : null}\n\n {errorText ? (\n <Text className=\"px-2 py-1 text-sm font-medium text-eui-danger-500\">\n {errorText}\n </Text>\n ) : null}\n </View>\n );\n}\n\nexport { Checkbox };\nexport default Checkbox;\n","import { shapes } from \"../styles\";\n\nimport type { Shape } from \"../../types\";\n\nexport const inputShapes: Record<Shape, string> = shapes;\n\nexport const inputInlineInsetPx = 12;\nexport const inputInlineInsetClassName = \"left-3\";\nexport const inputInlinePaddingXClassName = \"px-3\";\nexport const inputRootClassName = \"relative w-full\";\nexport const inputFrameClassName = `relative h-14 w-full overflow-hidden border bg-white/95 ${inputInlinePaddingXClassName} dark:bg-eui-primary-300/10`;\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-normal text-gray-950 dark:text-gray-300\";\nexport const inputErrorTextClassName = `${inputInlinePaddingXClassName} py-1 text-sm font-medium text-eui-danger-500`;\n","import {\n inputInlineInsetClassName,\n inputInlineInsetPx,\n} from \"../../../../../data/styles/shared.styles\";\n\nexport const inputLabelStaticClassName =\n \"pointer-events-none select-none px-0 text-[13.5px] leading-none text-[#6B7280]\";\nexport const inputLabelBaseClassName = `pointer-events-none absolute ${inputInlineInsetClassName} z-10 select-none bg-transparent px-0 font-medium leading-none`;\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: inputInlineInsetPx,\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\";\nimport { inputInlinePaddingXClassName } from \"../../../../../data/styles/shared.styles\";\n\nimport type { TextVariant } from \"../../../../../data/enums\";\n\nexport const inputResponseBaseClassName = `${inputInlinePaddingXClassName} 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","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","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 { DateSelectorProps } from \"./DateSelector.types\";\n\nexport interface ResolvedDateSelectorConfig {\n label: string;\n shape: Shape;\n}\n\nexport interface DateSelectorFieldState {\n field: FieldInputProps<string>;\n helpers: FieldHelperProps<string>;\n meta: FieldMetaProps<string>;\n}\n\nexport function useResolvedDateSelectorConfig({\n label,\n placeholder,\n shape,\n}: Pick<\n DateSelectorProps,\n \"label\" | \"placeholder\" | \"shape\"\n>): ResolvedDateSelectorConfig {\n const eui = useEUIConfig();\n\n return {\n label: label ?? placeholder,\n shape: shape ?? eui?.config?.global?.shape ?? \"square\",\n };\n}\n\nexport function useDateSelectorFieldState(\n props: DateSelectorProps,\n): DateSelectorFieldState {\n const [field, meta, helpers] = useField<string>(props);\n\n return {\n field,\n helpers,\n meta,\n };\n}\n","/** @jsxImportSource nativewind */\nimport { useRef, useState } from \"react\";\nimport { Animated, TextInput, View } from \"react-native\";\n\nimport { InputLabel } from \"../../input/input-label/index.native\";\nimport { InputResponse } from \"../../input/input-response/index.native\";\n\nimport { cn } from \"../../../../utils\";\nimport {\n inputControlClassName,\n inputFrameActiveClassName,\n inputFrameClassName,\n inputFrameDisabledClassName,\n inputFrameErrorClassName,\n inputFrameIdleClassName,\n inputRootClassName,\n inputShapes,\n} from \"../../../../data/styles/shared.styles\";\nimport {\n nativeInputControlClassName,\n nativeInputControlStyle,\n} from \"../../input/input/native/Input.native.styles\";\nimport {\n useDateSelectorFieldState,\n useResolvedDateSelectorConfig,\n} from \"../base\";\n\nimport type { DateSelectorProps } from \"../base\";\n\nfunction DateSelector(dateSelectorProps: DateSelectorProps) {\n const {\n disabled = false,\n inputClassName,\n label,\n labelClassName,\n placeholder,\n responseClassName,\n shape,\n styles,\n className,\n onBlur,\n onFocus,\n } = dateSelectorProps;\n const { field, helpers, meta } = useDateSelectorFieldState(dateSelectorProps);\n const [focused, setFocused] = useState(false);\n const labelProgress = useRef(new Animated.Value(1)).current;\n const { label: resolvedLabel, shape: resolvedShape } =\n useResolvedDateSelectorConfig({\n label,\n placeholder,\n shape,\n });\n const hasError = Boolean(meta.touched && meta.error);\n const errorText =\n hasError && typeof meta.error === \"string\" ? meta.error : null;\n\n const handleBlur = (event: unknown) => {\n setFocused(false);\n helpers.setTouched(true);\n onBlur?.(event as Parameters<NonNullable<DateSelectorProps[\"onBlur\"]>>[0]);\n };\n\n const handleFocus = (event: unknown) => {\n setFocused(true);\n onFocus?.(\n event as Parameters<NonNullable<DateSelectorProps[\"onFocus\"]>>[0],\n );\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 styles,\n )}\n >\n <TextInput\n accessibilityLabel={resolvedLabel}\n className={cn(\n inputControlClassName,\n nativeInputControlClassName,\n inputClassName,\n )}\n editable={!disabled}\n keyboardType=\"numbers-and-punctuation\"\n onBlur={handleBlur}\n onChangeText={(value: string) => helpers.setValue(value)}\n onFocus={handleFocus}\n placeholder=\"\"\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\n text={resolvedLabel}\n className={labelClassName}\n />\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 { DateSelector };\nexport default DateSelector;\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","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","/** @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 resolveInputType,\n useInputFieldState,\n useResolvedInputConfig,\n} from \"../base\";\n\nimport {\n inputControlClassName,\n inputFrameActiveClassName,\n inputFrameClassName,\n inputFrameDisabledClassName,\n inputFrameErrorClassName,\n inputFrameIdleClassName,\n inputRootClassName,\n inputShapes,\n} from \"../../../../../data/styles/shared.styles\";\n\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","import { useField } from \"formik\";\n\nimport { useEUIConfig } from \"../../../../eui\";\n\nimport type { FieldHelperProps, FieldInputProps, FieldMetaProps } from \"formik\";\nimport type {\n InputFileProps,\n InputFileValue,\n NativeInputFileValue,\n} from \"./InputFile.types\";\nimport type { Shape } from \"../../../../../types\";\n\nexport interface ResolvedInputFileConfig {\n label: string;\n shape: Shape;\n}\n\nexport interface InputFileFieldState {\n field: FieldInputProps<InputFileValue>;\n helpers: FieldHelperProps<InputFileValue>;\n meta: FieldMetaProps<InputFileValue>;\n}\n\nexport function useResolvedInputFileConfig({\n label,\n placeholder,\n shape,\n}: Pick<InputFileProps, \"label\" | \"placeholder\" | \"shape\">) {\n const eui = useEUIConfig();\n\n return {\n label: label ?? placeholder,\n shape: shape ?? eui?.config?.global?.shape ?? \"square\",\n };\n}\n\nexport function useInputFileFieldState(\n props: InputFileProps,\n): InputFileFieldState {\n const [field, meta, helpers] = useField<InputFileValue>(props);\n\n return {\n field,\n helpers,\n meta,\n };\n}\n\nfunction isNativeInputFileValue(\n file: InputFileValue,\n): file is NativeInputFileValue {\n return Boolean(file && typeof file === \"object\");\n}\n\nexport function getInputFileName(file: InputFileValue) {\n if (!isNativeInputFileValue(file)) {\n return \"\";\n }\n\n if (\"name\" in file && file.name) {\n return file.name;\n }\n\n if (\"fileName\" in file && file.fileName) {\n return file.fileName;\n }\n\n if (\"uri\" in file && file.uri) {\n return file.uri.split(\"/\").filter(Boolean).pop() ?? \"\";\n }\n\n return \"\";\n}\n\nexport function isAcceptedInputFile(\n file: Pick<File, \"name\" | \"type\">,\n accept?: string,\n) {\n if (!accept) {\n return true;\n }\n\n const acceptedTypes = accept\n .split(\",\")\n .map((acceptedType) => acceptedType.trim().toLowerCase())\n .filter(Boolean);\n const fileName = file.name.toLowerCase();\n const fileType = file.type.toLowerCase();\n\n return acceptedTypes.some((acceptedType) => {\n if (acceptedType.startsWith(\".\")) {\n return fileName.endsWith(acceptedType);\n }\n\n if (acceptedType.endsWith(\"/*\")) {\n return fileType.startsWith(acceptedType.replace(\"/*\", \"/\"));\n }\n\n return fileType === acceptedType;\n });\n}\n","/** @jsxImportSource nativewind */\nimport { useState } from \"react\";\nimport { Pressable, Text, View } from \"react-native\";\n\nimport { InputLabel } from \"../../input-label/index.native\";\nimport { InputResponse } from \"../../input-response/index.native\";\n\nimport { cn } from \"../../../../../utils\";\nimport {\n inputControlClassName,\n inputFrameActiveClassName,\n inputFrameClassName,\n inputFrameDisabledClassName,\n inputFrameErrorClassName,\n inputFrameIdleClassName,\n inputRootClassName,\n inputShapes,\n} from \"../../../../../data/styles/shared.styles\";\nimport {\n getInputFileName,\n useInputFileFieldState,\n useResolvedInputFileConfig,\n} from \"../base\";\n\nimport type { InputFileProps, InputFileValue } from \"../base\";\n\nfunction InputFile(inputFileProps: InputFileProps) {\n const {\n disabled = false,\n inputClassName,\n label,\n labelClassName,\n onFileSelect,\n placeholder,\n responseClassName,\n shape,\n className,\n } = inputFileProps;\n const { field, meta, helpers } = useInputFileFieldState(inputFileProps);\n const [focused, setFocused] = useState(false);\n const { label: resolvedLabel, shape: resolvedShape } =\n useResolvedInputFileConfig({\n label,\n placeholder,\n shape,\n });\n const hasError = Boolean(meta.touched && meta.error);\n const errorText =\n hasError && typeof meta.error === \"string\" ? meta.error : null;\n const fileName = getInputFileName(field.value);\n const floating = focused || Boolean(fileName);\n\n const handlePress = async () => {\n if (disabled || !onFileSelect) {\n return;\n }\n\n setFocused(true);\n const selectedFile = await onFileSelect();\n\n if (selectedFile !== undefined) {\n await helpers.setValue(selectedFile as InputFileValue);\n await helpers.setTouched(true);\n }\n };\n\n return (\n <View className={inputRootClassName}>\n <Pressable\n accessibilityLabel={resolvedLabel}\n accessibilityRole=\"button\"\n disabled={disabled}\n onBlur={() => setFocused(false)}\n onFocus={() => setFocused(true)}\n onPress={() => void handlePress()}\n className={cn(\n inputFrameClassName,\n \"justify-center\",\n hasError\n ? inputFrameErrorClassName\n : focused\n ? inputFrameActiveClassName\n : inputFrameIdleClassName,\n inputShapes[resolvedShape],\n disabled && inputFrameDisabledClassName,\n className,\n )}\n >\n <Text\n numberOfLines={1}\n className={cn(\n inputControlClassName,\n \"pt-5 pb-2\",\n !fileName && \"text-gray-500 dark:text-gray-300\",\n inputClassName,\n )}\n style={{ includeFontPadding: false }}\n >\n {fileName}\n </Text>\n </Pressable>\n\n <InputLabel\n disabled={disabled}\n errored={hasError}\n floating={floating}\n text={resolvedLabel}\n className={labelClassName}\n />\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 { InputFile };\nexport default InputFile;\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 { SelectOption, SelectProps } from \"./Select.types\";\n\nexport interface ResolvedSelectConfig {\n label: string;\n shape: Shape;\n}\n\nexport interface SelectFieldState {\n field: FieldInputProps<string>;\n helpers: FieldHelperProps<string>;\n meta: FieldMetaProps<string>;\n}\n\nexport function useResolvedSelectConfig({\n label,\n placeholder,\n shape,\n}: Pick<SelectProps, \"label\" | \"placeholder\" | \"shape\">): ResolvedSelectConfig {\n const eui = useEUIConfig();\n\n return {\n label: label ?? placeholder,\n shape: shape ?? eui?.config?.global?.shape ?? \"square\",\n };\n}\n\nexport function useSelectFieldState(props: SelectProps): SelectFieldState {\n const [field, meta, helpers] = useField<string>(props);\n\n return {\n field,\n helpers,\n meta,\n };\n}\n\nexport function getSelectOptionLabel(\n options: SelectOption[],\n value: string,\n): string {\n const option = options.find((item) => item.value === value);\n\n if (!option) {\n return \"\";\n }\n\n return String(option.label ?? \"\");\n}\n","/** @jsxImportSource nativewind */\nimport { useState } from \"react\";\nimport { Modal, Pressable, ScrollView, Text, View } from \"react-native\";\n\nimport { InputLabel } from \"../../input/input-label/index.native\";\nimport { InputResponse } from \"../../input/input-response/index.native\";\nimport {\n inputControlClassName,\n inputFrameActiveClassName,\n inputFrameClassName,\n inputFrameDisabledClassName,\n inputFrameErrorClassName,\n inputFrameIdleClassName,\n inputRootClassName,\n inputShapes,\n} from \"../../../../data/styles/shared.styles\";\nimport { cn } from \"../../../../utils\";\nimport {\n getSelectOptionLabel,\n useResolvedSelectConfig,\n useSelectFieldState,\n} from \"../base\";\n\nimport type { SelectOption, SelectProps } from \"../base\";\n\nfunction Select(selectProps: SelectProps) {\n const {\n disabled = false,\n inputClassName,\n label,\n labelClassName,\n options,\n placeholder,\n responseClassName,\n shape,\n styles,\n className,\n onBlur,\n onFocus,\n ..._props\n } = selectProps;\n const { field, helpers, meta } = useSelectFieldState(selectProps);\n const [focused, setFocused] = useState(false);\n const [open, setOpen] = useState(false);\n const { label: resolvedLabel, shape: resolvedShape } =\n useResolvedSelectConfig({\n label,\n placeholder,\n shape,\n });\n const hasError = Boolean(meta.touched && meta.error);\n const errorText =\n hasError && typeof meta.error === \"string\" ? meta.error : null;\n const selectedLabel = getSelectOptionLabel(options, field.value ?? \"\");\n\n const closeOptions = () => {\n setOpen(false);\n setFocused(false);\n void helpers.setTouched(true);\n };\n\n const handleOpen = () => {\n if (disabled) {\n return;\n }\n\n setFocused(true);\n setOpen(true);\n };\n\n const handleSelect = (option: SelectOption) => {\n if (option.disabled) {\n return;\n }\n\n void helpers.setValue(option.value);\n void helpers.setTouched(true);\n setOpen(false);\n setFocused(false);\n };\n\n const handleBlur = (event: unknown) => {\n setFocused(false);\n void helpers.setTouched(true);\n onBlur?.(event as Parameters<NonNullable<SelectProps[\"onBlur\"]>>[0]);\n };\n\n const handleFocus = (event: unknown) => {\n setFocused(true);\n onFocus?.(event as Parameters<NonNullable<SelectProps[\"onFocus\"]>>[0]);\n };\n\n return (\n <View className={inputRootClassName}>\n <Pressable\n accessibilityLabel={resolvedLabel}\n accessibilityRole=\"button\"\n accessibilityState={{ disabled, expanded: open }}\n disabled={disabled}\n onBlur={handleBlur}\n onFocus={handleFocus}\n onPress={handleOpen}\n className={cn(\n inputFrameClassName,\n \"justify-center\",\n hasError\n ? inputFrameErrorClassName\n : focused || open\n ? inputFrameActiveClassName\n : inputFrameIdleClassName,\n inputShapes[resolvedShape],\n disabled && inputFrameDisabledClassName,\n className,\n styles,\n )}\n >\n <Text\n numberOfLines={1}\n className={cn(\n inputControlClassName,\n \"pt-5 pb-2\",\n !selectedLabel && \"text-gray-500 dark:text-gray-300\",\n inputClassName,\n )}\n style={{ includeFontPadding: false }}\n >\n {selectedLabel}\n </Text>\n </Pressable>\n\n <InputLabel\n disabled={disabled}\n errored={hasError}\n floating\n text={resolvedLabel}\n className={labelClassName}\n />\n\n <InputResponse\n message={errorText}\n name={field.name}\n visibility={Boolean(errorText)}\n variant=\"danger\"\n className={responseClassName}\n />\n\n <Modal\n animationType=\"fade\"\n onRequestClose={closeOptions}\n transparent\n visible={open}\n >\n <View className=\"flex-1 justify-end bg-black/40 px-4 py-6\">\n <Pressable\n accessibilityLabel=\"Close select options\"\n accessibilityRole=\"button\"\n className=\"absolute inset-0\"\n onPress={closeOptions}\n />\n\n <View className=\"max-h-[70%] overflow-hidden rounded-lg bg-white shadow-xl dark:bg-eui-dark-500\">\n <ScrollView>\n {options.map((option) => {\n const selected = option.value === field.value;\n\n return (\n <Pressable\n key={option.value}\n accessibilityRole=\"button\"\n accessibilityState={{\n disabled: option.disabled,\n selected,\n }}\n disabled={option.disabled}\n onPress={() => handleSelect(option)}\n className={cn(\n \"min-h-12 justify-center border-b border-gray-200 px-4 py-3 dark:border-eui-dark-300\",\n selected && \"bg-eui-secondary-500/10\",\n option.disabled && \"opacity-50\",\n )}\n >\n <Text className=\"text-base font-medium text-gray-950 dark:text-gray-50\">\n {String(option.label)}\n </Text>\n </Pressable>\n );\n })}\n </ScrollView>\n </View>\n </View>\n </Modal>\n </View>\n );\n}\n\nexport { Select };\nexport default Select;\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 { TagsProps } from \"./Tags.types\";\n\nexport interface ResolvedTagsConfig {\n label: string;\n limit: number;\n shape: Shape;\n}\n\nexport interface TagsFieldState {\n field: FieldInputProps<string[]>;\n helpers: FieldHelperProps<string[]>;\n meta: FieldMetaProps<string[]>;\n}\n\nexport function useResolvedTagsConfig({\n label,\n limit = 10,\n placeholder,\n shape,\n}: Pick<\n TagsProps,\n \"label\" | \"limit\" | \"placeholder\" | \"shape\"\n>): ResolvedTagsConfig {\n const eui = useEUIConfig();\n\n return {\n label: label ?? placeholder,\n limit,\n shape: shape ?? eui?.config?.global?.shape ?? \"square\",\n };\n}\n\nexport function useTagsFieldState(props: TagsProps): TagsFieldState {\n const [field, meta, helpers] = useField<string[]>(props);\n\n return {\n field,\n helpers,\n meta,\n };\n}\n\nexport function getTagsValue(value: unknown): string[] {\n if (!Array.isArray(value)) {\n return [];\n }\n\n return value.filter((tag): tag is string => typeof tag === \"string\");\n}\n\nexport function addTagToList(\n tags: string[],\n value: string,\n limit: number,\n): string[] {\n const trimmed = value.trim();\n\n if (!trimmed || tags.includes(trimmed) || tags.length >= limit) {\n return tags;\n }\n\n return [...tags, trimmed];\n}\n\nexport function removeTagFromList(tags: string[], index: number): string[] {\n return tags.filter((_, tagIndex) => tagIndex !== index);\n}\n","/** @jsxImportSource nativewind */\nimport { useState } from \"react\";\nimport { Pressable, Text, TextInput, View } from \"react-native\";\n\nimport { InputLabel } from \"../../input/input-label/index.native\";\nimport { InputResponse } from \"../../input/input-response/index.native\";\nimport {\n inputControlClassName,\n inputFrameActiveClassName,\n inputFrameClassName,\n inputFrameDisabledClassName,\n inputFrameErrorClassName,\n inputFrameIdleClassName,\n inputRootClassName,\n inputShapes,\n} from \"../../../../data/styles/shared.styles\";\nimport { nativeInputControlStyle } from \"../../input/input/native/Input.native.styles\";\nimport { cn } from \"../../../../utils\";\nimport {\n addTagToList,\n getTagsValue,\n removeTagFromList,\n useResolvedTagsConfig,\n useTagsFieldState,\n} from \"../base\";\n\nimport type { TagsProps } from \"../base\";\n\ntype NativeKeyPressEvent = {\n nativeEvent?: {\n key?: string;\n };\n};\n\nconst nativeTagsInputControlStyle = {\n ...nativeInputControlStyle,\n minHeight: 28,\n paddingBottom: 0,\n paddingTop: 0,\n} as const;\n\nfunction Tags(tagsProps: TagsProps) {\n const {\n disabled = false,\n inputClassName,\n label,\n labelClassName,\n limit,\n placeholder,\n responseClassName,\n shape,\n styles,\n tagClassName,\n removeButtonClassName,\n counterClassName,\n className,\n onBlur,\n onFocus,\n ..._props\n } = tagsProps;\n const { field, helpers, meta } = useTagsFieldState(tagsProps);\n const [input, setInput] = useState(\"\");\n const [focused, setFocused] = useState(false);\n const {\n label: resolvedLabel,\n limit: resolvedLimit,\n shape: resolvedShape,\n } = useResolvedTagsConfig({\n label,\n limit,\n placeholder,\n shape,\n });\n const tags = getTagsValue(field.value);\n const hasError = Boolean(meta.touched && meta.error);\n const errorText =\n hasError && typeof meta.error === \"string\" ? meta.error : null;\n const floating = focused || input.length > 0 || tags.length > 0;\n\n const handleAddTag = (value = input) => {\n if (disabled) {\n return;\n }\n\n const nextTags = addTagToList(tags, value, resolvedLimit);\n\n if (nextTags !== tags) {\n void helpers.setValue(nextTags);\n }\n\n if (value.trim()) {\n void helpers.setTouched(true);\n }\n\n setInput(\"\");\n };\n\n const handleChangeText = (value: string) => {\n if (value.endsWith(\",\")) {\n handleAddTag(value.slice(0, -1));\n return;\n }\n\n setInput(value);\n };\n\n const handleKeyPress = (event: NativeKeyPressEvent) => {\n if (event.nativeEvent?.key === \"Backspace\" && input === \"\" && tags.length) {\n void helpers.setValue(tags.slice(0, -1));\n void helpers.setTouched(true);\n }\n };\n\n const handleRemoveTag = (index: number) => {\n if (disabled) {\n return;\n }\n\n void helpers.setValue(removeTagFromList(tags, index));\n void helpers.setTouched(true);\n };\n\n const handleBlur = (event: unknown) => {\n setFocused(false);\n void helpers.setTouched(true);\n onBlur?.(event);\n };\n\n const handleFocus = (event: unknown) => {\n setFocused(true);\n onFocus?.(event);\n };\n\n return (\n <View className={inputRootClassName}>\n <View\n className={cn(\n inputFrameClassName,\n \"h-auto min-h-14 flex-row flex-wrap items-center gap-2 overflow-visible px-3 pt-6 pb-7\",\n hasError\n ? inputFrameErrorClassName\n : focused\n ? inputFrameActiveClassName\n : inputFrameIdleClassName,\n inputShapes[resolvedShape],\n disabled && inputFrameDisabledClassName,\n className,\n styles,\n )}\n >\n {tags.map((tag, index) => (\n <View\n key={`${tag}-${index}`}\n className={cn(\n \"max-w-full flex-row items-center gap-1 rounded bg-eui-light-300 px-2 py-1 dark:bg-eui-dark-400\",\n tagClassName,\n )}\n >\n <Text\n className=\"shrink text-sm font-medium text-eui-dark-700 dark:text-eui-light-300\"\n numberOfLines={1}\n style={{ includeFontPadding: false }}\n >\n {tag}\n </Text>\n <Pressable\n accessibilityLabel={`Remove ${tag}`}\n accessibilityRole=\"button\"\n className={cn(\n \"h-5 w-5 items-center justify-center\",\n disabled && \"opacity-50\",\n removeButtonClassName,\n )}\n disabled={disabled}\n onPress={() => handleRemoveTag(index)}\n >\n <Text\n className=\"text-xs font-bold text-eui-danger-500\"\n style={{ includeFontPadding: false }}\n >\n x\n </Text>\n </Pressable>\n </View>\n ))}\n\n {tags.length < resolvedLimit ? (\n <TextInput\n accessibilityLabel={resolvedLabel}\n className={cn(\n inputControlClassName,\n \"h-7 w-auto min-w-[120px] flex-1 p-0\",\n inputClassName,\n )}\n editable={!disabled}\n onBlur={handleBlur}\n onChangeText={handleChangeText}\n onFocus={handleFocus}\n onKeyPress={handleKeyPress}\n onSubmitEditing={() => handleAddTag()}\n placeholder=\"\"\n returnKeyType=\"done\"\n style={nativeTagsInputControlStyle}\n underlineColorAndroid=\"transparent\"\n value={input}\n />\n ) : null}\n\n <Text\n className={cn(\n \"absolute bottom-3 right-3 text-xs font-semibold text-eui-dark-50\",\n counterClassName,\n )}\n style={{ includeFontPadding: false }}\n >\n {tags.length}/{resolvedLimit}\n </Text>\n </View>\n\n <InputLabel\n disabled={disabled}\n errored={hasError}\n floating={floating}\n text={resolvedLabel}\n className={labelClassName}\n />\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 { Tags };\nexport default Tags;\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 { TextAreaProps } from \"./TextArea.types\";\n\nexport interface ResolvedTextAreaConfig {\n label: string;\n limit: number;\n shape: Shape;\n}\n\nexport interface TextAreaFieldState {\n field: FieldInputProps<string>;\n helpers: FieldHelperProps<string>;\n meta: FieldMetaProps<string>;\n}\n\nexport function useResolvedTextAreaConfig({\n label,\n limit = 1000,\n placeholder,\n shape,\n}: Pick<\n TextAreaProps,\n \"label\" | \"limit\" | \"placeholder\" | \"shape\"\n>): ResolvedTextAreaConfig {\n const eui = useEUIConfig();\n\n return {\n label: label ?? placeholder,\n limit,\n shape: shape ?? eui?.config?.global?.shape ?? \"square\",\n };\n}\n\nexport function useTextAreaFieldState(\n props: TextAreaProps,\n): TextAreaFieldState {\n const [field, meta, helpers] = useField<string>(props);\n\n return {\n field,\n helpers,\n meta,\n };\n}\n\nexport function getTextAreaCharacterCount(value: unknown): number {\n return String(value ?? \"\").length;\n}\n","/** @jsxImportSource nativewind */\nimport { useState } from \"react\";\nimport { Text, TextInput, View } from \"react-native\";\n\nimport { InputLabel } from \"../../input/input-label/index.native\";\nimport { InputResponse } from \"../../input/input-response/index.native\";\nimport {\n inputControlClassName,\n inputFrameActiveClassName,\n inputFrameClassName,\n inputFrameDisabledClassName,\n inputFrameErrorClassName,\n inputFrameIdleClassName,\n inputRootClassName,\n inputShapes,\n} from \"../../../../data/styles/shared.styles\";\nimport { nativeInputControlStyle } from \"../../input/input/native/Input.native.styles\";\nimport { cn } from \"../../../../utils\";\nimport {\n getTextAreaCharacterCount,\n useResolvedTextAreaConfig,\n useTextAreaFieldState,\n} from \"../base\";\n\nimport type { TextAreaProps } from \"../base\";\n\nconst nativeTextAreaControlStyle = {\n ...nativeInputControlStyle,\n minHeight: 128,\n textAlignVertical: \"top\",\n} as const;\n\nfunction TextArea(textAreaProps: TextAreaProps) {\n const {\n disabled = false,\n inputClassName,\n label,\n labelClassName,\n limit,\n placeholder,\n responseClassName,\n shape,\n styles,\n className,\n onBlur,\n onFocus,\n ..._props\n } = textAreaProps;\n const { field, helpers, meta } = useTextAreaFieldState(textAreaProps);\n const [focused, setFocused] = useState(false);\n const {\n label: resolvedLabel,\n limit: resolvedLimit,\n shape: resolvedShape,\n } = useResolvedTextAreaConfig({\n label,\n limit,\n placeholder,\n shape,\n });\n const hasError = Boolean(meta.touched && meta.error);\n const errorText =\n hasError && typeof meta.error === \"string\" ? meta.error : null;\n const characterCount = getTextAreaCharacterCount(field.value);\n const floating = focused || characterCount > 0;\n\n const handleBlur = (event: unknown) => {\n setFocused(false);\n void helpers.setTouched(true);\n onBlur?.(event as Parameters<NonNullable<TextAreaProps[\"onBlur\"]>>[0]);\n };\n\n const handleFocus = (event: unknown) => {\n setFocused(true);\n onFocus?.(event as Parameters<NonNullable<TextAreaProps[\"onFocus\"]>>[0]);\n };\n\n return (\n <View className={inputRootClassName}>\n <View\n className={cn(\n inputFrameClassName,\n \"h-auto min-h-32 px-3\",\n hasError\n ? inputFrameErrorClassName\n : focused\n ? inputFrameActiveClassName\n : inputFrameIdleClassName,\n inputShapes[resolvedShape],\n disabled && inputFrameDisabledClassName,\n className,\n styles,\n )}\n >\n <TextInput\n accessibilityLabel={resolvedLabel}\n className={cn(inputControlClassName, \"min-h-32 pb-8\", inputClassName)}\n editable={!disabled}\n maxLength={resolvedLimit}\n multiline\n onBlur={handleBlur}\n onChangeText={(value: string) => helpers.setValue(value)}\n onFocus={handleFocus}\n placeholder=\"\"\n style={nativeTextAreaControlStyle}\n underlineColorAndroid=\"transparent\"\n value={field.value ?? \"\"}\n />\n\n <Text className=\"absolute bottom-3 right-3 text-xs font-semibold text-eui-dark-50\">\n {characterCount}/{resolvedLimit}\n </Text>\n </View>\n\n <InputLabel\n disabled={disabled}\n errored={hasError}\n floating={floating}\n text={resolvedLabel}\n className={labelClassName}\n />\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 { TextArea };\nexport default TextArea;\n"]}