@lmb-it/kitsconcerto-native 0.1.289 → 0.1.291

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 (258) hide show
  1. package/apps/mobile/src/Core/Dropdown/index.cjs +1 -0
  2. package/apps/mobile/src/Core/Dropdown/index.cjs.map +1 -1
  3. package/apps/mobile/src/Core/Dropdown/index.js +1 -0
  4. package/apps/mobile/src/Core/Dropdown/index.js.map +1 -1
  5. package/apps/mobile/src/Core/Trees/components/CoreToolbar.cjs +1 -0
  6. package/apps/mobile/src/Core/Trees/components/CoreToolbar.cjs.map +1 -1
  7. package/apps/mobile/src/Core/Trees/components/CoreToolbar.js +1 -0
  8. package/apps/mobile/src/Core/Trees/components/CoreToolbar.js.map +1 -1
  9. package/apps/mobile/src/Factory/ResponsiveElement.cjs +1 -0
  10. package/apps/mobile/src/Factory/ResponsiveElement.cjs.map +1 -1
  11. package/apps/mobile/src/Factory/ResponsiveElement.js +1 -0
  12. package/apps/mobile/src/Factory/ResponsiveElement.js.map +1 -1
  13. package/apps/mobile/src/Factory/helpers/cssVarMap.cjs +1 -0
  14. package/apps/mobile/src/Factory/helpers/cssVarMap.cjs.map +1 -1
  15. package/apps/mobile/src/Factory/helpers/cssVarMap.js +1 -0
  16. package/apps/mobile/src/Factory/helpers/cssVarMap.js.map +1 -1
  17. package/apps/mobile/src/Factory/helpers/style.cjs +1 -0
  18. package/apps/mobile/src/Factory/helpers/style.cjs.map +1 -1
  19. package/apps/mobile/src/Factory/helpers/style.js +1 -0
  20. package/apps/mobile/src/Factory/helpers/style.js.map +1 -1
  21. package/apps/mobile/src/Factory/useSeparator.cjs +1 -0
  22. package/apps/mobile/src/Factory/useSeparator.cjs.map +1 -1
  23. package/apps/mobile/src/Factory/useSeparator.js +1 -0
  24. package/apps/mobile/src/Factory/useSeparator.js.map +1 -1
  25. package/components/Accordion/accordion.cjs +1 -0
  26. package/components/Accordion/accordion.cjs.map +1 -1
  27. package/components/Accordion/accordion.js +1 -0
  28. package/components/Accordion/accordion.js.map +1 -1
  29. package/components/Badge/index.cjs +1 -0
  30. package/components/Badge/index.cjs.map +1 -1
  31. package/components/Badge/index.js +1 -0
  32. package/components/Badge/index.js.map +1 -1
  33. package/components/BottomTabBar/index.cjs +1 -0
  34. package/components/BottomTabBar/index.cjs.map +1 -1
  35. package/components/BottomTabBar/index.js +1 -0
  36. package/components/BottomTabBar/index.js.map +1 -1
  37. package/components/Button/Button.cjs +1 -0
  38. package/components/Button/Button.cjs.map +1 -1
  39. package/components/Button/Button.js +1 -0
  40. package/components/Button/Button.js.map +1 -1
  41. package/components/MessageComposer/index.cjs +1 -0
  42. package/components/MessageComposer/index.cjs.map +1 -1
  43. package/components/MessageComposer/index.js +1 -0
  44. package/components/MessageComposer/index.js.map +1 -1
  45. package/components/SegmentedControl/index.cjs +1 -0
  46. package/components/SegmentedControl/index.cjs.map +1 -1
  47. package/components/SegmentedControl/index.js +1 -0
  48. package/components/SegmentedControl/index.js.map +1 -1
  49. package/components/SkeletonText/index.cjs +1 -0
  50. package/components/SkeletonText/index.cjs.map +1 -1
  51. package/components/SkeletonText/index.js +1 -0
  52. package/components/SkeletonText/index.js.map +1 -1
  53. package/components/Tabs/index.cjs +3 -2
  54. package/components/Tabs/index.cjs.map +1 -1
  55. package/components/Tabs/index.js +3 -2
  56. package/components/Tabs/index.js.map +1 -1
  57. package/contexts/Locale/index.cjs +1 -0
  58. package/contexts/Locale/index.cjs.map +1 -1
  59. package/contexts/Locale/index.js +1 -0
  60. package/contexts/Locale/index.js.map +1 -1
  61. package/contexts/Main/index.cjs +1 -0
  62. package/contexts/Main/index.cjs.map +1 -1
  63. package/contexts/Main/index.js +1 -0
  64. package/contexts/Main/index.js.map +1 -1
  65. package/contexts/Theme/index.cjs +1 -0
  66. package/contexts/Theme/index.cjs.map +1 -1
  67. package/contexts/Theme/index.js +1 -0
  68. package/contexts/Theme/index.js.map +1 -1
  69. package/data/DataView/Pagination/index.cjs +1 -0
  70. package/data/DataView/Pagination/index.cjs.map +1 -1
  71. package/data/DataView/Pagination/index.js +1 -0
  72. package/data/DataView/Pagination/index.js.map +1 -1
  73. package/data/TreeView/index.cjs +1 -0
  74. package/data/TreeView/index.cjs.map +1 -1
  75. package/data/TreeView/index.js +1 -0
  76. package/data/TreeView/index.js.map +1 -1
  77. package/form/controls/Checkbox/checkbox.cjs +1 -0
  78. package/form/controls/Checkbox/checkbox.cjs.map +1 -1
  79. package/form/controls/Checkbox/checkbox.js +1 -0
  80. package/form/controls/Checkbox/checkbox.js.map +1 -1
  81. package/form/controls/RadioButton/radiobutton.cjs +1 -0
  82. package/form/controls/RadioButton/radiobutton.cjs.map +1 -1
  83. package/form/controls/RadioButton/radiobutton.js +1 -0
  84. package/form/controls/RadioButton/radiobutton.js.map +1 -1
  85. package/form/controls/SelectButton/index.cjs +1 -0
  86. package/form/controls/SelectButton/index.cjs.map +1 -1
  87. package/form/controls/SelectButton/index.js +1 -0
  88. package/form/controls/SelectButton/index.js.map +1 -1
  89. package/form/controls/TriStateCheckbox/index.cjs +1 -0
  90. package/form/controls/TriStateCheckbox/index.cjs.map +1 -1
  91. package/form/controls/TriStateCheckbox/index.js +1 -0
  92. package/form/controls/TriStateCheckbox/index.js.map +1 -1
  93. package/form/file-pickers/MainUploader/index.cjs +1 -0
  94. package/form/file-pickers/MainUploader/index.cjs.map +1 -1
  95. package/form/file-pickers/MainUploader/index.js +1 -0
  96. package/form/file-pickers/MainUploader/index.js.map +1 -1
  97. package/form/helpers/ErrorMessage/errormessage.cjs +1 -0
  98. package/form/helpers/ErrorMessage/errormessage.cjs.map +1 -1
  99. package/form/helpers/ErrorMessage/errormessage.js +1 -0
  100. package/form/helpers/ErrorMessage/errormessage.js.map +1 -1
  101. package/form/helpers/FormContainer/index.cjs +1 -0
  102. package/form/helpers/FormContainer/index.cjs.map +1 -1
  103. package/form/helpers/FormContainer/index.js +1 -0
  104. package/form/helpers/FormContainer/index.js.map +1 -1
  105. package/form/helpers/Label/label.cjs +1 -0
  106. package/form/helpers/Label/label.cjs.map +1 -1
  107. package/form/helpers/Label/label.js +1 -0
  108. package/form/helpers/Label/label.js.map +1 -1
  109. package/form/inputs/InputMask/index.cjs +1 -0
  110. package/form/inputs/InputMask/index.cjs.map +1 -1
  111. package/form/inputs/InputMask/index.js +1 -0
  112. package/form/inputs/InputMask/index.js.map +1 -1
  113. package/form/inputs/InputNumber/index.cjs +1 -0
  114. package/form/inputs/InputNumber/index.cjs.map +1 -1
  115. package/form/inputs/InputNumber/index.js +1 -0
  116. package/form/inputs/InputNumber/index.js.map +1 -1
  117. package/form/inputs/InputPassword/index.cjs +1 -0
  118. package/form/inputs/InputPassword/index.cjs.map +1 -1
  119. package/form/inputs/InputPassword/index.js +1 -0
  120. package/form/inputs/InputPassword/index.js.map +1 -1
  121. package/form/inputs/InputSwitch/index.cjs +1 -0
  122. package/form/inputs/InputSwitch/index.cjs.map +1 -1
  123. package/form/inputs/InputSwitch/index.js +1 -0
  124. package/form/inputs/InputSwitch/index.js.map +1 -1
  125. package/form/inputs/InputText/index.cjs +1 -0
  126. package/form/inputs/InputText/index.cjs.map +1 -1
  127. package/form/inputs/InputText/index.js +1 -0
  128. package/form/inputs/InputText/index.js.map +1 -1
  129. package/form/inputs/InputTextarea/index.cjs +1 -0
  130. package/form/inputs/InputTextarea/index.cjs.map +1 -1
  131. package/form/inputs/InputTextarea/index.js +1 -0
  132. package/form/inputs/InputTextarea/index.js.map +1 -1
  133. package/form/inputs/PhoneInput/index.cjs +1 -0
  134. package/form/inputs/PhoneInput/index.cjs.map +1 -1
  135. package/form/inputs/PhoneInput/index.js +1 -0
  136. package/form/inputs/PhoneInput/index.js.map +1 -1
  137. package/form/inputs/RadiusPicker/components/NumericRadiusInput.cjs +1 -0
  138. package/form/inputs/RadiusPicker/components/NumericRadiusInput.cjs.map +1 -1
  139. package/form/inputs/RadiusPicker/components/NumericRadiusInput.js +1 -0
  140. package/form/inputs/RadiusPicker/components/NumericRadiusInput.js.map +1 -1
  141. package/form/selects/AutoComplete/index.cjs +1 -0
  142. package/form/selects/AutoComplete/index.cjs.map +1 -1
  143. package/form/selects/AutoComplete/index.js +1 -0
  144. package/form/selects/AutoComplete/index.js.map +1 -1
  145. package/form/selects/Dropdown/index.cjs +1 -0
  146. package/form/selects/Dropdown/index.cjs.map +1 -1
  147. package/form/selects/Dropdown/index.js +1 -0
  148. package/form/selects/Dropdown/index.js.map +1 -1
  149. package/form/selects/ListBox/index.cjs +1 -0
  150. package/form/selects/ListBox/index.cjs.map +1 -1
  151. package/form/selects/ListBox/index.js +1 -0
  152. package/form/selects/ListBox/index.js.map +1 -1
  153. package/form/selects/MultiSelect/index.cjs +1 -0
  154. package/form/selects/MultiSelect/index.cjs.map +1 -1
  155. package/form/selects/MultiSelect/index.js +1 -0
  156. package/form/selects/MultiSelect/index.js.map +1 -1
  157. package/form/selects/TreeSelect/index.cjs +1 -0
  158. package/form/selects/TreeSelect/index.cjs.map +1 -1
  159. package/form/selects/TreeSelect/index.js +1 -0
  160. package/form/selects/TreeSelect/index.js.map +1 -1
  161. package/form/selects/helpers/SelectPopupOverlay.cjs +1 -0
  162. package/form/selects/helpers/SelectPopupOverlay.cjs.map +1 -1
  163. package/form/selects/helpers/SelectPopupOverlay.js +1 -0
  164. package/form/selects/helpers/SelectPopupOverlay.js.map +1 -1
  165. package/form-renderer/components/layout/FieldWrapper.cjs +1 -0
  166. package/form-renderer/components/layout/FieldWrapper.cjs.map +1 -1
  167. package/form-renderer/components/layout/FieldWrapper.js +1 -0
  168. package/form-renderer/components/layout/FieldWrapper.js.map +1 -1
  169. package/hooks/shadowPresets.cjs +1 -0
  170. package/hooks/shadowPresets.cjs.map +1 -1
  171. package/hooks/shadowPresets.js +1 -0
  172. package/hooks/shadowPresets.js.map +1 -1
  173. package/hooks/useFocusStyles.cjs +1 -0
  174. package/hooks/useFocusStyles.cjs.map +1 -1
  175. package/hooks/useFocusStyles.js +1 -0
  176. package/hooks/useFocusStyles.js.map +1 -1
  177. package/index.cjs +2 -0
  178. package/index.cjs.map +1 -1
  179. package/index.d.ts +35 -3
  180. package/index.js +1 -0
  181. package/index.js.map +1 -1
  182. package/layout/Center/index.cjs +1 -0
  183. package/layout/Center/index.cjs.map +1 -1
  184. package/layout/Center/index.js +1 -0
  185. package/layout/Center/index.js.map +1 -1
  186. package/layout/Container/container.cjs +1 -0
  187. package/layout/Container/container.cjs.map +1 -1
  188. package/layout/Container/container.js +1 -0
  189. package/layout/Container/container.js.map +1 -1
  190. package/layout/Flex/index.cjs +1 -0
  191. package/layout/Flex/index.cjs.map +1 -1
  192. package/layout/Flex/index.js +1 -0
  193. package/layout/Flex/index.js.map +1 -1
  194. package/layout/HStack/index.cjs +1 -0
  195. package/layout/HStack/index.cjs.map +1 -1
  196. package/layout/HStack/index.js +1 -0
  197. package/layout/HStack/index.js.map +1 -1
  198. package/layout/List/index.cjs +1 -0
  199. package/layout/List/index.cjs.map +1 -1
  200. package/layout/List/index.js +1 -0
  201. package/layout/List/index.js.map +1 -1
  202. package/layout/ListItem/index.cjs +1 -0
  203. package/layout/ListItem/index.cjs.map +1 -1
  204. package/layout/ListItem/index.js +1 -0
  205. package/layout/ListItem/index.js.map +1 -1
  206. package/layout/ScrollView/index.cjs +1 -0
  207. package/layout/ScrollView/index.cjs.map +1 -1
  208. package/layout/ScrollView/index.js +1 -0
  209. package/layout/ScrollView/index.js.map +1 -1
  210. package/layout/VStack/index.cjs +1 -0
  211. package/layout/VStack/index.cjs.map +1 -1
  212. package/layout/VStack/index.js +1 -0
  213. package/layout/VStack/index.js.map +1 -1
  214. package/package.json +1 -1
  215. package/packages/types/src/Theme/defaultTheme.cjs +1 -1
  216. package/packages/types/src/Theme/defaultTheme.cjs.map +1 -1
  217. package/packages/types/src/Theme/defaultTheme.js +1 -1
  218. package/packages/types/src/Theme/defaultTheme.js.map +1 -1
  219. package/packages/types/src/Theme/resolvers.cjs +2 -55
  220. package/packages/types/src/Theme/resolvers.cjs.map +1 -1
  221. package/packages/types/src/Theme/resolvers.js +2 -55
  222. package/packages/types/src/Theme/resolvers.js.map +1 -1
  223. package/packages/types/src/Theme/semanticTokenNames.cjs +64 -0
  224. package/packages/types/src/Theme/semanticTokenNames.cjs.map +1 -0
  225. package/packages/types/src/Theme/semanticTokenNames.js +62 -0
  226. package/packages/types/src/Theme/semanticTokenNames.js.map +1 -0
  227. package/primitives/Box/index.cjs +1 -0
  228. package/primitives/Box/index.cjs.map +1 -1
  229. package/primitives/Box/index.js +1 -0
  230. package/primitives/Box/index.js.map +1 -1
  231. package/primitives/Card/index.cjs +1 -0
  232. package/primitives/Card/index.cjs.map +1 -1
  233. package/primitives/Card/index.js +1 -0
  234. package/primitives/Card/index.js.map +1 -1
  235. package/primitives/Divider/index.cjs +1 -0
  236. package/primitives/Divider/index.cjs.map +1 -1
  237. package/primitives/Divider/index.js +1 -0
  238. package/primitives/Divider/index.js.map +1 -1
  239. package/primitives/Heading/index.cjs +1 -0
  240. package/primitives/Heading/index.cjs.map +1 -1
  241. package/primitives/Heading/index.js +1 -0
  242. package/primitives/Heading/index.js.map +1 -1
  243. package/primitives/Image/index.cjs +1 -0
  244. package/primitives/Image/index.cjs.map +1 -1
  245. package/primitives/Image/index.js +1 -0
  246. package/primitives/Image/index.js.map +1 -1
  247. package/primitives/Skeleton/index.cjs +1 -0
  248. package/primitives/Skeleton/index.cjs.map +1 -1
  249. package/primitives/Skeleton/index.js +1 -0
  250. package/primitives/Skeleton/index.js.map +1 -1
  251. package/primitives/Svg/index.cjs +1 -0
  252. package/primitives/Svg/index.cjs.map +1 -1
  253. package/primitives/Svg/index.js +1 -0
  254. package/primitives/Svg/index.js.map +1 -1
  255. package/primitives/Text/index.cjs +1 -0
  256. package/primitives/Text/index.cjs.map +1 -1
  257. package/primitives/Text/index.js +1 -0
  258. package/primitives/Text/index.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"label.js","sources":["../../../../../src/form/helpers/Label/label.native.tsx"],"sourcesContent":["import React, { type FunctionComponent, isValidElement, useMemo } from \"react\";\nimport { Text } from \"../../../_compat\";\nimport { useLanguage } from \"../../../_compat\";\nimport type {ILabelProps} from \"@lmb-it/kitsconcerto-types\";\nimport {FormControlLabel, FormControlLabelText} from \"@lmb-it/kitsconcertomobile\";\nimport useThemedFont from \"../../../hooks/useThemedFont\";\n\n\n\nconst Label: FunctionComponent<ILabelProps> = ({ label, className, isFormControl = false, elementId, required, style }) => {\n const { isRTL } = useLanguage();\n const labelFont = useThemedFont('body');\n\n const renderLabel = useMemo(() => {\n if (!label) return \"\";\n\n if (isValidElement(label) || typeof label === \"string\") {\n return label;\n }\n\n if (\"element\" in label && label.element) {\n return label.element;\n }\n\n if (\"text\" in label && label.text) {\n return label.text;\n }\n\n return \"\";\n }, [label]);\n\n const labelClasses = useMemo(() => {\n const classes: string[] = [\"label-position\", \"w-full\"];\n\n if(className){\n classes.push(className)\n }\n // NOTE: `text-right` used to be pushed via className for RTL labels,\n // but the underlying Text primitive does not process NativeWind class\n // names on native — the class was silently dropped. Direction is now\n // applied via inline `textAlign` below so it actually renders.\n if (label && typeof label !== \"string\" && \"placement\" in label) {\n if (label.placement === \"RL\") classes.push(\"RL\");\n if (label.placement === \"B\") classes.push(\"B\");\n if (label.placement === \"T\") classes.push(\"T\");\n }\n\n return classes.join(\" \");\n }, [label, className]);\n\n // Inline style — applied on top of any consumer-supplied `style` so per-\n // element overrides still win, but a global RTL/LTR alignment is always\n // present. textAlign='auto' fails on iOS for short standalone labels\n // because RN cannot detect script when the string is too short — so we\n // pick explicit left/right based on the active locale.\n const directionStyle = useMemo(\n () => ({\n textAlign: (isRTL ? \"right\" : \"left\") as \"right\" | \"left\",\n writingDirection: (isRTL ? \"rtl\" : \"ltr\") as \"rtl\" | \"ltr\",\n }),\n [isRTL],\n );\n\n if (!label) return null;\n\n // If the resolved label is already a ReactElement, render it directly without wrapping in Text\n if (isValidElement(renderLabel)) {\n return <>{renderLabel}</>;\n }\n\n if(!isFormControl){\n return(\n <Text\n className={labelClasses}\n style={{ ...directionStyle, ...(style || {}) }}\n // htmlFor does not exist on native; we keep the prop name out completely.\n >\n {renderLabel}\n </Text>\n )\n }\n return(\n <FormControlLabel className={labelClasses} style={{padding:0, ...directionStyle, ...(style || {})}}>\n <FormControlLabelText style={{padding:0, ...(labelFont ? {fontFamily: labelFont} : {}), ...directionStyle, ...(style || {})}}>{renderLabel}</FormControlLabelText>\n </FormControlLabel>\n )\n};\n\nexport default Label;\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"label.js","sources":["../../../../../src/form/helpers/Label/label.native.tsx"],"sourcesContent":["import React, { type FunctionComponent, isValidElement, useMemo } from \"react\";\nimport { Text } from \"../../../_compat\";\nimport { useLanguage } from \"../../../_compat\";\nimport type {ILabelProps} from \"@lmb-it/kitsconcerto-types\";\nimport {FormControlLabel, FormControlLabelText} from \"@lmb-it/kitsconcertomobile\";\nimport useThemedFont from \"../../../hooks/useThemedFont\";\n\n\n\nconst Label: FunctionComponent<ILabelProps> = ({ label, className, isFormControl = false, elementId, required, style }) => {\n const { isRTL } = useLanguage();\n const labelFont = useThemedFont('body');\n\n const renderLabel = useMemo(() => {\n if (!label) return \"\";\n\n if (isValidElement(label) || typeof label === \"string\") {\n return label;\n }\n\n if (\"element\" in label && label.element) {\n return label.element;\n }\n\n if (\"text\" in label && label.text) {\n return label.text;\n }\n\n return \"\";\n }, [label]);\n\n const labelClasses = useMemo(() => {\n const classes: string[] = [\"label-position\", \"w-full\"];\n\n if(className){\n classes.push(className)\n }\n // NOTE: `text-right` used to be pushed via className for RTL labels,\n // but the underlying Text primitive does not process NativeWind class\n // names on native — the class was silently dropped. Direction is now\n // applied via inline `textAlign` below so it actually renders.\n if (label && typeof label !== \"string\" && \"placement\" in label) {\n if (label.placement === \"RL\") classes.push(\"RL\");\n if (label.placement === \"B\") classes.push(\"B\");\n if (label.placement === \"T\") classes.push(\"T\");\n }\n\n return classes.join(\" \");\n }, [label, className]);\n\n // Inline style — applied on top of any consumer-supplied `style` so per-\n // element overrides still win, but a global RTL/LTR alignment is always\n // present. textAlign='auto' fails on iOS for short standalone labels\n // because RN cannot detect script when the string is too short — so we\n // pick explicit left/right based on the active locale.\n const directionStyle = useMemo(\n () => ({\n textAlign: (isRTL ? \"right\" : \"left\") as \"right\" | \"left\",\n writingDirection: (isRTL ? \"rtl\" : \"ltr\") as \"rtl\" | \"ltr\",\n }),\n [isRTL],\n );\n\n if (!label) return null;\n\n // If the resolved label is already a ReactElement, render it directly without wrapping in Text\n if (isValidElement(renderLabel)) {\n return <>{renderLabel}</>;\n }\n\n if(!isFormControl){\n return(\n <Text\n className={labelClasses}\n style={{ ...directionStyle, ...(style || {}) }}\n // htmlFor does not exist on native; we keep the prop name out completely.\n >\n {renderLabel}\n </Text>\n )\n }\n return(\n <FormControlLabel className={labelClasses} style={{padding:0, ...directionStyle, ...(style || {})}}>\n <FormControlLabelText style={{padding:0, ...(labelFont ? {fontFamily: labelFont} : {}), ...directionStyle, ...(style || {})}}>{renderLabel}</FormControlLabelText>\n </FormControlLabel>\n )\n};\n\nexport default Label;\n"],"names":[],"mappings":"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"}
@@ -64,6 +64,7 @@ require('yup');
64
64
  require('../../../packages/types/src/Css/map/index.cjs');
65
65
  require('../../../packages/types/src/Theme/shadows.cjs');
66
66
  require('../../../packages/types/src/Theme/defaultTheme.cjs');
67
+ require('../../../packages/types/src/Theme/resolvers.cjs');
67
68
  require('../../../packages/types/src/Theme/alphaColors.cjs');
68
69
  require('../../../apps/mobile/src/Factory/helpers/cssVarMap.cjs');
69
70
  require('../../../apps/mobile/src/Factory/DimensionsContext.cjs');
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../../../src/form/inputs/InputMask/index.native.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport type { IKitsInputMask } from \"@lmb-it/kitsconcerto-types\";\nimport KitsContainer from \"../../helpers/FormContainer\";\nimport { formatWithMask } from \"../../helpers/native/mask\";\nimport { keyboardTypeFromMask } from \"../../helpers/native/keyboardFromFilter\";\nimport {\n KitsCoreInput as Input,\n KitsCoreInputField as InputField,\n} from \"@lmb-it/kitsconcertomobile\";\nimport { useFormInputController } from \"../../helpers/useFormInputController\";\nimport {useComponentDefaults, useResolvedStyle} from \"@lmb-it/kitsconcerto/hooks\";\nimport { useLanguage } from \"../../../_compat\";\n\nconst KitsInputMask = ({ ref, ...rawProps }: IKitsInputMask) => {\n const { mergedProps: props, themeStyle, elementStyles } = useComponentDefaults('InputMask', rawProps, 'Input');\n const { isRTL } = useLanguage();\n const resolvedThemeStyle = useResolvedStyle(themeStyle);\n const resolvedRootStyle = useResolvedStyle(elementStyles?.root || {});\n const {\n id,\n label,\n required,\n value,\n defaultValue,\n attached,\n errors,\n hideError,\n invalid,\n isFloatedLabel,\n disabled,\n helperText,\n mask,\n unmask,\n leftAddon,\n rightAddon,\n onChange,\n placeholder,\n } = props;\n\n const { emitChange } =\n useFormInputController<string>({\n value,\n defaultValue,\n onChange,\n });\n\n // The displayed value is always the masked variant. We track it in local\n // state so re-renders triggered by the form (which may receive either the\n // masked or unmasked value depending on `unmask`) don't unmask the input.\n const [maskedDisplay, setMaskedDisplay] = useState<string>(() => {\n const incoming = String(value ?? defaultValue ?? \"\");\n return mask ? formatWithMask(incoming, mask).masked : incoming;\n });\n\n useEffect(() => {\n const incoming = String(value ?? defaultValue ?? \"\");\n setMaskedDisplay(mask ? formatWithMask(incoming, mask).masked : incoming);\n }, [value, defaultValue, mask]);\n\n const resolvedKeyboardType = keyboardTypeFromMask(mask);\n\n const handleChangeText = (raw: string) => {\n const res = mask\n ? formatWithMask(raw, mask)\n : { masked: raw, unmasked: raw };\n\n setMaskedDisplay(res.masked);\n emitChange(unmask ? res.unmasked : res.masked);\n };\n\n const [isFocused, setIsFocused] = useState(false);\n\n // Pure input element. The inner Input is borderless (theme defaults\n // provide `Input.root.style.{borderWidth: 0, borderRadius: 0}`); the\n // visual frame is owned by the FormContainer inputGroup wrapper. Addon\n // rendering also lives in FormContainer — this component never wraps\n // its own children in addons.\n const inputEl = (\n <Input\n isDisabled={disabled}\n isInvalid={!!invalid}\n isFocused={isFocused}\n style={{ width: \"100%\", ...(resolvedRootStyle && Object.keys(resolvedRootStyle).length > 0 ? resolvedRootStyle : resolvedThemeStyle) }}\n >\n <InputField\n ref={ref}\n value={maskedDisplay}\n placeholder={placeholder}\n keyboardType={resolvedKeyboardType}\n onChangeText={handleChangeText}\n onFocus={() => setIsFocused(true)}\n onBlur={() => setIsFocused(false)}\n style={{\n textAlign: isRTL ? \"right\" : \"left\",\n writingDirection: isRTL ? \"rtl\" : \"ltr\",\n }}\n />\n </Input>\n );\n\n // `attached`: input sits inside an outer group that already owns the\n // chrome (FormContainer is upstream). Mirror web: return bare input.\n if(attached){\n return inputEl;\n }\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 required={required}\n disabled={disabled}\n leftAddon={leftAddon}\n rightAddon={rightAddon}\n elementStyles={elementStyles}\n >\n {inputEl}\n </KitsContainer>\n );\n};\n\nexport default KitsInputMask;\n"],"names":["useComponentDefaults","useLanguage","useResolvedStyle","mask","useFormInputController","useState","formatWithMask","useEffect","keyboardTypeFromMask","jsx","Input","InputField","KitsContainer"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../../../src/form/inputs/InputMask/index.native.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport type { IKitsInputMask } from \"@lmb-it/kitsconcerto-types\";\nimport KitsContainer from \"../../helpers/FormContainer\";\nimport { formatWithMask } from \"../../helpers/native/mask\";\nimport { keyboardTypeFromMask } from \"../../helpers/native/keyboardFromFilter\";\nimport {\n KitsCoreInput as Input,\n KitsCoreInputField as InputField,\n} from \"@lmb-it/kitsconcertomobile\";\nimport { useFormInputController } from \"../../helpers/useFormInputController\";\nimport {useComponentDefaults, useResolvedStyle} from \"@lmb-it/kitsconcerto/hooks\";\nimport { useLanguage } from \"../../../_compat\";\n\nconst KitsInputMask = ({ ref, ...rawProps }: IKitsInputMask) => {\n const { mergedProps: props, themeStyle, elementStyles } = useComponentDefaults('InputMask', rawProps, 'Input');\n const { isRTL } = useLanguage();\n const resolvedThemeStyle = useResolvedStyle(themeStyle);\n const resolvedRootStyle = useResolvedStyle(elementStyles?.root || {});\n const {\n id,\n label,\n required,\n value,\n defaultValue,\n attached,\n errors,\n hideError,\n invalid,\n isFloatedLabel,\n disabled,\n helperText,\n mask,\n unmask,\n leftAddon,\n rightAddon,\n onChange,\n placeholder,\n } = props;\n\n const { emitChange } =\n useFormInputController<string>({\n value,\n defaultValue,\n onChange,\n });\n\n // The displayed value is always the masked variant. We track it in local\n // state so re-renders triggered by the form (which may receive either the\n // masked or unmasked value depending on `unmask`) don't unmask the input.\n const [maskedDisplay, setMaskedDisplay] = useState<string>(() => {\n const incoming = String(value ?? defaultValue ?? \"\");\n return mask ? formatWithMask(incoming, mask).masked : incoming;\n });\n\n useEffect(() => {\n const incoming = String(value ?? defaultValue ?? \"\");\n setMaskedDisplay(mask ? formatWithMask(incoming, mask).masked : incoming);\n }, [value, defaultValue, mask]);\n\n const resolvedKeyboardType = keyboardTypeFromMask(mask);\n\n const handleChangeText = (raw: string) => {\n const res = mask\n ? formatWithMask(raw, mask)\n : { masked: raw, unmasked: raw };\n\n setMaskedDisplay(res.masked);\n emitChange(unmask ? res.unmasked : res.masked);\n };\n\n const [isFocused, setIsFocused] = useState(false);\n\n // Pure input element. The inner Input is borderless (theme defaults\n // provide `Input.root.style.{borderWidth: 0, borderRadius: 0}`); the\n // visual frame is owned by the FormContainer inputGroup wrapper. Addon\n // rendering also lives in FormContainer — this component never wraps\n // its own children in addons.\n const inputEl = (\n <Input\n isDisabled={disabled}\n isInvalid={!!invalid}\n isFocused={isFocused}\n style={{ width: \"100%\", ...(resolvedRootStyle && Object.keys(resolvedRootStyle).length > 0 ? resolvedRootStyle : resolvedThemeStyle) }}\n >\n <InputField\n ref={ref}\n value={maskedDisplay}\n placeholder={placeholder}\n keyboardType={resolvedKeyboardType}\n onChangeText={handleChangeText}\n onFocus={() => setIsFocused(true)}\n onBlur={() => setIsFocused(false)}\n style={{\n textAlign: isRTL ? \"right\" : \"left\",\n writingDirection: isRTL ? \"rtl\" : \"ltr\",\n }}\n />\n </Input>\n );\n\n // `attached`: input sits inside an outer group that already owns the\n // chrome (FormContainer is upstream). Mirror web: return bare input.\n if(attached){\n return inputEl;\n }\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 required={required}\n disabled={disabled}\n leftAddon={leftAddon}\n rightAddon={rightAddon}\n elementStyles={elementStyles}\n >\n {inputEl}\n </KitsContainer>\n );\n};\n\nexport default KitsInputMask;\n"],"names":["useComponentDefaults","useLanguage","useResolvedStyle","mask","useFormInputController","useState","formatWithMask","useEffect","keyboardTypeFromMask","jsx","Input","InputField","KitsContainer"],"mappings":"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"}
@@ -60,6 +60,7 @@ import 'yup';
60
60
  import '../../../packages/types/src/Css/map/index.js';
61
61
  import '../../../packages/types/src/Theme/shadows.js';
62
62
  import '../../../packages/types/src/Theme/defaultTheme.js';
63
+ import '../../../packages/types/src/Theme/resolvers.js';
63
64
  import '../../../packages/types/src/Theme/alphaColors.js';
64
65
  import '../../../apps/mobile/src/Factory/helpers/cssVarMap.js';
65
66
  import '../../../apps/mobile/src/Factory/DimensionsContext.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/form/inputs/InputMask/index.native.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport type { IKitsInputMask } from \"@lmb-it/kitsconcerto-types\";\nimport KitsContainer from \"../../helpers/FormContainer\";\nimport { formatWithMask } from \"../../helpers/native/mask\";\nimport { keyboardTypeFromMask } from \"../../helpers/native/keyboardFromFilter\";\nimport {\n KitsCoreInput as Input,\n KitsCoreInputField as InputField,\n} from \"@lmb-it/kitsconcertomobile\";\nimport { useFormInputController } from \"../../helpers/useFormInputController\";\nimport {useComponentDefaults, useResolvedStyle} from \"@lmb-it/kitsconcerto/hooks\";\nimport { useLanguage } from \"../../../_compat\";\n\nconst KitsInputMask = ({ ref, ...rawProps }: IKitsInputMask) => {\n const { mergedProps: props, themeStyle, elementStyles } = useComponentDefaults('InputMask', rawProps, 'Input');\n const { isRTL } = useLanguage();\n const resolvedThemeStyle = useResolvedStyle(themeStyle);\n const resolvedRootStyle = useResolvedStyle(elementStyles?.root || {});\n const {\n id,\n label,\n required,\n value,\n defaultValue,\n attached,\n errors,\n hideError,\n invalid,\n isFloatedLabel,\n disabled,\n helperText,\n mask,\n unmask,\n leftAddon,\n rightAddon,\n onChange,\n placeholder,\n } = props;\n\n const { emitChange } =\n useFormInputController<string>({\n value,\n defaultValue,\n onChange,\n });\n\n // The displayed value is always the masked variant. We track it in local\n // state so re-renders triggered by the form (which may receive either the\n // masked or unmasked value depending on `unmask`) don't unmask the input.\n const [maskedDisplay, setMaskedDisplay] = useState<string>(() => {\n const incoming = String(value ?? defaultValue ?? \"\");\n return mask ? formatWithMask(incoming, mask).masked : incoming;\n });\n\n useEffect(() => {\n const incoming = String(value ?? defaultValue ?? \"\");\n setMaskedDisplay(mask ? formatWithMask(incoming, mask).masked : incoming);\n }, [value, defaultValue, mask]);\n\n const resolvedKeyboardType = keyboardTypeFromMask(mask);\n\n const handleChangeText = (raw: string) => {\n const res = mask\n ? formatWithMask(raw, mask)\n : { masked: raw, unmasked: raw };\n\n setMaskedDisplay(res.masked);\n emitChange(unmask ? res.unmasked : res.masked);\n };\n\n const [isFocused, setIsFocused] = useState(false);\n\n // Pure input element. The inner Input is borderless (theme defaults\n // provide `Input.root.style.{borderWidth: 0, borderRadius: 0}`); the\n // visual frame is owned by the FormContainer inputGroup wrapper. Addon\n // rendering also lives in FormContainer — this component never wraps\n // its own children in addons.\n const inputEl = (\n <Input\n isDisabled={disabled}\n isInvalid={!!invalid}\n isFocused={isFocused}\n style={{ width: \"100%\", ...(resolvedRootStyle && Object.keys(resolvedRootStyle).length > 0 ? resolvedRootStyle : resolvedThemeStyle) }}\n >\n <InputField\n ref={ref}\n value={maskedDisplay}\n placeholder={placeholder}\n keyboardType={resolvedKeyboardType}\n onChangeText={handleChangeText}\n onFocus={() => setIsFocused(true)}\n onBlur={() => setIsFocused(false)}\n style={{\n textAlign: isRTL ? \"right\" : \"left\",\n writingDirection: isRTL ? \"rtl\" : \"ltr\",\n }}\n />\n </Input>\n );\n\n // `attached`: input sits inside an outer group that already owns the\n // chrome (FormContainer is upstream). Mirror web: return bare input.\n if(attached){\n return inputEl;\n }\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 required={required}\n disabled={disabled}\n leftAddon={leftAddon}\n rightAddon={rightAddon}\n elementStyles={elementStyles}\n >\n {inputEl}\n </KitsContainer>\n );\n};\n\nexport default KitsInputMask;\n"],"names":["Input","InputField"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/form/inputs/InputMask/index.native.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport type { IKitsInputMask } from \"@lmb-it/kitsconcerto-types\";\nimport KitsContainer from \"../../helpers/FormContainer\";\nimport { formatWithMask } from \"../../helpers/native/mask\";\nimport { keyboardTypeFromMask } from \"../../helpers/native/keyboardFromFilter\";\nimport {\n KitsCoreInput as Input,\n KitsCoreInputField as InputField,\n} from \"@lmb-it/kitsconcertomobile\";\nimport { useFormInputController } from \"../../helpers/useFormInputController\";\nimport {useComponentDefaults, useResolvedStyle} from \"@lmb-it/kitsconcerto/hooks\";\nimport { useLanguage } from \"../../../_compat\";\n\nconst KitsInputMask = ({ ref, ...rawProps }: IKitsInputMask) => {\n const { mergedProps: props, themeStyle, elementStyles } = useComponentDefaults('InputMask', rawProps, 'Input');\n const { isRTL } = useLanguage();\n const resolvedThemeStyle = useResolvedStyle(themeStyle);\n const resolvedRootStyle = useResolvedStyle(elementStyles?.root || {});\n const {\n id,\n label,\n required,\n value,\n defaultValue,\n attached,\n errors,\n hideError,\n invalid,\n isFloatedLabel,\n disabled,\n helperText,\n mask,\n unmask,\n leftAddon,\n rightAddon,\n onChange,\n placeholder,\n } = props;\n\n const { emitChange } =\n useFormInputController<string>({\n value,\n defaultValue,\n onChange,\n });\n\n // The displayed value is always the masked variant. We track it in local\n // state so re-renders triggered by the form (which may receive either the\n // masked or unmasked value depending on `unmask`) don't unmask the input.\n const [maskedDisplay, setMaskedDisplay] = useState<string>(() => {\n const incoming = String(value ?? defaultValue ?? \"\");\n return mask ? formatWithMask(incoming, mask).masked : incoming;\n });\n\n useEffect(() => {\n const incoming = String(value ?? defaultValue ?? \"\");\n setMaskedDisplay(mask ? formatWithMask(incoming, mask).masked : incoming);\n }, [value, defaultValue, mask]);\n\n const resolvedKeyboardType = keyboardTypeFromMask(mask);\n\n const handleChangeText = (raw: string) => {\n const res = mask\n ? formatWithMask(raw, mask)\n : { masked: raw, unmasked: raw };\n\n setMaskedDisplay(res.masked);\n emitChange(unmask ? res.unmasked : res.masked);\n };\n\n const [isFocused, setIsFocused] = useState(false);\n\n // Pure input element. The inner Input is borderless (theme defaults\n // provide `Input.root.style.{borderWidth: 0, borderRadius: 0}`); the\n // visual frame is owned by the FormContainer inputGroup wrapper. Addon\n // rendering also lives in FormContainer — this component never wraps\n // its own children in addons.\n const inputEl = (\n <Input\n isDisabled={disabled}\n isInvalid={!!invalid}\n isFocused={isFocused}\n style={{ width: \"100%\", ...(resolvedRootStyle && Object.keys(resolvedRootStyle).length > 0 ? resolvedRootStyle : resolvedThemeStyle) }}\n >\n <InputField\n ref={ref}\n value={maskedDisplay}\n placeholder={placeholder}\n keyboardType={resolvedKeyboardType}\n onChangeText={handleChangeText}\n onFocus={() => setIsFocused(true)}\n onBlur={() => setIsFocused(false)}\n style={{\n textAlign: isRTL ? \"right\" : \"left\",\n writingDirection: isRTL ? \"rtl\" : \"ltr\",\n }}\n />\n </Input>\n );\n\n // `attached`: input sits inside an outer group that already owns the\n // chrome (FormContainer is upstream). Mirror web: return bare input.\n if(attached){\n return inputEl;\n }\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 required={required}\n disabled={disabled}\n leftAddon={leftAddon}\n rightAddon={rightAddon}\n elementStyles={elementStyles}\n >\n {inputEl}\n </KitsContainer>\n );\n};\n\nexport default KitsInputMask;\n"],"names":["Input","InputField"],"mappings":"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"}
@@ -64,6 +64,7 @@ require('yup');
64
64
  require('../../../packages/types/src/Css/map/index.cjs');
65
65
  require('../../../packages/types/src/Theme/shadows.cjs');
66
66
  require('../../../packages/types/src/Theme/defaultTheme.cjs');
67
+ require('../../../packages/types/src/Theme/resolvers.cjs');
67
68
  require('../../../packages/types/src/Theme/alphaColors.cjs');
68
69
  require('../../../apps/mobile/src/Factory/helpers/cssVarMap.cjs');
69
70
  require('../../../apps/mobile/src/Factory/DimensionsContext.cjs');
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../../../src/form/inputs/InputNumber/index.native.tsx"],"sourcesContent":["import React from \"react\";\nimport type {IKitsInputNumber} from \"@lmb-it/kitsconcerto-types\";\nimport KitsContainer from \"../../helpers/FormContainer\";\nimport {clampNumber, formatNumber, parseLooseNumber,} from \"../../helpers/native/numberFormat\";\nimport {applyKeyFilterKeepPrev} from \"../../helpers/native/keyfilter\";\nimport {\n KitsCoreInput as Input,\n KitsCoreInputField as InputField,\n} from \"@lmb-it/kitsconcertomobile\";\nimport {useComponentDefaults, useResolvedStyle} from \"@lmb-it/kitsconcerto/hooks\";\nimport {useFormFieldKeyboardNav} from \"../../../hooks/useFormFieldKeyboardNav\";\nimport {mergeRefs} from \"../../../utils/mergeRefs\";\nimport { useLanguage } from \"../../../_compat\";\n\nconst KitsInputNumber = ({ref, ...rawProps}: IKitsInputNumber) => {\n // Theme key aligned with web: read `Input` (base group) + `InputNumber`\n // (specific). This matches the alignment plan — both platforms now\n // expose the same override surface (`kitsTheme.components.InputNumber.*`).\n const { mergedProps: props, themeStyle, elementStyles } = useComponentDefaults('InputNumber', rawProps, 'Input');\n const resolvedThemeStyle = useResolvedStyle(themeStyle);\n const resolvedRootStyle = useResolvedStyle(elementStyles?.root || {});\n const { isRTL } = useLanguage();\n const {\n id,\n label,\n required,\n value,\n defaultValue,\n errors,\n hideError,\n invalid,\n isFloatedLabel,\n disabled,\n helperText,\n localProps,\n onChange,\n\n leftAddon,\n rightAddon,\n // Prime-like numeric props\n locale,\n useGrouping,\n minFractionDigits,\n maxFractionDigits,\n mode,\n currency,\n prefix,\n suffix,\n min,\n max,\n keyFilter,\n\n ...rest\n } = props as any;\n\n const {inputRef, navProps} = useFormFieldKeyboardNav(id);\n\n /** 🔑 CONTROL DETECTION (ONLY value decides) */\n const isControlled = value !== undefined;\n\n /** 🔹 Internal numeric value (uncontrolled mode only) */\n const [internalNumber, setInternalNumber] = React.useState<number | null>(\n defaultValue ?? null\n );\n\n /** 🔹 Display text */\n const [text, setText] = React.useState<string>(() => {\n const n =\n isControlled\n ? value\n : internalNumber;\n\n return typeof n === \"number\"\n ? formatNumber(n, {\n locale,\n useGrouping,\n minFractionDigits,\n maxFractionDigits,\n mode,\n currency,\n prefix,\n suffix,\n min,\n max,\n })\n : \"\";\n });\n\n /** 🔄 Sync when controlled value changes */\n React.useEffect(() => {\n if (isControlled) {\n if (typeof value === \"number\") {\n setText(\n formatNumber(value, {\n locale,\n useGrouping,\n minFractionDigits,\n maxFractionDigits,\n mode,\n currency,\n prefix,\n suffix,\n min,\n max,\n })\n );\n } else {\n setText(\"\");\n }\n }\n }, [\n isControlled,\n value,\n locale,\n useGrouping,\n minFractionDigits,\n maxFractionDigits,\n mode,\n currency,\n prefix,\n suffix,\n min,\n max,\n ]);\n\n /** 📤 Emit Prime-like change */\n const emitChange = (n: number | null) => {\n onChange?.({value: n} as any);\n };\n\n /** ✍️ Typing handler\n * NOTE: do NOT clamp to [min,max] here — partial values typed by the user\n * (e.g. \"2\" when min=1950) would otherwise snap to min on the first\n * keystroke, hijacking the input. Clamping is deferred to onBlur, and\n * hard range enforcement belongs in the Yup schema at submit time.\n */\n const onChangeText = (raw: string) => {\n const prev = text;\n const next = keyFilter ? applyKeyFilterKeepPrev(prev, raw, keyFilter) : raw;\n\n setText(next);\n\n const parsed = parseLooseNumber(next);\n if (parsed == null) {\n if (!isControlled) setInternalNumber(null);\n emitChange(null);\n return;\n }\n\n if (!isControlled) {\n setInternalNumber(parsed);\n }\n\n emitChange(parsed);\n };\n\n /** 🎯 Format on blur */\n const onBlur = () => {\n const parsed = parseLooseNumber(text);\n if (parsed == null) return;\n\n const clamped = clampNumber(parsed, min, max);\n\n setText(\n formatNumber(clamped, {\n locale,\n useGrouping,\n minFractionDigits,\n maxFractionDigits,\n mode,\n currency,\n prefix,\n suffix,\n min,\n max,\n })\n );\n };\n\n const [isFocused, setIsFocused] = React.useState(false);\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 required={required}\n disabled={disabled}\n leftAddon={leftAddon}\n rightAddon={rightAddon}\n elementStyles={elementStyles}\n >\n {/* Addons are rendered by KitsContainer (matches web behaviour).\n The inner Input is borderless via the Input.root.style theme\n defaults; the visual frame is provided by the inputGroup\n wrapper inside KitsContainer. */}\n <Input\n {...(localProps as any)}\n isDisabled={!!disabled}\n isInvalid={!!invalid}\n isFocused={isFocused}\n {...(rest as any)}\n style={{width: \"100%\", ...(resolvedRootStyle && Object.keys(resolvedRootStyle).length > 0 ? resolvedRootStyle : resolvedThemeStyle)}}\n >\n <InputField\n ref={mergeRefs(inputRef, ref)}\n value={text}\n keyboardType=\"numeric\"\n onChangeText={onChangeText}\n onFocus={() => setIsFocused(true)}\n onBlur={() => {\n setIsFocused(false);\n onBlur();\n }}\n editable={!disabled}\n // Numerics still read left-to-right semantically, but the\n // *placeholder* and caret position should sit at the start\n // of the reading direction so the user sees a consistent\n // input edge with adjacent text fields.\n style={{\n textAlign: isRTL ? \"right\" : \"left\",\n writingDirection: isRTL ? \"rtl\" : \"ltr\",\n }}\n {...navProps}\n />\n </Input>\n </KitsContainer>\n );\n};\n\nexport default KitsInputNumber;\n"],"names":["useComponentDefaults","useResolvedStyle","useLanguage","locale","useFormFieldKeyboardNav","formatNumber","applyKeyFilterKeepPrev","parseLooseNumber","clampNumber","jsx","KitsContainer","Input","InputField","mergeRefs"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../../../src/form/inputs/InputNumber/index.native.tsx"],"sourcesContent":["import React from \"react\";\nimport type {IKitsInputNumber} from \"@lmb-it/kitsconcerto-types\";\nimport KitsContainer from \"../../helpers/FormContainer\";\nimport {clampNumber, formatNumber, parseLooseNumber,} from \"../../helpers/native/numberFormat\";\nimport {applyKeyFilterKeepPrev} from \"../../helpers/native/keyfilter\";\nimport {\n KitsCoreInput as Input,\n KitsCoreInputField as InputField,\n} from \"@lmb-it/kitsconcertomobile\";\nimport {useComponentDefaults, useResolvedStyle} from \"@lmb-it/kitsconcerto/hooks\";\nimport {useFormFieldKeyboardNav} from \"../../../hooks/useFormFieldKeyboardNav\";\nimport {mergeRefs} from \"../../../utils/mergeRefs\";\nimport { useLanguage } from \"../../../_compat\";\n\nconst KitsInputNumber = ({ref, ...rawProps}: IKitsInputNumber) => {\n // Theme key aligned with web: read `Input` (base group) + `InputNumber`\n // (specific). This matches the alignment plan — both platforms now\n // expose the same override surface (`kitsTheme.components.InputNumber.*`).\n const { mergedProps: props, themeStyle, elementStyles } = useComponentDefaults('InputNumber', rawProps, 'Input');\n const resolvedThemeStyle = useResolvedStyle(themeStyle);\n const resolvedRootStyle = useResolvedStyle(elementStyles?.root || {});\n const { isRTL } = useLanguage();\n const {\n id,\n label,\n required,\n value,\n defaultValue,\n errors,\n hideError,\n invalid,\n isFloatedLabel,\n disabled,\n helperText,\n localProps,\n onChange,\n\n leftAddon,\n rightAddon,\n // Prime-like numeric props\n locale,\n useGrouping,\n minFractionDigits,\n maxFractionDigits,\n mode,\n currency,\n prefix,\n suffix,\n min,\n max,\n keyFilter,\n\n ...rest\n } = props as any;\n\n const {inputRef, navProps} = useFormFieldKeyboardNav(id);\n\n /** 🔑 CONTROL DETECTION (ONLY value decides) */\n const isControlled = value !== undefined;\n\n /** 🔹 Internal numeric value (uncontrolled mode only) */\n const [internalNumber, setInternalNumber] = React.useState<number | null>(\n defaultValue ?? null\n );\n\n /** 🔹 Display text */\n const [text, setText] = React.useState<string>(() => {\n const n =\n isControlled\n ? value\n : internalNumber;\n\n return typeof n === \"number\"\n ? formatNumber(n, {\n locale,\n useGrouping,\n minFractionDigits,\n maxFractionDigits,\n mode,\n currency,\n prefix,\n suffix,\n min,\n max,\n })\n : \"\";\n });\n\n /** 🔄 Sync when controlled value changes */\n React.useEffect(() => {\n if (isControlled) {\n if (typeof value === \"number\") {\n setText(\n formatNumber(value, {\n locale,\n useGrouping,\n minFractionDigits,\n maxFractionDigits,\n mode,\n currency,\n prefix,\n suffix,\n min,\n max,\n })\n );\n } else {\n setText(\"\");\n }\n }\n }, [\n isControlled,\n value,\n locale,\n useGrouping,\n minFractionDigits,\n maxFractionDigits,\n mode,\n currency,\n prefix,\n suffix,\n min,\n max,\n ]);\n\n /** 📤 Emit Prime-like change */\n const emitChange = (n: number | null) => {\n onChange?.({value: n} as any);\n };\n\n /** ✍️ Typing handler\n * NOTE: do NOT clamp to [min,max] here — partial values typed by the user\n * (e.g. \"2\" when min=1950) would otherwise snap to min on the first\n * keystroke, hijacking the input. Clamping is deferred to onBlur, and\n * hard range enforcement belongs in the Yup schema at submit time.\n */\n const onChangeText = (raw: string) => {\n const prev = text;\n const next = keyFilter ? applyKeyFilterKeepPrev(prev, raw, keyFilter) : raw;\n\n setText(next);\n\n const parsed = parseLooseNumber(next);\n if (parsed == null) {\n if (!isControlled) setInternalNumber(null);\n emitChange(null);\n return;\n }\n\n if (!isControlled) {\n setInternalNumber(parsed);\n }\n\n emitChange(parsed);\n };\n\n /** 🎯 Format on blur */\n const onBlur = () => {\n const parsed = parseLooseNumber(text);\n if (parsed == null) return;\n\n const clamped = clampNumber(parsed, min, max);\n\n setText(\n formatNumber(clamped, {\n locale,\n useGrouping,\n minFractionDigits,\n maxFractionDigits,\n mode,\n currency,\n prefix,\n suffix,\n min,\n max,\n })\n );\n };\n\n const [isFocused, setIsFocused] = React.useState(false);\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 required={required}\n disabled={disabled}\n leftAddon={leftAddon}\n rightAddon={rightAddon}\n elementStyles={elementStyles}\n >\n {/* Addons are rendered by KitsContainer (matches web behaviour).\n The inner Input is borderless via the Input.root.style theme\n defaults; the visual frame is provided by the inputGroup\n wrapper inside KitsContainer. */}\n <Input\n {...(localProps as any)}\n isDisabled={!!disabled}\n isInvalid={!!invalid}\n isFocused={isFocused}\n {...(rest as any)}\n style={{width: \"100%\", ...(resolvedRootStyle && Object.keys(resolvedRootStyle).length > 0 ? resolvedRootStyle : resolvedThemeStyle)}}\n >\n <InputField\n ref={mergeRefs(inputRef, ref)}\n value={text}\n keyboardType=\"numeric\"\n onChangeText={onChangeText}\n onFocus={() => setIsFocused(true)}\n onBlur={() => {\n setIsFocused(false);\n onBlur();\n }}\n editable={!disabled}\n // Numerics still read left-to-right semantically, but the\n // *placeholder* and caret position should sit at the start\n // of the reading direction so the user sees a consistent\n // input edge with adjacent text fields.\n style={{\n textAlign: isRTL ? \"right\" : \"left\",\n writingDirection: isRTL ? \"rtl\" : \"ltr\",\n }}\n {...navProps}\n />\n </Input>\n </KitsContainer>\n );\n};\n\nexport default KitsInputNumber;\n"],"names":["useComponentDefaults","useResolvedStyle","useLanguage","locale","useFormFieldKeyboardNav","formatNumber","applyKeyFilterKeepPrev","parseLooseNumber","clampNumber","jsx","KitsContainer","Input","InputField","mergeRefs"],"mappings":"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"}
@@ -60,6 +60,7 @@ import 'yup';
60
60
  import '../../../packages/types/src/Css/map/index.js';
61
61
  import '../../../packages/types/src/Theme/shadows.js';
62
62
  import '../../../packages/types/src/Theme/defaultTheme.js';
63
+ import '../../../packages/types/src/Theme/resolvers.js';
63
64
  import '../../../packages/types/src/Theme/alphaColors.js';
64
65
  import '../../../apps/mobile/src/Factory/helpers/cssVarMap.js';
65
66
  import '../../../apps/mobile/src/Factory/DimensionsContext.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/form/inputs/InputNumber/index.native.tsx"],"sourcesContent":["import React from \"react\";\nimport type {IKitsInputNumber} from \"@lmb-it/kitsconcerto-types\";\nimport KitsContainer from \"../../helpers/FormContainer\";\nimport {clampNumber, formatNumber, parseLooseNumber,} from \"../../helpers/native/numberFormat\";\nimport {applyKeyFilterKeepPrev} from \"../../helpers/native/keyfilter\";\nimport {\n KitsCoreInput as Input,\n KitsCoreInputField as InputField,\n} from \"@lmb-it/kitsconcertomobile\";\nimport {useComponentDefaults, useResolvedStyle} from \"@lmb-it/kitsconcerto/hooks\";\nimport {useFormFieldKeyboardNav} from \"../../../hooks/useFormFieldKeyboardNav\";\nimport {mergeRefs} from \"../../../utils/mergeRefs\";\nimport { useLanguage } from \"../../../_compat\";\n\nconst KitsInputNumber = ({ref, ...rawProps}: IKitsInputNumber) => {\n // Theme key aligned with web: read `Input` (base group) + `InputNumber`\n // (specific). This matches the alignment plan — both platforms now\n // expose the same override surface (`kitsTheme.components.InputNumber.*`).\n const { mergedProps: props, themeStyle, elementStyles } = useComponentDefaults('InputNumber', rawProps, 'Input');\n const resolvedThemeStyle = useResolvedStyle(themeStyle);\n const resolvedRootStyle = useResolvedStyle(elementStyles?.root || {});\n const { isRTL } = useLanguage();\n const {\n id,\n label,\n required,\n value,\n defaultValue,\n errors,\n hideError,\n invalid,\n isFloatedLabel,\n disabled,\n helperText,\n localProps,\n onChange,\n\n leftAddon,\n rightAddon,\n // Prime-like numeric props\n locale,\n useGrouping,\n minFractionDigits,\n maxFractionDigits,\n mode,\n currency,\n prefix,\n suffix,\n min,\n max,\n keyFilter,\n\n ...rest\n } = props as any;\n\n const {inputRef, navProps} = useFormFieldKeyboardNav(id);\n\n /** 🔑 CONTROL DETECTION (ONLY value decides) */\n const isControlled = value !== undefined;\n\n /** 🔹 Internal numeric value (uncontrolled mode only) */\n const [internalNumber, setInternalNumber] = React.useState<number | null>(\n defaultValue ?? null\n );\n\n /** 🔹 Display text */\n const [text, setText] = React.useState<string>(() => {\n const n =\n isControlled\n ? value\n : internalNumber;\n\n return typeof n === \"number\"\n ? formatNumber(n, {\n locale,\n useGrouping,\n minFractionDigits,\n maxFractionDigits,\n mode,\n currency,\n prefix,\n suffix,\n min,\n max,\n })\n : \"\";\n });\n\n /** 🔄 Sync when controlled value changes */\n React.useEffect(() => {\n if (isControlled) {\n if (typeof value === \"number\") {\n setText(\n formatNumber(value, {\n locale,\n useGrouping,\n minFractionDigits,\n maxFractionDigits,\n mode,\n currency,\n prefix,\n suffix,\n min,\n max,\n })\n );\n } else {\n setText(\"\");\n }\n }\n }, [\n isControlled,\n value,\n locale,\n useGrouping,\n minFractionDigits,\n maxFractionDigits,\n mode,\n currency,\n prefix,\n suffix,\n min,\n max,\n ]);\n\n /** 📤 Emit Prime-like change */\n const emitChange = (n: number | null) => {\n onChange?.({value: n} as any);\n };\n\n /** ✍️ Typing handler\n * NOTE: do NOT clamp to [min,max] here — partial values typed by the user\n * (e.g. \"2\" when min=1950) would otherwise snap to min on the first\n * keystroke, hijacking the input. Clamping is deferred to onBlur, and\n * hard range enforcement belongs in the Yup schema at submit time.\n */\n const onChangeText = (raw: string) => {\n const prev = text;\n const next = keyFilter ? applyKeyFilterKeepPrev(prev, raw, keyFilter) : raw;\n\n setText(next);\n\n const parsed = parseLooseNumber(next);\n if (parsed == null) {\n if (!isControlled) setInternalNumber(null);\n emitChange(null);\n return;\n }\n\n if (!isControlled) {\n setInternalNumber(parsed);\n }\n\n emitChange(parsed);\n };\n\n /** 🎯 Format on blur */\n const onBlur = () => {\n const parsed = parseLooseNumber(text);\n if (parsed == null) return;\n\n const clamped = clampNumber(parsed, min, max);\n\n setText(\n formatNumber(clamped, {\n locale,\n useGrouping,\n minFractionDigits,\n maxFractionDigits,\n mode,\n currency,\n prefix,\n suffix,\n min,\n max,\n })\n );\n };\n\n const [isFocused, setIsFocused] = React.useState(false);\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 required={required}\n disabled={disabled}\n leftAddon={leftAddon}\n rightAddon={rightAddon}\n elementStyles={elementStyles}\n >\n {/* Addons are rendered by KitsContainer (matches web behaviour).\n The inner Input is borderless via the Input.root.style theme\n defaults; the visual frame is provided by the inputGroup\n wrapper inside KitsContainer. */}\n <Input\n {...(localProps as any)}\n isDisabled={!!disabled}\n isInvalid={!!invalid}\n isFocused={isFocused}\n {...(rest as any)}\n style={{width: \"100%\", ...(resolvedRootStyle && Object.keys(resolvedRootStyle).length > 0 ? resolvedRootStyle : resolvedThemeStyle)}}\n >\n <InputField\n ref={mergeRefs(inputRef, ref)}\n value={text}\n keyboardType=\"numeric\"\n onChangeText={onChangeText}\n onFocus={() => setIsFocused(true)}\n onBlur={() => {\n setIsFocused(false);\n onBlur();\n }}\n editable={!disabled}\n // Numerics still read left-to-right semantically, but the\n // *placeholder* and caret position should sit at the start\n // of the reading direction so the user sees a consistent\n // input edge with adjacent text fields.\n style={{\n textAlign: isRTL ? \"right\" : \"left\",\n writingDirection: isRTL ? \"rtl\" : \"ltr\",\n }}\n {...navProps}\n />\n </Input>\n </KitsContainer>\n );\n};\n\nexport default KitsInputNumber;\n"],"names":["Input","InputField"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/form/inputs/InputNumber/index.native.tsx"],"sourcesContent":["import React from \"react\";\nimport type {IKitsInputNumber} from \"@lmb-it/kitsconcerto-types\";\nimport KitsContainer from \"../../helpers/FormContainer\";\nimport {clampNumber, formatNumber, parseLooseNumber,} from \"../../helpers/native/numberFormat\";\nimport {applyKeyFilterKeepPrev} from \"../../helpers/native/keyfilter\";\nimport {\n KitsCoreInput as Input,\n KitsCoreInputField as InputField,\n} from \"@lmb-it/kitsconcertomobile\";\nimport {useComponentDefaults, useResolvedStyle} from \"@lmb-it/kitsconcerto/hooks\";\nimport {useFormFieldKeyboardNav} from \"../../../hooks/useFormFieldKeyboardNav\";\nimport {mergeRefs} from \"../../../utils/mergeRefs\";\nimport { useLanguage } from \"../../../_compat\";\n\nconst KitsInputNumber = ({ref, ...rawProps}: IKitsInputNumber) => {\n // Theme key aligned with web: read `Input` (base group) + `InputNumber`\n // (specific). This matches the alignment plan — both platforms now\n // expose the same override surface (`kitsTheme.components.InputNumber.*`).\n const { mergedProps: props, themeStyle, elementStyles } = useComponentDefaults('InputNumber', rawProps, 'Input');\n const resolvedThemeStyle = useResolvedStyle(themeStyle);\n const resolvedRootStyle = useResolvedStyle(elementStyles?.root || {});\n const { isRTL } = useLanguage();\n const {\n id,\n label,\n required,\n value,\n defaultValue,\n errors,\n hideError,\n invalid,\n isFloatedLabel,\n disabled,\n helperText,\n localProps,\n onChange,\n\n leftAddon,\n rightAddon,\n // Prime-like numeric props\n locale,\n useGrouping,\n minFractionDigits,\n maxFractionDigits,\n mode,\n currency,\n prefix,\n suffix,\n min,\n max,\n keyFilter,\n\n ...rest\n } = props as any;\n\n const {inputRef, navProps} = useFormFieldKeyboardNav(id);\n\n /** 🔑 CONTROL DETECTION (ONLY value decides) */\n const isControlled = value !== undefined;\n\n /** 🔹 Internal numeric value (uncontrolled mode only) */\n const [internalNumber, setInternalNumber] = React.useState<number | null>(\n defaultValue ?? null\n );\n\n /** 🔹 Display text */\n const [text, setText] = React.useState<string>(() => {\n const n =\n isControlled\n ? value\n : internalNumber;\n\n return typeof n === \"number\"\n ? formatNumber(n, {\n locale,\n useGrouping,\n minFractionDigits,\n maxFractionDigits,\n mode,\n currency,\n prefix,\n suffix,\n min,\n max,\n })\n : \"\";\n });\n\n /** 🔄 Sync when controlled value changes */\n React.useEffect(() => {\n if (isControlled) {\n if (typeof value === \"number\") {\n setText(\n formatNumber(value, {\n locale,\n useGrouping,\n minFractionDigits,\n maxFractionDigits,\n mode,\n currency,\n prefix,\n suffix,\n min,\n max,\n })\n );\n } else {\n setText(\"\");\n }\n }\n }, [\n isControlled,\n value,\n locale,\n useGrouping,\n minFractionDigits,\n maxFractionDigits,\n mode,\n currency,\n prefix,\n suffix,\n min,\n max,\n ]);\n\n /** 📤 Emit Prime-like change */\n const emitChange = (n: number | null) => {\n onChange?.({value: n} as any);\n };\n\n /** ✍️ Typing handler\n * NOTE: do NOT clamp to [min,max] here — partial values typed by the user\n * (e.g. \"2\" when min=1950) would otherwise snap to min on the first\n * keystroke, hijacking the input. Clamping is deferred to onBlur, and\n * hard range enforcement belongs in the Yup schema at submit time.\n */\n const onChangeText = (raw: string) => {\n const prev = text;\n const next = keyFilter ? applyKeyFilterKeepPrev(prev, raw, keyFilter) : raw;\n\n setText(next);\n\n const parsed = parseLooseNumber(next);\n if (parsed == null) {\n if (!isControlled) setInternalNumber(null);\n emitChange(null);\n return;\n }\n\n if (!isControlled) {\n setInternalNumber(parsed);\n }\n\n emitChange(parsed);\n };\n\n /** 🎯 Format on blur */\n const onBlur = () => {\n const parsed = parseLooseNumber(text);\n if (parsed == null) return;\n\n const clamped = clampNumber(parsed, min, max);\n\n setText(\n formatNumber(clamped, {\n locale,\n useGrouping,\n minFractionDigits,\n maxFractionDigits,\n mode,\n currency,\n prefix,\n suffix,\n min,\n max,\n })\n );\n };\n\n const [isFocused, setIsFocused] = React.useState(false);\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 required={required}\n disabled={disabled}\n leftAddon={leftAddon}\n rightAddon={rightAddon}\n elementStyles={elementStyles}\n >\n {/* Addons are rendered by KitsContainer (matches web behaviour).\n The inner Input is borderless via the Input.root.style theme\n defaults; the visual frame is provided by the inputGroup\n wrapper inside KitsContainer. */}\n <Input\n {...(localProps as any)}\n isDisabled={!!disabled}\n isInvalid={!!invalid}\n isFocused={isFocused}\n {...(rest as any)}\n style={{width: \"100%\", ...(resolvedRootStyle && Object.keys(resolvedRootStyle).length > 0 ? resolvedRootStyle : resolvedThemeStyle)}}\n >\n <InputField\n ref={mergeRefs(inputRef, ref)}\n value={text}\n keyboardType=\"numeric\"\n onChangeText={onChangeText}\n onFocus={() => setIsFocused(true)}\n onBlur={() => {\n setIsFocused(false);\n onBlur();\n }}\n editable={!disabled}\n // Numerics still read left-to-right semantically, but the\n // *placeholder* and caret position should sit at the start\n // of the reading direction so the user sees a consistent\n // input edge with adjacent text fields.\n style={{\n textAlign: isRTL ? \"right\" : \"left\",\n writingDirection: isRTL ? \"rtl\" : \"ltr\",\n }}\n {...navProps}\n />\n </Input>\n </KitsContainer>\n );\n};\n\nexport default KitsInputNumber;\n"],"names":["Input","InputField"],"mappings":"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"}
@@ -62,6 +62,7 @@ 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/resolvers.cjs');
65
66
  require('../../../packages/types/src/Theme/alphaColors.cjs');
66
67
  require('../../../apps/mobile/src/Factory/helpers/cssVarMap.cjs');
67
68
  require('../../../apps/mobile/src/Factory/DimensionsContext.cjs');
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","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":["useComponentDefaults","useResolvedStyle","useLanguage","useFormFieldKeyboardNav","useSeparator","useFormInputController","useState","useFocusStyles","jsxs","KitsContainer","Input","jsx","InputField","mergeRefs","InputSlot","Icon","Strengthen"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","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":["useComponentDefaults","useResolvedStyle","useLanguage","useFormFieldKeyboardNav","useSeparator","useFormInputController","useState","useFocusStyles","jsxs","KitsContainer","Input","jsx","InputField","mergeRefs","InputSlot","Icon","Strengthen"],"mappings":"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"}
@@ -58,6 +58,7 @@ 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/resolvers.js';
61
62
  import '../../../packages/types/src/Theme/alphaColors.js';
62
63
  import '../../../apps/mobile/src/Factory/helpers/cssVarMap.js';
63
64
  import '../../../apps/mobile/src/Factory/DimensionsContext.js';
@@ -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,7 @@ 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/resolvers.cjs');
64
65
  require('../../../packages/types/src/Theme/alphaColors.cjs');
65
66
  require('../../../apps/mobile/src/Factory/helpers/cssVarMap.cjs');
66
67
  require('../../../apps/mobile/src/Factory/DimensionsContext.cjs');
@@ -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,7 @@ 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/resolvers.js';
60
61
  import '../../../packages/types/src/Theme/alphaColors.js';
61
62
  import '../../../apps/mobile/src/Factory/helpers/cssVarMap.js';
62
63
  import '../../../apps/mobile/src/Factory/DimensionsContext.js';
@@ -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,7 @@ 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/resolvers.cjs');
68
69
  require('../../../packages/types/src/Theme/alphaColors.cjs');
69
70
  require('../../../apps/mobile/src/Factory/helpers/cssVarMap.cjs');
70
71
  require('../../../apps/mobile/src/Factory/DimensionsContext.cjs');