@lmb-it/kitsconcerto-native 0.1.243 → 0.1.245
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/animations/index.cjs +25 -15
- package/animations/index.cjs.map +1 -1
- package/animations/index.js +25 -15
- package/animations/index.js.map +1 -1
- package/apps/mobile/src/Core/AutoComplete/index.cjs +105 -64
- package/apps/mobile/src/Core/AutoComplete/index.cjs.map +1 -1
- package/apps/mobile/src/Core/AutoComplete/index.js +106 -65
- package/apps/mobile/src/Core/AutoComplete/index.js.map +1 -1
- package/apps/mobile/src/Core/Dropdown/index.cjs +2 -0
- package/apps/mobile/src/Core/Dropdown/index.cjs.map +1 -1
- package/apps/mobile/src/Core/Dropdown/index.js +2 -0
- package/apps/mobile/src/Core/Dropdown/index.js.map +1 -1
- package/apps/mobile/src/Core/Trees/components/CoreToolbar.cjs +2 -0
- package/apps/mobile/src/Core/Trees/components/CoreToolbar.cjs.map +1 -1
- package/apps/mobile/src/Core/Trees/components/CoreToolbar.js +2 -0
- package/apps/mobile/src/Core/Trees/components/CoreToolbar.js.map +1 -1
- package/apps/mobile/src/Factory/ResponsiveElement.cjs +2 -0
- package/apps/mobile/src/Factory/ResponsiveElement.cjs.map +1 -1
- package/apps/mobile/src/Factory/ResponsiveElement.js +2 -0
- package/apps/mobile/src/Factory/ResponsiveElement.js.map +1 -1
- package/apps/mobile/src/Factory/helpers/cssVarMap.cjs +16 -0
- package/apps/mobile/src/Factory/helpers/cssVarMap.cjs.map +1 -1
- package/apps/mobile/src/Factory/helpers/cssVarMap.js +16 -0
- package/apps/mobile/src/Factory/helpers/cssVarMap.js.map +1 -1
- package/apps/mobile/src/Factory/helpers/style.cjs +17 -1
- package/apps/mobile/src/Factory/helpers/style.cjs.map +1 -1
- package/apps/mobile/src/Factory/helpers/style.js +17 -1
- package/apps/mobile/src/Factory/helpers/style.js.map +1 -1
- package/apps/mobile/src/Factory/useSeparator.cjs +1 -0
- package/apps/mobile/src/Factory/useSeparator.cjs.map +1 -1
- package/apps/mobile/src/Factory/useSeparator.js +1 -0
- package/apps/mobile/src/Factory/useSeparator.js.map +1 -1
- package/components/Accordion/accordion.cjs +2 -0
- package/components/Accordion/accordion.cjs.map +1 -1
- package/components/Accordion/accordion.js +2 -0
- package/components/Accordion/accordion.js.map +1 -1
- package/components/Badge/index.cjs +2 -0
- package/components/Badge/index.cjs.map +1 -1
- package/components/Badge/index.js +2 -0
- package/components/Badge/index.js.map +1 -1
- package/components/BottomTabBar/index.cjs +2 -0
- package/components/BottomTabBar/index.cjs.map +1 -1
- package/components/BottomTabBar/index.js +2 -0
- package/components/BottomTabBar/index.js.map +1 -1
- package/components/Button/Button.cjs +2 -0
- package/components/Button/Button.cjs.map +1 -1
- package/components/Button/Button.js +2 -0
- package/components/Button/Button.js.map +1 -1
- package/components/MessageComposer/index.cjs +2 -0
- package/components/MessageComposer/index.cjs.map +1 -1
- package/components/MessageComposer/index.js +2 -0
- package/components/MessageComposer/index.js.map +1 -1
- package/components/SegmentedControl/index.cjs +2 -0
- package/components/SegmentedControl/index.cjs.map +1 -1
- package/components/SegmentedControl/index.js +2 -0
- package/components/SegmentedControl/index.js.map +1 -1
- package/components/SkeletonText/index.cjs +2 -0
- package/components/SkeletonText/index.cjs.map +1 -1
- package/components/SkeletonText/index.js +2 -0
- package/components/SkeletonText/index.js.map +1 -1
- package/components/Tabs/index.cjs +2 -0
- package/components/Tabs/index.cjs.map +1 -1
- package/components/Tabs/index.js +2 -0
- package/components/Tabs/index.js.map +1 -1
- package/components/overlay/ConfirmDialog/index.cjs +146 -89
- package/components/overlay/ConfirmDialog/index.cjs.map +1 -1
- package/components/overlay/ConfirmDialog/index.js +147 -90
- package/components/overlay/ConfirmDialog/index.js.map +1 -1
- package/components/overlay/Dialog/index.cjs +90 -64
- package/components/overlay/Dialog/index.cjs.map +1 -1
- package/components/overlay/Dialog/index.js +91 -65
- package/components/overlay/Dialog/index.js.map +1 -1
- package/components/overlay/Toast/index.cjs +59 -24
- package/components/overlay/Toast/index.cjs.map +1 -1
- package/components/overlay/Toast/index.js +62 -27
- package/components/overlay/Toast/index.js.map +1 -1
- package/contexts/Locale/index.cjs +2 -0
- package/contexts/Locale/index.cjs.map +1 -1
- package/contexts/Locale/index.js +2 -0
- package/contexts/Locale/index.js.map +1 -1
- package/contexts/Main/index.cjs +2 -0
- package/contexts/Main/index.cjs.map +1 -1
- package/contexts/Main/index.js +2 -0
- package/contexts/Main/index.js.map +1 -1
- package/contexts/Theme/KitsThemeProvider.cjs +2 -0
- package/contexts/Theme/KitsThemeProvider.cjs.map +1 -1
- package/contexts/Theme/KitsThemeProvider.js +2 -0
- package/contexts/Theme/KitsThemeProvider.js.map +1 -1
- package/contexts/Theme/index.cjs +1 -0
- package/contexts/Theme/index.cjs.map +1 -1
- package/contexts/Theme/index.js +1 -0
- package/contexts/Theme/index.js.map +1 -1
- package/contexts/Theme/resolvers.cjs +4 -0
- package/contexts/Theme/resolvers.cjs.map +1 -1
- package/contexts/Theme/resolvers.js +4 -0
- package/contexts/Theme/resolvers.js.map +1 -1
- package/data/DataView/Pagination/index.cjs +2 -0
- package/data/DataView/Pagination/index.cjs.map +1 -1
- package/data/DataView/Pagination/index.js +2 -0
- package/data/DataView/Pagination/index.js.map +1 -1
- package/data/TreeView/index.cjs +2 -0
- package/data/TreeView/index.cjs.map +1 -1
- package/data/TreeView/index.js +2 -0
- package/data/TreeView/index.js.map +1 -1
- package/form/controls/Checkbox/checkbox.cjs +2 -0
- package/form/controls/Checkbox/checkbox.cjs.map +1 -1
- package/form/controls/Checkbox/checkbox.js +2 -0
- package/form/controls/Checkbox/checkbox.js.map +1 -1
- package/form/controls/RadioButton/radiobutton.cjs +2 -0
- package/form/controls/RadioButton/radiobutton.cjs.map +1 -1
- package/form/controls/RadioButton/radiobutton.js +2 -0
- package/form/controls/RadioButton/radiobutton.js.map +1 -1
- package/form/controls/SelectButton/index.cjs +2 -0
- package/form/controls/SelectButton/index.cjs.map +1 -1
- package/form/controls/SelectButton/index.js +2 -0
- package/form/controls/SelectButton/index.js.map +1 -1
- package/form/controls/TriStateCheckbox/index.cjs +2 -0
- package/form/controls/TriStateCheckbox/index.cjs.map +1 -1
- package/form/controls/TriStateCheckbox/index.js +2 -0
- package/form/controls/TriStateCheckbox/index.js.map +1 -1
- package/form/file-pickers/MainUploader/index.cjs +1 -0
- package/form/file-pickers/MainUploader/index.cjs.map +1 -1
- package/form/file-pickers/MainUploader/index.js +1 -0
- package/form/file-pickers/MainUploader/index.js.map +1 -1
- package/form/helpers/ErrorMessage/errormessage.cjs +2 -0
- package/form/helpers/ErrorMessage/errormessage.cjs.map +1 -1
- package/form/helpers/ErrorMessage/errormessage.js +2 -0
- package/form/helpers/ErrorMessage/errormessage.js.map +1 -1
- package/form/helpers/FormContainer/index.cjs +2 -0
- package/form/helpers/FormContainer/index.cjs.map +1 -1
- package/form/helpers/FormContainer/index.js +2 -0
- package/form/helpers/FormContainer/index.js.map +1 -1
- package/form/helpers/Label/label.cjs +2 -0
- package/form/helpers/Label/label.cjs.map +1 -1
- package/form/helpers/Label/label.js +2 -0
- package/form/helpers/Label/label.js.map +1 -1
- package/form/inputs/InputMask/index.cjs +2 -0
- package/form/inputs/InputMask/index.cjs.map +1 -1
- package/form/inputs/InputMask/index.js +2 -0
- package/form/inputs/InputMask/index.js.map +1 -1
- package/form/inputs/InputNumber/index.cjs +2 -0
- package/form/inputs/InputNumber/index.cjs.map +1 -1
- package/form/inputs/InputNumber/index.js +2 -0
- package/form/inputs/InputNumber/index.js.map +1 -1
- package/form/inputs/InputPassword/index.cjs +2 -0
- package/form/inputs/InputPassword/index.cjs.map +1 -1
- package/form/inputs/InputPassword/index.js +2 -0
- package/form/inputs/InputPassword/index.js.map +1 -1
- package/form/inputs/InputSwitch/index.cjs +2 -0
- package/form/inputs/InputSwitch/index.cjs.map +1 -1
- package/form/inputs/InputSwitch/index.js +2 -0
- package/form/inputs/InputSwitch/index.js.map +1 -1
- package/form/inputs/InputText/index.cjs +2 -0
- package/form/inputs/InputText/index.cjs.map +1 -1
- package/form/inputs/InputText/index.js +2 -0
- package/form/inputs/InputText/index.js.map +1 -1
- package/form/inputs/InputTextarea/index.cjs +2 -0
- package/form/inputs/InputTextarea/index.cjs.map +1 -1
- package/form/inputs/InputTextarea/index.js +2 -0
- package/form/inputs/InputTextarea/index.js.map +1 -1
- package/form/inputs/PhoneInput/index.cjs +2 -0
- package/form/inputs/PhoneInput/index.cjs.map +1 -1
- package/form/inputs/PhoneInput/index.js +2 -0
- package/form/inputs/PhoneInput/index.js.map +1 -1
- package/form/inputs/RadiusPicker/components/NumericRadiusInput.cjs +1 -0
- package/form/inputs/RadiusPicker/components/NumericRadiusInput.cjs.map +1 -1
- package/form/inputs/RadiusPicker/components/NumericRadiusInput.js +1 -0
- package/form/inputs/RadiusPicker/components/NumericRadiusInput.js.map +1 -1
- package/form/selects/AutoComplete/index.cjs +2 -0
- package/form/selects/AutoComplete/index.cjs.map +1 -1
- package/form/selects/AutoComplete/index.js +2 -0
- package/form/selects/AutoComplete/index.js.map +1 -1
- package/form/selects/Dropdown/index.cjs +2 -0
- package/form/selects/Dropdown/index.cjs.map +1 -1
- package/form/selects/Dropdown/index.js +2 -0
- package/form/selects/Dropdown/index.js.map +1 -1
- package/form/selects/ListBox/index.cjs +2 -0
- package/form/selects/ListBox/index.cjs.map +1 -1
- package/form/selects/ListBox/index.js +2 -0
- package/form/selects/ListBox/index.js.map +1 -1
- package/form/selects/MultiSelect/index.cjs +2 -0
- package/form/selects/MultiSelect/index.cjs.map +1 -1
- package/form/selects/MultiSelect/index.js +2 -0
- package/form/selects/MultiSelect/index.js.map +1 -1
- package/form/selects/TreeSelect/index.cjs +2 -0
- package/form/selects/TreeSelect/index.cjs.map +1 -1
- package/form/selects/TreeSelect/index.js +2 -0
- package/form/selects/TreeSelect/index.js.map +1 -1
- package/form-renderer/components/layout/FieldWrapper.cjs +2 -0
- package/form-renderer/components/layout/FieldWrapper.cjs.map +1 -1
- package/form-renderer/components/layout/FieldWrapper.js +2 -0
- package/form-renderer/components/layout/FieldWrapper.js.map +1 -1
- package/hooks/shadowPresets.cjs +1 -0
- package/hooks/shadowPresets.cjs.map +1 -1
- package/hooks/shadowPresets.js +1 -0
- package/hooks/shadowPresets.js.map +1 -1
- package/hooks/useFocusStyles.cjs +2 -0
- package/hooks/useFocusStyles.cjs.map +1 -1
- package/hooks/useFocusStyles.js +2 -0
- package/hooks/useFocusStyles.js.map +1 -1
- package/index.cjs +5 -0
- package/index.cjs.map +1 -1
- package/index.d.ts +60 -3
- package/index.js +1 -0
- package/index.js.map +1 -1
- package/layout/Center/index.cjs +2 -0
- package/layout/Center/index.cjs.map +1 -1
- package/layout/Center/index.js +2 -0
- package/layout/Center/index.js.map +1 -1
- package/layout/Container/container.cjs +2 -0
- package/layout/Container/container.cjs.map +1 -1
- package/layout/Container/container.js +2 -0
- package/layout/Container/container.js.map +1 -1
- package/layout/Flex/index.cjs +2 -0
- package/layout/Flex/index.cjs.map +1 -1
- package/layout/Flex/index.js +2 -0
- package/layout/Flex/index.js.map +1 -1
- package/layout/HStack/index.cjs +2 -0
- package/layout/HStack/index.cjs.map +1 -1
- package/layout/HStack/index.js +2 -0
- package/layout/HStack/index.js.map +1 -1
- package/layout/List/index.cjs +2 -0
- package/layout/List/index.cjs.map +1 -1
- package/layout/List/index.js +2 -0
- package/layout/List/index.js.map +1 -1
- package/layout/ListItem/index.cjs +2 -0
- package/layout/ListItem/index.cjs.map +1 -1
- package/layout/ListItem/index.js +2 -0
- package/layout/ListItem/index.js.map +1 -1
- package/layout/ScrollView/index.cjs +2 -0
- package/layout/ScrollView/index.cjs.map +1 -1
- package/layout/ScrollView/index.js +2 -0
- package/layout/ScrollView/index.js.map +1 -1
- package/layout/VStack/index.cjs +2 -0
- package/layout/VStack/index.cjs.map +1 -1
- package/layout/VStack/index.js +2 -0
- package/layout/VStack/index.js.map +1 -1
- package/package.json +1 -1
- package/packages/types/src/Theme/alphaColors.cjs +24 -0
- package/packages/types/src/Theme/alphaColors.cjs.map +1 -0
- package/packages/types/src/Theme/alphaColors.js +19 -0
- package/packages/types/src/Theme/alphaColors.js.map +1 -0
- package/packages/types/src/Theme/resolvers.cjs +6 -0
- package/packages/types/src/Theme/resolvers.cjs.map +1 -1
- package/packages/types/src/Theme/resolvers.js +6 -0
- package/packages/types/src/Theme/resolvers.js.map +1 -1
- package/primitives/Box/index.cjs +2 -0
- package/primitives/Box/index.cjs.map +1 -1
- package/primitives/Box/index.js +2 -0
- package/primitives/Box/index.js.map +1 -1
- package/primitives/Card/index.cjs +2 -0
- package/primitives/Card/index.cjs.map +1 -1
- package/primitives/Card/index.js +2 -0
- package/primitives/Card/index.js.map +1 -1
- package/primitives/Divider/index.cjs +2 -0
- package/primitives/Divider/index.cjs.map +1 -1
- package/primitives/Divider/index.js +2 -0
- package/primitives/Divider/index.js.map +1 -1
- package/primitives/Heading/index.cjs +2 -0
- package/primitives/Heading/index.cjs.map +1 -1
- package/primitives/Heading/index.js +2 -0
- package/primitives/Heading/index.js.map +1 -1
- package/primitives/Icon/index.cjs +1 -0
- package/primitives/Icon/index.cjs.map +1 -1
- package/primitives/Icon/index.js +1 -0
- package/primitives/Icon/index.js.map +1 -1
- package/primitives/Image/index.cjs +2 -0
- package/primitives/Image/index.cjs.map +1 -1
- package/primitives/Image/index.js +2 -0
- package/primitives/Image/index.js.map +1 -1
- package/primitives/Skeleton/index.cjs +2 -0
- package/primitives/Skeleton/index.cjs.map +1 -1
- package/primitives/Skeleton/index.js +2 -0
- package/primitives/Skeleton/index.js.map +1 -1
- package/primitives/Svg/index.cjs +2 -0
- package/primitives/Svg/index.cjs.map +1 -1
- package/primitives/Svg/index.js +2 -0
- package/primitives/Svg/index.js.map +1 -1
- package/primitives/Text/index.cjs +2 -0
- package/primitives/Text/index.cjs.map +1 -1
- package/primitives/Text/index.js +2 -0
- package/primitives/Text/index.js.map +1 -1
|
@@ -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,8 @@ 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/alphaColors.js';
|
|
64
|
+
import '../../../apps/mobile/src/Factory/helpers/cssVarMap.js';
|
|
63
65
|
import '../../../apps/mobile/src/Factory/DimensionsContext.js';
|
|
64
66
|
import 'i18next';
|
|
65
67
|
import 'react-i18next';
|
|
@@ -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,8 @@ require('yup');
|
|
|
62
62
|
require('../../../packages/types/src/Css/map/index.cjs');
|
|
63
63
|
require('../../../packages/types/src/Theme/shadows.cjs');
|
|
64
64
|
require('../../../packages/types/src/Theme/defaultTheme.cjs');
|
|
65
|
+
require('../../../packages/types/src/Theme/alphaColors.cjs');
|
|
66
|
+
require('../../../apps/mobile/src/Factory/helpers/cssVarMap.cjs');
|
|
65
67
|
require('../../../apps/mobile/src/Factory/DimensionsContext.cjs');
|
|
66
68
|
var useSeparator = require('../../../apps/mobile/src/Factory/useSeparator.cjs');
|
|
67
69
|
require('i18next');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../../../../../src/form/inputs/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":"
|
|
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,8 @@ import 'yup';
|
|
|
58
58
|
import '../../../packages/types/src/Css/map/index.js';
|
|
59
59
|
import '../../../packages/types/src/Theme/shadows.js';
|
|
60
60
|
import '../../../packages/types/src/Theme/defaultTheme.js';
|
|
61
|
+
import '../../../packages/types/src/Theme/alphaColors.js';
|
|
62
|
+
import '../../../apps/mobile/src/Factory/helpers/cssVarMap.js';
|
|
61
63
|
import '../../../apps/mobile/src/Factory/DimensionsContext.js';
|
|
62
64
|
import useSeparator from '../../../apps/mobile/src/Factory/useSeparator.js';
|
|
63
65
|
import 'i18next';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../src/form/inputs/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":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/form/inputs/InputPassword/index.native.tsx"],"sourcesContent":["import React, {useState} from \"react\";\nimport type {IKitsInputPassword} from \"@lmb-it/kitsconcerto-types\";\nimport KitsContainer from \"../../helpers/FormContainer\";\nimport {useSeparator} from \"../../../factory\";\nimport {\n KitsCoreInput as Input,\n KitsCoreInputField as InputField,\n KitsCoreInputSlot as InputSlot,\n} from \"@lmb-it/kitsconcertomobile\";\nimport {useFormInputController} from \"../../helpers/useFormInputController\";\nimport Strengthen from \"./Strengthen\";\nimport {useComponentDefaults, useFocusStyles, useResolvedStyle} from \"@lmb-it/kitsconcerto/hooks\";\nimport {useFormFieldKeyboardNav} from \"../../../hooks/useFormFieldKeyboardNav\";\nimport {mergeRefs} from \"../../../utils/mergeRefs\";\nimport { Icon } from \"../../../\";\nimport { useLanguage } from \"../../../_compat\";\n\nconst KitsInputPassword = ({ref, ...rawProps}: IKitsInputPassword) => {\n const { mergedProps: props, themeStyle, elementStyles } = useComponentDefaults('InputPassword', rawProps, 'Input');\n const resolvedThemeStyle = useResolvedStyle(themeStyle);\n const resolvedRootStyle = useResolvedStyle(elementStyles?.root || {});\n const { isRTL } = useLanguage();\n const {\n id, label, helperText, errors, invalid, required, hideError,\n leftAddon, rightAddon, isFloatedLabel, disabled,\n promptLabel, weakLabel, mediumLabel, strongLabel, header, footer,\n feedback, toggleEye, showStrengthProgress, placeholder,\n value, defaultValue, onChange, schema,\n eyeIcon, eyeSlashIcon,\n inputSize, ...rest\n } = props;\n\n const {inputRef, navProps} = useFormFieldKeyboardNav(id);\n\n const { nativeProps } = useSeparator<any>(rest);\n const { value: internal, emitChange } = useFormInputController<string>({\n value,\n defaultValue,\n onChange,\n });\n\n const [secure, setSecure] = useState(true);\n const toggleSecure = () => setSecure(!secure);\n\n const [isFocused, setFocused] = useState(false);\n const rootStyle = resolvedRootStyle && Object.keys(resolvedRootStyle).length > 0 ? resolvedRootStyle : resolvedThemeStyle;\n const focusResolvedStyle = useFocusStyles(rootStyle, isFocused);\n\n return (\n <KitsContainer\n id={id}\n helperText={helperText}\n isFloatedLabel={isFloatedLabel}\n hideError={hideError}\n required={required}\n leftAddon={leftAddon}\n rightAddon={rightAddon}\n errors={errors}\n invalid={invalid}\n label={label}\n disabled={disabled}\n inputSize={inputSize}\n elementStyles={elementStyles}\n >\n <Input\n {...(rest as any)}\n isDisabled={!!disabled}\n isInvalid={!!invalid}\n isFocused={isFocused}\n style={{width: \"100%\", ...focusResolvedStyle}}\n >\n <InputField\n ref={mergeRefs(inputRef, ref)}\n value={internal ?? ''}\n onChangeText={(txt) => emitChange(txt)}\n secureTextEntry={secure}\n editable={!disabled}\n placeholder={placeholder}\n onFocus={(e: any) => {\n setFocused(true);\n (rest as any)?.onFocus?.(e);\n }}\n onBlur={(e: any) => {\n setFocused(false);\n (rest as any)?.onBlur?.(e);\n }}\n style={{\n textAlign: isRTL ? \"right\" : \"left\",\n writingDirection: isRTL ? \"rtl\" : \"ltr\",\n }}\n {...navProps}\n />\n {toggleEye && (\n <InputSlot onPress={toggleSecure} style={{paddingHorizontal: 12}}>\n {secure\n ? (eyeIcon ?? <Icon name={'eye'} />)\n : (eyeSlashIcon ?? <Icon name={'eye-slash'} />)\n }\n </InputSlot>\n )}\n </Input>\n\n {showStrengthProgress && schema && (\n <Strengthen\n value={internal ?? ''}\n show={false}\n schema={schema as any}\n />\n )}\n </KitsContainer>\n );\n};\n\nexport default KitsInputPassword;\n"],"names":["Input","InputField","InputSlot","Strengthen"],"mappings":"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"}
|
|
@@ -61,6 +61,8 @@ require('yup');
|
|
|
61
61
|
require('../../../packages/types/src/Css/map/index.cjs');
|
|
62
62
|
require('../../../packages/types/src/Theme/shadows.cjs');
|
|
63
63
|
require('../../../packages/types/src/Theme/defaultTheme.cjs');
|
|
64
|
+
require('../../../packages/types/src/Theme/alphaColors.cjs');
|
|
65
|
+
require('../../../apps/mobile/src/Factory/helpers/cssVarMap.cjs');
|
|
64
66
|
require('../../../apps/mobile/src/Factory/DimensionsContext.cjs');
|
|
65
67
|
var useSeparator = require('../../../apps/mobile/src/Factory/useSeparator.cjs');
|
|
66
68
|
require('i18next');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../../../../../src/form/inputs/InputSwitch/index.native.tsx"],"sourcesContent":["import React, {useEffect, useState} from 'react';\nimport { View, Text } from 'react-native';\nimport { Switch } from '@lmb-it/kitsconcertomobile';\nimport KitsContainer from '../../helpers/FormContainer';\nimport type { IKitsInputSwitch } from '@lmb-it/kitsconcerto-types';\nimport { useSeparator } from \"../../../factory\";\nimport {useComponentDefaults, useResolvedStyle, useThemedFont} from \"@lmb-it/kitsconcerto/hooks\";\nimport CheckboxButton from \"../../controls/Checkbox/checkbox\";\n\nconst KitsInputSwitch: React.FC<IKitsInputSwitch> = ({ ref, ...rawProps }) => {\n const {mergedProps: props, themeStyle, elementStyles} = useComponentDefaults('Switch', rawProps);\n const resolvedThemeStyle = useResolvedStyle(themeStyle);\n const resolvedRootStyle = useResolvedStyle(elementStyles?.root || {});\n // Switch states — track in OFF/ON, thumb in OFF/ON. RN's Switch\n // exposes trackColor.{false,true} and thumbColor for these directly,\n // sourced from the new typed slot keys.\n const trackStyle = useResolvedStyle(elementStyles?.track || {});\n const trackOnStyle = useResolvedStyle(elementStyles?.trackOn || {});\n const thumbStyle = useResolvedStyle(elementStyles?.thumb || {});\n const thumbOnStyle = useResolvedStyle(elementStyles?.thumbOn || {});\n // Row-mode label / helperText / error styles. Sourced from\n // FormElement < Switch < per-instance slots so consumers can retune\n // them without touching component code.\n const labelStyle = useResolvedStyle(elementStyles?.label || {});\n const helperTextStyle = useResolvedStyle(elementStyles?.helperText || {});\n const errorStyle = useResolvedStyle(elementStyles?.error || {});\n const themedFont = useThemedFont('body');\n const {\n id,\n label,\n helperText,\n errors,\n invalid,\n required,\n disabled,\n value,\n checked,\n defaultValue,\n onChange,\n displayAs,\n direction,\n containerStyle,\n localProps,\n ...rest\n } = props;\n\n const isCheckbox = displayAs === 'checkbox';\n\n // Controlled value: explicit `checked` or `value` prop\n const controlledValue = typeof checked === 'boolean' ? checked\n : typeof value === 'boolean' ? value\n : undefined;\n\n // Default value: only used when neither checked nor value is set (uncontrolled)\n const resolvedDefault = typeof defaultValue === 'boolean' ? defaultValue : false;\n\n // Determine if component is controlled\n const isControlled = controlledValue !== undefined;\n\n // For uncontrolled mode, maintain internal state initialized from defaultValue\n const [internal, setInternal] = useState<boolean>(isControlled ? (controlledValue as boolean) : resolvedDefault);\n\n useEffect(() => {\n // If controlled, always reflect the incoming value\n if (isControlled) {\n setInternal(controlledValue as boolean);\n }\n }, [controlledValue, isControlled]);\n\n const handleToggle = (newVal: boolean) => {\n if (!isControlled) {\n setInternal(newVal);\n }\n // Always call onChange if provided\n onChange?.({ target: { value: newVal }, value: newVal });\n };\n\n const { nativeProps, cssProps } = useSeparator<any>({ ...rest, ...(localProps as any) });\n\n // Resolve display label text for checkbox mode\n const labelText = typeof label === 'string' ? label\n : typeof label === 'object' && label !== null && 'text' in (label as any) ? (label as any).text\n : undefined;\n\n const Element = isCheckbox\n ? <CheckboxButton\n item={{\n value: true,\n label: labelText ?? '',\n withBulbs: true,\n labelPosition: 'right',\n }}\n selected={!!internal}\n disabled={disabled}\n isInvalid={invalid}\n onToggle={() => handleToggle(!internal)}\n />\n : <Switch\n {...nativeProps}\n ref={ref as any}\n style={{\n ...(resolvedRootStyle && Object.keys(resolvedRootStyle).length > 0 ? resolvedRootStyle : resolvedThemeStyle),\n // Track non-color styling (border-radius, transitions, etc.)\n // is merged from track + trackOn (when ON) into the root style.\n ...(internal ? {...trackStyle, ...trackOnStyle} : trackStyle),\n ...(cssProps as any),\n }}\n // RN Switch consumes track/thumb colors via these props directly.\n trackColor={{\n false: (trackStyle as any).backgroundColor,\n true: (trackOnStyle as any).backgroundColor ?? (trackStyle as any).backgroundColor,\n }}\n thumbColor={internal\n ? ((thumbOnStyle as any).backgroundColor ?? (thumbStyle as any).backgroundColor)\n : (thumbStyle as any).backgroundColor}\n value={internal}\n isDisabled={!!disabled}\n isInvalid={!!invalid}\n onToggle={handleToggle}\n />;\n\n const isRow = direction === 'row';\n\n if (isRow && !isCheckbox) {\n const rowLabelText = typeof label === 'string' ? label\n : typeof label === 'object' && label !== null && 'text' in (label as any) ? (label as any).text\n : undefined;\n\n return (\n <View style={{ width: '100%' }}>\n <View style={{\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n width: '100%',\n }}>\n {rowLabelText ? (\n <Text style={{\n opacity: disabled ? 0.6 : 1,\n ...(themedFont ? {fontFamily: themedFont} : {}),\n ...labelStyle,\n }}>{rowLabelText}</Text>\n ) : null}\n {Element}\n </View>\n {helperText && typeof helperText === 'string' ? (\n <Text style={{ marginTop: 4, ...(themedFont ? {fontFamily: themedFont} : {}), ...helperTextStyle }}>{helperText}</Text>\n ) : null}\n {errors ? (\n <Text style={{ marginTop: 4, ...(themedFont ? {fontFamily: themedFont} : {}), ...errorStyle }}>{errors}</Text>\n ) : null}\n </View>\n );\n }\n\n return (\n <KitsContainer\n id={id}\n required={required}\n helperText={helperText}\n errors={errors}\n invalid={invalid}\n label={isCheckbox ? undefined : label}\n disabled={disabled}\n bare\n containerStyle={containerStyle}\n elementStyles={elementStyles}\n >\n {Element}\n </KitsContainer>\n );\n};\n\nexport default KitsInputSwitch;\n"],"names":["useComponentDefaults","useResolvedStyle","useThemedFont","useState","useEffect","useSeparator","jsx","CheckboxButton","Switch","View","jsxs","Text","KitsContainer"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../../../src/form/inputs/InputSwitch/index.native.tsx"],"sourcesContent":["import React, {useEffect, useState} from 'react';\nimport { View, Text } from 'react-native';\nimport { Switch } from '@lmb-it/kitsconcertomobile';\nimport KitsContainer from '../../helpers/FormContainer';\nimport type { IKitsInputSwitch } from '@lmb-it/kitsconcerto-types';\nimport { useSeparator } from \"../../../factory\";\nimport {useComponentDefaults, useResolvedStyle, useThemedFont} from \"@lmb-it/kitsconcerto/hooks\";\nimport CheckboxButton from \"../../controls/Checkbox/checkbox\";\n\nconst KitsInputSwitch: React.FC<IKitsInputSwitch> = ({ ref, ...rawProps }) => {\n const {mergedProps: props, themeStyle, elementStyles} = useComponentDefaults('Switch', rawProps);\n const resolvedThemeStyle = useResolvedStyle(themeStyle);\n const resolvedRootStyle = useResolvedStyle(elementStyles?.root || {});\n // Switch states — track in OFF/ON, thumb in OFF/ON. RN's Switch\n // exposes trackColor.{false,true} and thumbColor for these directly,\n // sourced from the new typed slot keys.\n const trackStyle = useResolvedStyle(elementStyles?.track || {});\n const trackOnStyle = useResolvedStyle(elementStyles?.trackOn || {});\n const thumbStyle = useResolvedStyle(elementStyles?.thumb || {});\n const thumbOnStyle = useResolvedStyle(elementStyles?.thumbOn || {});\n // Row-mode label / helperText / error styles. Sourced from\n // FormElement < Switch < per-instance slots so consumers can retune\n // them without touching component code.\n const labelStyle = useResolvedStyle(elementStyles?.label || {});\n const helperTextStyle = useResolvedStyle(elementStyles?.helperText || {});\n const errorStyle = useResolvedStyle(elementStyles?.error || {});\n const themedFont = useThemedFont('body');\n const {\n id,\n label,\n helperText,\n errors,\n invalid,\n required,\n disabled,\n value,\n checked,\n defaultValue,\n onChange,\n displayAs,\n direction,\n containerStyle,\n localProps,\n ...rest\n } = props;\n\n const isCheckbox = displayAs === 'checkbox';\n\n // Controlled value: explicit `checked` or `value` prop\n const controlledValue = typeof checked === 'boolean' ? checked\n : typeof value === 'boolean' ? value\n : undefined;\n\n // Default value: only used when neither checked nor value is set (uncontrolled)\n const resolvedDefault = typeof defaultValue === 'boolean' ? defaultValue : false;\n\n // Determine if component is controlled\n const isControlled = controlledValue !== undefined;\n\n // For uncontrolled mode, maintain internal state initialized from defaultValue\n const [internal, setInternal] = useState<boolean>(isControlled ? (controlledValue as boolean) : resolvedDefault);\n\n useEffect(() => {\n // If controlled, always reflect the incoming value\n if (isControlled) {\n setInternal(controlledValue as boolean);\n }\n }, [controlledValue, isControlled]);\n\n const handleToggle = (newVal: boolean) => {\n if (!isControlled) {\n setInternal(newVal);\n }\n // Always call onChange if provided\n onChange?.({ target: { value: newVal }, value: newVal });\n };\n\n const { nativeProps, cssProps } = useSeparator<any>({ ...rest, ...(localProps as any) });\n\n // Resolve display label text for checkbox mode\n const labelText = typeof label === 'string' ? label\n : typeof label === 'object' && label !== null && 'text' in (label as any) ? (label as any).text\n : undefined;\n\n const Element = isCheckbox\n ? <CheckboxButton\n item={{\n value: true,\n label: labelText ?? '',\n withBulbs: true,\n labelPosition: 'right',\n }}\n selected={!!internal}\n disabled={disabled}\n isInvalid={invalid}\n onToggle={() => handleToggle(!internal)}\n />\n : <Switch\n {...nativeProps}\n ref={ref as any}\n style={{\n ...(resolvedRootStyle && Object.keys(resolvedRootStyle).length > 0 ? resolvedRootStyle : resolvedThemeStyle),\n // Track non-color styling (border-radius, transitions, etc.)\n // is merged from track + trackOn (when ON) into the root style.\n ...(internal ? {...trackStyle, ...trackOnStyle} : trackStyle),\n ...(cssProps as any),\n }}\n // RN Switch consumes track/thumb colors via these props directly.\n trackColor={{\n false: (trackStyle as any).backgroundColor,\n true: (trackOnStyle as any).backgroundColor ?? (trackStyle as any).backgroundColor,\n }}\n thumbColor={internal\n ? ((thumbOnStyle as any).backgroundColor ?? (thumbStyle as any).backgroundColor)\n : (thumbStyle as any).backgroundColor}\n value={internal}\n isDisabled={!!disabled}\n isInvalid={!!invalid}\n onToggle={handleToggle}\n />;\n\n const isRow = direction === 'row';\n\n if (isRow && !isCheckbox) {\n const rowLabelText = typeof label === 'string' ? label\n : typeof label === 'object' && label !== null && 'text' in (label as any) ? (label as any).text\n : undefined;\n\n return (\n <View style={{ width: '100%' }}>\n <View style={{\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n width: '100%',\n }}>\n {rowLabelText ? (\n <Text style={{\n opacity: disabled ? 0.6 : 1,\n ...(themedFont ? {fontFamily: themedFont} : {}),\n ...labelStyle,\n }}>{rowLabelText}</Text>\n ) : null}\n {Element}\n </View>\n {helperText && typeof helperText === 'string' ? (\n <Text style={{ marginTop: 4, ...(themedFont ? {fontFamily: themedFont} : {}), ...helperTextStyle }}>{helperText}</Text>\n ) : null}\n {errors ? (\n <Text style={{ marginTop: 4, ...(themedFont ? {fontFamily: themedFont} : {}), ...errorStyle }}>{errors}</Text>\n ) : null}\n </View>\n );\n }\n\n return (\n <KitsContainer\n id={id}\n required={required}\n helperText={helperText}\n errors={errors}\n invalid={invalid}\n label={isCheckbox ? undefined : label}\n disabled={disabled}\n bare\n containerStyle={containerStyle}\n elementStyles={elementStyles}\n >\n {Element}\n </KitsContainer>\n );\n};\n\nexport default KitsInputSwitch;\n"],"names":["useComponentDefaults","useResolvedStyle","useThemedFont","useState","useEffect","useSeparator","jsx","CheckboxButton","Switch","View","jsxs","Text","KitsContainer"],"mappings":"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"}
|
|
@@ -57,6 +57,8 @@ import 'yup';
|
|
|
57
57
|
import '../../../packages/types/src/Css/map/index.js';
|
|
58
58
|
import '../../../packages/types/src/Theme/shadows.js';
|
|
59
59
|
import '../../../packages/types/src/Theme/defaultTheme.js';
|
|
60
|
+
import '../../../packages/types/src/Theme/alphaColors.js';
|
|
61
|
+
import '../../../apps/mobile/src/Factory/helpers/cssVarMap.js';
|
|
60
62
|
import '../../../apps/mobile/src/Factory/DimensionsContext.js';
|
|
61
63
|
import useSeparator from '../../../apps/mobile/src/Factory/useSeparator.js';
|
|
62
64
|
import 'i18next';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../src/form/inputs/InputSwitch/index.native.tsx"],"sourcesContent":["import React, {useEffect, useState} from 'react';\nimport { View, Text } from 'react-native';\nimport { Switch } from '@lmb-it/kitsconcertomobile';\nimport KitsContainer from '../../helpers/FormContainer';\nimport type { IKitsInputSwitch } from '@lmb-it/kitsconcerto-types';\nimport { useSeparator } from \"../../../factory\";\nimport {useComponentDefaults, useResolvedStyle, useThemedFont} from \"@lmb-it/kitsconcerto/hooks\";\nimport CheckboxButton from \"../../controls/Checkbox/checkbox\";\n\nconst KitsInputSwitch: React.FC<IKitsInputSwitch> = ({ ref, ...rawProps }) => {\n const {mergedProps: props, themeStyle, elementStyles} = useComponentDefaults('Switch', rawProps);\n const resolvedThemeStyle = useResolvedStyle(themeStyle);\n const resolvedRootStyle = useResolvedStyle(elementStyles?.root || {});\n // Switch states — track in OFF/ON, thumb in OFF/ON. RN's Switch\n // exposes trackColor.{false,true} and thumbColor for these directly,\n // sourced from the new typed slot keys.\n const trackStyle = useResolvedStyle(elementStyles?.track || {});\n const trackOnStyle = useResolvedStyle(elementStyles?.trackOn || {});\n const thumbStyle = useResolvedStyle(elementStyles?.thumb || {});\n const thumbOnStyle = useResolvedStyle(elementStyles?.thumbOn || {});\n // Row-mode label / helperText / error styles. Sourced from\n // FormElement < Switch < per-instance slots so consumers can retune\n // them without touching component code.\n const labelStyle = useResolvedStyle(elementStyles?.label || {});\n const helperTextStyle = useResolvedStyle(elementStyles?.helperText || {});\n const errorStyle = useResolvedStyle(elementStyles?.error || {});\n const themedFont = useThemedFont('body');\n const {\n id,\n label,\n helperText,\n errors,\n invalid,\n required,\n disabled,\n value,\n checked,\n defaultValue,\n onChange,\n displayAs,\n direction,\n containerStyle,\n localProps,\n ...rest\n } = props;\n\n const isCheckbox = displayAs === 'checkbox';\n\n // Controlled value: explicit `checked` or `value` prop\n const controlledValue = typeof checked === 'boolean' ? checked\n : typeof value === 'boolean' ? value\n : undefined;\n\n // Default value: only used when neither checked nor value is set (uncontrolled)\n const resolvedDefault = typeof defaultValue === 'boolean' ? defaultValue : false;\n\n // Determine if component is controlled\n const isControlled = controlledValue !== undefined;\n\n // For uncontrolled mode, maintain internal state initialized from defaultValue\n const [internal, setInternal] = useState<boolean>(isControlled ? (controlledValue as boolean) : resolvedDefault);\n\n useEffect(() => {\n // If controlled, always reflect the incoming value\n if (isControlled) {\n setInternal(controlledValue as boolean);\n }\n }, [controlledValue, isControlled]);\n\n const handleToggle = (newVal: boolean) => {\n if (!isControlled) {\n setInternal(newVal);\n }\n // Always call onChange if provided\n onChange?.({ target: { value: newVal }, value: newVal });\n };\n\n const { nativeProps, cssProps } = useSeparator<any>({ ...rest, ...(localProps as any) });\n\n // Resolve display label text for checkbox mode\n const labelText = typeof label === 'string' ? label\n : typeof label === 'object' && label !== null && 'text' in (label as any) ? (label as any).text\n : undefined;\n\n const Element = isCheckbox\n ? <CheckboxButton\n item={{\n value: true,\n label: labelText ?? '',\n withBulbs: true,\n labelPosition: 'right',\n }}\n selected={!!internal}\n disabled={disabled}\n isInvalid={invalid}\n onToggle={() => handleToggle(!internal)}\n />\n : <Switch\n {...nativeProps}\n ref={ref as any}\n style={{\n ...(resolvedRootStyle && Object.keys(resolvedRootStyle).length > 0 ? resolvedRootStyle : resolvedThemeStyle),\n // Track non-color styling (border-radius, transitions, etc.)\n // is merged from track + trackOn (when ON) into the root style.\n ...(internal ? {...trackStyle, ...trackOnStyle} : trackStyle),\n ...(cssProps as any),\n }}\n // RN Switch consumes track/thumb colors via these props directly.\n trackColor={{\n false: (trackStyle as any).backgroundColor,\n true: (trackOnStyle as any).backgroundColor ?? (trackStyle as any).backgroundColor,\n }}\n thumbColor={internal\n ? ((thumbOnStyle as any).backgroundColor ?? (thumbStyle as any).backgroundColor)\n : (thumbStyle as any).backgroundColor}\n value={internal}\n isDisabled={!!disabled}\n isInvalid={!!invalid}\n onToggle={handleToggle}\n />;\n\n const isRow = direction === 'row';\n\n if (isRow && !isCheckbox) {\n const rowLabelText = typeof label === 'string' ? label\n : typeof label === 'object' && label !== null && 'text' in (label as any) ? (label as any).text\n : undefined;\n\n return (\n <View style={{ width: '100%' }}>\n <View style={{\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n width: '100%',\n }}>\n {rowLabelText ? (\n <Text style={{\n opacity: disabled ? 0.6 : 1,\n ...(themedFont ? {fontFamily: themedFont} : {}),\n ...labelStyle,\n }}>{rowLabelText}</Text>\n ) : null}\n {Element}\n </View>\n {helperText && typeof helperText === 'string' ? (\n <Text style={{ marginTop: 4, ...(themedFont ? {fontFamily: themedFont} : {}), ...helperTextStyle }}>{helperText}</Text>\n ) : null}\n {errors ? (\n <Text style={{ marginTop: 4, ...(themedFont ? {fontFamily: themedFont} : {}), ...errorStyle }}>{errors}</Text>\n ) : null}\n </View>\n );\n }\n\n return (\n <KitsContainer\n id={id}\n required={required}\n helperText={helperText}\n errors={errors}\n invalid={invalid}\n label={isCheckbox ? undefined : label}\n disabled={disabled}\n bare\n containerStyle={containerStyle}\n elementStyles={elementStyles}\n >\n {Element}\n </KitsContainer>\n );\n};\n\nexport default KitsInputSwitch;\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/form/inputs/InputSwitch/index.native.tsx"],"sourcesContent":["import React, {useEffect, useState} from 'react';\nimport { View, Text } from 'react-native';\nimport { Switch } from '@lmb-it/kitsconcertomobile';\nimport KitsContainer from '../../helpers/FormContainer';\nimport type { IKitsInputSwitch } from '@lmb-it/kitsconcerto-types';\nimport { useSeparator } from \"../../../factory\";\nimport {useComponentDefaults, useResolvedStyle, useThemedFont} from \"@lmb-it/kitsconcerto/hooks\";\nimport CheckboxButton from \"../../controls/Checkbox/checkbox\";\n\nconst KitsInputSwitch: React.FC<IKitsInputSwitch> = ({ ref, ...rawProps }) => {\n const {mergedProps: props, themeStyle, elementStyles} = useComponentDefaults('Switch', rawProps);\n const resolvedThemeStyle = useResolvedStyle(themeStyle);\n const resolvedRootStyle = useResolvedStyle(elementStyles?.root || {});\n // Switch states — track in OFF/ON, thumb in OFF/ON. RN's Switch\n // exposes trackColor.{false,true} and thumbColor for these directly,\n // sourced from the new typed slot keys.\n const trackStyle = useResolvedStyle(elementStyles?.track || {});\n const trackOnStyle = useResolvedStyle(elementStyles?.trackOn || {});\n const thumbStyle = useResolvedStyle(elementStyles?.thumb || {});\n const thumbOnStyle = useResolvedStyle(elementStyles?.thumbOn || {});\n // Row-mode label / helperText / error styles. Sourced from\n // FormElement < Switch < per-instance slots so consumers can retune\n // them without touching component code.\n const labelStyle = useResolvedStyle(elementStyles?.label || {});\n const helperTextStyle = useResolvedStyle(elementStyles?.helperText || {});\n const errorStyle = useResolvedStyle(elementStyles?.error || {});\n const themedFont = useThemedFont('body');\n const {\n id,\n label,\n helperText,\n errors,\n invalid,\n required,\n disabled,\n value,\n checked,\n defaultValue,\n onChange,\n displayAs,\n direction,\n containerStyle,\n localProps,\n ...rest\n } = props;\n\n const isCheckbox = displayAs === 'checkbox';\n\n // Controlled value: explicit `checked` or `value` prop\n const controlledValue = typeof checked === 'boolean' ? checked\n : typeof value === 'boolean' ? value\n : undefined;\n\n // Default value: only used when neither checked nor value is set (uncontrolled)\n const resolvedDefault = typeof defaultValue === 'boolean' ? defaultValue : false;\n\n // Determine if component is controlled\n const isControlled = controlledValue !== undefined;\n\n // For uncontrolled mode, maintain internal state initialized from defaultValue\n const [internal, setInternal] = useState<boolean>(isControlled ? (controlledValue as boolean) : resolvedDefault);\n\n useEffect(() => {\n // If controlled, always reflect the incoming value\n if (isControlled) {\n setInternal(controlledValue as boolean);\n }\n }, [controlledValue, isControlled]);\n\n const handleToggle = (newVal: boolean) => {\n if (!isControlled) {\n setInternal(newVal);\n }\n // Always call onChange if provided\n onChange?.({ target: { value: newVal }, value: newVal });\n };\n\n const { nativeProps, cssProps } = useSeparator<any>({ ...rest, ...(localProps as any) });\n\n // Resolve display label text for checkbox mode\n const labelText = typeof label === 'string' ? label\n : typeof label === 'object' && label !== null && 'text' in (label as any) ? (label as any).text\n : undefined;\n\n const Element = isCheckbox\n ? <CheckboxButton\n item={{\n value: true,\n label: labelText ?? '',\n withBulbs: true,\n labelPosition: 'right',\n }}\n selected={!!internal}\n disabled={disabled}\n isInvalid={invalid}\n onToggle={() => handleToggle(!internal)}\n />\n : <Switch\n {...nativeProps}\n ref={ref as any}\n style={{\n ...(resolvedRootStyle && Object.keys(resolvedRootStyle).length > 0 ? resolvedRootStyle : resolvedThemeStyle),\n // Track non-color styling (border-radius, transitions, etc.)\n // is merged from track + trackOn (when ON) into the root style.\n ...(internal ? {...trackStyle, ...trackOnStyle} : trackStyle),\n ...(cssProps as any),\n }}\n // RN Switch consumes track/thumb colors via these props directly.\n trackColor={{\n false: (trackStyle as any).backgroundColor,\n true: (trackOnStyle as any).backgroundColor ?? (trackStyle as any).backgroundColor,\n }}\n thumbColor={internal\n ? ((thumbOnStyle as any).backgroundColor ?? (thumbStyle as any).backgroundColor)\n : (thumbStyle as any).backgroundColor}\n value={internal}\n isDisabled={!!disabled}\n isInvalid={!!invalid}\n onToggle={handleToggle}\n />;\n\n const isRow = direction === 'row';\n\n if (isRow && !isCheckbox) {\n const rowLabelText = typeof label === 'string' ? label\n : typeof label === 'object' && label !== null && 'text' in (label as any) ? (label as any).text\n : undefined;\n\n return (\n <View style={{ width: '100%' }}>\n <View style={{\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n width: '100%',\n }}>\n {rowLabelText ? (\n <Text style={{\n opacity: disabled ? 0.6 : 1,\n ...(themedFont ? {fontFamily: themedFont} : {}),\n ...labelStyle,\n }}>{rowLabelText}</Text>\n ) : null}\n {Element}\n </View>\n {helperText && typeof helperText === 'string' ? (\n <Text style={{ marginTop: 4, ...(themedFont ? {fontFamily: themedFont} : {}), ...helperTextStyle }}>{helperText}</Text>\n ) : null}\n {errors ? (\n <Text style={{ marginTop: 4, ...(themedFont ? {fontFamily: themedFont} : {}), ...errorStyle }}>{errors}</Text>\n ) : null}\n </View>\n );\n }\n\n return (\n <KitsContainer\n id={id}\n required={required}\n helperText={helperText}\n errors={errors}\n invalid={invalid}\n label={isCheckbox ? undefined : label}\n disabled={disabled}\n bare\n containerStyle={containerStyle}\n elementStyles={elementStyles}\n >\n {Element}\n </KitsContainer>\n );\n};\n\nexport default KitsInputSwitch;\n"],"names":[],"mappings":"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"}
|
|
@@ -65,6 +65,8 @@ require('yup');
|
|
|
65
65
|
require('../../../packages/types/src/Css/map/index.cjs');
|
|
66
66
|
require('../../../packages/types/src/Theme/shadows.cjs');
|
|
67
67
|
require('../../../packages/types/src/Theme/defaultTheme.cjs');
|
|
68
|
+
require('../../../packages/types/src/Theme/alphaColors.cjs');
|
|
69
|
+
require('../../../apps/mobile/src/Factory/helpers/cssVarMap.cjs');
|
|
68
70
|
require('../../../apps/mobile/src/Factory/DimensionsContext.cjs');
|
|
69
71
|
require('i18next');
|
|
70
72
|
require('react-i18next');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../../../../../src/form/inputs/InputText/index.native.tsx"],"sourcesContent":["import React, {ReactPortal} from \"react\";\nimport type { IKitsInputText } from \"@lmb-it/kitsconcerto-types\";\nimport KitsContainer from \"../../helpers/FormContainer\";\nimport { applyKeyFilterKeepPrev } from \"../../helpers/native/keyfilter\";\nimport { keyboardTypeFromKeyFilter } from \"../../helpers/native/keyboardFromFilter\";\nimport { FloatLabelNative } from \"../../helpers/native/FloatLabel\";\nimport {\n KitsCoreInput as Input,\n KitsCoreInputField as InputField,\n KitsCoreInputSlot as InputSlot,\n style,\n} from \"@lmb-it/kitsconcertomobile\";\nimport { View } from \"react-native\";\nimport {useComponentDefaults, useFocusStyles, useResolvedStyle} from \"@lmb-it/kitsconcerto/hooks\";\nimport {useFormFieldKeyboardNav} from \"../../../hooks/useFormFieldKeyboardNav\";\nimport {mergeRefs} from \"../../../utils/mergeRefs\";\nimport { useLanguage } from \"../../../_compat\";\n\nconst KitsInputText = ({ ref, ...rawProps }: IKitsInputText) => {\n const {mergedProps: props, themeStyle, elementStyles} = useComponentDefaults('InputText', rawProps, 'Input');\n const resolvedThemeStyle = useResolvedStyle(themeStyle);\n const resolvedRootStyle = useResolvedStyle(elementStyles?.root || {});\n const { isRTL } = useLanguage();\n\n const {\n id,\n label,\n rightAddon,\n leftAddon,\n errors,\n invalid,\n hideError,\n required,\n keyFilter,\n value,\n defaultValue,\n attached,\n onChange,\n disabled,\n helperText,\n isFloatedLabel,\n placeholder,\n containerStyle,\n localProps,\n keyboardNavId,\n keyboardType,\n maxLength,\n minLength: _minLength, // submit-time only — RN has no minLength prop\n ...rest\n } = props;\n\n\n const resolvedKeyboardType = keyboardType ?? keyboardTypeFromKeyFilter(keyFilter as any);\n\n const {inputRef, navProps} = useFormFieldKeyboardNav(keyboardNavId ?? id);\n\n /** 🔑 controlled detection */\n const isControlled = value !== undefined;\n\n /** 🔹 internal state only for uncontrolled */\n const [internalValue, setInternalValue] = React.useState<string>(\n String(defaultValue ?? \"\")\n );\n\n /** 🔹 focused state (for FloatLabel + _focus styles) */\n const [isFocused, setFocused] = React.useState(false);\n const rootStyle = resolvedRootStyle && Object.keys(resolvedRootStyle).length > 0 ? resolvedRootStyle : resolvedThemeStyle;\n\n\n\n const focusResolvedStyle = useFocusStyles(rootStyle, isFocused);\n\n\n /** 🔄 sync only when controlled */\n React.useEffect(() => {\n if (isControlled) {\n setInternalValue(String(value ?? \"\"));\n }\n }, [isControlled, value]);\n\n /** ✍️ change handler */\n const handleChangeText = (nextRaw: string) => {\n const prev = isControlled ? String(value ?? \"\") : internalValue;\n\n const filtered = keyFilter\n ? applyKeyFilterKeepPrev(prev, nextRaw, keyFilter as any)\n : nextRaw;\n\n if (!isControlled) {\n setInternalValue(filtered);\n }\n\n onChange?.({\n target: { value: filtered },\n } as any);\n };\n\n const displayValue = isControlled\n ? String(value ?? \"\")\n : internalValue;\n\n const inputEl = (\n <Input\n {...(localProps as any)}\n isDisabled={!!disabled}\n isInvalid={!!invalid}\n isFocused={isFocused}\n style={resolvedRootStyle}\n {...(rest as any)}\n >\n <InputField\n ref={mergeRefs(inputRef, ref)}\n value={displayValue}\n placeholder={isFloatedLabel ? undefined : placeholder}\n editable={!disabled}\n keyboardType={resolvedKeyboardType}\n maxLength={maxLength}\n onChangeText={handleChangeText}\n onFocus={(e: any) => {\n setFocused(true);\n (rest as any)?.onFocus?.(e);\n }}\n onBlur={(e: any) => {\n setFocused(false);\n (rest as any)?.onBlur?.(e);\n }}\n // Locale-aware alignment — placeholder and typed text both\n // need explicit textAlign so they start at the reading edge.\n // RN's TextInput default of 'auto' picks alignment from the\n // first character, which fails on empty inputs (placeholder\n // sits at the wrong edge in RTL).\n style={{\n textAlign: isRTL ? \"right\" : \"left\",\n writingDirection: isRTL ? \"rtl\" : \"ltr\",\n }}\n {...navProps}\n />\n </Input>\n );\n\n // `attached`: input is being placed inside an outer group that already\n // owns the chrome (FormContainer is upstream). Mirror web: return the\n // bare Input element. Addon rendering belongs to FormContainer alone —\n // see helpers/FormContainer/index.native.tsx.\n if(attached){\n return isFloatedLabel ? (\n <FloatLabelNative\n label={\n typeof label === \"string\"\n ? label\n : (label as any)?.text ?? \"\"\n }\n value={displayValue}\n isFocused={isFocused}\n disabled={disabled}\n onFocusRequest={() => setFocused(true)}\n >\n <View style={{ width: \"100%\" }}>\n {inputEl}\n </View>\n </FloatLabelNative>\n ) : (\n inputEl\n )\n }\n\n return (\n <KitsContainer\n id={id}\n disabled={disabled}\n hideError={hideError}\n isFloatedLabel={isFloatedLabel}\n helperText={helperText}\n rightAddon={rightAddon}\n leftAddon={leftAddon}\n required={required}\n errors={errors}\n invalid={invalid}\n label={label}\n containerStyle={containerStyle}\n elementStyles={elementStyles}\n >\n {isFloatedLabel ? (\n <FloatLabelNative\n label={\n typeof label === \"string\"\n ? label\n : (label as any)?.text ?? \"\"\n }\n value={displayValue}\n isFocused={isFocused}\n disabled={disabled}\n onFocusRequest={() => setFocused(true)}\n >\n {inputEl}\n </FloatLabelNative>\n ) : (\n inputEl\n )}\n </KitsContainer>\n );\n};\n\nexport default KitsInputText;\n"],"names":["useComponentDefaults","useResolvedStyle","useLanguage","keyboardTypeFromKeyFilter","useFormFieldKeyboardNav","useFocusStyles","applyKeyFilterKeepPrev","jsx","Input","InputField","mergeRefs","FloatLabelNative","View","KitsContainer"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../../../src/form/inputs/InputText/index.native.tsx"],"sourcesContent":["import React, {ReactPortal} from \"react\";\nimport type { IKitsInputText } from \"@lmb-it/kitsconcerto-types\";\nimport KitsContainer from \"../../helpers/FormContainer\";\nimport { applyKeyFilterKeepPrev } from \"../../helpers/native/keyfilter\";\nimport { keyboardTypeFromKeyFilter } from \"../../helpers/native/keyboardFromFilter\";\nimport { FloatLabelNative } from \"../../helpers/native/FloatLabel\";\nimport {\n KitsCoreInput as Input,\n KitsCoreInputField as InputField,\n KitsCoreInputSlot as InputSlot,\n style,\n} from \"@lmb-it/kitsconcertomobile\";\nimport { View } from \"react-native\";\nimport {useComponentDefaults, useFocusStyles, useResolvedStyle} from \"@lmb-it/kitsconcerto/hooks\";\nimport {useFormFieldKeyboardNav} from \"../../../hooks/useFormFieldKeyboardNav\";\nimport {mergeRefs} from \"../../../utils/mergeRefs\";\nimport { useLanguage } from \"../../../_compat\";\n\nconst KitsInputText = ({ ref, ...rawProps }: IKitsInputText) => {\n const {mergedProps: props, themeStyle, elementStyles} = useComponentDefaults('InputText', rawProps, 'Input');\n const resolvedThemeStyle = useResolvedStyle(themeStyle);\n const resolvedRootStyle = useResolvedStyle(elementStyles?.root || {});\n const { isRTL } = useLanguage();\n\n const {\n id,\n label,\n rightAddon,\n leftAddon,\n errors,\n invalid,\n hideError,\n required,\n keyFilter,\n value,\n defaultValue,\n attached,\n onChange,\n disabled,\n helperText,\n isFloatedLabel,\n placeholder,\n containerStyle,\n localProps,\n keyboardNavId,\n keyboardType,\n maxLength,\n minLength: _minLength, // submit-time only — RN has no minLength prop\n ...rest\n } = props;\n\n\n const resolvedKeyboardType = keyboardType ?? keyboardTypeFromKeyFilter(keyFilter as any);\n\n const {inputRef, navProps} = useFormFieldKeyboardNav(keyboardNavId ?? id);\n\n /** 🔑 controlled detection */\n const isControlled = value !== undefined;\n\n /** 🔹 internal state only for uncontrolled */\n const [internalValue, setInternalValue] = React.useState<string>(\n String(defaultValue ?? \"\")\n );\n\n /** 🔹 focused state (for FloatLabel + _focus styles) */\n const [isFocused, setFocused] = React.useState(false);\n const rootStyle = resolvedRootStyle && Object.keys(resolvedRootStyle).length > 0 ? resolvedRootStyle : resolvedThemeStyle;\n\n\n\n const focusResolvedStyle = useFocusStyles(rootStyle, isFocused);\n\n\n /** 🔄 sync only when controlled */\n React.useEffect(() => {\n if (isControlled) {\n setInternalValue(String(value ?? \"\"));\n }\n }, [isControlled, value]);\n\n /** ✍️ change handler */\n const handleChangeText = (nextRaw: string) => {\n const prev = isControlled ? String(value ?? \"\") : internalValue;\n\n const filtered = keyFilter\n ? applyKeyFilterKeepPrev(prev, nextRaw, keyFilter as any)\n : nextRaw;\n\n if (!isControlled) {\n setInternalValue(filtered);\n }\n\n onChange?.({\n target: { value: filtered },\n } as any);\n };\n\n const displayValue = isControlled\n ? String(value ?? \"\")\n : internalValue;\n\n const inputEl = (\n <Input\n {...(localProps as any)}\n isDisabled={!!disabled}\n isInvalid={!!invalid}\n isFocused={isFocused}\n style={resolvedRootStyle}\n {...(rest as any)}\n >\n <InputField\n ref={mergeRefs(inputRef, ref)}\n value={displayValue}\n placeholder={isFloatedLabel ? undefined : placeholder}\n editable={!disabled}\n keyboardType={resolvedKeyboardType}\n maxLength={maxLength}\n onChangeText={handleChangeText}\n onFocus={(e: any) => {\n setFocused(true);\n (rest as any)?.onFocus?.(e);\n }}\n onBlur={(e: any) => {\n setFocused(false);\n (rest as any)?.onBlur?.(e);\n }}\n // Locale-aware alignment — placeholder and typed text both\n // need explicit textAlign so they start at the reading edge.\n // RN's TextInput default of 'auto' picks alignment from the\n // first character, which fails on empty inputs (placeholder\n // sits at the wrong edge in RTL).\n style={{\n textAlign: isRTL ? \"right\" : \"left\",\n writingDirection: isRTL ? \"rtl\" : \"ltr\",\n }}\n {...navProps}\n />\n </Input>\n );\n\n // `attached`: input is being placed inside an outer group that already\n // owns the chrome (FormContainer is upstream). Mirror web: return the\n // bare Input element. Addon rendering belongs to FormContainer alone —\n // see helpers/FormContainer/index.native.tsx.\n if(attached){\n return isFloatedLabel ? (\n <FloatLabelNative\n label={\n typeof label === \"string\"\n ? label\n : (label as any)?.text ?? \"\"\n }\n value={displayValue}\n isFocused={isFocused}\n disabled={disabled}\n onFocusRequest={() => setFocused(true)}\n >\n <View style={{ width: \"100%\" }}>\n {inputEl}\n </View>\n </FloatLabelNative>\n ) : (\n inputEl\n )\n }\n\n return (\n <KitsContainer\n id={id}\n disabled={disabled}\n hideError={hideError}\n isFloatedLabel={isFloatedLabel}\n helperText={helperText}\n rightAddon={rightAddon}\n leftAddon={leftAddon}\n required={required}\n errors={errors}\n invalid={invalid}\n label={label}\n containerStyle={containerStyle}\n elementStyles={elementStyles}\n >\n {isFloatedLabel ? (\n <FloatLabelNative\n label={\n typeof label === \"string\"\n ? label\n : (label as any)?.text ?? \"\"\n }\n value={displayValue}\n isFocused={isFocused}\n disabled={disabled}\n onFocusRequest={() => setFocused(true)}\n >\n {inputEl}\n </FloatLabelNative>\n ) : (\n inputEl\n )}\n </KitsContainer>\n );\n};\n\nexport default KitsInputText;\n"],"names":["useComponentDefaults","useResolvedStyle","useLanguage","keyboardTypeFromKeyFilter","useFormFieldKeyboardNav","useFocusStyles","applyKeyFilterKeepPrev","jsx","Input","InputField","mergeRefs","FloatLabelNative","View","KitsContainer"],"mappings":"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"}
|
|
@@ -61,6 +61,8 @@ import 'yup';
|
|
|
61
61
|
import '../../../packages/types/src/Css/map/index.js';
|
|
62
62
|
import '../../../packages/types/src/Theme/shadows.js';
|
|
63
63
|
import '../../../packages/types/src/Theme/defaultTheme.js';
|
|
64
|
+
import '../../../packages/types/src/Theme/alphaColors.js';
|
|
65
|
+
import '../../../apps/mobile/src/Factory/helpers/cssVarMap.js';
|
|
64
66
|
import '../../../apps/mobile/src/Factory/DimensionsContext.js';
|
|
65
67
|
import 'i18next';
|
|
66
68
|
import 'react-i18next';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../src/form/inputs/InputText/index.native.tsx"],"sourcesContent":["import React, {ReactPortal} from \"react\";\nimport type { IKitsInputText } from \"@lmb-it/kitsconcerto-types\";\nimport KitsContainer from \"../../helpers/FormContainer\";\nimport { applyKeyFilterKeepPrev } from \"../../helpers/native/keyfilter\";\nimport { keyboardTypeFromKeyFilter } from \"../../helpers/native/keyboardFromFilter\";\nimport { FloatLabelNative } from \"../../helpers/native/FloatLabel\";\nimport {\n KitsCoreInput as Input,\n KitsCoreInputField as InputField,\n KitsCoreInputSlot as InputSlot,\n style,\n} from \"@lmb-it/kitsconcertomobile\";\nimport { View } from \"react-native\";\nimport {useComponentDefaults, useFocusStyles, useResolvedStyle} from \"@lmb-it/kitsconcerto/hooks\";\nimport {useFormFieldKeyboardNav} from \"../../../hooks/useFormFieldKeyboardNav\";\nimport {mergeRefs} from \"../../../utils/mergeRefs\";\nimport { useLanguage } from \"../../../_compat\";\n\nconst KitsInputText = ({ ref, ...rawProps }: IKitsInputText) => {\n const {mergedProps: props, themeStyle, elementStyles} = useComponentDefaults('InputText', rawProps, 'Input');\n const resolvedThemeStyle = useResolvedStyle(themeStyle);\n const resolvedRootStyle = useResolvedStyle(elementStyles?.root || {});\n const { isRTL } = useLanguage();\n\n const {\n id,\n label,\n rightAddon,\n leftAddon,\n errors,\n invalid,\n hideError,\n required,\n keyFilter,\n value,\n defaultValue,\n attached,\n onChange,\n disabled,\n helperText,\n isFloatedLabel,\n placeholder,\n containerStyle,\n localProps,\n keyboardNavId,\n keyboardType,\n maxLength,\n minLength: _minLength, // submit-time only — RN has no minLength prop\n ...rest\n } = props;\n\n\n const resolvedKeyboardType = keyboardType ?? keyboardTypeFromKeyFilter(keyFilter as any);\n\n const {inputRef, navProps} = useFormFieldKeyboardNav(keyboardNavId ?? id);\n\n /** 🔑 controlled detection */\n const isControlled = value !== undefined;\n\n /** 🔹 internal state only for uncontrolled */\n const [internalValue, setInternalValue] = React.useState<string>(\n String(defaultValue ?? \"\")\n );\n\n /** 🔹 focused state (for FloatLabel + _focus styles) */\n const [isFocused, setFocused] = React.useState(false);\n const rootStyle = resolvedRootStyle && Object.keys(resolvedRootStyle).length > 0 ? resolvedRootStyle : resolvedThemeStyle;\n\n\n\n const focusResolvedStyle = useFocusStyles(rootStyle, isFocused);\n\n\n /** 🔄 sync only when controlled */\n React.useEffect(() => {\n if (isControlled) {\n setInternalValue(String(value ?? \"\"));\n }\n }, [isControlled, value]);\n\n /** ✍️ change handler */\n const handleChangeText = (nextRaw: string) => {\n const prev = isControlled ? String(value ?? \"\") : internalValue;\n\n const filtered = keyFilter\n ? applyKeyFilterKeepPrev(prev, nextRaw, keyFilter as any)\n : nextRaw;\n\n if (!isControlled) {\n setInternalValue(filtered);\n }\n\n onChange?.({\n target: { value: filtered },\n } as any);\n };\n\n const displayValue = isControlled\n ? String(value ?? \"\")\n : internalValue;\n\n const inputEl = (\n <Input\n {...(localProps as any)}\n isDisabled={!!disabled}\n isInvalid={!!invalid}\n isFocused={isFocused}\n style={resolvedRootStyle}\n {...(rest as any)}\n >\n <InputField\n ref={mergeRefs(inputRef, ref)}\n value={displayValue}\n placeholder={isFloatedLabel ? undefined : placeholder}\n editable={!disabled}\n keyboardType={resolvedKeyboardType}\n maxLength={maxLength}\n onChangeText={handleChangeText}\n onFocus={(e: any) => {\n setFocused(true);\n (rest as any)?.onFocus?.(e);\n }}\n onBlur={(e: any) => {\n setFocused(false);\n (rest as any)?.onBlur?.(e);\n }}\n // Locale-aware alignment — placeholder and typed text both\n // need explicit textAlign so they start at the reading edge.\n // RN's TextInput default of 'auto' picks alignment from the\n // first character, which fails on empty inputs (placeholder\n // sits at the wrong edge in RTL).\n style={{\n textAlign: isRTL ? \"right\" : \"left\",\n writingDirection: isRTL ? \"rtl\" : \"ltr\",\n }}\n {...navProps}\n />\n </Input>\n );\n\n // `attached`: input is being placed inside an outer group that already\n // owns the chrome (FormContainer is upstream). Mirror web: return the\n // bare Input element. Addon rendering belongs to FormContainer alone —\n // see helpers/FormContainer/index.native.tsx.\n if(attached){\n return isFloatedLabel ? (\n <FloatLabelNative\n label={\n typeof label === \"string\"\n ? label\n : (label as any)?.text ?? \"\"\n }\n value={displayValue}\n isFocused={isFocused}\n disabled={disabled}\n onFocusRequest={() => setFocused(true)}\n >\n <View style={{ width: \"100%\" }}>\n {inputEl}\n </View>\n </FloatLabelNative>\n ) : (\n inputEl\n )\n }\n\n return (\n <KitsContainer\n id={id}\n disabled={disabled}\n hideError={hideError}\n isFloatedLabel={isFloatedLabel}\n helperText={helperText}\n rightAddon={rightAddon}\n leftAddon={leftAddon}\n required={required}\n errors={errors}\n invalid={invalid}\n label={label}\n containerStyle={containerStyle}\n elementStyles={elementStyles}\n >\n {isFloatedLabel ? (\n <FloatLabelNative\n label={\n typeof label === \"string\"\n ? label\n : (label as any)?.text ?? \"\"\n }\n value={displayValue}\n isFocused={isFocused}\n disabled={disabled}\n onFocusRequest={() => setFocused(true)}\n >\n {inputEl}\n </FloatLabelNative>\n ) : (\n inputEl\n )}\n </KitsContainer>\n );\n};\n\nexport default KitsInputText;\n"],"names":["Input","InputField"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/form/inputs/InputText/index.native.tsx"],"sourcesContent":["import React, {ReactPortal} from \"react\";\nimport type { IKitsInputText } from \"@lmb-it/kitsconcerto-types\";\nimport KitsContainer from \"../../helpers/FormContainer\";\nimport { applyKeyFilterKeepPrev } from \"../../helpers/native/keyfilter\";\nimport { keyboardTypeFromKeyFilter } from \"../../helpers/native/keyboardFromFilter\";\nimport { FloatLabelNative } from \"../../helpers/native/FloatLabel\";\nimport {\n KitsCoreInput as Input,\n KitsCoreInputField as InputField,\n KitsCoreInputSlot as InputSlot,\n style,\n} from \"@lmb-it/kitsconcertomobile\";\nimport { View } from \"react-native\";\nimport {useComponentDefaults, useFocusStyles, useResolvedStyle} from \"@lmb-it/kitsconcerto/hooks\";\nimport {useFormFieldKeyboardNav} from \"../../../hooks/useFormFieldKeyboardNav\";\nimport {mergeRefs} from \"../../../utils/mergeRefs\";\nimport { useLanguage } from \"../../../_compat\";\n\nconst KitsInputText = ({ ref, ...rawProps }: IKitsInputText) => {\n const {mergedProps: props, themeStyle, elementStyles} = useComponentDefaults('InputText', rawProps, 'Input');\n const resolvedThemeStyle = useResolvedStyle(themeStyle);\n const resolvedRootStyle = useResolvedStyle(elementStyles?.root || {});\n const { isRTL } = useLanguage();\n\n const {\n id,\n label,\n rightAddon,\n leftAddon,\n errors,\n invalid,\n hideError,\n required,\n keyFilter,\n value,\n defaultValue,\n attached,\n onChange,\n disabled,\n helperText,\n isFloatedLabel,\n placeholder,\n containerStyle,\n localProps,\n keyboardNavId,\n keyboardType,\n maxLength,\n minLength: _minLength, // submit-time only — RN has no minLength prop\n ...rest\n } = props;\n\n\n const resolvedKeyboardType = keyboardType ?? keyboardTypeFromKeyFilter(keyFilter as any);\n\n const {inputRef, navProps} = useFormFieldKeyboardNav(keyboardNavId ?? id);\n\n /** 🔑 controlled detection */\n const isControlled = value !== undefined;\n\n /** 🔹 internal state only for uncontrolled */\n const [internalValue, setInternalValue] = React.useState<string>(\n String(defaultValue ?? \"\")\n );\n\n /** 🔹 focused state (for FloatLabel + _focus styles) */\n const [isFocused, setFocused] = React.useState(false);\n const rootStyle = resolvedRootStyle && Object.keys(resolvedRootStyle).length > 0 ? resolvedRootStyle : resolvedThemeStyle;\n\n\n\n const focusResolvedStyle = useFocusStyles(rootStyle, isFocused);\n\n\n /** 🔄 sync only when controlled */\n React.useEffect(() => {\n if (isControlled) {\n setInternalValue(String(value ?? \"\"));\n }\n }, [isControlled, value]);\n\n /** ✍️ change handler */\n const handleChangeText = (nextRaw: string) => {\n const prev = isControlled ? String(value ?? \"\") : internalValue;\n\n const filtered = keyFilter\n ? applyKeyFilterKeepPrev(prev, nextRaw, keyFilter as any)\n : nextRaw;\n\n if (!isControlled) {\n setInternalValue(filtered);\n }\n\n onChange?.({\n target: { value: filtered },\n } as any);\n };\n\n const displayValue = isControlled\n ? String(value ?? \"\")\n : internalValue;\n\n const inputEl = (\n <Input\n {...(localProps as any)}\n isDisabled={!!disabled}\n isInvalid={!!invalid}\n isFocused={isFocused}\n style={resolvedRootStyle}\n {...(rest as any)}\n >\n <InputField\n ref={mergeRefs(inputRef, ref)}\n value={displayValue}\n placeholder={isFloatedLabel ? undefined : placeholder}\n editable={!disabled}\n keyboardType={resolvedKeyboardType}\n maxLength={maxLength}\n onChangeText={handleChangeText}\n onFocus={(e: any) => {\n setFocused(true);\n (rest as any)?.onFocus?.(e);\n }}\n onBlur={(e: any) => {\n setFocused(false);\n (rest as any)?.onBlur?.(e);\n }}\n // Locale-aware alignment — placeholder and typed text both\n // need explicit textAlign so they start at the reading edge.\n // RN's TextInput default of 'auto' picks alignment from the\n // first character, which fails on empty inputs (placeholder\n // sits at the wrong edge in RTL).\n style={{\n textAlign: isRTL ? \"right\" : \"left\",\n writingDirection: isRTL ? \"rtl\" : \"ltr\",\n }}\n {...navProps}\n />\n </Input>\n );\n\n // `attached`: input is being placed inside an outer group that already\n // owns the chrome (FormContainer is upstream). Mirror web: return the\n // bare Input element. Addon rendering belongs to FormContainer alone —\n // see helpers/FormContainer/index.native.tsx.\n if(attached){\n return isFloatedLabel ? (\n <FloatLabelNative\n label={\n typeof label === \"string\"\n ? label\n : (label as any)?.text ?? \"\"\n }\n value={displayValue}\n isFocused={isFocused}\n disabled={disabled}\n onFocusRequest={() => setFocused(true)}\n >\n <View style={{ width: \"100%\" }}>\n {inputEl}\n </View>\n </FloatLabelNative>\n ) : (\n inputEl\n )\n }\n\n return (\n <KitsContainer\n id={id}\n disabled={disabled}\n hideError={hideError}\n isFloatedLabel={isFloatedLabel}\n helperText={helperText}\n rightAddon={rightAddon}\n leftAddon={leftAddon}\n required={required}\n errors={errors}\n invalid={invalid}\n label={label}\n containerStyle={containerStyle}\n elementStyles={elementStyles}\n >\n {isFloatedLabel ? (\n <FloatLabelNative\n label={\n typeof label === \"string\"\n ? label\n : (label as any)?.text ?? \"\"\n }\n value={displayValue}\n isFocused={isFocused}\n disabled={disabled}\n onFocusRequest={() => setFocused(true)}\n >\n {inputEl}\n </FloatLabelNative>\n ) : (\n inputEl\n )}\n </KitsContainer>\n );\n};\n\nexport default KitsInputText;\n"],"names":["Input","InputField"],"mappings":"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"}
|
|
@@ -62,6 +62,8 @@ require('yup');
|
|
|
62
62
|
require('../../../packages/types/src/Css/map/index.cjs');
|
|
63
63
|
require('../../../packages/types/src/Theme/shadows.cjs');
|
|
64
64
|
require('../../../packages/types/src/Theme/defaultTheme.cjs');
|
|
65
|
+
require('../../../packages/types/src/Theme/alphaColors.cjs');
|
|
66
|
+
require('../../../apps/mobile/src/Factory/helpers/cssVarMap.cjs');
|
|
65
67
|
require('../../../apps/mobile/src/Factory/DimensionsContext.cjs');
|
|
66
68
|
var useSeparator = require('../../../apps/mobile/src/Factory/useSeparator.cjs');
|
|
67
69
|
require('i18next');
|