@lmb-it/kitsconcerto-native 0.1.243 → 0.1.244

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.
Files changed (282) hide show
  1. package/animations/index.cjs +25 -15
  2. package/animations/index.cjs.map +1 -1
  3. package/animations/index.js +25 -15
  4. package/animations/index.js.map +1 -1
  5. package/apps/mobile/src/Core/AutoComplete/index.cjs +105 -64
  6. package/apps/mobile/src/Core/AutoComplete/index.cjs.map +1 -1
  7. package/apps/mobile/src/Core/AutoComplete/index.js +106 -65
  8. package/apps/mobile/src/Core/AutoComplete/index.js.map +1 -1
  9. package/apps/mobile/src/Core/Dropdown/index.cjs +2 -0
  10. package/apps/mobile/src/Core/Dropdown/index.cjs.map +1 -1
  11. package/apps/mobile/src/Core/Dropdown/index.js +2 -0
  12. package/apps/mobile/src/Core/Dropdown/index.js.map +1 -1
  13. package/apps/mobile/src/Core/Trees/components/CoreToolbar.cjs +2 -0
  14. package/apps/mobile/src/Core/Trees/components/CoreToolbar.cjs.map +1 -1
  15. package/apps/mobile/src/Core/Trees/components/CoreToolbar.js +2 -0
  16. package/apps/mobile/src/Core/Trees/components/CoreToolbar.js.map +1 -1
  17. package/apps/mobile/src/Factory/ResponsiveElement.cjs +2 -0
  18. package/apps/mobile/src/Factory/ResponsiveElement.cjs.map +1 -1
  19. package/apps/mobile/src/Factory/ResponsiveElement.js +2 -0
  20. package/apps/mobile/src/Factory/ResponsiveElement.js.map +1 -1
  21. package/apps/mobile/src/Factory/helpers/cssVarMap.cjs +16 -0
  22. package/apps/mobile/src/Factory/helpers/cssVarMap.cjs.map +1 -1
  23. package/apps/mobile/src/Factory/helpers/cssVarMap.js +16 -0
  24. package/apps/mobile/src/Factory/helpers/cssVarMap.js.map +1 -1
  25. package/apps/mobile/src/Factory/helpers/style.cjs +17 -1
  26. package/apps/mobile/src/Factory/helpers/style.cjs.map +1 -1
  27. package/apps/mobile/src/Factory/helpers/style.js +17 -1
  28. package/apps/mobile/src/Factory/helpers/style.js.map +1 -1
  29. package/apps/mobile/src/Factory/useSeparator.cjs +1 -0
  30. package/apps/mobile/src/Factory/useSeparator.cjs.map +1 -1
  31. package/apps/mobile/src/Factory/useSeparator.js +1 -0
  32. package/apps/mobile/src/Factory/useSeparator.js.map +1 -1
  33. package/components/Accordion/accordion.cjs +2 -0
  34. package/components/Accordion/accordion.cjs.map +1 -1
  35. package/components/Accordion/accordion.js +2 -0
  36. package/components/Accordion/accordion.js.map +1 -1
  37. package/components/Badge/index.cjs +2 -0
  38. package/components/Badge/index.cjs.map +1 -1
  39. package/components/Badge/index.js +2 -0
  40. package/components/Badge/index.js.map +1 -1
  41. package/components/BottomTabBar/index.cjs +2 -0
  42. package/components/BottomTabBar/index.cjs.map +1 -1
  43. package/components/BottomTabBar/index.js +2 -0
  44. package/components/BottomTabBar/index.js.map +1 -1
  45. package/components/Button/Button.cjs +2 -0
  46. package/components/Button/Button.cjs.map +1 -1
  47. package/components/Button/Button.js +2 -0
  48. package/components/Button/Button.js.map +1 -1
  49. package/components/MessageComposer/index.cjs +2 -0
  50. package/components/MessageComposer/index.cjs.map +1 -1
  51. package/components/MessageComposer/index.js +2 -0
  52. package/components/MessageComposer/index.js.map +1 -1
  53. package/components/SegmentedControl/index.cjs +2 -0
  54. package/components/SegmentedControl/index.cjs.map +1 -1
  55. package/components/SegmentedControl/index.js +2 -0
  56. package/components/SegmentedControl/index.js.map +1 -1
  57. package/components/SkeletonText/index.cjs +2 -0
  58. package/components/SkeletonText/index.cjs.map +1 -1
  59. package/components/SkeletonText/index.js +2 -0
  60. package/components/SkeletonText/index.js.map +1 -1
  61. package/components/Tabs/index.cjs +2 -0
  62. package/components/Tabs/index.cjs.map +1 -1
  63. package/components/Tabs/index.js +2 -0
  64. package/components/Tabs/index.js.map +1 -1
  65. package/components/overlay/ConfirmDialog/index.cjs +146 -89
  66. package/components/overlay/ConfirmDialog/index.cjs.map +1 -1
  67. package/components/overlay/ConfirmDialog/index.js +147 -90
  68. package/components/overlay/ConfirmDialog/index.js.map +1 -1
  69. package/components/overlay/Dialog/index.cjs +90 -64
  70. package/components/overlay/Dialog/index.cjs.map +1 -1
  71. package/components/overlay/Dialog/index.js +91 -65
  72. package/components/overlay/Dialog/index.js.map +1 -1
  73. package/components/overlay/Toast/index.cjs +19 -18
  74. package/components/overlay/Toast/index.cjs.map +1 -1
  75. package/components/overlay/Toast/index.js +22 -21
  76. package/components/overlay/Toast/index.js.map +1 -1
  77. package/contexts/Locale/index.cjs +2 -0
  78. package/contexts/Locale/index.cjs.map +1 -1
  79. package/contexts/Locale/index.js +2 -0
  80. package/contexts/Locale/index.js.map +1 -1
  81. package/contexts/Main/index.cjs +2 -0
  82. package/contexts/Main/index.cjs.map +1 -1
  83. package/contexts/Main/index.js +2 -0
  84. package/contexts/Main/index.js.map +1 -1
  85. package/contexts/Theme/KitsThemeProvider.cjs +2 -0
  86. package/contexts/Theme/KitsThemeProvider.cjs.map +1 -1
  87. package/contexts/Theme/KitsThemeProvider.js +2 -0
  88. package/contexts/Theme/KitsThemeProvider.js.map +1 -1
  89. package/contexts/Theme/index.cjs +1 -0
  90. package/contexts/Theme/index.cjs.map +1 -1
  91. package/contexts/Theme/index.js +1 -0
  92. package/contexts/Theme/index.js.map +1 -1
  93. package/contexts/Theme/resolvers.cjs +4 -0
  94. package/contexts/Theme/resolvers.cjs.map +1 -1
  95. package/contexts/Theme/resolvers.js +4 -0
  96. package/contexts/Theme/resolvers.js.map +1 -1
  97. package/data/DataView/Pagination/index.cjs +2 -0
  98. package/data/DataView/Pagination/index.cjs.map +1 -1
  99. package/data/DataView/Pagination/index.js +2 -0
  100. package/data/DataView/Pagination/index.js.map +1 -1
  101. package/data/TreeView/index.cjs +2 -0
  102. package/data/TreeView/index.cjs.map +1 -1
  103. package/data/TreeView/index.js +2 -0
  104. package/data/TreeView/index.js.map +1 -1
  105. package/form/controls/Checkbox/checkbox.cjs +2 -0
  106. package/form/controls/Checkbox/checkbox.cjs.map +1 -1
  107. package/form/controls/Checkbox/checkbox.js +2 -0
  108. package/form/controls/Checkbox/checkbox.js.map +1 -1
  109. package/form/controls/RadioButton/radiobutton.cjs +2 -0
  110. package/form/controls/RadioButton/radiobutton.cjs.map +1 -1
  111. package/form/controls/RadioButton/radiobutton.js +2 -0
  112. package/form/controls/RadioButton/radiobutton.js.map +1 -1
  113. package/form/controls/SelectButton/index.cjs +2 -0
  114. package/form/controls/SelectButton/index.cjs.map +1 -1
  115. package/form/controls/SelectButton/index.js +2 -0
  116. package/form/controls/SelectButton/index.js.map +1 -1
  117. package/form/controls/TriStateCheckbox/index.cjs +2 -0
  118. package/form/controls/TriStateCheckbox/index.cjs.map +1 -1
  119. package/form/controls/TriStateCheckbox/index.js +2 -0
  120. package/form/controls/TriStateCheckbox/index.js.map +1 -1
  121. package/form/file-pickers/MainUploader/index.cjs +1 -0
  122. package/form/file-pickers/MainUploader/index.cjs.map +1 -1
  123. package/form/file-pickers/MainUploader/index.js +1 -0
  124. package/form/file-pickers/MainUploader/index.js.map +1 -1
  125. package/form/helpers/ErrorMessage/errormessage.cjs +2 -0
  126. package/form/helpers/ErrorMessage/errormessage.cjs.map +1 -1
  127. package/form/helpers/ErrorMessage/errormessage.js +2 -0
  128. package/form/helpers/ErrorMessage/errormessage.js.map +1 -1
  129. package/form/helpers/FormContainer/index.cjs +2 -0
  130. package/form/helpers/FormContainer/index.cjs.map +1 -1
  131. package/form/helpers/FormContainer/index.js +2 -0
  132. package/form/helpers/FormContainer/index.js.map +1 -1
  133. package/form/helpers/Label/label.cjs +2 -0
  134. package/form/helpers/Label/label.cjs.map +1 -1
  135. package/form/helpers/Label/label.js +2 -0
  136. package/form/helpers/Label/label.js.map +1 -1
  137. package/form/inputs/InputMask/index.cjs +2 -0
  138. package/form/inputs/InputMask/index.cjs.map +1 -1
  139. package/form/inputs/InputMask/index.js +2 -0
  140. package/form/inputs/InputMask/index.js.map +1 -1
  141. package/form/inputs/InputNumber/index.cjs +2 -0
  142. package/form/inputs/InputNumber/index.cjs.map +1 -1
  143. package/form/inputs/InputNumber/index.js +2 -0
  144. package/form/inputs/InputNumber/index.js.map +1 -1
  145. package/form/inputs/InputPassword/index.cjs +2 -0
  146. package/form/inputs/InputPassword/index.cjs.map +1 -1
  147. package/form/inputs/InputPassword/index.js +2 -0
  148. package/form/inputs/InputPassword/index.js.map +1 -1
  149. package/form/inputs/InputSwitch/index.cjs +2 -0
  150. package/form/inputs/InputSwitch/index.cjs.map +1 -1
  151. package/form/inputs/InputSwitch/index.js +2 -0
  152. package/form/inputs/InputSwitch/index.js.map +1 -1
  153. package/form/inputs/InputText/index.cjs +2 -0
  154. package/form/inputs/InputText/index.cjs.map +1 -1
  155. package/form/inputs/InputText/index.js +2 -0
  156. package/form/inputs/InputText/index.js.map +1 -1
  157. package/form/inputs/InputTextarea/index.cjs +2 -0
  158. package/form/inputs/InputTextarea/index.cjs.map +1 -1
  159. package/form/inputs/InputTextarea/index.js +2 -0
  160. package/form/inputs/InputTextarea/index.js.map +1 -1
  161. package/form/inputs/PhoneInput/index.cjs +2 -0
  162. package/form/inputs/PhoneInput/index.cjs.map +1 -1
  163. package/form/inputs/PhoneInput/index.js +2 -0
  164. package/form/inputs/PhoneInput/index.js.map +1 -1
  165. package/form/inputs/RadiusPicker/components/NumericRadiusInput.cjs +1 -0
  166. package/form/inputs/RadiusPicker/components/NumericRadiusInput.cjs.map +1 -1
  167. package/form/inputs/RadiusPicker/components/NumericRadiusInput.js +1 -0
  168. package/form/inputs/RadiusPicker/components/NumericRadiusInput.js.map +1 -1
  169. package/form/selects/AutoComplete/index.cjs +2 -0
  170. package/form/selects/AutoComplete/index.cjs.map +1 -1
  171. package/form/selects/AutoComplete/index.js +2 -0
  172. package/form/selects/AutoComplete/index.js.map +1 -1
  173. package/form/selects/Dropdown/index.cjs +2 -0
  174. package/form/selects/Dropdown/index.cjs.map +1 -1
  175. package/form/selects/Dropdown/index.js +2 -0
  176. package/form/selects/Dropdown/index.js.map +1 -1
  177. package/form/selects/ListBox/index.cjs +2 -0
  178. package/form/selects/ListBox/index.cjs.map +1 -1
  179. package/form/selects/ListBox/index.js +2 -0
  180. package/form/selects/ListBox/index.js.map +1 -1
  181. package/form/selects/MultiSelect/index.cjs +2 -0
  182. package/form/selects/MultiSelect/index.cjs.map +1 -1
  183. package/form/selects/MultiSelect/index.js +2 -0
  184. package/form/selects/MultiSelect/index.js.map +1 -1
  185. package/form/selects/TreeSelect/index.cjs +2 -0
  186. package/form/selects/TreeSelect/index.cjs.map +1 -1
  187. package/form/selects/TreeSelect/index.js +2 -0
  188. package/form/selects/TreeSelect/index.js.map +1 -1
  189. package/form-renderer/components/layout/FieldWrapper.cjs +2 -0
  190. package/form-renderer/components/layout/FieldWrapper.cjs.map +1 -1
  191. package/form-renderer/components/layout/FieldWrapper.js +2 -0
  192. package/form-renderer/components/layout/FieldWrapper.js.map +1 -1
  193. package/hooks/shadowPresets.cjs +1 -0
  194. package/hooks/shadowPresets.cjs.map +1 -1
  195. package/hooks/shadowPresets.js +1 -0
  196. package/hooks/shadowPresets.js.map +1 -1
  197. package/hooks/useFocusStyles.cjs +2 -0
  198. package/hooks/useFocusStyles.cjs.map +1 -1
  199. package/hooks/useFocusStyles.js +2 -0
  200. package/hooks/useFocusStyles.js.map +1 -1
  201. package/index.cjs +5 -0
  202. package/index.cjs.map +1 -1
  203. package/index.d.ts +32 -1
  204. package/index.js +1 -0
  205. package/index.js.map +1 -1
  206. package/layout/Center/index.cjs +2 -0
  207. package/layout/Center/index.cjs.map +1 -1
  208. package/layout/Center/index.js +2 -0
  209. package/layout/Center/index.js.map +1 -1
  210. package/layout/Container/container.cjs +2 -0
  211. package/layout/Container/container.cjs.map +1 -1
  212. package/layout/Container/container.js +2 -0
  213. package/layout/Container/container.js.map +1 -1
  214. package/layout/Flex/index.cjs +2 -0
  215. package/layout/Flex/index.cjs.map +1 -1
  216. package/layout/Flex/index.js +2 -0
  217. package/layout/Flex/index.js.map +1 -1
  218. package/layout/HStack/index.cjs +2 -0
  219. package/layout/HStack/index.cjs.map +1 -1
  220. package/layout/HStack/index.js +2 -0
  221. package/layout/HStack/index.js.map +1 -1
  222. package/layout/List/index.cjs +2 -0
  223. package/layout/List/index.cjs.map +1 -1
  224. package/layout/List/index.js +2 -0
  225. package/layout/List/index.js.map +1 -1
  226. package/layout/ListItem/index.cjs +2 -0
  227. package/layout/ListItem/index.cjs.map +1 -1
  228. package/layout/ListItem/index.js +2 -0
  229. package/layout/ListItem/index.js.map +1 -1
  230. package/layout/ScrollView/index.cjs +2 -0
  231. package/layout/ScrollView/index.cjs.map +1 -1
  232. package/layout/ScrollView/index.js +2 -0
  233. package/layout/ScrollView/index.js.map +1 -1
  234. package/layout/VStack/index.cjs +2 -0
  235. package/layout/VStack/index.cjs.map +1 -1
  236. package/layout/VStack/index.js +2 -0
  237. package/layout/VStack/index.js.map +1 -1
  238. package/package.json +1 -1
  239. package/packages/types/src/Theme/alphaColors.cjs +24 -0
  240. package/packages/types/src/Theme/alphaColors.cjs.map +1 -0
  241. package/packages/types/src/Theme/alphaColors.js +19 -0
  242. package/packages/types/src/Theme/alphaColors.js.map +1 -0
  243. package/packages/types/src/Theme/resolvers.cjs +6 -0
  244. package/packages/types/src/Theme/resolvers.cjs.map +1 -1
  245. package/packages/types/src/Theme/resolvers.js +6 -0
  246. package/packages/types/src/Theme/resolvers.js.map +1 -1
  247. package/primitives/Box/index.cjs +2 -0
  248. package/primitives/Box/index.cjs.map +1 -1
  249. package/primitives/Box/index.js +2 -0
  250. package/primitives/Box/index.js.map +1 -1
  251. package/primitives/Card/index.cjs +2 -0
  252. package/primitives/Card/index.cjs.map +1 -1
  253. package/primitives/Card/index.js +2 -0
  254. package/primitives/Card/index.js.map +1 -1
  255. package/primitives/Divider/index.cjs +2 -0
  256. package/primitives/Divider/index.cjs.map +1 -1
  257. package/primitives/Divider/index.js +2 -0
  258. package/primitives/Divider/index.js.map +1 -1
  259. package/primitives/Heading/index.cjs +2 -0
  260. package/primitives/Heading/index.cjs.map +1 -1
  261. package/primitives/Heading/index.js +2 -0
  262. package/primitives/Heading/index.js.map +1 -1
  263. package/primitives/Icon/index.cjs +1 -0
  264. package/primitives/Icon/index.cjs.map +1 -1
  265. package/primitives/Icon/index.js +1 -0
  266. package/primitives/Icon/index.js.map +1 -1
  267. package/primitives/Image/index.cjs +2 -0
  268. package/primitives/Image/index.cjs.map +1 -1
  269. package/primitives/Image/index.js +2 -0
  270. package/primitives/Image/index.js.map +1 -1
  271. package/primitives/Skeleton/index.cjs +2 -0
  272. package/primitives/Skeleton/index.cjs.map +1 -1
  273. package/primitives/Skeleton/index.js +2 -0
  274. package/primitives/Skeleton/index.js.map +1 -1
  275. package/primitives/Svg/index.cjs +2 -0
  276. package/primitives/Svg/index.cjs.map +1 -1
  277. package/primitives/Svg/index.js +2 -0
  278. package/primitives/Svg/index.js.map +1 -1
  279. package/primitives/Text/index.cjs +2 -0
  280. package/primitives/Text/index.cjs.map +1 -1
  281. package/primitives/Text/index.js +2 -0
  282. package/primitives/Text/index.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/form/inputs/InputPassword/index.native.tsx"],"sourcesContent":["import React, {useState} from \"react\";\nimport type {IKitsInputPassword} from \"@lmb-it/kitsconcerto-types\";\nimport KitsContainer from \"../../helpers/FormContainer\";\nimport {useSeparator} from \"../../../factory\";\nimport {\n KitsCoreInput as Input,\n KitsCoreInputField as InputField,\n KitsCoreInputSlot as InputSlot,\n} from \"@lmb-it/kitsconcertomobile\";\nimport {useFormInputController} from \"../../helpers/useFormInputController\";\nimport Strengthen from \"./Strengthen\";\nimport {useComponentDefaults, useFocusStyles, useResolvedStyle} from \"@lmb-it/kitsconcerto/hooks\";\nimport {useFormFieldKeyboardNav} from \"../../../hooks/useFormFieldKeyboardNav\";\nimport {mergeRefs} from \"../../../utils/mergeRefs\";\nimport { Icon } from \"../../../\";\nimport { useLanguage } from \"../../../_compat\";\n\nconst KitsInputPassword = ({ref, ...rawProps}: IKitsInputPassword) => {\n const { mergedProps: props, themeStyle, elementStyles } = useComponentDefaults('InputPassword', rawProps, 'Input');\n const resolvedThemeStyle = useResolvedStyle(themeStyle);\n const resolvedRootStyle = useResolvedStyle(elementStyles?.root || {});\n const { isRTL } = useLanguage();\n const {\n id, label, helperText, errors, invalid, required, hideError,\n leftAddon, rightAddon, isFloatedLabel, disabled,\n promptLabel, weakLabel, mediumLabel, strongLabel, header, footer,\n feedback, toggleEye, showStrengthProgress, placeholder,\n value, defaultValue, onChange, schema,\n eyeIcon, eyeSlashIcon,\n inputSize, ...rest\n } = props;\n\n const {inputRef, navProps} = useFormFieldKeyboardNav(id);\n\n const { nativeProps } = useSeparator<any>(rest);\n const { value: internal, emitChange } = useFormInputController<string>({\n value,\n defaultValue,\n onChange,\n });\n\n const [secure, setSecure] = useState(true);\n const toggleSecure = () => setSecure(!secure);\n\n const [isFocused, setFocused] = useState(false);\n const rootStyle = resolvedRootStyle && Object.keys(resolvedRootStyle).length > 0 ? resolvedRootStyle : resolvedThemeStyle;\n const focusResolvedStyle = useFocusStyles(rootStyle, isFocused);\n\n return (\n <KitsContainer\n id={id}\n helperText={helperText}\n isFloatedLabel={isFloatedLabel}\n hideError={hideError}\n required={required}\n leftAddon={leftAddon}\n rightAddon={rightAddon}\n errors={errors}\n invalid={invalid}\n label={label}\n disabled={disabled}\n inputSize={inputSize}\n elementStyles={elementStyles}\n >\n <Input\n {...(rest as any)}\n isDisabled={!!disabled}\n isInvalid={!!invalid}\n isFocused={isFocused}\n style={{width: \"100%\", ...focusResolvedStyle}}\n >\n <InputField\n ref={mergeRefs(inputRef, ref)}\n value={internal ?? ''}\n onChangeText={(txt) => emitChange(txt)}\n secureTextEntry={secure}\n editable={!disabled}\n placeholder={placeholder}\n onFocus={(e: any) => {\n setFocused(true);\n (rest as any)?.onFocus?.(e);\n }}\n onBlur={(e: any) => {\n setFocused(false);\n (rest as any)?.onBlur?.(e);\n }}\n style={{\n textAlign: isRTL ? \"right\" : \"left\",\n writingDirection: isRTL ? \"rtl\" : \"ltr\",\n }}\n {...navProps}\n />\n {toggleEye && (\n <InputSlot onPress={toggleSecure} style={{paddingHorizontal: 12}}>\n {secure\n ? (eyeIcon ?? <Icon name={'eye'} />)\n : (eyeSlashIcon ?? <Icon name={'eye-slash'} />)\n }\n </InputSlot>\n )}\n </Input>\n\n {showStrengthProgress && schema && (\n <Strengthen\n value={internal ?? ''}\n show={false}\n schema={schema as any}\n />\n )}\n </KitsContainer>\n );\n};\n\nexport default KitsInputPassword;\n"],"names":["Input","InputField","InputSlot","Strengthen"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/form/inputs/InputPassword/index.native.tsx"],"sourcesContent":["import React, {useState} from \"react\";\nimport type {IKitsInputPassword} from \"@lmb-it/kitsconcerto-types\";\nimport KitsContainer from \"../../helpers/FormContainer\";\nimport {useSeparator} from \"../../../factory\";\nimport {\n KitsCoreInput as Input,\n KitsCoreInputField as InputField,\n KitsCoreInputSlot as InputSlot,\n} from \"@lmb-it/kitsconcertomobile\";\nimport {useFormInputController} from \"../../helpers/useFormInputController\";\nimport Strengthen from \"./Strengthen\";\nimport {useComponentDefaults, useFocusStyles, useResolvedStyle} from \"@lmb-it/kitsconcerto/hooks\";\nimport {useFormFieldKeyboardNav} from \"../../../hooks/useFormFieldKeyboardNav\";\nimport {mergeRefs} from \"../../../utils/mergeRefs\";\nimport { Icon } from \"../../../\";\nimport { useLanguage } from \"../../../_compat\";\n\nconst KitsInputPassword = ({ref, ...rawProps}: IKitsInputPassword) => {\n const { mergedProps: props, themeStyle, elementStyles } = useComponentDefaults('InputPassword', rawProps, 'Input');\n const resolvedThemeStyle = useResolvedStyle(themeStyle);\n const resolvedRootStyle = useResolvedStyle(elementStyles?.root || {});\n const { isRTL } = useLanguage();\n const {\n id, label, helperText, errors, invalid, required, hideError,\n leftAddon, rightAddon, isFloatedLabel, disabled,\n promptLabel, weakLabel, mediumLabel, strongLabel, header, footer,\n feedback, toggleEye, showStrengthProgress, placeholder,\n value, defaultValue, onChange, schema,\n eyeIcon, eyeSlashIcon,\n inputSize, ...rest\n } = props;\n\n const {inputRef, navProps} = useFormFieldKeyboardNav(id);\n\n const { nativeProps } = useSeparator<any>(rest);\n const { value: internal, emitChange } = useFormInputController<string>({\n value,\n defaultValue,\n onChange,\n });\n\n const [secure, setSecure] = useState(true);\n const toggleSecure = () => setSecure(!secure);\n\n const [isFocused, setFocused] = useState(false);\n const rootStyle = resolvedRootStyle && Object.keys(resolvedRootStyle).length > 0 ? resolvedRootStyle : resolvedThemeStyle;\n const focusResolvedStyle = useFocusStyles(rootStyle, isFocused);\n\n return (\n <KitsContainer\n id={id}\n helperText={helperText}\n isFloatedLabel={isFloatedLabel}\n hideError={hideError}\n required={required}\n leftAddon={leftAddon}\n rightAddon={rightAddon}\n errors={errors}\n invalid={invalid}\n label={label}\n disabled={disabled}\n inputSize={inputSize}\n elementStyles={elementStyles}\n >\n <Input\n {...(rest as any)}\n isDisabled={!!disabled}\n isInvalid={!!invalid}\n isFocused={isFocused}\n style={{width: \"100%\", ...focusResolvedStyle}}\n >\n <InputField\n ref={mergeRefs(inputRef, ref)}\n value={internal ?? ''}\n onChangeText={(txt) => emitChange(txt)}\n secureTextEntry={secure}\n editable={!disabled}\n placeholder={placeholder}\n onFocus={(e: any) => {\n setFocused(true);\n (rest as any)?.onFocus?.(e);\n }}\n onBlur={(e: any) => {\n setFocused(false);\n (rest as any)?.onBlur?.(e);\n }}\n style={{\n textAlign: isRTL ? \"right\" : \"left\",\n writingDirection: isRTL ? \"rtl\" : \"ltr\",\n }}\n {...navProps}\n />\n {toggleEye && (\n <InputSlot onPress={toggleSecure} style={{paddingHorizontal: 12}}>\n {secure\n ? (eyeIcon ?? <Icon name={'eye'} />)\n : (eyeSlashIcon ?? <Icon name={'eye-slash'} />)\n }\n </InputSlot>\n )}\n </Input>\n\n {showStrengthProgress && schema && (\n <Strengthen\n value={internal ?? ''}\n show={false}\n schema={schema as any}\n />\n )}\n </KitsContainer>\n );\n};\n\nexport default KitsInputPassword;\n"],"names":["Input","InputField","InputSlot","Strengthen"],"mappings":"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"}
@@ -61,6 +61,8 @@ require('yup');
61
61
  require('../../../packages/types/src/Css/map/index.cjs');
62
62
  require('../../../packages/types/src/Theme/shadows.cjs');
63
63
  require('../../../packages/types/src/Theme/defaultTheme.cjs');
64
+ require('../../../packages/types/src/Theme/alphaColors.cjs');
65
+ require('../../../apps/mobile/src/Factory/helpers/cssVarMap.cjs');
64
66
  require('../../../apps/mobile/src/Factory/DimensionsContext.cjs');
65
67
  var useSeparator = require('../../../apps/mobile/src/Factory/useSeparator.cjs');
66
68
  require('i18next');
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../../../src/form/inputs/InputSwitch/index.native.tsx"],"sourcesContent":["import React, {useEffect, useState} from 'react';\nimport { View, Text } from 'react-native';\nimport { Switch } from '@lmb-it/kitsconcertomobile';\nimport KitsContainer from '../../helpers/FormContainer';\nimport type { IKitsInputSwitch } from '@lmb-it/kitsconcerto-types';\nimport { useSeparator } from \"../../../factory\";\nimport {useComponentDefaults, useResolvedStyle, useThemedFont} from \"@lmb-it/kitsconcerto/hooks\";\nimport CheckboxButton from \"../../controls/Checkbox/checkbox\";\n\nconst KitsInputSwitch: React.FC<IKitsInputSwitch> = ({ ref, ...rawProps }) => {\n const {mergedProps: props, themeStyle, elementStyles} = useComponentDefaults('Switch', rawProps);\n const resolvedThemeStyle = useResolvedStyle(themeStyle);\n const resolvedRootStyle = useResolvedStyle(elementStyles?.root || {});\n // Switch states — track in OFF/ON, thumb in OFF/ON. RN's Switch\n // exposes trackColor.{false,true} and thumbColor for these directly,\n // sourced from the new typed slot keys.\n const trackStyle = useResolvedStyle(elementStyles?.track || {});\n const trackOnStyle = useResolvedStyle(elementStyles?.trackOn || {});\n const thumbStyle = useResolvedStyle(elementStyles?.thumb || {});\n const thumbOnStyle = useResolvedStyle(elementStyles?.thumbOn || {});\n // Row-mode label / helperText / error styles. Sourced from\n // FormElement < Switch < per-instance slots so consumers can retune\n // them without touching component code.\n const labelStyle = useResolvedStyle(elementStyles?.label || {});\n const helperTextStyle = useResolvedStyle(elementStyles?.helperText || {});\n const errorStyle = useResolvedStyle(elementStyles?.error || {});\n const themedFont = useThemedFont('body');\n const {\n id,\n label,\n helperText,\n errors,\n invalid,\n required,\n disabled,\n value,\n checked,\n defaultValue,\n onChange,\n displayAs,\n direction,\n containerStyle,\n localProps,\n ...rest\n } = props;\n\n const isCheckbox = displayAs === 'checkbox';\n\n // Controlled value: explicit `checked` or `value` prop\n const controlledValue = typeof checked === 'boolean' ? checked\n : typeof value === 'boolean' ? value\n : undefined;\n\n // Default value: only used when neither checked nor value is set (uncontrolled)\n const resolvedDefault = typeof defaultValue === 'boolean' ? defaultValue : false;\n\n // Determine if component is controlled\n const isControlled = controlledValue !== undefined;\n\n // For uncontrolled mode, maintain internal state initialized from defaultValue\n const [internal, setInternal] = useState<boolean>(isControlled ? (controlledValue as boolean) : resolvedDefault);\n\n useEffect(() => {\n // If controlled, always reflect the incoming value\n if (isControlled) {\n setInternal(controlledValue as boolean);\n }\n }, [controlledValue, isControlled]);\n\n const handleToggle = (newVal: boolean) => {\n if (!isControlled) {\n setInternal(newVal);\n }\n // Always call onChange if provided\n onChange?.({ target: { value: newVal }, value: newVal });\n };\n\n const { nativeProps, cssProps } = useSeparator<any>({ ...rest, ...(localProps as any) });\n\n // Resolve display label text for checkbox mode\n const labelText = typeof label === 'string' ? label\n : typeof label === 'object' && label !== null && 'text' in (label as any) ? (label as any).text\n : undefined;\n\n const Element = isCheckbox\n ? <CheckboxButton\n item={{\n value: true,\n label: labelText ?? '',\n withBulbs: true,\n labelPosition: 'right',\n }}\n selected={!!internal}\n disabled={disabled}\n isInvalid={invalid}\n onToggle={() => handleToggle(!internal)}\n />\n : <Switch\n {...nativeProps}\n ref={ref as any}\n style={{\n ...(resolvedRootStyle && Object.keys(resolvedRootStyle).length > 0 ? resolvedRootStyle : resolvedThemeStyle),\n // Track non-color styling (border-radius, transitions, etc.)\n // is merged from track + trackOn (when ON) into the root style.\n ...(internal ? {...trackStyle, ...trackOnStyle} : trackStyle),\n ...(cssProps as any),\n }}\n // RN Switch consumes track/thumb colors via these props directly.\n trackColor={{\n false: (trackStyle as any).backgroundColor,\n true: (trackOnStyle as any).backgroundColor ?? (trackStyle as any).backgroundColor,\n }}\n thumbColor={internal\n ? ((thumbOnStyle as any).backgroundColor ?? (thumbStyle as any).backgroundColor)\n : (thumbStyle as any).backgroundColor}\n value={internal}\n isDisabled={!!disabled}\n isInvalid={!!invalid}\n onToggle={handleToggle}\n />;\n\n const isRow = direction === 'row';\n\n if (isRow && !isCheckbox) {\n const rowLabelText = typeof label === 'string' ? label\n : typeof label === 'object' && label !== null && 'text' in (label as any) ? (label as any).text\n : undefined;\n\n return (\n <View style={{ width: '100%' }}>\n <View style={{\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n width: '100%',\n }}>\n {rowLabelText ? (\n <Text style={{\n opacity: disabled ? 0.6 : 1,\n ...(themedFont ? {fontFamily: themedFont} : {}),\n ...labelStyle,\n }}>{rowLabelText}</Text>\n ) : null}\n {Element}\n </View>\n {helperText && typeof helperText === 'string' ? (\n <Text style={{ marginTop: 4, ...(themedFont ? {fontFamily: themedFont} : {}), ...helperTextStyle }}>{helperText}</Text>\n ) : null}\n {errors ? (\n <Text style={{ marginTop: 4, ...(themedFont ? {fontFamily: themedFont} : {}), ...errorStyle }}>{errors}</Text>\n ) : null}\n </View>\n );\n }\n\n return (\n <KitsContainer\n id={id}\n required={required}\n helperText={helperText}\n errors={errors}\n invalid={invalid}\n label={isCheckbox ? undefined : label}\n disabled={disabled}\n bare\n containerStyle={containerStyle}\n elementStyles={elementStyles}\n >\n {Element}\n </KitsContainer>\n );\n};\n\nexport default KitsInputSwitch;\n"],"names":["useComponentDefaults","useResolvedStyle","useThemedFont","useState","useEffect","useSeparator","jsx","CheckboxButton","Switch","View","jsxs","Text","KitsContainer"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../../../src/form/inputs/InputSwitch/index.native.tsx"],"sourcesContent":["import React, {useEffect, useState} from 'react';\nimport { View, Text } from 'react-native';\nimport { Switch } from '@lmb-it/kitsconcertomobile';\nimport KitsContainer from '../../helpers/FormContainer';\nimport type { IKitsInputSwitch } from '@lmb-it/kitsconcerto-types';\nimport { useSeparator } from \"../../../factory\";\nimport {useComponentDefaults, useResolvedStyle, useThemedFont} from \"@lmb-it/kitsconcerto/hooks\";\nimport CheckboxButton from \"../../controls/Checkbox/checkbox\";\n\nconst KitsInputSwitch: React.FC<IKitsInputSwitch> = ({ ref, ...rawProps }) => {\n const {mergedProps: props, themeStyle, elementStyles} = useComponentDefaults('Switch', rawProps);\n const resolvedThemeStyle = useResolvedStyle(themeStyle);\n const resolvedRootStyle = useResolvedStyle(elementStyles?.root || {});\n // Switch states — track in OFF/ON, thumb in OFF/ON. RN's Switch\n // exposes trackColor.{false,true} and thumbColor for these directly,\n // sourced from the new typed slot keys.\n const trackStyle = useResolvedStyle(elementStyles?.track || {});\n const trackOnStyle = useResolvedStyle(elementStyles?.trackOn || {});\n const thumbStyle = useResolvedStyle(elementStyles?.thumb || {});\n const thumbOnStyle = useResolvedStyle(elementStyles?.thumbOn || {});\n // Row-mode label / helperText / error styles. Sourced from\n // FormElement < Switch < per-instance slots so consumers can retune\n // them without touching component code.\n const labelStyle = useResolvedStyle(elementStyles?.label || {});\n const helperTextStyle = useResolvedStyle(elementStyles?.helperText || {});\n const errorStyle = useResolvedStyle(elementStyles?.error || {});\n const themedFont = useThemedFont('body');\n const {\n id,\n label,\n helperText,\n errors,\n invalid,\n required,\n disabled,\n value,\n checked,\n defaultValue,\n onChange,\n displayAs,\n direction,\n containerStyle,\n localProps,\n ...rest\n } = props;\n\n const isCheckbox = displayAs === 'checkbox';\n\n // Controlled value: explicit `checked` or `value` prop\n const controlledValue = typeof checked === 'boolean' ? checked\n : typeof value === 'boolean' ? value\n : undefined;\n\n // Default value: only used when neither checked nor value is set (uncontrolled)\n const resolvedDefault = typeof defaultValue === 'boolean' ? defaultValue : false;\n\n // Determine if component is controlled\n const isControlled = controlledValue !== undefined;\n\n // For uncontrolled mode, maintain internal state initialized from defaultValue\n const [internal, setInternal] = useState<boolean>(isControlled ? (controlledValue as boolean) : resolvedDefault);\n\n useEffect(() => {\n // If controlled, always reflect the incoming value\n if (isControlled) {\n setInternal(controlledValue as boolean);\n }\n }, [controlledValue, isControlled]);\n\n const handleToggle = (newVal: boolean) => {\n if (!isControlled) {\n setInternal(newVal);\n }\n // Always call onChange if provided\n onChange?.({ target: { value: newVal }, value: newVal });\n };\n\n const { nativeProps, cssProps } = useSeparator<any>({ ...rest, ...(localProps as any) });\n\n // Resolve display label text for checkbox mode\n const labelText = typeof label === 'string' ? label\n : typeof label === 'object' && label !== null && 'text' in (label as any) ? (label as any).text\n : undefined;\n\n const Element = isCheckbox\n ? <CheckboxButton\n item={{\n value: true,\n label: labelText ?? '',\n withBulbs: true,\n labelPosition: 'right',\n }}\n selected={!!internal}\n disabled={disabled}\n isInvalid={invalid}\n onToggle={() => handleToggle(!internal)}\n />\n : <Switch\n {...nativeProps}\n ref={ref as any}\n style={{\n ...(resolvedRootStyle && Object.keys(resolvedRootStyle).length > 0 ? resolvedRootStyle : resolvedThemeStyle),\n // Track non-color styling (border-radius, transitions, etc.)\n // is merged from track + trackOn (when ON) into the root style.\n ...(internal ? {...trackStyle, ...trackOnStyle} : trackStyle),\n ...(cssProps as any),\n }}\n // RN Switch consumes track/thumb colors via these props directly.\n trackColor={{\n false: (trackStyle as any).backgroundColor,\n true: (trackOnStyle as any).backgroundColor ?? (trackStyle as any).backgroundColor,\n }}\n thumbColor={internal\n ? ((thumbOnStyle as any).backgroundColor ?? (thumbStyle as any).backgroundColor)\n : (thumbStyle as any).backgroundColor}\n value={internal}\n isDisabled={!!disabled}\n isInvalid={!!invalid}\n onToggle={handleToggle}\n />;\n\n const isRow = direction === 'row';\n\n if (isRow && !isCheckbox) {\n const rowLabelText = typeof label === 'string' ? label\n : typeof label === 'object' && label !== null && 'text' in (label as any) ? (label as any).text\n : undefined;\n\n return (\n <View style={{ width: '100%' }}>\n <View style={{\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n width: '100%',\n }}>\n {rowLabelText ? (\n <Text style={{\n opacity: disabled ? 0.6 : 1,\n ...(themedFont ? {fontFamily: themedFont} : {}),\n ...labelStyle,\n }}>{rowLabelText}</Text>\n ) : null}\n {Element}\n </View>\n {helperText && typeof helperText === 'string' ? (\n <Text style={{ marginTop: 4, ...(themedFont ? {fontFamily: themedFont} : {}), ...helperTextStyle }}>{helperText}</Text>\n ) : null}\n {errors ? (\n <Text style={{ marginTop: 4, ...(themedFont ? {fontFamily: themedFont} : {}), ...errorStyle }}>{errors}</Text>\n ) : null}\n </View>\n );\n }\n\n return (\n <KitsContainer\n id={id}\n required={required}\n helperText={helperText}\n errors={errors}\n invalid={invalid}\n label={isCheckbox ? undefined : label}\n disabled={disabled}\n bare\n containerStyle={containerStyle}\n elementStyles={elementStyles}\n >\n {Element}\n </KitsContainer>\n );\n};\n\nexport default KitsInputSwitch;\n"],"names":["useComponentDefaults","useResolvedStyle","useThemedFont","useState","useEffect","useSeparator","jsx","CheckboxButton","Switch","View","jsxs","Text","KitsContainer"],"mappings":"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"}
@@ -57,6 +57,8 @@ import 'yup';
57
57
  import '../../../packages/types/src/Css/map/index.js';
58
58
  import '../../../packages/types/src/Theme/shadows.js';
59
59
  import '../../../packages/types/src/Theme/defaultTheme.js';
60
+ import '../../../packages/types/src/Theme/alphaColors.js';
61
+ import '../../../apps/mobile/src/Factory/helpers/cssVarMap.js';
60
62
  import '../../../apps/mobile/src/Factory/DimensionsContext.js';
61
63
  import useSeparator from '../../../apps/mobile/src/Factory/useSeparator.js';
62
64
  import 'i18next';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/form/inputs/InputSwitch/index.native.tsx"],"sourcesContent":["import React, {useEffect, useState} from 'react';\nimport { View, Text } from 'react-native';\nimport { Switch } from '@lmb-it/kitsconcertomobile';\nimport KitsContainer from '../../helpers/FormContainer';\nimport type { IKitsInputSwitch } from '@lmb-it/kitsconcerto-types';\nimport { useSeparator } from \"../../../factory\";\nimport {useComponentDefaults, useResolvedStyle, useThemedFont} from \"@lmb-it/kitsconcerto/hooks\";\nimport CheckboxButton from \"../../controls/Checkbox/checkbox\";\n\nconst KitsInputSwitch: React.FC<IKitsInputSwitch> = ({ ref, ...rawProps }) => {\n const {mergedProps: props, themeStyle, elementStyles} = useComponentDefaults('Switch', rawProps);\n const resolvedThemeStyle = useResolvedStyle(themeStyle);\n const resolvedRootStyle = useResolvedStyle(elementStyles?.root || {});\n // Switch states — track in OFF/ON, thumb in OFF/ON. RN's Switch\n // exposes trackColor.{false,true} and thumbColor for these directly,\n // sourced from the new typed slot keys.\n const trackStyle = useResolvedStyle(elementStyles?.track || {});\n const trackOnStyle = useResolvedStyle(elementStyles?.trackOn || {});\n const thumbStyle = useResolvedStyle(elementStyles?.thumb || {});\n const thumbOnStyle = useResolvedStyle(elementStyles?.thumbOn || {});\n // Row-mode label / helperText / error styles. Sourced from\n // FormElement < Switch < per-instance slots so consumers can retune\n // them without touching component code.\n const labelStyle = useResolvedStyle(elementStyles?.label || {});\n const helperTextStyle = useResolvedStyle(elementStyles?.helperText || {});\n const errorStyle = useResolvedStyle(elementStyles?.error || {});\n const themedFont = useThemedFont('body');\n const {\n id,\n label,\n helperText,\n errors,\n invalid,\n required,\n disabled,\n value,\n checked,\n defaultValue,\n onChange,\n displayAs,\n direction,\n containerStyle,\n localProps,\n ...rest\n } = props;\n\n const isCheckbox = displayAs === 'checkbox';\n\n // Controlled value: explicit `checked` or `value` prop\n const controlledValue = typeof checked === 'boolean' ? checked\n : typeof value === 'boolean' ? value\n : undefined;\n\n // Default value: only used when neither checked nor value is set (uncontrolled)\n const resolvedDefault = typeof defaultValue === 'boolean' ? defaultValue : false;\n\n // Determine if component is controlled\n const isControlled = controlledValue !== undefined;\n\n // For uncontrolled mode, maintain internal state initialized from defaultValue\n const [internal, setInternal] = useState<boolean>(isControlled ? (controlledValue as boolean) : resolvedDefault);\n\n useEffect(() => {\n // If controlled, always reflect the incoming value\n if (isControlled) {\n setInternal(controlledValue as boolean);\n }\n }, [controlledValue, isControlled]);\n\n const handleToggle = (newVal: boolean) => {\n if (!isControlled) {\n setInternal(newVal);\n }\n // Always call onChange if provided\n onChange?.({ target: { value: newVal }, value: newVal });\n };\n\n const { nativeProps, cssProps } = useSeparator<any>({ ...rest, ...(localProps as any) });\n\n // Resolve display label text for checkbox mode\n const labelText = typeof label === 'string' ? label\n : typeof label === 'object' && label !== null && 'text' in (label as any) ? (label as any).text\n : undefined;\n\n const Element = isCheckbox\n ? <CheckboxButton\n item={{\n value: true,\n label: labelText ?? '',\n withBulbs: true,\n labelPosition: 'right',\n }}\n selected={!!internal}\n disabled={disabled}\n isInvalid={invalid}\n onToggle={() => handleToggle(!internal)}\n />\n : <Switch\n {...nativeProps}\n ref={ref as any}\n style={{\n ...(resolvedRootStyle && Object.keys(resolvedRootStyle).length > 0 ? resolvedRootStyle : resolvedThemeStyle),\n // Track non-color styling (border-radius, transitions, etc.)\n // is merged from track + trackOn (when ON) into the root style.\n ...(internal ? {...trackStyle, ...trackOnStyle} : trackStyle),\n ...(cssProps as any),\n }}\n // RN Switch consumes track/thumb colors via these props directly.\n trackColor={{\n false: (trackStyle as any).backgroundColor,\n true: (trackOnStyle as any).backgroundColor ?? (trackStyle as any).backgroundColor,\n }}\n thumbColor={internal\n ? ((thumbOnStyle as any).backgroundColor ?? (thumbStyle as any).backgroundColor)\n : (thumbStyle as any).backgroundColor}\n value={internal}\n isDisabled={!!disabled}\n isInvalid={!!invalid}\n onToggle={handleToggle}\n />;\n\n const isRow = direction === 'row';\n\n if (isRow && !isCheckbox) {\n const rowLabelText = typeof label === 'string' ? label\n : typeof label === 'object' && label !== null && 'text' in (label as any) ? (label as any).text\n : undefined;\n\n return (\n <View style={{ width: '100%' }}>\n <View style={{\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n width: '100%',\n }}>\n {rowLabelText ? (\n <Text style={{\n opacity: disabled ? 0.6 : 1,\n ...(themedFont ? {fontFamily: themedFont} : {}),\n ...labelStyle,\n }}>{rowLabelText}</Text>\n ) : null}\n {Element}\n </View>\n {helperText && typeof helperText === 'string' ? (\n <Text style={{ marginTop: 4, ...(themedFont ? {fontFamily: themedFont} : {}), ...helperTextStyle }}>{helperText}</Text>\n ) : null}\n {errors ? (\n <Text style={{ marginTop: 4, ...(themedFont ? {fontFamily: themedFont} : {}), ...errorStyle }}>{errors}</Text>\n ) : null}\n </View>\n );\n }\n\n return (\n <KitsContainer\n id={id}\n required={required}\n helperText={helperText}\n errors={errors}\n invalid={invalid}\n label={isCheckbox ? undefined : label}\n disabled={disabled}\n bare\n containerStyle={containerStyle}\n elementStyles={elementStyles}\n >\n {Element}\n </KitsContainer>\n );\n};\n\nexport default KitsInputSwitch;\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/form/inputs/InputSwitch/index.native.tsx"],"sourcesContent":["import React, {useEffect, useState} from 'react';\nimport { View, Text } from 'react-native';\nimport { Switch } from '@lmb-it/kitsconcertomobile';\nimport KitsContainer from '../../helpers/FormContainer';\nimport type { IKitsInputSwitch } from '@lmb-it/kitsconcerto-types';\nimport { useSeparator } from \"../../../factory\";\nimport {useComponentDefaults, useResolvedStyle, useThemedFont} from \"@lmb-it/kitsconcerto/hooks\";\nimport CheckboxButton from \"../../controls/Checkbox/checkbox\";\n\nconst KitsInputSwitch: React.FC<IKitsInputSwitch> = ({ ref, ...rawProps }) => {\n const {mergedProps: props, themeStyle, elementStyles} = useComponentDefaults('Switch', rawProps);\n const resolvedThemeStyle = useResolvedStyle(themeStyle);\n const resolvedRootStyle = useResolvedStyle(elementStyles?.root || {});\n // Switch states — track in OFF/ON, thumb in OFF/ON. RN's Switch\n // exposes trackColor.{false,true} and thumbColor for these directly,\n // sourced from the new typed slot keys.\n const trackStyle = useResolvedStyle(elementStyles?.track || {});\n const trackOnStyle = useResolvedStyle(elementStyles?.trackOn || {});\n const thumbStyle = useResolvedStyle(elementStyles?.thumb || {});\n const thumbOnStyle = useResolvedStyle(elementStyles?.thumbOn || {});\n // Row-mode label / helperText / error styles. Sourced from\n // FormElement < Switch < per-instance slots so consumers can retune\n // them without touching component code.\n const labelStyle = useResolvedStyle(elementStyles?.label || {});\n const helperTextStyle = useResolvedStyle(elementStyles?.helperText || {});\n const errorStyle = useResolvedStyle(elementStyles?.error || {});\n const themedFont = useThemedFont('body');\n const {\n id,\n label,\n helperText,\n errors,\n invalid,\n required,\n disabled,\n value,\n checked,\n defaultValue,\n onChange,\n displayAs,\n direction,\n containerStyle,\n localProps,\n ...rest\n } = props;\n\n const isCheckbox = displayAs === 'checkbox';\n\n // Controlled value: explicit `checked` or `value` prop\n const controlledValue = typeof checked === 'boolean' ? checked\n : typeof value === 'boolean' ? value\n : undefined;\n\n // Default value: only used when neither checked nor value is set (uncontrolled)\n const resolvedDefault = typeof defaultValue === 'boolean' ? defaultValue : false;\n\n // Determine if component is controlled\n const isControlled = controlledValue !== undefined;\n\n // For uncontrolled mode, maintain internal state initialized from defaultValue\n const [internal, setInternal] = useState<boolean>(isControlled ? (controlledValue as boolean) : resolvedDefault);\n\n useEffect(() => {\n // If controlled, always reflect the incoming value\n if (isControlled) {\n setInternal(controlledValue as boolean);\n }\n }, [controlledValue, isControlled]);\n\n const handleToggle = (newVal: boolean) => {\n if (!isControlled) {\n setInternal(newVal);\n }\n // Always call onChange if provided\n onChange?.({ target: { value: newVal }, value: newVal });\n };\n\n const { nativeProps, cssProps } = useSeparator<any>({ ...rest, ...(localProps as any) });\n\n // Resolve display label text for checkbox mode\n const labelText = typeof label === 'string' ? label\n : typeof label === 'object' && label !== null && 'text' in (label as any) ? (label as any).text\n : undefined;\n\n const Element = isCheckbox\n ? <CheckboxButton\n item={{\n value: true,\n label: labelText ?? '',\n withBulbs: true,\n labelPosition: 'right',\n }}\n selected={!!internal}\n disabled={disabled}\n isInvalid={invalid}\n onToggle={() => handleToggle(!internal)}\n />\n : <Switch\n {...nativeProps}\n ref={ref as any}\n style={{\n ...(resolvedRootStyle && Object.keys(resolvedRootStyle).length > 0 ? resolvedRootStyle : resolvedThemeStyle),\n // Track non-color styling (border-radius, transitions, etc.)\n // is merged from track + trackOn (when ON) into the root style.\n ...(internal ? {...trackStyle, ...trackOnStyle} : trackStyle),\n ...(cssProps as any),\n }}\n // RN Switch consumes track/thumb colors via these props directly.\n trackColor={{\n false: (trackStyle as any).backgroundColor,\n true: (trackOnStyle as any).backgroundColor ?? (trackStyle as any).backgroundColor,\n }}\n thumbColor={internal\n ? ((thumbOnStyle as any).backgroundColor ?? (thumbStyle as any).backgroundColor)\n : (thumbStyle as any).backgroundColor}\n value={internal}\n isDisabled={!!disabled}\n isInvalid={!!invalid}\n onToggle={handleToggle}\n />;\n\n const isRow = direction === 'row';\n\n if (isRow && !isCheckbox) {\n const rowLabelText = typeof label === 'string' ? label\n : typeof label === 'object' && label !== null && 'text' in (label as any) ? (label as any).text\n : undefined;\n\n return (\n <View style={{ width: '100%' }}>\n <View style={{\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n width: '100%',\n }}>\n {rowLabelText ? (\n <Text style={{\n opacity: disabled ? 0.6 : 1,\n ...(themedFont ? {fontFamily: themedFont} : {}),\n ...labelStyle,\n }}>{rowLabelText}</Text>\n ) : null}\n {Element}\n </View>\n {helperText && typeof helperText === 'string' ? (\n <Text style={{ marginTop: 4, ...(themedFont ? {fontFamily: themedFont} : {}), ...helperTextStyle }}>{helperText}</Text>\n ) : null}\n {errors ? (\n <Text style={{ marginTop: 4, ...(themedFont ? {fontFamily: themedFont} : {}), ...errorStyle }}>{errors}</Text>\n ) : null}\n </View>\n );\n }\n\n return (\n <KitsContainer\n id={id}\n required={required}\n helperText={helperText}\n errors={errors}\n invalid={invalid}\n label={isCheckbox ? undefined : label}\n disabled={disabled}\n bare\n containerStyle={containerStyle}\n elementStyles={elementStyles}\n >\n {Element}\n </KitsContainer>\n );\n};\n\nexport default KitsInputSwitch;\n"],"names":[],"mappings":"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"}
@@ -65,6 +65,8 @@ require('yup');
65
65
  require('../../../packages/types/src/Css/map/index.cjs');
66
66
  require('../../../packages/types/src/Theme/shadows.cjs');
67
67
  require('../../../packages/types/src/Theme/defaultTheme.cjs');
68
+ require('../../../packages/types/src/Theme/alphaColors.cjs');
69
+ require('../../../apps/mobile/src/Factory/helpers/cssVarMap.cjs');
68
70
  require('../../../apps/mobile/src/Factory/DimensionsContext.cjs');
69
71
  require('i18next');
70
72
  require('react-i18next');
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../../../src/form/inputs/InputText/index.native.tsx"],"sourcesContent":["import React, {ReactPortal} from \"react\";\nimport type { IKitsInputText } from \"@lmb-it/kitsconcerto-types\";\nimport KitsContainer from \"../../helpers/FormContainer\";\nimport { applyKeyFilterKeepPrev } from \"../../helpers/native/keyfilter\";\nimport { keyboardTypeFromKeyFilter } from \"../../helpers/native/keyboardFromFilter\";\nimport { FloatLabelNative } from \"../../helpers/native/FloatLabel\";\nimport {\n KitsCoreInput as Input,\n KitsCoreInputField as InputField,\n KitsCoreInputSlot as InputSlot,\n style,\n} from \"@lmb-it/kitsconcertomobile\";\nimport { View } from \"react-native\";\nimport {useComponentDefaults, useFocusStyles, useResolvedStyle} from \"@lmb-it/kitsconcerto/hooks\";\nimport {useFormFieldKeyboardNav} from \"../../../hooks/useFormFieldKeyboardNav\";\nimport {mergeRefs} from \"../../../utils/mergeRefs\";\nimport { useLanguage } from \"../../../_compat\";\n\nconst KitsInputText = ({ ref, ...rawProps }: IKitsInputText) => {\n const {mergedProps: props, themeStyle, elementStyles} = useComponentDefaults('InputText', rawProps, 'Input');\n const resolvedThemeStyle = useResolvedStyle(themeStyle);\n const resolvedRootStyle = useResolvedStyle(elementStyles?.root || {});\n const { isRTL } = useLanguage();\n\n const {\n id,\n label,\n rightAddon,\n leftAddon,\n errors,\n invalid,\n hideError,\n required,\n keyFilter,\n value,\n defaultValue,\n attached,\n onChange,\n disabled,\n helperText,\n isFloatedLabel,\n placeholder,\n containerStyle,\n localProps,\n keyboardNavId,\n keyboardType,\n maxLength,\n minLength: _minLength, // submit-time only — RN has no minLength prop\n ...rest\n } = props;\n\n\n const resolvedKeyboardType = keyboardType ?? keyboardTypeFromKeyFilter(keyFilter as any);\n\n const {inputRef, navProps} = useFormFieldKeyboardNav(keyboardNavId ?? id);\n\n /** 🔑 controlled detection */\n const isControlled = value !== undefined;\n\n /** 🔹 internal state only for uncontrolled */\n const [internalValue, setInternalValue] = React.useState<string>(\n String(defaultValue ?? \"\")\n );\n\n /** 🔹 focused state (for FloatLabel + _focus styles) */\n const [isFocused, setFocused] = React.useState(false);\n const rootStyle = resolvedRootStyle && Object.keys(resolvedRootStyle).length > 0 ? resolvedRootStyle : resolvedThemeStyle;\n\n\n\n const focusResolvedStyle = useFocusStyles(rootStyle, isFocused);\n\n\n /** 🔄 sync only when controlled */\n React.useEffect(() => {\n if (isControlled) {\n setInternalValue(String(value ?? \"\"));\n }\n }, [isControlled, value]);\n\n /** ✍️ change handler */\n const handleChangeText = (nextRaw: string) => {\n const prev = isControlled ? String(value ?? \"\") : internalValue;\n\n const filtered = keyFilter\n ? applyKeyFilterKeepPrev(prev, nextRaw, keyFilter as any)\n : nextRaw;\n\n if (!isControlled) {\n setInternalValue(filtered);\n }\n\n onChange?.({\n target: { value: filtered },\n } as any);\n };\n\n const displayValue = isControlled\n ? String(value ?? \"\")\n : internalValue;\n\n const inputEl = (\n <Input\n {...(localProps as any)}\n isDisabled={!!disabled}\n isInvalid={!!invalid}\n isFocused={isFocused}\n style={resolvedRootStyle}\n {...(rest as any)}\n >\n <InputField\n ref={mergeRefs(inputRef, ref)}\n value={displayValue}\n placeholder={isFloatedLabel ? undefined : placeholder}\n editable={!disabled}\n keyboardType={resolvedKeyboardType}\n maxLength={maxLength}\n onChangeText={handleChangeText}\n onFocus={(e: any) => {\n setFocused(true);\n (rest as any)?.onFocus?.(e);\n }}\n onBlur={(e: any) => {\n setFocused(false);\n (rest as any)?.onBlur?.(e);\n }}\n // Locale-aware alignment — placeholder and typed text both\n // need explicit textAlign so they start at the reading edge.\n // RN's TextInput default of 'auto' picks alignment from the\n // first character, which fails on empty inputs (placeholder\n // sits at the wrong edge in RTL).\n style={{\n textAlign: isRTL ? \"right\" : \"left\",\n writingDirection: isRTL ? \"rtl\" : \"ltr\",\n }}\n {...navProps}\n />\n </Input>\n );\n\n // `attached`: input is being placed inside an outer group that already\n // owns the chrome (FormContainer is upstream). Mirror web: return the\n // bare Input element. Addon rendering belongs to FormContainer alone —\n // see helpers/FormContainer/index.native.tsx.\n if(attached){\n return isFloatedLabel ? (\n <FloatLabelNative\n label={\n typeof label === \"string\"\n ? label\n : (label as any)?.text ?? \"\"\n }\n value={displayValue}\n isFocused={isFocused}\n disabled={disabled}\n onFocusRequest={() => setFocused(true)}\n >\n <View style={{ width: \"100%\" }}>\n {inputEl}\n </View>\n </FloatLabelNative>\n ) : (\n inputEl\n )\n }\n\n return (\n <KitsContainer\n id={id}\n disabled={disabled}\n hideError={hideError}\n isFloatedLabel={isFloatedLabel}\n helperText={helperText}\n rightAddon={rightAddon}\n leftAddon={leftAddon}\n required={required}\n errors={errors}\n invalid={invalid}\n label={label}\n containerStyle={containerStyle}\n elementStyles={elementStyles}\n >\n {isFloatedLabel ? (\n <FloatLabelNative\n label={\n typeof label === \"string\"\n ? label\n : (label as any)?.text ?? \"\"\n }\n value={displayValue}\n isFocused={isFocused}\n disabled={disabled}\n onFocusRequest={() => setFocused(true)}\n >\n {inputEl}\n </FloatLabelNative>\n ) : (\n inputEl\n )}\n </KitsContainer>\n );\n};\n\nexport default KitsInputText;\n"],"names":["useComponentDefaults","useResolvedStyle","useLanguage","keyboardTypeFromKeyFilter","useFormFieldKeyboardNav","useFocusStyles","applyKeyFilterKeepPrev","jsx","Input","InputField","mergeRefs","FloatLabelNative","View","KitsContainer"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../../../src/form/inputs/InputText/index.native.tsx"],"sourcesContent":["import React, {ReactPortal} from \"react\";\nimport type { IKitsInputText } from \"@lmb-it/kitsconcerto-types\";\nimport KitsContainer from \"../../helpers/FormContainer\";\nimport { applyKeyFilterKeepPrev } from \"../../helpers/native/keyfilter\";\nimport { keyboardTypeFromKeyFilter } from \"../../helpers/native/keyboardFromFilter\";\nimport { FloatLabelNative } from \"../../helpers/native/FloatLabel\";\nimport {\n KitsCoreInput as Input,\n KitsCoreInputField as InputField,\n KitsCoreInputSlot as InputSlot,\n style,\n} from \"@lmb-it/kitsconcertomobile\";\nimport { View } from \"react-native\";\nimport {useComponentDefaults, useFocusStyles, useResolvedStyle} from \"@lmb-it/kitsconcerto/hooks\";\nimport {useFormFieldKeyboardNav} from \"../../../hooks/useFormFieldKeyboardNav\";\nimport {mergeRefs} from \"../../../utils/mergeRefs\";\nimport { useLanguage } from \"../../../_compat\";\n\nconst KitsInputText = ({ ref, ...rawProps }: IKitsInputText) => {\n const {mergedProps: props, themeStyle, elementStyles} = useComponentDefaults('InputText', rawProps, 'Input');\n const resolvedThemeStyle = useResolvedStyle(themeStyle);\n const resolvedRootStyle = useResolvedStyle(elementStyles?.root || {});\n const { isRTL } = useLanguage();\n\n const {\n id,\n label,\n rightAddon,\n leftAddon,\n errors,\n invalid,\n hideError,\n required,\n keyFilter,\n value,\n defaultValue,\n attached,\n onChange,\n disabled,\n helperText,\n isFloatedLabel,\n placeholder,\n containerStyle,\n localProps,\n keyboardNavId,\n keyboardType,\n maxLength,\n minLength: _minLength, // submit-time only — RN has no minLength prop\n ...rest\n } = props;\n\n\n const resolvedKeyboardType = keyboardType ?? keyboardTypeFromKeyFilter(keyFilter as any);\n\n const {inputRef, navProps} = useFormFieldKeyboardNav(keyboardNavId ?? id);\n\n /** 🔑 controlled detection */\n const isControlled = value !== undefined;\n\n /** 🔹 internal state only for uncontrolled */\n const [internalValue, setInternalValue] = React.useState<string>(\n String(defaultValue ?? \"\")\n );\n\n /** 🔹 focused state (for FloatLabel + _focus styles) */\n const [isFocused, setFocused] = React.useState(false);\n const rootStyle = resolvedRootStyle && Object.keys(resolvedRootStyle).length > 0 ? resolvedRootStyle : resolvedThemeStyle;\n\n\n\n const focusResolvedStyle = useFocusStyles(rootStyle, isFocused);\n\n\n /** 🔄 sync only when controlled */\n React.useEffect(() => {\n if (isControlled) {\n setInternalValue(String(value ?? \"\"));\n }\n }, [isControlled, value]);\n\n /** ✍️ change handler */\n const handleChangeText = (nextRaw: string) => {\n const prev = isControlled ? String(value ?? \"\") : internalValue;\n\n const filtered = keyFilter\n ? applyKeyFilterKeepPrev(prev, nextRaw, keyFilter as any)\n : nextRaw;\n\n if (!isControlled) {\n setInternalValue(filtered);\n }\n\n onChange?.({\n target: { value: filtered },\n } as any);\n };\n\n const displayValue = isControlled\n ? String(value ?? \"\")\n : internalValue;\n\n const inputEl = (\n <Input\n {...(localProps as any)}\n isDisabled={!!disabled}\n isInvalid={!!invalid}\n isFocused={isFocused}\n style={resolvedRootStyle}\n {...(rest as any)}\n >\n <InputField\n ref={mergeRefs(inputRef, ref)}\n value={displayValue}\n placeholder={isFloatedLabel ? undefined : placeholder}\n editable={!disabled}\n keyboardType={resolvedKeyboardType}\n maxLength={maxLength}\n onChangeText={handleChangeText}\n onFocus={(e: any) => {\n setFocused(true);\n (rest as any)?.onFocus?.(e);\n }}\n onBlur={(e: any) => {\n setFocused(false);\n (rest as any)?.onBlur?.(e);\n }}\n // Locale-aware alignment — placeholder and typed text both\n // need explicit textAlign so they start at the reading edge.\n // RN's TextInput default of 'auto' picks alignment from the\n // first character, which fails on empty inputs (placeholder\n // sits at the wrong edge in RTL).\n style={{\n textAlign: isRTL ? \"right\" : \"left\",\n writingDirection: isRTL ? \"rtl\" : \"ltr\",\n }}\n {...navProps}\n />\n </Input>\n );\n\n // `attached`: input is being placed inside an outer group that already\n // owns the chrome (FormContainer is upstream). Mirror web: return the\n // bare Input element. Addon rendering belongs to FormContainer alone —\n // see helpers/FormContainer/index.native.tsx.\n if(attached){\n return isFloatedLabel ? (\n <FloatLabelNative\n label={\n typeof label === \"string\"\n ? label\n : (label as any)?.text ?? \"\"\n }\n value={displayValue}\n isFocused={isFocused}\n disabled={disabled}\n onFocusRequest={() => setFocused(true)}\n >\n <View style={{ width: \"100%\" }}>\n {inputEl}\n </View>\n </FloatLabelNative>\n ) : (\n inputEl\n )\n }\n\n return (\n <KitsContainer\n id={id}\n disabled={disabled}\n hideError={hideError}\n isFloatedLabel={isFloatedLabel}\n helperText={helperText}\n rightAddon={rightAddon}\n leftAddon={leftAddon}\n required={required}\n errors={errors}\n invalid={invalid}\n label={label}\n containerStyle={containerStyle}\n elementStyles={elementStyles}\n >\n {isFloatedLabel ? (\n <FloatLabelNative\n label={\n typeof label === \"string\"\n ? label\n : (label as any)?.text ?? \"\"\n }\n value={displayValue}\n isFocused={isFocused}\n disabled={disabled}\n onFocusRequest={() => setFocused(true)}\n >\n {inputEl}\n </FloatLabelNative>\n ) : (\n inputEl\n )}\n </KitsContainer>\n );\n};\n\nexport default KitsInputText;\n"],"names":["useComponentDefaults","useResolvedStyle","useLanguage","keyboardTypeFromKeyFilter","useFormFieldKeyboardNav","useFocusStyles","applyKeyFilterKeepPrev","jsx","Input","InputField","mergeRefs","FloatLabelNative","View","KitsContainer"],"mappings":"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"}
@@ -61,6 +61,8 @@ import 'yup';
61
61
  import '../../../packages/types/src/Css/map/index.js';
62
62
  import '../../../packages/types/src/Theme/shadows.js';
63
63
  import '../../../packages/types/src/Theme/defaultTheme.js';
64
+ import '../../../packages/types/src/Theme/alphaColors.js';
65
+ import '../../../apps/mobile/src/Factory/helpers/cssVarMap.js';
64
66
  import '../../../apps/mobile/src/Factory/DimensionsContext.js';
65
67
  import 'i18next';
66
68
  import 'react-i18next';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/form/inputs/InputText/index.native.tsx"],"sourcesContent":["import React, {ReactPortal} from \"react\";\nimport type { IKitsInputText } from \"@lmb-it/kitsconcerto-types\";\nimport KitsContainer from \"../../helpers/FormContainer\";\nimport { applyKeyFilterKeepPrev } from \"../../helpers/native/keyfilter\";\nimport { keyboardTypeFromKeyFilter } from \"../../helpers/native/keyboardFromFilter\";\nimport { FloatLabelNative } from \"../../helpers/native/FloatLabel\";\nimport {\n KitsCoreInput as Input,\n KitsCoreInputField as InputField,\n KitsCoreInputSlot as InputSlot,\n style,\n} from \"@lmb-it/kitsconcertomobile\";\nimport { View } from \"react-native\";\nimport {useComponentDefaults, useFocusStyles, useResolvedStyle} from \"@lmb-it/kitsconcerto/hooks\";\nimport {useFormFieldKeyboardNav} from \"../../../hooks/useFormFieldKeyboardNav\";\nimport {mergeRefs} from \"../../../utils/mergeRefs\";\nimport { useLanguage } from \"../../../_compat\";\n\nconst KitsInputText = ({ ref, ...rawProps }: IKitsInputText) => {\n const {mergedProps: props, themeStyle, elementStyles} = useComponentDefaults('InputText', rawProps, 'Input');\n const resolvedThemeStyle = useResolvedStyle(themeStyle);\n const resolvedRootStyle = useResolvedStyle(elementStyles?.root || {});\n const { isRTL } = useLanguage();\n\n const {\n id,\n label,\n rightAddon,\n leftAddon,\n errors,\n invalid,\n hideError,\n required,\n keyFilter,\n value,\n defaultValue,\n attached,\n onChange,\n disabled,\n helperText,\n isFloatedLabel,\n placeholder,\n containerStyle,\n localProps,\n keyboardNavId,\n keyboardType,\n maxLength,\n minLength: _minLength, // submit-time only — RN has no minLength prop\n ...rest\n } = props;\n\n\n const resolvedKeyboardType = keyboardType ?? keyboardTypeFromKeyFilter(keyFilter as any);\n\n const {inputRef, navProps} = useFormFieldKeyboardNav(keyboardNavId ?? id);\n\n /** 🔑 controlled detection */\n const isControlled = value !== undefined;\n\n /** 🔹 internal state only for uncontrolled */\n const [internalValue, setInternalValue] = React.useState<string>(\n String(defaultValue ?? \"\")\n );\n\n /** 🔹 focused state (for FloatLabel + _focus styles) */\n const [isFocused, setFocused] = React.useState(false);\n const rootStyle = resolvedRootStyle && Object.keys(resolvedRootStyle).length > 0 ? resolvedRootStyle : resolvedThemeStyle;\n\n\n\n const focusResolvedStyle = useFocusStyles(rootStyle, isFocused);\n\n\n /** 🔄 sync only when controlled */\n React.useEffect(() => {\n if (isControlled) {\n setInternalValue(String(value ?? \"\"));\n }\n }, [isControlled, value]);\n\n /** ✍️ change handler */\n const handleChangeText = (nextRaw: string) => {\n const prev = isControlled ? String(value ?? \"\") : internalValue;\n\n const filtered = keyFilter\n ? applyKeyFilterKeepPrev(prev, nextRaw, keyFilter as any)\n : nextRaw;\n\n if (!isControlled) {\n setInternalValue(filtered);\n }\n\n onChange?.({\n target: { value: filtered },\n } as any);\n };\n\n const displayValue = isControlled\n ? String(value ?? \"\")\n : internalValue;\n\n const inputEl = (\n <Input\n {...(localProps as any)}\n isDisabled={!!disabled}\n isInvalid={!!invalid}\n isFocused={isFocused}\n style={resolvedRootStyle}\n {...(rest as any)}\n >\n <InputField\n ref={mergeRefs(inputRef, ref)}\n value={displayValue}\n placeholder={isFloatedLabel ? undefined : placeholder}\n editable={!disabled}\n keyboardType={resolvedKeyboardType}\n maxLength={maxLength}\n onChangeText={handleChangeText}\n onFocus={(e: any) => {\n setFocused(true);\n (rest as any)?.onFocus?.(e);\n }}\n onBlur={(e: any) => {\n setFocused(false);\n (rest as any)?.onBlur?.(e);\n }}\n // Locale-aware alignment — placeholder and typed text both\n // need explicit textAlign so they start at the reading edge.\n // RN's TextInput default of 'auto' picks alignment from the\n // first character, which fails on empty inputs (placeholder\n // sits at the wrong edge in RTL).\n style={{\n textAlign: isRTL ? \"right\" : \"left\",\n writingDirection: isRTL ? \"rtl\" : \"ltr\",\n }}\n {...navProps}\n />\n </Input>\n );\n\n // `attached`: input is being placed inside an outer group that already\n // owns the chrome (FormContainer is upstream). Mirror web: return the\n // bare Input element. Addon rendering belongs to FormContainer alone —\n // see helpers/FormContainer/index.native.tsx.\n if(attached){\n return isFloatedLabel ? (\n <FloatLabelNative\n label={\n typeof label === \"string\"\n ? label\n : (label as any)?.text ?? \"\"\n }\n value={displayValue}\n isFocused={isFocused}\n disabled={disabled}\n onFocusRequest={() => setFocused(true)}\n >\n <View style={{ width: \"100%\" }}>\n {inputEl}\n </View>\n </FloatLabelNative>\n ) : (\n inputEl\n )\n }\n\n return (\n <KitsContainer\n id={id}\n disabled={disabled}\n hideError={hideError}\n isFloatedLabel={isFloatedLabel}\n helperText={helperText}\n rightAddon={rightAddon}\n leftAddon={leftAddon}\n required={required}\n errors={errors}\n invalid={invalid}\n label={label}\n containerStyle={containerStyle}\n elementStyles={elementStyles}\n >\n {isFloatedLabel ? (\n <FloatLabelNative\n label={\n typeof label === \"string\"\n ? label\n : (label as any)?.text ?? \"\"\n }\n value={displayValue}\n isFocused={isFocused}\n disabled={disabled}\n onFocusRequest={() => setFocused(true)}\n >\n {inputEl}\n </FloatLabelNative>\n ) : (\n inputEl\n )}\n </KitsContainer>\n );\n};\n\nexport default KitsInputText;\n"],"names":["Input","InputField"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/form/inputs/InputText/index.native.tsx"],"sourcesContent":["import React, {ReactPortal} from \"react\";\nimport type { IKitsInputText } from \"@lmb-it/kitsconcerto-types\";\nimport KitsContainer from \"../../helpers/FormContainer\";\nimport { applyKeyFilterKeepPrev } from \"../../helpers/native/keyfilter\";\nimport { keyboardTypeFromKeyFilter } from \"../../helpers/native/keyboardFromFilter\";\nimport { FloatLabelNative } from \"../../helpers/native/FloatLabel\";\nimport {\n KitsCoreInput as Input,\n KitsCoreInputField as InputField,\n KitsCoreInputSlot as InputSlot,\n style,\n} from \"@lmb-it/kitsconcertomobile\";\nimport { View } from \"react-native\";\nimport {useComponentDefaults, useFocusStyles, useResolvedStyle} from \"@lmb-it/kitsconcerto/hooks\";\nimport {useFormFieldKeyboardNav} from \"../../../hooks/useFormFieldKeyboardNav\";\nimport {mergeRefs} from \"../../../utils/mergeRefs\";\nimport { useLanguage } from \"../../../_compat\";\n\nconst KitsInputText = ({ ref, ...rawProps }: IKitsInputText) => {\n const {mergedProps: props, themeStyle, elementStyles} = useComponentDefaults('InputText', rawProps, 'Input');\n const resolvedThemeStyle = useResolvedStyle(themeStyle);\n const resolvedRootStyle = useResolvedStyle(elementStyles?.root || {});\n const { isRTL } = useLanguage();\n\n const {\n id,\n label,\n rightAddon,\n leftAddon,\n errors,\n invalid,\n hideError,\n required,\n keyFilter,\n value,\n defaultValue,\n attached,\n onChange,\n disabled,\n helperText,\n isFloatedLabel,\n placeholder,\n containerStyle,\n localProps,\n keyboardNavId,\n keyboardType,\n maxLength,\n minLength: _minLength, // submit-time only — RN has no minLength prop\n ...rest\n } = props;\n\n\n const resolvedKeyboardType = keyboardType ?? keyboardTypeFromKeyFilter(keyFilter as any);\n\n const {inputRef, navProps} = useFormFieldKeyboardNav(keyboardNavId ?? id);\n\n /** 🔑 controlled detection */\n const isControlled = value !== undefined;\n\n /** 🔹 internal state only for uncontrolled */\n const [internalValue, setInternalValue] = React.useState<string>(\n String(defaultValue ?? \"\")\n );\n\n /** 🔹 focused state (for FloatLabel + _focus styles) */\n const [isFocused, setFocused] = React.useState(false);\n const rootStyle = resolvedRootStyle && Object.keys(resolvedRootStyle).length > 0 ? resolvedRootStyle : resolvedThemeStyle;\n\n\n\n const focusResolvedStyle = useFocusStyles(rootStyle, isFocused);\n\n\n /** 🔄 sync only when controlled */\n React.useEffect(() => {\n if (isControlled) {\n setInternalValue(String(value ?? \"\"));\n }\n }, [isControlled, value]);\n\n /** ✍️ change handler */\n const handleChangeText = (nextRaw: string) => {\n const prev = isControlled ? String(value ?? \"\") : internalValue;\n\n const filtered = keyFilter\n ? applyKeyFilterKeepPrev(prev, nextRaw, keyFilter as any)\n : nextRaw;\n\n if (!isControlled) {\n setInternalValue(filtered);\n }\n\n onChange?.({\n target: { value: filtered },\n } as any);\n };\n\n const displayValue = isControlled\n ? String(value ?? \"\")\n : internalValue;\n\n const inputEl = (\n <Input\n {...(localProps as any)}\n isDisabled={!!disabled}\n isInvalid={!!invalid}\n isFocused={isFocused}\n style={resolvedRootStyle}\n {...(rest as any)}\n >\n <InputField\n ref={mergeRefs(inputRef, ref)}\n value={displayValue}\n placeholder={isFloatedLabel ? undefined : placeholder}\n editable={!disabled}\n keyboardType={resolvedKeyboardType}\n maxLength={maxLength}\n onChangeText={handleChangeText}\n onFocus={(e: any) => {\n setFocused(true);\n (rest as any)?.onFocus?.(e);\n }}\n onBlur={(e: any) => {\n setFocused(false);\n (rest as any)?.onBlur?.(e);\n }}\n // Locale-aware alignment — placeholder and typed text both\n // need explicit textAlign so they start at the reading edge.\n // RN's TextInput default of 'auto' picks alignment from the\n // first character, which fails on empty inputs (placeholder\n // sits at the wrong edge in RTL).\n style={{\n textAlign: isRTL ? \"right\" : \"left\",\n writingDirection: isRTL ? \"rtl\" : \"ltr\",\n }}\n {...navProps}\n />\n </Input>\n );\n\n // `attached`: input is being placed inside an outer group that already\n // owns the chrome (FormContainer is upstream). Mirror web: return the\n // bare Input element. Addon rendering belongs to FormContainer alone —\n // see helpers/FormContainer/index.native.tsx.\n if(attached){\n return isFloatedLabel ? (\n <FloatLabelNative\n label={\n typeof label === \"string\"\n ? label\n : (label as any)?.text ?? \"\"\n }\n value={displayValue}\n isFocused={isFocused}\n disabled={disabled}\n onFocusRequest={() => setFocused(true)}\n >\n <View style={{ width: \"100%\" }}>\n {inputEl}\n </View>\n </FloatLabelNative>\n ) : (\n inputEl\n )\n }\n\n return (\n <KitsContainer\n id={id}\n disabled={disabled}\n hideError={hideError}\n isFloatedLabel={isFloatedLabel}\n helperText={helperText}\n rightAddon={rightAddon}\n leftAddon={leftAddon}\n required={required}\n errors={errors}\n invalid={invalid}\n label={label}\n containerStyle={containerStyle}\n elementStyles={elementStyles}\n >\n {isFloatedLabel ? (\n <FloatLabelNative\n label={\n typeof label === \"string\"\n ? label\n : (label as any)?.text ?? \"\"\n }\n value={displayValue}\n isFocused={isFocused}\n disabled={disabled}\n onFocusRequest={() => setFocused(true)}\n >\n {inputEl}\n </FloatLabelNative>\n ) : (\n inputEl\n )}\n </KitsContainer>\n );\n};\n\nexport default KitsInputText;\n"],"names":["Input","InputField"],"mappings":"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"}
@@ -62,6 +62,8 @@ require('yup');
62
62
  require('../../../packages/types/src/Css/map/index.cjs');
63
63
  require('../../../packages/types/src/Theme/shadows.cjs');
64
64
  require('../../../packages/types/src/Theme/defaultTheme.cjs');
65
+ require('../../../packages/types/src/Theme/alphaColors.cjs');
66
+ require('../../../apps/mobile/src/Factory/helpers/cssVarMap.cjs');
65
67
  require('../../../apps/mobile/src/Factory/DimensionsContext.cjs');
66
68
  var useSeparator = require('../../../apps/mobile/src/Factory/useSeparator.cjs');
67
69
  require('i18next');
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../../../src/form/inputs/InputTextarea/index.native.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from \"react\";\nimport type { IKitsInputTextarea } from \"@lmb-it/kitsconcerto-types\";\nimport KitsContainer from \"../../helpers/FormContainer\";\nimport { useSeparator } from \"../../../factory\";\nimport { applyKeyFilter } from \"../InputText/keyFilter.native\";\nimport { keyboardTypeFromKeyFilter } from \"../../helpers/native/keyboardFromFilter\";\nimport {useFormFieldKeyboardNav} from \"../../../hooks/useFormFieldKeyboardNav\";\nimport {mergeRefs} from \"../../../utils/mergeRefs\";\n\n// ✅ correct Gluestack components\nimport {\n Textarea,\n TextareaInput,\n} from \"@lmb-it/kitsconcertomobile\";\nimport {useComponentDefaults, useResolvedStyle} from \"@lmb-it/kitsconcerto/hooks\";\nimport { useLanguage } from \"../../../_compat\";\n\ntype NativeTextareaRef = {\n focus(): void;\n blur(): void;\n clear(): void;\n};\n\nconst KitsInputTextarea = forwardRef<\n NativeTextareaRef,\n IKitsInputTextarea\n>((rawProps, ref) => {\n const {mergedProps: props, themeStyle, elementStyles} = useComponentDefaults('Textarea', rawProps);\n const resolvedThemeStyle = useResolvedStyle(themeStyle);\n const resolvedRootStyle = useResolvedStyle(elementStyles?.root || {});\n const { isRTL } = useLanguage();\n const {\n id,\n label,\n value,\n defaultValue,\n onChange,\n keyFilter,\n errors,\n hideError,\n invalid,\n isFloatedLabel,\n disabled,\n helperText,\n inputSize,\n containerStyle,\n localProps,\n keyboardNavId,\n rows,\n autoResize,\n maxLength,\n minLength: _minLength, // submit-time only — RN has no minLength prop\n // Props that belong on the inner TextareaInput, not the outer wrapper.\n // Spreading nativeProps onto <Textarea> silently drops them because the\n // wrapper doesn't render text. Pull them out and forward explicitly so\n // placeholder, autoCapitalize, autoCorrect etc. actually take effect.\n placeholder,\n placeholderTextColor,\n autoCapitalize,\n autoCorrect,\n autoFocus,\n returnKeyType,\n ...rest\n } = props as IKitsInputTextarea & {\n placeholder?: string;\n placeholderTextColor?: string;\n autoCapitalize?: 'none' | 'sentences' | 'words' | 'characters';\n autoCorrect?: boolean;\n autoFocus?: boolean;\n returnKeyType?: string;\n };\n\n const resolvedKeyboardType = keyboardTypeFromKeyFilter(keyFilter as any);\n\n // Calculate height from rows: lineHeight × rows + vertical padding\n const LINE_HEIGHT = 20;\n const VERTICAL_PADDING = 16;\n const calculatedHeight = rows ? (LINE_HEIGHT * rows) + VERTICAL_PADDING : undefined;\n\n const {inputRef, navProps} = useFormFieldKeyboardNav(keyboardNavId ?? id);\n\n const isControlled = value !== undefined;\n\n const { cssProps, nativeProps } = useSeparator<any>({\n ...(rest as any),\n ...(localProps as any),\n });\n\n const fieldRef = useRef<any>(null);\n\n /** internal state for uncontrolled mode */\n const [internalValue, setInternalValue] = useState<string>(\n () => String(defaultValue ?? \"\")\n );\n\n /** sync when controlled */\n useEffect(() => {\n if (isControlled) {\n setInternalValue(String(value ?? \"\"));\n }\n }, [isControlled, value]);\n\n useImperativeHandle(ref, () => ({\n focus: () => fieldRef.current?.focus?.(),\n blur: () => fieldRef.current?.blur?.(),\n clear: () => {\n if (!isControlled) setInternalValue(\"\");\n onChange?.({ target: { value: \"\" } } as any);\n },\n }));\n\n const handleChangeText = useCallback(\n (nextRaw: string) => {\n const prev = isControlled\n ? String(value ?? \"\")\n : internalValue;\n\n const filtered = keyFilter\n ? applyKeyFilter(prev, nextRaw, keyFilter as any)\n : nextRaw;\n\n if (!isControlled) {\n setInternalValue(filtered);\n }\n\n // Prime-like event\n onChange?.({ target: { value: filtered } } as any);\n },\n [keyFilter, onChange, isControlled, internalValue, value],\n );\n\n const displayValue = isControlled\n ? String(value ?? \"\")\n : internalValue;\n\n return (\n <KitsContainer\n id={id}\n helperText={helperText}\n isFloatedLabel={isFloatedLabel}\n errors={errors}\n invalid={invalid}\n label={label}\n hideError={hideError}\n disabled={disabled}\n inputSize={inputSize}\n containerStyle={containerStyle}\n elementStyles={elementStyles}\n >\n <Textarea\n size={inputSize ?? \"md\"}\n isDisabled={!!disabled}\n isInvalid={!!invalid}\n style={{\n ...(resolvedRootStyle && Object.keys(resolvedRootStyle).length > 0 ? resolvedRootStyle : resolvedThemeStyle),\n ...(cssProps as any),\n ...(calculatedHeight ? {height: calculatedHeight, minHeight: calculatedHeight} : {}),\n }}\n {...nativeProps}\n >\n <TextareaInput\n ref={mergeRefs(inputRef, fieldRef)}\n value={displayValue}\n onChangeText={handleChangeText}\n editable={!disabled}\n numberOfLines={rows ?? 4}\n keyboardType={resolvedKeyboardType}\n maxLength={maxLength}\n textAlignVertical=\"top\"\n // Forward input-level props that were destructured off `props`\n // — these would never reach the inner input if we relied on\n // `nativeProps` because nativeProps is spread on the outer\n // <Textarea> wrapper, which doesn't render text.\n placeholder={placeholder}\n placeholderTextColor={placeholderTextColor}\n autoCapitalize={autoCapitalize}\n autoCorrect={autoCorrect}\n autoFocus={autoFocus}\n returnKeyType={returnKeyType as any}\n // Inline padding so the cursor isn't flush against the edge\n // when the consumer overrides height via `rows`. Without\n // this the height inline-style replaces Gluestack's default\n // padding and the caret renders at (0,0) of the textarea.\n style={{\n paddingHorizontal: 12,\n paddingVertical: 8,\n textAlign: isRTL ? \"right\" : \"left\",\n writingDirection: isRTL ? \"rtl\" : \"ltr\",\n // ...(calculatedHeight ? {height: calculatedHeight - VERTICAL_PADDING} : {}),\n }}\n {...navProps}\n />\n </Textarea>\n </KitsContainer>\n );\n});\n\nKitsInputTextarea.displayName = \"KitsInputTextarea\";\nexport default KitsInputTextarea;\n"],"names":["forwardRef","useComponentDefaults","useResolvedStyle","useLanguage","keyboardTypeFromKeyFilter","useFormFieldKeyboardNav","useSeparator","useRef","useState","useEffect","useImperativeHandle","useCallback","applyKeyFilter","jsx","KitsContainer","Textarea","TextareaInput","mergeRefs"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../../../src/form/inputs/InputTextarea/index.native.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from \"react\";\nimport type { IKitsInputTextarea } from \"@lmb-it/kitsconcerto-types\";\nimport KitsContainer from \"../../helpers/FormContainer\";\nimport { useSeparator } from \"../../../factory\";\nimport { applyKeyFilter } from \"../InputText/keyFilter.native\";\nimport { keyboardTypeFromKeyFilter } from \"../../helpers/native/keyboardFromFilter\";\nimport {useFormFieldKeyboardNav} from \"../../../hooks/useFormFieldKeyboardNav\";\nimport {mergeRefs} from \"../../../utils/mergeRefs\";\n\n// ✅ correct Gluestack components\nimport {\n Textarea,\n TextareaInput,\n} from \"@lmb-it/kitsconcertomobile\";\nimport {useComponentDefaults, useResolvedStyle} from \"@lmb-it/kitsconcerto/hooks\";\nimport { useLanguage } from \"../../../_compat\";\n\ntype NativeTextareaRef = {\n focus(): void;\n blur(): void;\n clear(): void;\n};\n\nconst KitsInputTextarea = forwardRef<\n NativeTextareaRef,\n IKitsInputTextarea\n>((rawProps, ref) => {\n const {mergedProps: props, themeStyle, elementStyles} = useComponentDefaults('Textarea', rawProps);\n const resolvedThemeStyle = useResolvedStyle(themeStyle);\n const resolvedRootStyle = useResolvedStyle(elementStyles?.root || {});\n const { isRTL } = useLanguage();\n const {\n id,\n label,\n value,\n defaultValue,\n onChange,\n keyFilter,\n errors,\n hideError,\n invalid,\n isFloatedLabel,\n disabled,\n helperText,\n inputSize,\n containerStyle,\n localProps,\n keyboardNavId,\n rows,\n autoResize,\n maxLength,\n minLength: _minLength, // submit-time only — RN has no minLength prop\n // Props that belong on the inner TextareaInput, not the outer wrapper.\n // Spreading nativeProps onto <Textarea> silently drops them because the\n // wrapper doesn't render text. Pull them out and forward explicitly so\n // placeholder, autoCapitalize, autoCorrect etc. actually take effect.\n placeholder,\n placeholderTextColor,\n autoCapitalize,\n autoCorrect,\n autoFocus,\n returnKeyType,\n ...rest\n } = props as IKitsInputTextarea & {\n placeholder?: string;\n placeholderTextColor?: string;\n autoCapitalize?: 'none' | 'sentences' | 'words' | 'characters';\n autoCorrect?: boolean;\n autoFocus?: boolean;\n returnKeyType?: string;\n };\n\n const resolvedKeyboardType = keyboardTypeFromKeyFilter(keyFilter as any);\n\n // Calculate height from rows: lineHeight × rows + vertical padding\n const LINE_HEIGHT = 20;\n const VERTICAL_PADDING = 16;\n const calculatedHeight = rows ? (LINE_HEIGHT * rows) + VERTICAL_PADDING : undefined;\n\n const {inputRef, navProps} = useFormFieldKeyboardNav(keyboardNavId ?? id);\n\n const isControlled = value !== undefined;\n\n const { cssProps, nativeProps } = useSeparator<any>({\n ...(rest as any),\n ...(localProps as any),\n });\n\n const fieldRef = useRef<any>(null);\n\n /** internal state for uncontrolled mode */\n const [internalValue, setInternalValue] = useState<string>(\n () => String(defaultValue ?? \"\")\n );\n\n /** sync when controlled */\n useEffect(() => {\n if (isControlled) {\n setInternalValue(String(value ?? \"\"));\n }\n }, [isControlled, value]);\n\n useImperativeHandle(ref, () => ({\n focus: () => fieldRef.current?.focus?.(),\n blur: () => fieldRef.current?.blur?.(),\n clear: () => {\n if (!isControlled) setInternalValue(\"\");\n onChange?.({ target: { value: \"\" } } as any);\n },\n }));\n\n const handleChangeText = useCallback(\n (nextRaw: string) => {\n const prev = isControlled\n ? String(value ?? \"\")\n : internalValue;\n\n const filtered = keyFilter\n ? applyKeyFilter(prev, nextRaw, keyFilter as any)\n : nextRaw;\n\n if (!isControlled) {\n setInternalValue(filtered);\n }\n\n // Prime-like event\n onChange?.({ target: { value: filtered } } as any);\n },\n [keyFilter, onChange, isControlled, internalValue, value],\n );\n\n const displayValue = isControlled\n ? String(value ?? \"\")\n : internalValue;\n\n return (\n <KitsContainer\n id={id}\n helperText={helperText}\n isFloatedLabel={isFloatedLabel}\n errors={errors}\n invalid={invalid}\n label={label}\n hideError={hideError}\n disabled={disabled}\n inputSize={inputSize}\n containerStyle={containerStyle}\n elementStyles={elementStyles}\n >\n <Textarea\n size={inputSize ?? \"md\"}\n isDisabled={!!disabled}\n isInvalid={!!invalid}\n style={{\n ...(resolvedRootStyle && Object.keys(resolvedRootStyle).length > 0 ? resolvedRootStyle : resolvedThemeStyle),\n ...(cssProps as any),\n ...(calculatedHeight ? {height: calculatedHeight, minHeight: calculatedHeight} : {}),\n }}\n {...nativeProps}\n >\n <TextareaInput\n ref={mergeRefs(inputRef, fieldRef)}\n value={displayValue}\n onChangeText={handleChangeText}\n editable={!disabled}\n numberOfLines={rows ?? 4}\n keyboardType={resolvedKeyboardType}\n maxLength={maxLength}\n textAlignVertical=\"top\"\n // Forward input-level props that were destructured off `props`\n // — these would never reach the inner input if we relied on\n // `nativeProps` because nativeProps is spread on the outer\n // <Textarea> wrapper, which doesn't render text.\n placeholder={placeholder}\n placeholderTextColor={placeholderTextColor}\n autoCapitalize={autoCapitalize}\n autoCorrect={autoCorrect}\n autoFocus={autoFocus}\n returnKeyType={returnKeyType as any}\n // Inline padding so the cursor isn't flush against the edge\n // when the consumer overrides height via `rows`. Without\n // this the height inline-style replaces Gluestack's default\n // padding and the caret renders at (0,0) of the textarea.\n style={{\n paddingHorizontal: 12,\n paddingVertical: 8,\n textAlign: isRTL ? \"right\" : \"left\",\n writingDirection: isRTL ? \"rtl\" : \"ltr\",\n // ...(calculatedHeight ? {height: calculatedHeight - VERTICAL_PADDING} : {}),\n }}\n {...navProps}\n />\n </Textarea>\n </KitsContainer>\n );\n});\n\nKitsInputTextarea.displayName = \"KitsInputTextarea\";\nexport default KitsInputTextarea;\n"],"names":["forwardRef","useComponentDefaults","useResolvedStyle","useLanguage","keyboardTypeFromKeyFilter","useFormFieldKeyboardNav","useSeparator","useRef","useState","useEffect","useImperativeHandle","useCallback","applyKeyFilter","jsx","KitsContainer","Textarea","TextareaInput","mergeRefs"],"mappings":"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"}
@@ -58,6 +58,8 @@ import 'yup';
58
58
  import '../../../packages/types/src/Css/map/index.js';
59
59
  import '../../../packages/types/src/Theme/shadows.js';
60
60
  import '../../../packages/types/src/Theme/defaultTheme.js';
61
+ import '../../../packages/types/src/Theme/alphaColors.js';
62
+ import '../../../apps/mobile/src/Factory/helpers/cssVarMap.js';
61
63
  import '../../../apps/mobile/src/Factory/DimensionsContext.js';
62
64
  import useSeparator from '../../../apps/mobile/src/Factory/useSeparator.js';
63
65
  import 'i18next';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/form/inputs/InputTextarea/index.native.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from \"react\";\nimport type { IKitsInputTextarea } from \"@lmb-it/kitsconcerto-types\";\nimport KitsContainer from \"../../helpers/FormContainer\";\nimport { useSeparator } from \"../../../factory\";\nimport { applyKeyFilter } from \"../InputText/keyFilter.native\";\nimport { keyboardTypeFromKeyFilter } from \"../../helpers/native/keyboardFromFilter\";\nimport {useFormFieldKeyboardNav} from \"../../../hooks/useFormFieldKeyboardNav\";\nimport {mergeRefs} from \"../../../utils/mergeRefs\";\n\n// ✅ correct Gluestack components\nimport {\n Textarea,\n TextareaInput,\n} from \"@lmb-it/kitsconcertomobile\";\nimport {useComponentDefaults, useResolvedStyle} from \"@lmb-it/kitsconcerto/hooks\";\nimport { useLanguage } from \"../../../_compat\";\n\ntype NativeTextareaRef = {\n focus(): void;\n blur(): void;\n clear(): void;\n};\n\nconst KitsInputTextarea = forwardRef<\n NativeTextareaRef,\n IKitsInputTextarea\n>((rawProps, ref) => {\n const {mergedProps: props, themeStyle, elementStyles} = useComponentDefaults('Textarea', rawProps);\n const resolvedThemeStyle = useResolvedStyle(themeStyle);\n const resolvedRootStyle = useResolvedStyle(elementStyles?.root || {});\n const { isRTL } = useLanguage();\n const {\n id,\n label,\n value,\n defaultValue,\n onChange,\n keyFilter,\n errors,\n hideError,\n invalid,\n isFloatedLabel,\n disabled,\n helperText,\n inputSize,\n containerStyle,\n localProps,\n keyboardNavId,\n rows,\n autoResize,\n maxLength,\n minLength: _minLength, // submit-time only — RN has no minLength prop\n // Props that belong on the inner TextareaInput, not the outer wrapper.\n // Spreading nativeProps onto <Textarea> silently drops them because the\n // wrapper doesn't render text. Pull them out and forward explicitly so\n // placeholder, autoCapitalize, autoCorrect etc. actually take effect.\n placeholder,\n placeholderTextColor,\n autoCapitalize,\n autoCorrect,\n autoFocus,\n returnKeyType,\n ...rest\n } = props as IKitsInputTextarea & {\n placeholder?: string;\n placeholderTextColor?: string;\n autoCapitalize?: 'none' | 'sentences' | 'words' | 'characters';\n autoCorrect?: boolean;\n autoFocus?: boolean;\n returnKeyType?: string;\n };\n\n const resolvedKeyboardType = keyboardTypeFromKeyFilter(keyFilter as any);\n\n // Calculate height from rows: lineHeight × rows + vertical padding\n const LINE_HEIGHT = 20;\n const VERTICAL_PADDING = 16;\n const calculatedHeight = rows ? (LINE_HEIGHT * rows) + VERTICAL_PADDING : undefined;\n\n const {inputRef, navProps} = useFormFieldKeyboardNav(keyboardNavId ?? id);\n\n const isControlled = value !== undefined;\n\n const { cssProps, nativeProps } = useSeparator<any>({\n ...(rest as any),\n ...(localProps as any),\n });\n\n const fieldRef = useRef<any>(null);\n\n /** internal state for uncontrolled mode */\n const [internalValue, setInternalValue] = useState<string>(\n () => String(defaultValue ?? \"\")\n );\n\n /** sync when controlled */\n useEffect(() => {\n if (isControlled) {\n setInternalValue(String(value ?? \"\"));\n }\n }, [isControlled, value]);\n\n useImperativeHandle(ref, () => ({\n focus: () => fieldRef.current?.focus?.(),\n blur: () => fieldRef.current?.blur?.(),\n clear: () => {\n if (!isControlled) setInternalValue(\"\");\n onChange?.({ target: { value: \"\" } } as any);\n },\n }));\n\n const handleChangeText = useCallback(\n (nextRaw: string) => {\n const prev = isControlled\n ? String(value ?? \"\")\n : internalValue;\n\n const filtered = keyFilter\n ? applyKeyFilter(prev, nextRaw, keyFilter as any)\n : nextRaw;\n\n if (!isControlled) {\n setInternalValue(filtered);\n }\n\n // Prime-like event\n onChange?.({ target: { value: filtered } } as any);\n },\n [keyFilter, onChange, isControlled, internalValue, value],\n );\n\n const displayValue = isControlled\n ? String(value ?? \"\")\n : internalValue;\n\n return (\n <KitsContainer\n id={id}\n helperText={helperText}\n isFloatedLabel={isFloatedLabel}\n errors={errors}\n invalid={invalid}\n label={label}\n hideError={hideError}\n disabled={disabled}\n inputSize={inputSize}\n containerStyle={containerStyle}\n elementStyles={elementStyles}\n >\n <Textarea\n size={inputSize ?? \"md\"}\n isDisabled={!!disabled}\n isInvalid={!!invalid}\n style={{\n ...(resolvedRootStyle && Object.keys(resolvedRootStyle).length > 0 ? resolvedRootStyle : resolvedThemeStyle),\n ...(cssProps as any),\n ...(calculatedHeight ? {height: calculatedHeight, minHeight: calculatedHeight} : {}),\n }}\n {...nativeProps}\n >\n <TextareaInput\n ref={mergeRefs(inputRef, fieldRef)}\n value={displayValue}\n onChangeText={handleChangeText}\n editable={!disabled}\n numberOfLines={rows ?? 4}\n keyboardType={resolvedKeyboardType}\n maxLength={maxLength}\n textAlignVertical=\"top\"\n // Forward input-level props that were destructured off `props`\n // — these would never reach the inner input if we relied on\n // `nativeProps` because nativeProps is spread on the outer\n // <Textarea> wrapper, which doesn't render text.\n placeholder={placeholder}\n placeholderTextColor={placeholderTextColor}\n autoCapitalize={autoCapitalize}\n autoCorrect={autoCorrect}\n autoFocus={autoFocus}\n returnKeyType={returnKeyType as any}\n // Inline padding so the cursor isn't flush against the edge\n // when the consumer overrides height via `rows`. Without\n // this the height inline-style replaces Gluestack's default\n // padding and the caret renders at (0,0) of the textarea.\n style={{\n paddingHorizontal: 12,\n paddingVertical: 8,\n textAlign: isRTL ? \"right\" : \"left\",\n writingDirection: isRTL ? \"rtl\" : \"ltr\",\n // ...(calculatedHeight ? {height: calculatedHeight - VERTICAL_PADDING} : {}),\n }}\n {...navProps}\n />\n </Textarea>\n </KitsContainer>\n );\n});\n\nKitsInputTextarea.displayName = \"KitsInputTextarea\";\nexport default KitsInputTextarea;\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/form/inputs/InputTextarea/index.native.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from \"react\";\nimport type { IKitsInputTextarea } from \"@lmb-it/kitsconcerto-types\";\nimport KitsContainer from \"../../helpers/FormContainer\";\nimport { useSeparator } from \"../../../factory\";\nimport { applyKeyFilter } from \"../InputText/keyFilter.native\";\nimport { keyboardTypeFromKeyFilter } from \"../../helpers/native/keyboardFromFilter\";\nimport {useFormFieldKeyboardNav} from \"../../../hooks/useFormFieldKeyboardNav\";\nimport {mergeRefs} from \"../../../utils/mergeRefs\";\n\n// ✅ correct Gluestack components\nimport {\n Textarea,\n TextareaInput,\n} from \"@lmb-it/kitsconcertomobile\";\nimport {useComponentDefaults, useResolvedStyle} from \"@lmb-it/kitsconcerto/hooks\";\nimport { useLanguage } from \"../../../_compat\";\n\ntype NativeTextareaRef = {\n focus(): void;\n blur(): void;\n clear(): void;\n};\n\nconst KitsInputTextarea = forwardRef<\n NativeTextareaRef,\n IKitsInputTextarea\n>((rawProps, ref) => {\n const {mergedProps: props, themeStyle, elementStyles} = useComponentDefaults('Textarea', rawProps);\n const resolvedThemeStyle = useResolvedStyle(themeStyle);\n const resolvedRootStyle = useResolvedStyle(elementStyles?.root || {});\n const { isRTL } = useLanguage();\n const {\n id,\n label,\n value,\n defaultValue,\n onChange,\n keyFilter,\n errors,\n hideError,\n invalid,\n isFloatedLabel,\n disabled,\n helperText,\n inputSize,\n containerStyle,\n localProps,\n keyboardNavId,\n rows,\n autoResize,\n maxLength,\n minLength: _minLength, // submit-time only — RN has no minLength prop\n // Props that belong on the inner TextareaInput, not the outer wrapper.\n // Spreading nativeProps onto <Textarea> silently drops them because the\n // wrapper doesn't render text. Pull them out and forward explicitly so\n // placeholder, autoCapitalize, autoCorrect etc. actually take effect.\n placeholder,\n placeholderTextColor,\n autoCapitalize,\n autoCorrect,\n autoFocus,\n returnKeyType,\n ...rest\n } = props as IKitsInputTextarea & {\n placeholder?: string;\n placeholderTextColor?: string;\n autoCapitalize?: 'none' | 'sentences' | 'words' | 'characters';\n autoCorrect?: boolean;\n autoFocus?: boolean;\n returnKeyType?: string;\n };\n\n const resolvedKeyboardType = keyboardTypeFromKeyFilter(keyFilter as any);\n\n // Calculate height from rows: lineHeight × rows + vertical padding\n const LINE_HEIGHT = 20;\n const VERTICAL_PADDING = 16;\n const calculatedHeight = rows ? (LINE_HEIGHT * rows) + VERTICAL_PADDING : undefined;\n\n const {inputRef, navProps} = useFormFieldKeyboardNav(keyboardNavId ?? id);\n\n const isControlled = value !== undefined;\n\n const { cssProps, nativeProps } = useSeparator<any>({\n ...(rest as any),\n ...(localProps as any),\n });\n\n const fieldRef = useRef<any>(null);\n\n /** internal state for uncontrolled mode */\n const [internalValue, setInternalValue] = useState<string>(\n () => String(defaultValue ?? \"\")\n );\n\n /** sync when controlled */\n useEffect(() => {\n if (isControlled) {\n setInternalValue(String(value ?? \"\"));\n }\n }, [isControlled, value]);\n\n useImperativeHandle(ref, () => ({\n focus: () => fieldRef.current?.focus?.(),\n blur: () => fieldRef.current?.blur?.(),\n clear: () => {\n if (!isControlled) setInternalValue(\"\");\n onChange?.({ target: { value: \"\" } } as any);\n },\n }));\n\n const handleChangeText = useCallback(\n (nextRaw: string) => {\n const prev = isControlled\n ? String(value ?? \"\")\n : internalValue;\n\n const filtered = keyFilter\n ? applyKeyFilter(prev, nextRaw, keyFilter as any)\n : nextRaw;\n\n if (!isControlled) {\n setInternalValue(filtered);\n }\n\n // Prime-like event\n onChange?.({ target: { value: filtered } } as any);\n },\n [keyFilter, onChange, isControlled, internalValue, value],\n );\n\n const displayValue = isControlled\n ? String(value ?? \"\")\n : internalValue;\n\n return (\n <KitsContainer\n id={id}\n helperText={helperText}\n isFloatedLabel={isFloatedLabel}\n errors={errors}\n invalid={invalid}\n label={label}\n hideError={hideError}\n disabled={disabled}\n inputSize={inputSize}\n containerStyle={containerStyle}\n elementStyles={elementStyles}\n >\n <Textarea\n size={inputSize ?? \"md\"}\n isDisabled={!!disabled}\n isInvalid={!!invalid}\n style={{\n ...(resolvedRootStyle && Object.keys(resolvedRootStyle).length > 0 ? resolvedRootStyle : resolvedThemeStyle),\n ...(cssProps as any),\n ...(calculatedHeight ? {height: calculatedHeight, minHeight: calculatedHeight} : {}),\n }}\n {...nativeProps}\n >\n <TextareaInput\n ref={mergeRefs(inputRef, fieldRef)}\n value={displayValue}\n onChangeText={handleChangeText}\n editable={!disabled}\n numberOfLines={rows ?? 4}\n keyboardType={resolvedKeyboardType}\n maxLength={maxLength}\n textAlignVertical=\"top\"\n // Forward input-level props that were destructured off `props`\n // — these would never reach the inner input if we relied on\n // `nativeProps` because nativeProps is spread on the outer\n // <Textarea> wrapper, which doesn't render text.\n placeholder={placeholder}\n placeholderTextColor={placeholderTextColor}\n autoCapitalize={autoCapitalize}\n autoCorrect={autoCorrect}\n autoFocus={autoFocus}\n returnKeyType={returnKeyType as any}\n // Inline padding so the cursor isn't flush against the edge\n // when the consumer overrides height via `rows`. Without\n // this the height inline-style replaces Gluestack's default\n // padding and the caret renders at (0,0) of the textarea.\n style={{\n paddingHorizontal: 12,\n paddingVertical: 8,\n textAlign: isRTL ? \"right\" : \"left\",\n writingDirection: isRTL ? \"rtl\" : \"ltr\",\n // ...(calculatedHeight ? {height: calculatedHeight - VERTICAL_PADDING} : {}),\n }}\n {...navProps}\n />\n </Textarea>\n </KitsContainer>\n );\n});\n\nKitsInputTextarea.displayName = \"KitsInputTextarea\";\nexport default KitsInputTextarea;\n"],"names":[],"mappings":"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"}
@@ -61,6 +61,8 @@ require('yup');
61
61
  require('../../../packages/types/src/Css/map/index.cjs');
62
62
  require('../../../packages/types/src/Theme/shadows.cjs');
63
63
  require('../../../packages/types/src/Theme/defaultTheme.cjs');
64
+ require('../../../packages/types/src/Theme/alphaColors.cjs');
65
+ require('../../../apps/mobile/src/Factory/helpers/cssVarMap.cjs');
64
66
  require('../../../apps/mobile/src/Factory/DimensionsContext.cjs');
65
67
  var useSeparator = require('../../../apps/mobile/src/Factory/useSeparator.cjs');
66
68
  require('i18next');
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../../../src/form/inputs/PhoneInput/index.native.tsx"],"sourcesContent":["import type {IKitsPhoneInput} from \"@lmb-it/kitsconcerto-types\";\nimport {KitsContainer, KitsInputText, Icon} from \"../../../_compat\";\nimport {useImperativeHandle, useMemo} from \"react\";\nimport {useSeparator} from \"../../../factory\";\nimport {usePhoneInput} from \"./usePhoneInput\";\nimport {SvgUri} from \"react-native-svg\";\nimport {View} from \"react-native\";\nimport {useComponentDefaults, useResolvedStyle} from \"@lmb-it/kitsconcerto/hooks\";\n\n\nconst KitsPhoneComponent =\n (\n {\n ref,\n isWithCountryCode,\n label,\n value,\n placeholder,\n onChange,\n invalid,\n disabled,\n required,\n errors,\n hideError,\n id,\n defaultCountry,\n inputSize,\n isFloatedLabel,\n leftAddon,\n rightAddon,\n includedCountries,\n excludedCountries,\n outputFormat='string',\n ...props\n }: IKitsPhoneInput\n ) => {\n const { mergedProps: _mergedProps, themeStyle, elementStyles } = useComponentDefaults('PhoneInput', props as any, 'Input');\n const resolvedThemeStyle = useResolvedStyle(themeStyle);\n const resolvedRootStyle = useResolvedStyle(elementStyles?.root || {});\n const {nativeProps} = useSeparator<any>(props);\n\n const {\n displayValue,\n e164Value,\n objectValue,\n countryFlagUrl,\n countryISO,\n handleChange,\n } = usePhoneInput({\n value,\n onChange,\n outputFormat,\n isWithCountryCode,\n defaultCountry,\n includedCountries,\n excludedCountries,\n });\n\n useImperativeHandle(ref, () => ({\n value: outputFormat === 'object' ? (objectValue ?? e164Value) : e164Value,\n setValue: (v: any) => handleChange(typeof v === \"string\" ? v : \"\"),\n }));\n\n const flagAddon = useMemo(() => {\n if (!isWithCountryCode) return leftAddon;\n\n if (countryFlagUrl) {\n return (\n <View style={{width: 20, height: 20, overflow: 'hidden', borderRadius: 2}}>\n <SvgUri\n uri={countryFlagUrl}\n width={20}\n height={20}\n />\n </View>\n );\n }\n\n return <Icon name=\"phone\" size={'2xs'}/>;\n }, [isWithCountryCode, countryFlagUrl, countryISO, leftAddon]);\n\n return (\n <KitsContainer\n id={id}\n inputSize={inputSize}\n isFloatedLabel={isFloatedLabel}\n errors={errors}\n required={required}\n hideError={hideError}\n label={label}\n elementStyles={elementStyles}\n >\n <KitsInputText\n id={`${id}-phone`}\n keyboardNavId={id}\n value={displayValue}\n rightAddon={rightAddon}\n leftAddon={flagAddon}\n onChange={(e: any) => handleChange(e.target.value)}\n invalid={invalid}\n disabled={disabled}\n keyboardType=\"phone-pad\"\n placeholder={placeholder ?? (isWithCountryCode ? \"+1 (555) 123-4567\" : \"\")}\n localProps={Object.keys(themeStyle).length ? { style: { width: '100%', ...(themeStyle as any) } } : undefined}\n />\n </KitsContainer>\n );\n }\n\n\nexport default KitsPhoneComponent;\n"],"names":["useComponentDefaults","useResolvedStyle","useSeparator","usePhoneInput","useImperativeHandle","useMemo","jsx","View","SvgUri","Icon","KitsContainer","KitsInputText"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../../../src/form/inputs/PhoneInput/index.native.tsx"],"sourcesContent":["import type {IKitsPhoneInput} from \"@lmb-it/kitsconcerto-types\";\nimport {KitsContainer, KitsInputText, Icon} from \"../../../_compat\";\nimport {useImperativeHandle, useMemo} from \"react\";\nimport {useSeparator} from \"../../../factory\";\nimport {usePhoneInput} from \"./usePhoneInput\";\nimport {SvgUri} from \"react-native-svg\";\nimport {View} from \"react-native\";\nimport {useComponentDefaults, useResolvedStyle} from \"@lmb-it/kitsconcerto/hooks\";\n\n\nconst KitsPhoneComponent =\n (\n {\n ref,\n isWithCountryCode,\n label,\n value,\n placeholder,\n onChange,\n invalid,\n disabled,\n required,\n errors,\n hideError,\n id,\n defaultCountry,\n inputSize,\n isFloatedLabel,\n leftAddon,\n rightAddon,\n includedCountries,\n excludedCountries,\n outputFormat='string',\n ...props\n }: IKitsPhoneInput\n ) => {\n const { mergedProps: _mergedProps, themeStyle, elementStyles } = useComponentDefaults('PhoneInput', props as any, 'Input');\n const resolvedThemeStyle = useResolvedStyle(themeStyle);\n const resolvedRootStyle = useResolvedStyle(elementStyles?.root || {});\n const {nativeProps} = useSeparator<any>(props);\n\n const {\n displayValue,\n e164Value,\n objectValue,\n countryFlagUrl,\n countryISO,\n handleChange,\n } = usePhoneInput({\n value,\n onChange,\n outputFormat,\n isWithCountryCode,\n defaultCountry,\n includedCountries,\n excludedCountries,\n });\n\n useImperativeHandle(ref, () => ({\n value: outputFormat === 'object' ? (objectValue ?? e164Value) : e164Value,\n setValue: (v: any) => handleChange(typeof v === \"string\" ? v : \"\"),\n }));\n\n const flagAddon = useMemo(() => {\n if (!isWithCountryCode) return leftAddon;\n\n if (countryFlagUrl) {\n return (\n <View style={{width: 20, height: 20, overflow: 'hidden', borderRadius: 2}}>\n <SvgUri\n uri={countryFlagUrl}\n width={20}\n height={20}\n />\n </View>\n );\n }\n\n return <Icon name=\"phone\" size={'2xs'}/>;\n }, [isWithCountryCode, countryFlagUrl, countryISO, leftAddon]);\n\n return (\n <KitsContainer\n id={id}\n inputSize={inputSize}\n isFloatedLabel={isFloatedLabel}\n errors={errors}\n required={required}\n hideError={hideError}\n label={label}\n elementStyles={elementStyles}\n >\n <KitsInputText\n id={`${id}-phone`}\n keyboardNavId={id}\n value={displayValue}\n rightAddon={rightAddon}\n leftAddon={flagAddon}\n onChange={(e: any) => handleChange(e.target.value)}\n invalid={invalid}\n disabled={disabled}\n keyboardType=\"phone-pad\"\n placeholder={placeholder ?? (isWithCountryCode ? \"+1 (555) 123-4567\" : \"\")}\n localProps={Object.keys(themeStyle).length ? { style: { width: '100%', ...(themeStyle as any) } } : undefined}\n />\n </KitsContainer>\n );\n }\n\n\nexport default KitsPhoneComponent;\n"],"names":["useComponentDefaults","useResolvedStyle","useSeparator","usePhoneInput","useImperativeHandle","useMemo","jsx","View","SvgUri","Icon","KitsContainer","KitsInputText"],"mappings":"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"}
@@ -57,6 +57,8 @@ import 'yup';
57
57
  import '../../../packages/types/src/Css/map/index.js';
58
58
  import '../../../packages/types/src/Theme/shadows.js';
59
59
  import '../../../packages/types/src/Theme/defaultTheme.js';
60
+ import '../../../packages/types/src/Theme/alphaColors.js';
61
+ import '../../../apps/mobile/src/Factory/helpers/cssVarMap.js';
60
62
  import '../../../apps/mobile/src/Factory/DimensionsContext.js';
61
63
  import useSeparator from '../../../apps/mobile/src/Factory/useSeparator.js';
62
64
  import 'i18next';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/form/inputs/PhoneInput/index.native.tsx"],"sourcesContent":["import type {IKitsPhoneInput} from \"@lmb-it/kitsconcerto-types\";\nimport {KitsContainer, KitsInputText, Icon} from \"../../../_compat\";\nimport {useImperativeHandle, useMemo} from \"react\";\nimport {useSeparator} from \"../../../factory\";\nimport {usePhoneInput} from \"./usePhoneInput\";\nimport {SvgUri} from \"react-native-svg\";\nimport {View} from \"react-native\";\nimport {useComponentDefaults, useResolvedStyle} from \"@lmb-it/kitsconcerto/hooks\";\n\n\nconst KitsPhoneComponent =\n (\n {\n ref,\n isWithCountryCode,\n label,\n value,\n placeholder,\n onChange,\n invalid,\n disabled,\n required,\n errors,\n hideError,\n id,\n defaultCountry,\n inputSize,\n isFloatedLabel,\n leftAddon,\n rightAddon,\n includedCountries,\n excludedCountries,\n outputFormat='string',\n ...props\n }: IKitsPhoneInput\n ) => {\n const { mergedProps: _mergedProps, themeStyle, elementStyles } = useComponentDefaults('PhoneInput', props as any, 'Input');\n const resolvedThemeStyle = useResolvedStyle(themeStyle);\n const resolvedRootStyle = useResolvedStyle(elementStyles?.root || {});\n const {nativeProps} = useSeparator<any>(props);\n\n const {\n displayValue,\n e164Value,\n objectValue,\n countryFlagUrl,\n countryISO,\n handleChange,\n } = usePhoneInput({\n value,\n onChange,\n outputFormat,\n isWithCountryCode,\n defaultCountry,\n includedCountries,\n excludedCountries,\n });\n\n useImperativeHandle(ref, () => ({\n value: outputFormat === 'object' ? (objectValue ?? e164Value) : e164Value,\n setValue: (v: any) => handleChange(typeof v === \"string\" ? v : \"\"),\n }));\n\n const flagAddon = useMemo(() => {\n if (!isWithCountryCode) return leftAddon;\n\n if (countryFlagUrl) {\n return (\n <View style={{width: 20, height: 20, overflow: 'hidden', borderRadius: 2}}>\n <SvgUri\n uri={countryFlagUrl}\n width={20}\n height={20}\n />\n </View>\n );\n }\n\n return <Icon name=\"phone\" size={'2xs'}/>;\n }, [isWithCountryCode, countryFlagUrl, countryISO, leftAddon]);\n\n return (\n <KitsContainer\n id={id}\n inputSize={inputSize}\n isFloatedLabel={isFloatedLabel}\n errors={errors}\n required={required}\n hideError={hideError}\n label={label}\n elementStyles={elementStyles}\n >\n <KitsInputText\n id={`${id}-phone`}\n keyboardNavId={id}\n value={displayValue}\n rightAddon={rightAddon}\n leftAddon={flagAddon}\n onChange={(e: any) => handleChange(e.target.value)}\n invalid={invalid}\n disabled={disabled}\n keyboardType=\"phone-pad\"\n placeholder={placeholder ?? (isWithCountryCode ? \"+1 (555) 123-4567\" : \"\")}\n localProps={Object.keys(themeStyle).length ? { style: { width: '100%', ...(themeStyle as any) } } : undefined}\n />\n </KitsContainer>\n );\n }\n\n\nexport default KitsPhoneComponent;\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/form/inputs/PhoneInput/index.native.tsx"],"sourcesContent":["import type {IKitsPhoneInput} from \"@lmb-it/kitsconcerto-types\";\nimport {KitsContainer, KitsInputText, Icon} from \"../../../_compat\";\nimport {useImperativeHandle, useMemo} from \"react\";\nimport {useSeparator} from \"../../../factory\";\nimport {usePhoneInput} from \"./usePhoneInput\";\nimport {SvgUri} from \"react-native-svg\";\nimport {View} from \"react-native\";\nimport {useComponentDefaults, useResolvedStyle} from \"@lmb-it/kitsconcerto/hooks\";\n\n\nconst KitsPhoneComponent =\n (\n {\n ref,\n isWithCountryCode,\n label,\n value,\n placeholder,\n onChange,\n invalid,\n disabled,\n required,\n errors,\n hideError,\n id,\n defaultCountry,\n inputSize,\n isFloatedLabel,\n leftAddon,\n rightAddon,\n includedCountries,\n excludedCountries,\n outputFormat='string',\n ...props\n }: IKitsPhoneInput\n ) => {\n const { mergedProps: _mergedProps, themeStyle, elementStyles } = useComponentDefaults('PhoneInput', props as any, 'Input');\n const resolvedThemeStyle = useResolvedStyle(themeStyle);\n const resolvedRootStyle = useResolvedStyle(elementStyles?.root || {});\n const {nativeProps} = useSeparator<any>(props);\n\n const {\n displayValue,\n e164Value,\n objectValue,\n countryFlagUrl,\n countryISO,\n handleChange,\n } = usePhoneInput({\n value,\n onChange,\n outputFormat,\n isWithCountryCode,\n defaultCountry,\n includedCountries,\n excludedCountries,\n });\n\n useImperativeHandle(ref, () => ({\n value: outputFormat === 'object' ? (objectValue ?? e164Value) : e164Value,\n setValue: (v: any) => handleChange(typeof v === \"string\" ? v : \"\"),\n }));\n\n const flagAddon = useMemo(() => {\n if (!isWithCountryCode) return leftAddon;\n\n if (countryFlagUrl) {\n return (\n <View style={{width: 20, height: 20, overflow: 'hidden', borderRadius: 2}}>\n <SvgUri\n uri={countryFlagUrl}\n width={20}\n height={20}\n />\n </View>\n );\n }\n\n return <Icon name=\"phone\" size={'2xs'}/>;\n }, [isWithCountryCode, countryFlagUrl, countryISO, leftAddon]);\n\n return (\n <KitsContainer\n id={id}\n inputSize={inputSize}\n isFloatedLabel={isFloatedLabel}\n errors={errors}\n required={required}\n hideError={hideError}\n label={label}\n elementStyles={elementStyles}\n >\n <KitsInputText\n id={`${id}-phone`}\n keyboardNavId={id}\n value={displayValue}\n rightAddon={rightAddon}\n leftAddon={flagAddon}\n onChange={(e: any) => handleChange(e.target.value)}\n invalid={invalid}\n disabled={disabled}\n keyboardType=\"phone-pad\"\n placeholder={placeholder ?? (isWithCountryCode ? \"+1 (555) 123-4567\" : \"\")}\n localProps={Object.keys(themeStyle).length ? { style: { width: '100%', ...(themeStyle as any) } } : undefined}\n />\n </KitsContainer>\n );\n }\n\n\nexport default KitsPhoneComponent;\n"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@ require('yup');
11
11
  require('../../../../packages/types/src/Css/map/index.cjs');
12
12
  require('../../../../packages/types/src/Theme/shadows.cjs');
13
13
  require('../../../../packages/types/src/Theme/defaultTheme.cjs');
14
+ require('../../../../packages/types/src/Theme/alphaColors.cjs');
14
15
  var index_native = require('../../InputText/index.cjs');
15
16
 
16
17
  const NumericRadiusInput = ({
@@ -1 +1 @@
1
- {"version":3,"file":"NumericRadiusInput.cjs","sources":["../../../../../../src/form/inputs/RadiusPicker/components/NumericRadiusInput.tsx"],"sourcesContent":["import React, {useEffect, useState} from \"react\";\nimport type {RadiusUnit} from \"@lmb-it/kitsconcerto-types\";\nimport {EKeyFilter} from \"@lmb-it/kitsconcerto-types\";\nimport {KitsInputText} from \"../../../../_compat\";\n\ninterface Props {\n value: number;\n unit: RadiusUnit;\n min: number;\n max: number;\n disabled?: boolean;\n readOnly?: boolean;\n label?: string;\n onCommit: (next: number) => void;\n}\n\n/**\n * Local-state numeric input with commit-on-blur semantics. Allows the user\n * to type freely (including a temporarily-empty field) while a controlled\n * `value` is shown as the fallback. On blur or Enter, the parsed number is\n * forwarded to `onCommit`, which is responsible for clamping + applying.\n */\nexport const NumericRadiusInput: React.FC<Props> = ({\n value,\n unit,\n min,\n max,\n disabled,\n readOnly,\n label,\n onCommit,\n}) => {\n const [draft, setDraft] = useState<string>(String(value));\n\n useEffect(() => {\n setDraft(String(value));\n }, [value]);\n\n const commit = () => {\n const parsed = Number.parseFloat(draft);\n if (Number.isFinite(parsed)) {\n onCommit(parsed);\n } else {\n setDraft(String(value));\n }\n };\n\n return (\n <KitsInputText\n value={draft}\n label={label}\n disabled={disabled || readOnly}\n keyFilter={EKeyFilter.Number}\n keyboardType=\"decimal-pad\"\n onChange={(next: any) => setDraft(typeof next === \"string\" ? next : (next?.target?.value ?? \"\"))}\n onBlur={commit as any}\n onSubmitEditing={commit}\n />\n );\n};\n\nexport default NumericRadiusInput;\n"],"names":["useState","useEffect","jsx","KitsInputText","EKeyFilter"],"mappings":";;;;;;;;;;;;;;;AAsBO,MAAM,qBAAsC,CAAC;AAAA,EAChD,KAAA;AAAA,EACA,IAAA;AAAA,EACA,GAAA;AAAA,EACA,GAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,KAAA;AAAA,EACA;AACJ,CAAA,KAAM;AACF,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,IAAIA,cAAA,CAAiB,MAAA,CAAO,KAAK,CAAC,CAAA;AAExD,EAAAC,eAAA,CAAU,MAAM;AACZ,IAAA,QAAA,CAAS,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,EAC1B,CAAA,EAAG,CAAC,KAAK,CAAC,CAAA;AAEV,EAAA,MAAM,SAAS,MAAM;AACjB,IAAA,MAAM,MAAA,GAAS,MAAA,CAAO,UAAA,CAAW,KAAK,CAAA;AACtC,IAAA,IAAI,MAAA,CAAO,QAAA,CAAS,MAAM,CAAA,EAAG;AACzB,MAAA,QAAA,CAAS,MAAM,CAAA;AAAA,IACnB,CAAA,MAAO;AACH,MAAA,QAAA,CAAS,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,IAC1B;AAAA,EACJ,CAAA;AAEA,EAAA,uBACIC,cAAA;AAAA,IAACC,oBAAA;AAAA,IAAA;AAAA,MACG,KAAA,EAAO,KAAA;AAAA,MACP,KAAA;AAAA,MACA,UAAU,QAAA,IAAY,QAAA;AAAA,MACtB,WAAWC,gBAAA,CAAW,MAAA;AAAA,MACtB,YAAA,EAAa,aAAA;AAAA,MACb,QAAA,EAAU,CAAC,IAAA,KAAc,QAAA,CAAS,OAAO,IAAA,KAAS,QAAA,GAAW,IAAA,GAAQ,IAAA,EAAM,MAAA,EAAQ,KAAA,IAAS,EAAG,CAAA;AAAA,MAC/F,MAAA,EAAQ,MAAA;AAAA,MACR,eAAA,EAAiB;AAAA;AAAA,GACrB;AAER;;;;"}
1
+ {"version":3,"file":"NumericRadiusInput.cjs","sources":["../../../../../../src/form/inputs/RadiusPicker/components/NumericRadiusInput.tsx"],"sourcesContent":["import React, {useEffect, useState} from \"react\";\nimport type {RadiusUnit} from \"@lmb-it/kitsconcerto-types\";\nimport {EKeyFilter} from \"@lmb-it/kitsconcerto-types\";\nimport {KitsInputText} from \"../../../../_compat\";\n\ninterface Props {\n value: number;\n unit: RadiusUnit;\n min: number;\n max: number;\n disabled?: boolean;\n readOnly?: boolean;\n label?: string;\n onCommit: (next: number) => void;\n}\n\n/**\n * Local-state numeric input with commit-on-blur semantics. Allows the user\n * to type freely (including a temporarily-empty field) while a controlled\n * `value` is shown as the fallback. On blur or Enter, the parsed number is\n * forwarded to `onCommit`, which is responsible for clamping + applying.\n */\nexport const NumericRadiusInput: React.FC<Props> = ({\n value,\n unit,\n min,\n max,\n disabled,\n readOnly,\n label,\n onCommit,\n}) => {\n const [draft, setDraft] = useState<string>(String(value));\n\n useEffect(() => {\n setDraft(String(value));\n }, [value]);\n\n const commit = () => {\n const parsed = Number.parseFloat(draft);\n if (Number.isFinite(parsed)) {\n onCommit(parsed);\n } else {\n setDraft(String(value));\n }\n };\n\n return (\n <KitsInputText\n value={draft}\n label={label}\n disabled={disabled || readOnly}\n keyFilter={EKeyFilter.Number}\n keyboardType=\"decimal-pad\"\n onChange={(next: any) => setDraft(typeof next === \"string\" ? next : (next?.target?.value ?? \"\"))}\n onBlur={commit as any}\n onSubmitEditing={commit}\n />\n );\n};\n\nexport default NumericRadiusInput;\n"],"names":["useState","useEffect","jsx","KitsInputText","EKeyFilter"],"mappings":";;;;;;;;;;;;;;;;AAsBO,MAAM,qBAAsC,CAAC;AAAA,EAChD,KAAA;AAAA,EACA,IAAA;AAAA,EACA,GAAA;AAAA,EACA,GAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,KAAA;AAAA,EACA;AACJ,CAAA,KAAM;AACF,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,IAAIA,cAAA,CAAiB,MAAA,CAAO,KAAK,CAAC,CAAA;AAExD,EAAAC,eAAA,CAAU,MAAM;AACZ,IAAA,QAAA,CAAS,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,EAC1B,CAAA,EAAG,CAAC,KAAK,CAAC,CAAA;AAEV,EAAA,MAAM,SAAS,MAAM;AACjB,IAAA,MAAM,MAAA,GAAS,MAAA,CAAO,UAAA,CAAW,KAAK,CAAA;AACtC,IAAA,IAAI,MAAA,CAAO,QAAA,CAAS,MAAM,CAAA,EAAG;AACzB,MAAA,QAAA,CAAS,MAAM,CAAA;AAAA,IACnB,CAAA,MAAO;AACH,MAAA,QAAA,CAAS,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,IAC1B;AAAA,EACJ,CAAA;AAEA,EAAA,uBACIC,cAAA;AAAA,IAACC,oBAAA;AAAA,IAAA;AAAA,MACG,KAAA,EAAO,KAAA;AAAA,MACP,KAAA;AAAA,MACA,UAAU,QAAA,IAAY,QAAA;AAAA,MACtB,WAAWC,gBAAA,CAAW,MAAA;AAAA,MACtB,YAAA,EAAa,aAAA;AAAA,MACb,QAAA,EAAU,CAAC,IAAA,KAAc,QAAA,CAAS,OAAO,IAAA,KAAS,QAAA,GAAW,IAAA,GAAQ,IAAA,EAAM,MAAA,EAAQ,KAAA,IAAS,EAAG,CAAA;AAAA,MAC/F,MAAA,EAAQ,MAAA;AAAA,MACR,eAAA,EAAiB;AAAA;AAAA,GACrB;AAER;;;;"}