@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":"checkbox.cjs","sources":["../../../../../src/form/controls/Checkbox/checkbox.native.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport type { IRadioCheckboxListItem } from \"@lmb-it/kitsconcerto-types\";\nimport { Flex, Text } from \"../../../_compat\";\nimport { Pressable } from \"react-native\";\nimport { CoreCheckboxIndicator } from \"@lmb-it/kitsconcertomobile\";\nimport { useKitsTheme } from \"../../../contexts/Theme\";\nimport { resolveStyleRecord, splitTextStyle } from \"../../../hooks/useResolvedStyle\";\n\ninterface CheckboxButtonProps<T> {\n item: IRadioCheckboxListItem<T>;\n selected: boolean;\n disabled?: boolean;\n isInvalid?: boolean;\n onToggle: () => void;\n /**\n * Pre-merged slot styles from KitsCheckbox (theme `Checkbox.item*` +\n * per-instance `slots.item*`). Unresolved IStyleClasses.\n */\n slotStyles?: {\n item?: Record<string, any>;\n itemSelected?: Record<string, any>;\n itemDisabled?: Record<string, any>;\n itemInvalid?: Record<string, any>;\n };\n}\n\nconst indicatorSize = (s?: string): 'sm' | 'md' | 'lg' => {\n switch (s) {\n case 'xs': case 'sm': return 'sm';\n case 'lg': case 'xl': return 'lg';\n default: return 'md';\n }\n};\n\nconst CheckboxButton = <T,>({\n item,\n selected,\n disabled,\n isInvalid,\n onToggle,\n slotStyles,\n}: CheckboxButtonProps<T>) => {\n const { resolveToken } = useKitsTheme();\n const primaryColor = resolveToken('primary');\n const borderColor = resolveToken('gray.300');\n\n /* Per-item style (slotStyles + item.style*), token-resolved.\n slotStyles is pre-merged at KitsCheckbox level\n (FormElement < Checkbox.item < per-instance slots.item). */\n const resolvedItemStyle = useMemo(() => {\n const merged: Record<string, any> = {\n ...(slotStyles?.item || {}),\n ...(selected ? slotStyles?.itemSelected : null),\n ...(disabled ? slotStyles?.itemDisabled : null),\n ...(isInvalid ? slotStyles?.itemInvalid : null),\n ...(item.w != null && !(item.style && (item.style as any).w != null) && !(item.style && (item.style as any).width != null)\n ? { width: item.w }\n : null),\n ...(item.style || {}),\n ...(selected ? item.styleSelected : null),\n ...(disabled ? item.styleDisabled : null),\n ...(isInvalid ? item.styleInvalid : null),\n };\n return resolveStyleRecord(merged, resolveToken);\n }, [slotStyles, selected, disabled, isInvalid, item.style, item.styleSelected, item.styleDisabled, item.styleInvalid, item.w, resolveToken]);\n\n // Route text props to inner Text, layout props to outer wrapper.\n // No size default — `style.flex` / `style.width` flow through directly.\n const { wrapper: wrapperStyle, text: textStyle } = useMemo(\n () => splitTextStyle(resolvedItemStyle),\n [resolvedItemStyle],\n );\n\n const sizes: Record<string, number> = {\n xs: 13, sm: 17, md: 22, lg: 27, xl: 30,\n };\n\n const paddings: Record<string, [number, number]> = {\n xs: [1, 3], sm: [2, 5], md: [3, 7], lg: [4, 9], xl: [5, 13],\n };\n\n const size = item.size ? sizes[item.size] : sizes.xs;\n const padding = item.size ? paddings[item.size] : paddings.xs;\n\n /* ---- Label positioning (mirrors web) ---- */\n const leftLabel = item.labelPosition === \"left\";\n const bottomLabel = item.labelPosition === \"bottom\";\n const topLabel = item.labelPosition === \"top\";\n\n const direction =\n leftLabel ? \"row-reverse\" :\n bottomLabel ? \"column\" :\n topLabel ? \"column-reverse\" :\n \"row\";\n\n /* ---- Button mode style (mirrors web checked-option) ---- */\n const containerStyle = useMemo(() => ({\n opacity: disabled ? 40 : 100,\n borderWidth: item.component ? 0 : 1,\n borderRadius: item.component ? 0 : 8,\n borderColor: selected ? primaryColor : borderColor,\n backgroundColor: selected ? primaryColor : 'transparent',\n paddingHorizontal: item.component ? 0 : padding?.[1],\n paddingVertical: item.component ? 0 : padding?.[0],\n }), [disabled, selected, item.component, padding]);\n\n /* ---- Content: custom component or label text ---- */\n const renderContent = () => {\n if (item.component) {\n return typeof item.component === \"function\"\n ? item.component({ selected, value: item.value, isInvalid: !!isInvalid })\n : item.component;\n }\n // Default selected-button color (white on primary fill) kept,\n // but user-supplied text props override it via spread style.\n const defaultColor = selected && !item.withBulbs ? '#fff' : undefined;\n return (\n <Text\n fontSize={size}\n fontColor={defaultColor}\n m={0}\n style={textStyle}\n >\n {item.label}\n </Text>\n );\n };\n\n /* ---- Bulb: custom checkbox indicator + content (mirrors web PrimeCheckbox + renderContent) ---- */\n const renderBulb = () => (\n <Pressable\n onPress={() => { if (!disabled) onToggle(); }}\n disabled={disabled}\n >\n <Flex alignItems=\"center\" gap={6} flexDirection={direction}>\n <CoreCheckboxIndicator\n checked={selected}\n disabled={disabled}\n invalid={isInvalid}\n checkedBackgroundColor={primaryColor}\n checkedBorderColor={primaryColor}\n size={indicatorSize(item.size)}\n />\n {renderContent()}\n </Flex>\n </Pressable>\n );\n\n /* ---- Component: custom component + label (mirrors web renderComponent) ---- */\n const renderComponent = () => (\n <Pressable\n onPress={() => { if (!disabled) onToggle(); }}\n disabled={disabled}\n >\n <Flex flexDirection={direction} alignItems=\"center\" gap={4}>\n {renderContent()}\n {!!item.label && <Text>{item.label}</Text>}\n </Flex>\n </Pressable>\n );\n\n\n // BUTTON mode: collapse to a single layer — Pressable IS the styled\n // pill. wrapperStyle wins over containerStyle (later in RN array).\n if (!item.withBulbs && !item.component) {\n return (\n <Pressable\n onPress={() => { if (!disabled) onToggle(); }}\n disabled={disabled}\n style={[containerStyle, wrapperStyle]}\n >\n {renderContent()}\n </Pressable>\n );\n }\n\n // BULB / COMPONENT modes keep the nested structure.\n return (\n <Flex\n pointerEvents={disabled ? \"none\" : \"auto\"}\n style={wrapperStyle}\n alignItems=\"flex-start\"\n >\n {item.withBulbs ? renderBulb() : renderComponent()}\n </Flex>\n );\n};\n\nexport default CheckboxButton;\n"],"names":["useKitsTheme","useMemo","resolveStyleRecord","splitTextStyle","jsx","Text","Pressable","Flex","CoreCheckboxIndicator"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"checkbox.cjs","sources":["../../../../../src/form/controls/Checkbox/checkbox.native.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport type { IRadioCheckboxListItem } from \"@lmb-it/kitsconcerto-types\";\nimport { Flex, Text } from \"../../../_compat\";\nimport { Pressable } from \"react-native\";\nimport { CoreCheckboxIndicator } from \"@lmb-it/kitsconcertomobile\";\nimport { useKitsTheme } from \"../../../contexts/Theme\";\nimport { resolveStyleRecord, splitTextStyle } from \"../../../hooks/useResolvedStyle\";\n\ninterface CheckboxButtonProps<T> {\n item: IRadioCheckboxListItem<T>;\n selected: boolean;\n disabled?: boolean;\n isInvalid?: boolean;\n onToggle: () => void;\n /**\n * Pre-merged slot styles from KitsCheckbox (theme `Checkbox.item*` +\n * per-instance `slots.item*`). Unresolved IStyleClasses.\n */\n slotStyles?: {\n item?: Record<string, any>;\n itemSelected?: Record<string, any>;\n itemDisabled?: Record<string, any>;\n itemInvalid?: Record<string, any>;\n };\n}\n\nconst indicatorSize = (s?: string): 'sm' | 'md' | 'lg' => {\n switch (s) {\n case 'xs': case 'sm': return 'sm';\n case 'lg': case 'xl': return 'lg';\n default: return 'md';\n }\n};\n\nconst CheckboxButton = <T,>({\n item,\n selected,\n disabled,\n isInvalid,\n onToggle,\n slotStyles,\n}: CheckboxButtonProps<T>) => {\n const { resolveToken } = useKitsTheme();\n const primaryColor = resolveToken('primary');\n const borderColor = resolveToken('gray.300');\n\n /* Per-item style (slotStyles + item.style*), token-resolved.\n slotStyles is pre-merged at KitsCheckbox level\n (FormElement < Checkbox.item < per-instance slots.item). */\n const resolvedItemStyle = useMemo(() => {\n const merged: Record<string, any> = {\n ...(slotStyles?.item || {}),\n ...(selected ? slotStyles?.itemSelected : null),\n ...(disabled ? slotStyles?.itemDisabled : null),\n ...(isInvalid ? slotStyles?.itemInvalid : null),\n ...(item.w != null && !(item.style && (item.style as any).w != null) && !(item.style && (item.style as any).width != null)\n ? { width: item.w }\n : null),\n ...(item.style || {}),\n ...(selected ? item.styleSelected : null),\n ...(disabled ? item.styleDisabled : null),\n ...(isInvalid ? item.styleInvalid : null),\n };\n return resolveStyleRecord(merged, resolveToken);\n }, [slotStyles, selected, disabled, isInvalid, item.style, item.styleSelected, item.styleDisabled, item.styleInvalid, item.w, resolveToken]);\n\n // Route text props to inner Text, layout props to outer wrapper.\n // No size default — `style.flex` / `style.width` flow through directly.\n const { wrapper: wrapperStyle, text: textStyle } = useMemo(\n () => splitTextStyle(resolvedItemStyle),\n [resolvedItemStyle],\n );\n\n const sizes: Record<string, number> = {\n xs: 13, sm: 17, md: 22, lg: 27, xl: 30,\n };\n\n const paddings: Record<string, [number, number]> = {\n xs: [1, 3], sm: [2, 5], md: [3, 7], lg: [4, 9], xl: [5, 13],\n };\n\n const size = item.size ? sizes[item.size] : sizes.xs;\n const padding = item.size ? paddings[item.size] : paddings.xs;\n\n /* ---- Label positioning (mirrors web) ---- */\n const leftLabel = item.labelPosition === \"left\";\n const bottomLabel = item.labelPosition === \"bottom\";\n const topLabel = item.labelPosition === \"top\";\n\n const direction =\n leftLabel ? \"row-reverse\" :\n bottomLabel ? \"column\" :\n topLabel ? \"column-reverse\" :\n \"row\";\n\n /* ---- Button mode style (mirrors web checked-option) ---- */\n const containerStyle = useMemo(() => ({\n opacity: disabled ? 40 : 100,\n borderWidth: item.component ? 0 : 1,\n borderRadius: item.component ? 0 : 8,\n borderColor: selected ? primaryColor : borderColor,\n backgroundColor: selected ? primaryColor : 'transparent',\n paddingHorizontal: item.component ? 0 : padding?.[1],\n paddingVertical: item.component ? 0 : padding?.[0],\n }), [disabled, selected, item.component, padding]);\n\n /* ---- Content: custom component or label text ---- */\n const renderContent = () => {\n if (item.component) {\n return typeof item.component === \"function\"\n ? item.component({ selected, value: item.value, isInvalid: !!isInvalid })\n : item.component;\n }\n // Default selected-button color (white on primary fill) kept,\n // but user-supplied text props override it via spread style.\n const defaultColor = selected && !item.withBulbs ? '#fff' : undefined;\n return (\n <Text\n fontSize={size}\n fontColor={defaultColor}\n m={0}\n style={textStyle}\n >\n {item.label}\n </Text>\n );\n };\n\n /* ---- Bulb: custom checkbox indicator + content (mirrors web PrimeCheckbox + renderContent) ---- */\n const renderBulb = () => (\n <Pressable\n onPress={() => { if (!disabled) onToggle(); }}\n disabled={disabled}\n >\n <Flex alignItems=\"center\" gap={6} flexDirection={direction}>\n <CoreCheckboxIndicator\n checked={selected}\n disabled={disabled}\n invalid={isInvalid}\n checkedBackgroundColor={primaryColor}\n checkedBorderColor={primaryColor}\n size={indicatorSize(item.size)}\n />\n {renderContent()}\n </Flex>\n </Pressable>\n );\n\n /* ---- Component: custom component + label (mirrors web renderComponent) ---- */\n const renderComponent = () => (\n <Pressable\n onPress={() => { if (!disabled) onToggle(); }}\n disabled={disabled}\n >\n <Flex flexDirection={direction} alignItems=\"center\" gap={4}>\n {renderContent()}\n {!!item.label && <Text>{item.label}</Text>}\n </Flex>\n </Pressable>\n );\n\n\n // BUTTON mode: collapse to a single layer — Pressable IS the styled\n // pill. wrapperStyle wins over containerStyle (later in RN array).\n if (!item.withBulbs && !item.component) {\n return (\n <Pressable\n onPress={() => { if (!disabled) onToggle(); }}\n disabled={disabled}\n style={[containerStyle, wrapperStyle]}\n >\n {renderContent()}\n </Pressable>\n );\n }\n\n // BULB / COMPONENT modes keep the nested structure.\n return (\n <Flex\n pointerEvents={disabled ? \"none\" : \"auto\"}\n style={wrapperStyle}\n alignItems=\"flex-start\"\n >\n {item.withBulbs ? renderBulb() : renderComponent()}\n </Flex>\n );\n};\n\nexport default CheckboxButton;\n"],"names":["useKitsTheme","useMemo","resolveStyleRecord","splitTextStyle","jsx","Text","Pressable","Flex","CoreCheckboxIndicator"],"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 'i18next';
|
|
62
64
|
import 'react-i18next';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkbox.js","sources":["../../../../../src/form/controls/Checkbox/checkbox.native.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport type { IRadioCheckboxListItem } from \"@lmb-it/kitsconcerto-types\";\nimport { Flex, Text } from \"../../../_compat\";\nimport { Pressable } from \"react-native\";\nimport { CoreCheckboxIndicator } from \"@lmb-it/kitsconcertomobile\";\nimport { useKitsTheme } from \"../../../contexts/Theme\";\nimport { resolveStyleRecord, splitTextStyle } from \"../../../hooks/useResolvedStyle\";\n\ninterface CheckboxButtonProps<T> {\n item: IRadioCheckboxListItem<T>;\n selected: boolean;\n disabled?: boolean;\n isInvalid?: boolean;\n onToggle: () => void;\n /**\n * Pre-merged slot styles from KitsCheckbox (theme `Checkbox.item*` +\n * per-instance `slots.item*`). Unresolved IStyleClasses.\n */\n slotStyles?: {\n item?: Record<string, any>;\n itemSelected?: Record<string, any>;\n itemDisabled?: Record<string, any>;\n itemInvalid?: Record<string, any>;\n };\n}\n\nconst indicatorSize = (s?: string): 'sm' | 'md' | 'lg' => {\n switch (s) {\n case 'xs': case 'sm': return 'sm';\n case 'lg': case 'xl': return 'lg';\n default: return 'md';\n }\n};\n\nconst CheckboxButton = <T,>({\n item,\n selected,\n disabled,\n isInvalid,\n onToggle,\n slotStyles,\n}: CheckboxButtonProps<T>) => {\n const { resolveToken } = useKitsTheme();\n const primaryColor = resolveToken('primary');\n const borderColor = resolveToken('gray.300');\n\n /* Per-item style (slotStyles + item.style*), token-resolved.\n slotStyles is pre-merged at KitsCheckbox level\n (FormElement < Checkbox.item < per-instance slots.item). */\n const resolvedItemStyle = useMemo(() => {\n const merged: Record<string, any> = {\n ...(slotStyles?.item || {}),\n ...(selected ? slotStyles?.itemSelected : null),\n ...(disabled ? slotStyles?.itemDisabled : null),\n ...(isInvalid ? slotStyles?.itemInvalid : null),\n ...(item.w != null && !(item.style && (item.style as any).w != null) && !(item.style && (item.style as any).width != null)\n ? { width: item.w }\n : null),\n ...(item.style || {}),\n ...(selected ? item.styleSelected : null),\n ...(disabled ? item.styleDisabled : null),\n ...(isInvalid ? item.styleInvalid : null),\n };\n return resolveStyleRecord(merged, resolveToken);\n }, [slotStyles, selected, disabled, isInvalid, item.style, item.styleSelected, item.styleDisabled, item.styleInvalid, item.w, resolveToken]);\n\n // Route text props to inner Text, layout props to outer wrapper.\n // No size default — `style.flex` / `style.width` flow through directly.\n const { wrapper: wrapperStyle, text: textStyle } = useMemo(\n () => splitTextStyle(resolvedItemStyle),\n [resolvedItemStyle],\n );\n\n const sizes: Record<string, number> = {\n xs: 13, sm: 17, md: 22, lg: 27, xl: 30,\n };\n\n const paddings: Record<string, [number, number]> = {\n xs: [1, 3], sm: [2, 5], md: [3, 7], lg: [4, 9], xl: [5, 13],\n };\n\n const size = item.size ? sizes[item.size] : sizes.xs;\n const padding = item.size ? paddings[item.size] : paddings.xs;\n\n /* ---- Label positioning (mirrors web) ---- */\n const leftLabel = item.labelPosition === \"left\";\n const bottomLabel = item.labelPosition === \"bottom\";\n const topLabel = item.labelPosition === \"top\";\n\n const direction =\n leftLabel ? \"row-reverse\" :\n bottomLabel ? \"column\" :\n topLabel ? \"column-reverse\" :\n \"row\";\n\n /* ---- Button mode style (mirrors web checked-option) ---- */\n const containerStyle = useMemo(() => ({\n opacity: disabled ? 40 : 100,\n borderWidth: item.component ? 0 : 1,\n borderRadius: item.component ? 0 : 8,\n borderColor: selected ? primaryColor : borderColor,\n backgroundColor: selected ? primaryColor : 'transparent',\n paddingHorizontal: item.component ? 0 : padding?.[1],\n paddingVertical: item.component ? 0 : padding?.[0],\n }), [disabled, selected, item.component, padding]);\n\n /* ---- Content: custom component or label text ---- */\n const renderContent = () => {\n if (item.component) {\n return typeof item.component === \"function\"\n ? item.component({ selected, value: item.value, isInvalid: !!isInvalid })\n : item.component;\n }\n // Default selected-button color (white on primary fill) kept,\n // but user-supplied text props override it via spread style.\n const defaultColor = selected && !item.withBulbs ? '#fff' : undefined;\n return (\n <Text\n fontSize={size}\n fontColor={defaultColor}\n m={0}\n style={textStyle}\n >\n {item.label}\n </Text>\n );\n };\n\n /* ---- Bulb: custom checkbox indicator + content (mirrors web PrimeCheckbox + renderContent) ---- */\n const renderBulb = () => (\n <Pressable\n onPress={() => { if (!disabled) onToggle(); }}\n disabled={disabled}\n >\n <Flex alignItems=\"center\" gap={6} flexDirection={direction}>\n <CoreCheckboxIndicator\n checked={selected}\n disabled={disabled}\n invalid={isInvalid}\n checkedBackgroundColor={primaryColor}\n checkedBorderColor={primaryColor}\n size={indicatorSize(item.size)}\n />\n {renderContent()}\n </Flex>\n </Pressable>\n );\n\n /* ---- Component: custom component + label (mirrors web renderComponent) ---- */\n const renderComponent = () => (\n <Pressable\n onPress={() => { if (!disabled) onToggle(); }}\n disabled={disabled}\n >\n <Flex flexDirection={direction} alignItems=\"center\" gap={4}>\n {renderContent()}\n {!!item.label && <Text>{item.label}</Text>}\n </Flex>\n </Pressable>\n );\n\n\n // BUTTON mode: collapse to a single layer — Pressable IS the styled\n // pill. wrapperStyle wins over containerStyle (later in RN array).\n if (!item.withBulbs && !item.component) {\n return (\n <Pressable\n onPress={() => { if (!disabled) onToggle(); }}\n disabled={disabled}\n style={[containerStyle, wrapperStyle]}\n >\n {renderContent()}\n </Pressable>\n );\n }\n\n // BULB / COMPONENT modes keep the nested structure.\n return (\n <Flex\n pointerEvents={disabled ? \"none\" : \"auto\"}\n style={wrapperStyle}\n alignItems=\"flex-start\"\n >\n {item.withBulbs ? renderBulb() : renderComponent()}\n </Flex>\n );\n};\n\nexport default CheckboxButton;\n"],"names":["CoreCheckboxIndicator"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"checkbox.js","sources":["../../../../../src/form/controls/Checkbox/checkbox.native.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport type { IRadioCheckboxListItem } from \"@lmb-it/kitsconcerto-types\";\nimport { Flex, Text } from \"../../../_compat\";\nimport { Pressable } from \"react-native\";\nimport { CoreCheckboxIndicator } from \"@lmb-it/kitsconcertomobile\";\nimport { useKitsTheme } from \"../../../contexts/Theme\";\nimport { resolveStyleRecord, splitTextStyle } from \"../../../hooks/useResolvedStyle\";\n\ninterface CheckboxButtonProps<T> {\n item: IRadioCheckboxListItem<T>;\n selected: boolean;\n disabled?: boolean;\n isInvalid?: boolean;\n onToggle: () => void;\n /**\n * Pre-merged slot styles from KitsCheckbox (theme `Checkbox.item*` +\n * per-instance `slots.item*`). Unresolved IStyleClasses.\n */\n slotStyles?: {\n item?: Record<string, any>;\n itemSelected?: Record<string, any>;\n itemDisabled?: Record<string, any>;\n itemInvalid?: Record<string, any>;\n };\n}\n\nconst indicatorSize = (s?: string): 'sm' | 'md' | 'lg' => {\n switch (s) {\n case 'xs': case 'sm': return 'sm';\n case 'lg': case 'xl': return 'lg';\n default: return 'md';\n }\n};\n\nconst CheckboxButton = <T,>({\n item,\n selected,\n disabled,\n isInvalid,\n onToggle,\n slotStyles,\n}: CheckboxButtonProps<T>) => {\n const { resolveToken } = useKitsTheme();\n const primaryColor = resolveToken('primary');\n const borderColor = resolveToken('gray.300');\n\n /* Per-item style (slotStyles + item.style*), token-resolved.\n slotStyles is pre-merged at KitsCheckbox level\n (FormElement < Checkbox.item < per-instance slots.item). */\n const resolvedItemStyle = useMemo(() => {\n const merged: Record<string, any> = {\n ...(slotStyles?.item || {}),\n ...(selected ? slotStyles?.itemSelected : null),\n ...(disabled ? slotStyles?.itemDisabled : null),\n ...(isInvalid ? slotStyles?.itemInvalid : null),\n ...(item.w != null && !(item.style && (item.style as any).w != null) && !(item.style && (item.style as any).width != null)\n ? { width: item.w }\n : null),\n ...(item.style || {}),\n ...(selected ? item.styleSelected : null),\n ...(disabled ? item.styleDisabled : null),\n ...(isInvalid ? item.styleInvalid : null),\n };\n return resolveStyleRecord(merged, resolveToken);\n }, [slotStyles, selected, disabled, isInvalid, item.style, item.styleSelected, item.styleDisabled, item.styleInvalid, item.w, resolveToken]);\n\n // Route text props to inner Text, layout props to outer wrapper.\n // No size default — `style.flex` / `style.width` flow through directly.\n const { wrapper: wrapperStyle, text: textStyle } = useMemo(\n () => splitTextStyle(resolvedItemStyle),\n [resolvedItemStyle],\n );\n\n const sizes: Record<string, number> = {\n xs: 13, sm: 17, md: 22, lg: 27, xl: 30,\n };\n\n const paddings: Record<string, [number, number]> = {\n xs: [1, 3], sm: [2, 5], md: [3, 7], lg: [4, 9], xl: [5, 13],\n };\n\n const size = item.size ? sizes[item.size] : sizes.xs;\n const padding = item.size ? paddings[item.size] : paddings.xs;\n\n /* ---- Label positioning (mirrors web) ---- */\n const leftLabel = item.labelPosition === \"left\";\n const bottomLabel = item.labelPosition === \"bottom\";\n const topLabel = item.labelPosition === \"top\";\n\n const direction =\n leftLabel ? \"row-reverse\" :\n bottomLabel ? \"column\" :\n topLabel ? \"column-reverse\" :\n \"row\";\n\n /* ---- Button mode style (mirrors web checked-option) ---- */\n const containerStyle = useMemo(() => ({\n opacity: disabled ? 40 : 100,\n borderWidth: item.component ? 0 : 1,\n borderRadius: item.component ? 0 : 8,\n borderColor: selected ? primaryColor : borderColor,\n backgroundColor: selected ? primaryColor : 'transparent',\n paddingHorizontal: item.component ? 0 : padding?.[1],\n paddingVertical: item.component ? 0 : padding?.[0],\n }), [disabled, selected, item.component, padding]);\n\n /* ---- Content: custom component or label text ---- */\n const renderContent = () => {\n if (item.component) {\n return typeof item.component === \"function\"\n ? item.component({ selected, value: item.value, isInvalid: !!isInvalid })\n : item.component;\n }\n // Default selected-button color (white on primary fill) kept,\n // but user-supplied text props override it via spread style.\n const defaultColor = selected && !item.withBulbs ? '#fff' : undefined;\n return (\n <Text\n fontSize={size}\n fontColor={defaultColor}\n m={0}\n style={textStyle}\n >\n {item.label}\n </Text>\n );\n };\n\n /* ---- Bulb: custom checkbox indicator + content (mirrors web PrimeCheckbox + renderContent) ---- */\n const renderBulb = () => (\n <Pressable\n onPress={() => { if (!disabled) onToggle(); }}\n disabled={disabled}\n >\n <Flex alignItems=\"center\" gap={6} flexDirection={direction}>\n <CoreCheckboxIndicator\n checked={selected}\n disabled={disabled}\n invalid={isInvalid}\n checkedBackgroundColor={primaryColor}\n checkedBorderColor={primaryColor}\n size={indicatorSize(item.size)}\n />\n {renderContent()}\n </Flex>\n </Pressable>\n );\n\n /* ---- Component: custom component + label (mirrors web renderComponent) ---- */\n const renderComponent = () => (\n <Pressable\n onPress={() => { if (!disabled) onToggle(); }}\n disabled={disabled}\n >\n <Flex flexDirection={direction} alignItems=\"center\" gap={4}>\n {renderContent()}\n {!!item.label && <Text>{item.label}</Text>}\n </Flex>\n </Pressable>\n );\n\n\n // BUTTON mode: collapse to a single layer — Pressable IS the styled\n // pill. wrapperStyle wins over containerStyle (later in RN array).\n if (!item.withBulbs && !item.component) {\n return (\n <Pressable\n onPress={() => { if (!disabled) onToggle(); }}\n disabled={disabled}\n style={[containerStyle, wrapperStyle]}\n >\n {renderContent()}\n </Pressable>\n );\n }\n\n // BULB / COMPONENT modes keep the nested structure.\n return (\n <Flex\n pointerEvents={disabled ? \"none\" : \"auto\"}\n style={wrapperStyle}\n alignItems=\"flex-start\"\n >\n {item.withBulbs ? renderBulb() : renderComponent()}\n </Flex>\n );\n};\n\nexport default CheckboxButton;\n"],"names":["CoreCheckboxIndicator"],"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
|
require('i18next');
|
|
66
68
|
require('react-i18next');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"radiobutton.cjs","sources":["../../../../../src/form/controls/RadioButton/radiobutton.native.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport type { IRadioCheckboxListItem } from \"@lmb-it/kitsconcerto-types\";\nimport { Flex, Text } from \"../../../_compat\";\nimport { Pressable as RNPressable } from \"react-native\";\nimport { CoreRadioIndicator } from \"@lmb-it/kitsconcertomobile\";\nimport { useKitsTheme } from \"../../../contexts/Theme\";\nimport { resolveStyleRecord, splitTextStyle } from \"../../../hooks/useResolvedStyle\";\n\ninterface IRadioButtonProps<T> {\n item: IRadioCheckboxListItem<T>;\n selected: boolean;\n disabled?: boolean;\n isInvalid?: boolean;\n onToggle: () => void;\n /**\n * Pre-merged slot styles from KitsRadio (theme `Radio.item*` +\n * per-instance `slots.item*`). Unresolved IStyleClasses.\n */\n slotStyles?: {\n item?: Record<string, any>;\n itemSelected?: Record<string, any>;\n itemDisabled?: Record<string, any>;\n itemInvalid?: Record<string, any>;\n };\n}\n\nconst indicatorSize = (s?: string): 'sm' | 'md' | 'lg' => {\n switch (s) {\n case 'xs': case 'sm': return 'sm';\n case 'lg': case 'xl': return 'lg';\n default: return 'md';\n }\n};\n\nconst RadioButton = <T,>({\n item,\n selected,\n disabled,\n isInvalid,\n onToggle,\n slotStyles,\n}: IRadioButtonProps<T>) => {\n const { resolveToken } = useKitsTheme();\n const primaryColor = resolveToken('primary');\n const borderColor = resolveToken('gray.300');\n\n const sizes: Record<string, number> = {\n xs: 10, sm: 15, md: 18, lg: 20, xl: 20,\n };\n\n const paddings: Record<string, [number, number]> = {\n xs: [2, 5], sm: [2, 5], md: [3, 9], lg: [4, 9], xl: [13, 13],\n };\n\n const size = item.size ? sizes[item.size] : sizes.md;\n const padding = item.size ? paddings[item.size] : paddings.md;\n\n /* ---- Per-item style (slotStyles + item.style*), token-resolved.\n slotStyles is pre-merged at KitsRadio level\n (FormElement < Radio.item < per-instance slots.item). */\n const resolvedItemStyle = useMemo(() => {\n const merged: Record<string, any> = {\n ...(slotStyles?.item || {}),\n ...(selected ? slotStyles?.itemSelected : null),\n ...(disabled ? slotStyles?.itemDisabled : null),\n ...(isInvalid ? slotStyles?.itemInvalid : null),\n ...(item.w != null && !(item.style && (item.style as any).w != null) && !(item.style && (item.style as any).width != null)\n ? { width: item.w }\n : null),\n ...(item.style || {}),\n ...(selected ? item.styleSelected : null),\n ...(disabled ? item.styleDisabled : null),\n ...(isInvalid ? item.styleInvalid : null),\n };\n return resolveStyleRecord(merged, resolveToken);\n }, [slotStyles, selected, disabled, isInvalid, item.style, item.styleSelected, item.styleDisabled, item.styleInvalid, item.w, resolveToken]);\n\n // Route text props to inner Text, layout props to outer wrapper.\n // No size default — `style.flex` / `style.width` flow through directly.\n const { wrapper: wrapperStyle, text: textStyle } = useMemo(\n () => splitTextStyle(resolvedItemStyle),\n [resolvedItemStyle],\n );\n\n /* ---- Label positioning (mirrors web) ---- */\n const leftLabel = item.labelPosition === \"left\";\n const bottomLabel = item.labelPosition === \"bottom\";\n const topLabel = item.labelPosition === \"top\";\n\n const direction =\n leftLabel ? \"row-reverse\" :\n bottomLabel ? \"column\" :\n topLabel ? \"column-reverse\" :\n \"row\";\n\n /* ---- Button mode style (mirrors web checked-option) ---- */\n const containerStyle = useMemo(() => ({\n opacity: disabled ? 40 : 100,\n borderWidth: item.component ? 0 : 1,\n borderRadius: item.component ? 0 : 8,\n borderColor: selected ? primaryColor : borderColor,\n backgroundColor: selected ? primaryColor : 'transparent',\n paddingHorizontal: item.component ? 0 : padding?.[1],\n paddingVertical: item.component ? 0 : padding?.[0],\n }), [disabled, selected, item.component, padding]);\n\n /* ---- Content: custom component or label text ---- */\n const renderContent = () => {\n if (item.component) {\n return typeof item.component === \"function\"\n ? item.component({ selected, value: item.value, isInvalid: !!isInvalid })\n : item.component;\n }\n // Default selected-button color (white on primary fill) is kept,\n // but user-supplied text props (e.g. style.color) override it.\n const defaultColor = selected && !item.withBulbs ? '#fff' : undefined;\n return (\n <Text\n fontSize={size}\n fontColor={defaultColor}\n m={0}\n style={textStyle}\n >\n {item.label}\n </Text>\n );\n };\n\n /* ---- Bulb: custom radio indicator + content (mirrors web PrimeRadioButton + renderContent) ---- */\n const renderBulb = () => (\n <RNPressable\n onPress={() => { if (!disabled) onToggle(); }}\n disabled={disabled}\n >\n <Flex alignItems=\"center\" gap={6} flexDirection={direction}>\n <CoreRadioIndicator\n checked={selected}\n disabled={disabled}\n invalid={isInvalid}\n checkedBorderColor={primaryColor}\n dotColor={primaryColor}\n size={indicatorSize(item.size)}\n />\n {renderContent()}\n </Flex>\n </RNPressable>\n );\n\n /* ---- Component: custom component + label (mirrors web renderComponent) ---- */\n const renderComponent = () => (\n <RNPressable\n onPress={() => { if (!disabled) onToggle(); }}\n disabled={disabled}\n >\n <Flex flexDirection={direction} alignItems=\"center\" gap={4}>\n {renderContent()}\n {!!item.label && <Text>{item.label}</Text>}\n </Flex>\n </RNPressable>\n );\n\n // BUTTON mode: collapse to a single layer — Pressable IS the styled\n // pill. User wrapperStyle applies to the same element that carries\n // the default selection colors (containerStyle). wrapperStyle wins\n // because RN style arrays apply later entries on top.\n if (!item.withBulbs && !item.component) {\n return (\n <RNPressable\n onPress={() => { if (!disabled) onToggle(); }}\n disabled={disabled}\n style={[containerStyle, wrapperStyle]}\n >\n {renderContent()}\n </RNPressable>\n );\n }\n\n // BULB / COMPONENT modes keep the nested Flex for bulb + content\n // layout. Outer wrapper carries user style; Pressable inside takes\n // the click without re-wrapping width.\n return (\n <Flex\n pointerEvents={disabled ? \"none\" : \"auto\"}\n style={wrapperStyle}\n alignItems=\"flex-start\"\n >\n {item.withBulbs ? renderBulb() : renderComponent()}\n </Flex>\n );\n};\n\nexport default RadioButton;\n"],"names":["useKitsTheme","useMemo","resolveStyleRecord","splitTextStyle","jsx","Text","RNPressable","Flex","CoreRadioIndicator"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"radiobutton.cjs","sources":["../../../../../src/form/controls/RadioButton/radiobutton.native.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport type { IRadioCheckboxListItem } from \"@lmb-it/kitsconcerto-types\";\nimport { Flex, Text } from \"../../../_compat\";\nimport { Pressable as RNPressable } from \"react-native\";\nimport { CoreRadioIndicator } from \"@lmb-it/kitsconcertomobile\";\nimport { useKitsTheme } from \"../../../contexts/Theme\";\nimport { resolveStyleRecord, splitTextStyle } from \"../../../hooks/useResolvedStyle\";\n\ninterface IRadioButtonProps<T> {\n item: IRadioCheckboxListItem<T>;\n selected: boolean;\n disabled?: boolean;\n isInvalid?: boolean;\n onToggle: () => void;\n /**\n * Pre-merged slot styles from KitsRadio (theme `Radio.item*` +\n * per-instance `slots.item*`). Unresolved IStyleClasses.\n */\n slotStyles?: {\n item?: Record<string, any>;\n itemSelected?: Record<string, any>;\n itemDisabled?: Record<string, any>;\n itemInvalid?: Record<string, any>;\n };\n}\n\nconst indicatorSize = (s?: string): 'sm' | 'md' | 'lg' => {\n switch (s) {\n case 'xs': case 'sm': return 'sm';\n case 'lg': case 'xl': return 'lg';\n default: return 'md';\n }\n};\n\nconst RadioButton = <T,>({\n item,\n selected,\n disabled,\n isInvalid,\n onToggle,\n slotStyles,\n}: IRadioButtonProps<T>) => {\n const { resolveToken } = useKitsTheme();\n const primaryColor = resolveToken('primary');\n const borderColor = resolveToken('gray.300');\n\n const sizes: Record<string, number> = {\n xs: 10, sm: 15, md: 18, lg: 20, xl: 20,\n };\n\n const paddings: Record<string, [number, number]> = {\n xs: [2, 5], sm: [2, 5], md: [3, 9], lg: [4, 9], xl: [13, 13],\n };\n\n const size = item.size ? sizes[item.size] : sizes.md;\n const padding = item.size ? paddings[item.size] : paddings.md;\n\n /* ---- Per-item style (slotStyles + item.style*), token-resolved.\n slotStyles is pre-merged at KitsRadio level\n (FormElement < Radio.item < per-instance slots.item). */\n const resolvedItemStyle = useMemo(() => {\n const merged: Record<string, any> = {\n ...(slotStyles?.item || {}),\n ...(selected ? slotStyles?.itemSelected : null),\n ...(disabled ? slotStyles?.itemDisabled : null),\n ...(isInvalid ? slotStyles?.itemInvalid : null),\n ...(item.w != null && !(item.style && (item.style as any).w != null) && !(item.style && (item.style as any).width != null)\n ? { width: item.w }\n : null),\n ...(item.style || {}),\n ...(selected ? item.styleSelected : null),\n ...(disabled ? item.styleDisabled : null),\n ...(isInvalid ? item.styleInvalid : null),\n };\n return resolveStyleRecord(merged, resolveToken);\n }, [slotStyles, selected, disabled, isInvalid, item.style, item.styleSelected, item.styleDisabled, item.styleInvalid, item.w, resolveToken]);\n\n // Route text props to inner Text, layout props to outer wrapper.\n // No size default — `style.flex` / `style.width` flow through directly.\n const { wrapper: wrapperStyle, text: textStyle } = useMemo(\n () => splitTextStyle(resolvedItemStyle),\n [resolvedItemStyle],\n );\n\n /* ---- Label positioning (mirrors web) ---- */\n const leftLabel = item.labelPosition === \"left\";\n const bottomLabel = item.labelPosition === \"bottom\";\n const topLabel = item.labelPosition === \"top\";\n\n const direction =\n leftLabel ? \"row-reverse\" :\n bottomLabel ? \"column\" :\n topLabel ? \"column-reverse\" :\n \"row\";\n\n /* ---- Button mode style (mirrors web checked-option) ---- */\n const containerStyle = useMemo(() => ({\n opacity: disabled ? 40 : 100,\n borderWidth: item.component ? 0 : 1,\n borderRadius: item.component ? 0 : 8,\n borderColor: selected ? primaryColor : borderColor,\n backgroundColor: selected ? primaryColor : 'transparent',\n paddingHorizontal: item.component ? 0 : padding?.[1],\n paddingVertical: item.component ? 0 : padding?.[0],\n }), [disabled, selected, item.component, padding]);\n\n /* ---- Content: custom component or label text ---- */\n const renderContent = () => {\n if (item.component) {\n return typeof item.component === \"function\"\n ? item.component({ selected, value: item.value, isInvalid: !!isInvalid })\n : item.component;\n }\n // Default selected-button color (white on primary fill) is kept,\n // but user-supplied text props (e.g. style.color) override it.\n const defaultColor = selected && !item.withBulbs ? '#fff' : undefined;\n return (\n <Text\n fontSize={size}\n fontColor={defaultColor}\n m={0}\n style={textStyle}\n >\n {item.label}\n </Text>\n );\n };\n\n /* ---- Bulb: custom radio indicator + content (mirrors web PrimeRadioButton + renderContent) ---- */\n const renderBulb = () => (\n <RNPressable\n onPress={() => { if (!disabled) onToggle(); }}\n disabled={disabled}\n >\n <Flex alignItems=\"center\" gap={6} flexDirection={direction}>\n <CoreRadioIndicator\n checked={selected}\n disabled={disabled}\n invalid={isInvalid}\n checkedBorderColor={primaryColor}\n dotColor={primaryColor}\n size={indicatorSize(item.size)}\n />\n {renderContent()}\n </Flex>\n </RNPressable>\n );\n\n /* ---- Component: custom component + label (mirrors web renderComponent) ---- */\n const renderComponent = () => (\n <RNPressable\n onPress={() => { if (!disabled) onToggle(); }}\n disabled={disabled}\n >\n <Flex flexDirection={direction} alignItems=\"center\" gap={4}>\n {renderContent()}\n {!!item.label && <Text>{item.label}</Text>}\n </Flex>\n </RNPressable>\n );\n\n // BUTTON mode: collapse to a single layer — Pressable IS the styled\n // pill. User wrapperStyle applies to the same element that carries\n // the default selection colors (containerStyle). wrapperStyle wins\n // because RN style arrays apply later entries on top.\n if (!item.withBulbs && !item.component) {\n return (\n <RNPressable\n onPress={() => { if (!disabled) onToggle(); }}\n disabled={disabled}\n style={[containerStyle, wrapperStyle]}\n >\n {renderContent()}\n </RNPressable>\n );\n }\n\n // BULB / COMPONENT modes keep the nested Flex for bulb + content\n // layout. Outer wrapper carries user style; Pressable inside takes\n // the click without re-wrapping width.\n return (\n <Flex\n pointerEvents={disabled ? \"none\" : \"auto\"}\n style={wrapperStyle}\n alignItems=\"flex-start\"\n >\n {item.withBulbs ? renderBulb() : renderComponent()}\n </Flex>\n );\n};\n\nexport default RadioButton;\n"],"names":["useKitsTheme","useMemo","resolveStyleRecord","splitTextStyle","jsx","Text","RNPressable","Flex","CoreRadioIndicator"],"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 'i18next';
|
|
62
64
|
import 'react-i18next';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"radiobutton.js","sources":["../../../../../src/form/controls/RadioButton/radiobutton.native.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport type { IRadioCheckboxListItem } from \"@lmb-it/kitsconcerto-types\";\nimport { Flex, Text } from \"../../../_compat\";\nimport { Pressable as RNPressable } from \"react-native\";\nimport { CoreRadioIndicator } from \"@lmb-it/kitsconcertomobile\";\nimport { useKitsTheme } from \"../../../contexts/Theme\";\nimport { resolveStyleRecord, splitTextStyle } from \"../../../hooks/useResolvedStyle\";\n\ninterface IRadioButtonProps<T> {\n item: IRadioCheckboxListItem<T>;\n selected: boolean;\n disabled?: boolean;\n isInvalid?: boolean;\n onToggle: () => void;\n /**\n * Pre-merged slot styles from KitsRadio (theme `Radio.item*` +\n * per-instance `slots.item*`). Unresolved IStyleClasses.\n */\n slotStyles?: {\n item?: Record<string, any>;\n itemSelected?: Record<string, any>;\n itemDisabled?: Record<string, any>;\n itemInvalid?: Record<string, any>;\n };\n}\n\nconst indicatorSize = (s?: string): 'sm' | 'md' | 'lg' => {\n switch (s) {\n case 'xs': case 'sm': return 'sm';\n case 'lg': case 'xl': return 'lg';\n default: return 'md';\n }\n};\n\nconst RadioButton = <T,>({\n item,\n selected,\n disabled,\n isInvalid,\n onToggle,\n slotStyles,\n}: IRadioButtonProps<T>) => {\n const { resolveToken } = useKitsTheme();\n const primaryColor = resolveToken('primary');\n const borderColor = resolveToken('gray.300');\n\n const sizes: Record<string, number> = {\n xs: 10, sm: 15, md: 18, lg: 20, xl: 20,\n };\n\n const paddings: Record<string, [number, number]> = {\n xs: [2, 5], sm: [2, 5], md: [3, 9], lg: [4, 9], xl: [13, 13],\n };\n\n const size = item.size ? sizes[item.size] : sizes.md;\n const padding = item.size ? paddings[item.size] : paddings.md;\n\n /* ---- Per-item style (slotStyles + item.style*), token-resolved.\n slotStyles is pre-merged at KitsRadio level\n (FormElement < Radio.item < per-instance slots.item). */\n const resolvedItemStyle = useMemo(() => {\n const merged: Record<string, any> = {\n ...(slotStyles?.item || {}),\n ...(selected ? slotStyles?.itemSelected : null),\n ...(disabled ? slotStyles?.itemDisabled : null),\n ...(isInvalid ? slotStyles?.itemInvalid : null),\n ...(item.w != null && !(item.style && (item.style as any).w != null) && !(item.style && (item.style as any).width != null)\n ? { width: item.w }\n : null),\n ...(item.style || {}),\n ...(selected ? item.styleSelected : null),\n ...(disabled ? item.styleDisabled : null),\n ...(isInvalid ? item.styleInvalid : null),\n };\n return resolveStyleRecord(merged, resolveToken);\n }, [slotStyles, selected, disabled, isInvalid, item.style, item.styleSelected, item.styleDisabled, item.styleInvalid, item.w, resolveToken]);\n\n // Route text props to inner Text, layout props to outer wrapper.\n // No size default — `style.flex` / `style.width` flow through directly.\n const { wrapper: wrapperStyle, text: textStyle } = useMemo(\n () => splitTextStyle(resolvedItemStyle),\n [resolvedItemStyle],\n );\n\n /* ---- Label positioning (mirrors web) ---- */\n const leftLabel = item.labelPosition === \"left\";\n const bottomLabel = item.labelPosition === \"bottom\";\n const topLabel = item.labelPosition === \"top\";\n\n const direction =\n leftLabel ? \"row-reverse\" :\n bottomLabel ? \"column\" :\n topLabel ? \"column-reverse\" :\n \"row\";\n\n /* ---- Button mode style (mirrors web checked-option) ---- */\n const containerStyle = useMemo(() => ({\n opacity: disabled ? 40 : 100,\n borderWidth: item.component ? 0 : 1,\n borderRadius: item.component ? 0 : 8,\n borderColor: selected ? primaryColor : borderColor,\n backgroundColor: selected ? primaryColor : 'transparent',\n paddingHorizontal: item.component ? 0 : padding?.[1],\n paddingVertical: item.component ? 0 : padding?.[0],\n }), [disabled, selected, item.component, padding]);\n\n /* ---- Content: custom component or label text ---- */\n const renderContent = () => {\n if (item.component) {\n return typeof item.component === \"function\"\n ? item.component({ selected, value: item.value, isInvalid: !!isInvalid })\n : item.component;\n }\n // Default selected-button color (white on primary fill) is kept,\n // but user-supplied text props (e.g. style.color) override it.\n const defaultColor = selected && !item.withBulbs ? '#fff' : undefined;\n return (\n <Text\n fontSize={size}\n fontColor={defaultColor}\n m={0}\n style={textStyle}\n >\n {item.label}\n </Text>\n );\n };\n\n /* ---- Bulb: custom radio indicator + content (mirrors web PrimeRadioButton + renderContent) ---- */\n const renderBulb = () => (\n <RNPressable\n onPress={() => { if (!disabled) onToggle(); }}\n disabled={disabled}\n >\n <Flex alignItems=\"center\" gap={6} flexDirection={direction}>\n <CoreRadioIndicator\n checked={selected}\n disabled={disabled}\n invalid={isInvalid}\n checkedBorderColor={primaryColor}\n dotColor={primaryColor}\n size={indicatorSize(item.size)}\n />\n {renderContent()}\n </Flex>\n </RNPressable>\n );\n\n /* ---- Component: custom component + label (mirrors web renderComponent) ---- */\n const renderComponent = () => (\n <RNPressable\n onPress={() => { if (!disabled) onToggle(); }}\n disabled={disabled}\n >\n <Flex flexDirection={direction} alignItems=\"center\" gap={4}>\n {renderContent()}\n {!!item.label && <Text>{item.label}</Text>}\n </Flex>\n </RNPressable>\n );\n\n // BUTTON mode: collapse to a single layer — Pressable IS the styled\n // pill. User wrapperStyle applies to the same element that carries\n // the default selection colors (containerStyle). wrapperStyle wins\n // because RN style arrays apply later entries on top.\n if (!item.withBulbs && !item.component) {\n return (\n <RNPressable\n onPress={() => { if (!disabled) onToggle(); }}\n disabled={disabled}\n style={[containerStyle, wrapperStyle]}\n >\n {renderContent()}\n </RNPressable>\n );\n }\n\n // BULB / COMPONENT modes keep the nested Flex for bulb + content\n // layout. Outer wrapper carries user style; Pressable inside takes\n // the click without re-wrapping width.\n return (\n <Flex\n pointerEvents={disabled ? \"none\" : \"auto\"}\n style={wrapperStyle}\n alignItems=\"flex-start\"\n >\n {item.withBulbs ? renderBulb() : renderComponent()}\n </Flex>\n );\n};\n\nexport default RadioButton;\n"],"names":["RNPressable","CoreRadioIndicator"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"radiobutton.js","sources":["../../../../../src/form/controls/RadioButton/radiobutton.native.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport type { IRadioCheckboxListItem } from \"@lmb-it/kitsconcerto-types\";\nimport { Flex, Text } from \"../../../_compat\";\nimport { Pressable as RNPressable } from \"react-native\";\nimport { CoreRadioIndicator } from \"@lmb-it/kitsconcertomobile\";\nimport { useKitsTheme } from \"../../../contexts/Theme\";\nimport { resolveStyleRecord, splitTextStyle } from \"../../../hooks/useResolvedStyle\";\n\ninterface IRadioButtonProps<T> {\n item: IRadioCheckboxListItem<T>;\n selected: boolean;\n disabled?: boolean;\n isInvalid?: boolean;\n onToggle: () => void;\n /**\n * Pre-merged slot styles from KitsRadio (theme `Radio.item*` +\n * per-instance `slots.item*`). Unresolved IStyleClasses.\n */\n slotStyles?: {\n item?: Record<string, any>;\n itemSelected?: Record<string, any>;\n itemDisabled?: Record<string, any>;\n itemInvalid?: Record<string, any>;\n };\n}\n\nconst indicatorSize = (s?: string): 'sm' | 'md' | 'lg' => {\n switch (s) {\n case 'xs': case 'sm': return 'sm';\n case 'lg': case 'xl': return 'lg';\n default: return 'md';\n }\n};\n\nconst RadioButton = <T,>({\n item,\n selected,\n disabled,\n isInvalid,\n onToggle,\n slotStyles,\n}: IRadioButtonProps<T>) => {\n const { resolveToken } = useKitsTheme();\n const primaryColor = resolveToken('primary');\n const borderColor = resolveToken('gray.300');\n\n const sizes: Record<string, number> = {\n xs: 10, sm: 15, md: 18, lg: 20, xl: 20,\n };\n\n const paddings: Record<string, [number, number]> = {\n xs: [2, 5], sm: [2, 5], md: [3, 9], lg: [4, 9], xl: [13, 13],\n };\n\n const size = item.size ? sizes[item.size] : sizes.md;\n const padding = item.size ? paddings[item.size] : paddings.md;\n\n /* ---- Per-item style (slotStyles + item.style*), token-resolved.\n slotStyles is pre-merged at KitsRadio level\n (FormElement < Radio.item < per-instance slots.item). */\n const resolvedItemStyle = useMemo(() => {\n const merged: Record<string, any> = {\n ...(slotStyles?.item || {}),\n ...(selected ? slotStyles?.itemSelected : null),\n ...(disabled ? slotStyles?.itemDisabled : null),\n ...(isInvalid ? slotStyles?.itemInvalid : null),\n ...(item.w != null && !(item.style && (item.style as any).w != null) && !(item.style && (item.style as any).width != null)\n ? { width: item.w }\n : null),\n ...(item.style || {}),\n ...(selected ? item.styleSelected : null),\n ...(disabled ? item.styleDisabled : null),\n ...(isInvalid ? item.styleInvalid : null),\n };\n return resolveStyleRecord(merged, resolveToken);\n }, [slotStyles, selected, disabled, isInvalid, item.style, item.styleSelected, item.styleDisabled, item.styleInvalid, item.w, resolveToken]);\n\n // Route text props to inner Text, layout props to outer wrapper.\n // No size default — `style.flex` / `style.width` flow through directly.\n const { wrapper: wrapperStyle, text: textStyle } = useMemo(\n () => splitTextStyle(resolvedItemStyle),\n [resolvedItemStyle],\n );\n\n /* ---- Label positioning (mirrors web) ---- */\n const leftLabel = item.labelPosition === \"left\";\n const bottomLabel = item.labelPosition === \"bottom\";\n const topLabel = item.labelPosition === \"top\";\n\n const direction =\n leftLabel ? \"row-reverse\" :\n bottomLabel ? \"column\" :\n topLabel ? \"column-reverse\" :\n \"row\";\n\n /* ---- Button mode style (mirrors web checked-option) ---- */\n const containerStyle = useMemo(() => ({\n opacity: disabled ? 40 : 100,\n borderWidth: item.component ? 0 : 1,\n borderRadius: item.component ? 0 : 8,\n borderColor: selected ? primaryColor : borderColor,\n backgroundColor: selected ? primaryColor : 'transparent',\n paddingHorizontal: item.component ? 0 : padding?.[1],\n paddingVertical: item.component ? 0 : padding?.[0],\n }), [disabled, selected, item.component, padding]);\n\n /* ---- Content: custom component or label text ---- */\n const renderContent = () => {\n if (item.component) {\n return typeof item.component === \"function\"\n ? item.component({ selected, value: item.value, isInvalid: !!isInvalid })\n : item.component;\n }\n // Default selected-button color (white on primary fill) is kept,\n // but user-supplied text props (e.g. style.color) override it.\n const defaultColor = selected && !item.withBulbs ? '#fff' : undefined;\n return (\n <Text\n fontSize={size}\n fontColor={defaultColor}\n m={0}\n style={textStyle}\n >\n {item.label}\n </Text>\n );\n };\n\n /* ---- Bulb: custom radio indicator + content (mirrors web PrimeRadioButton + renderContent) ---- */\n const renderBulb = () => (\n <RNPressable\n onPress={() => { if (!disabled) onToggle(); }}\n disabled={disabled}\n >\n <Flex alignItems=\"center\" gap={6} flexDirection={direction}>\n <CoreRadioIndicator\n checked={selected}\n disabled={disabled}\n invalid={isInvalid}\n checkedBorderColor={primaryColor}\n dotColor={primaryColor}\n size={indicatorSize(item.size)}\n />\n {renderContent()}\n </Flex>\n </RNPressable>\n );\n\n /* ---- Component: custom component + label (mirrors web renderComponent) ---- */\n const renderComponent = () => (\n <RNPressable\n onPress={() => { if (!disabled) onToggle(); }}\n disabled={disabled}\n >\n <Flex flexDirection={direction} alignItems=\"center\" gap={4}>\n {renderContent()}\n {!!item.label && <Text>{item.label}</Text>}\n </Flex>\n </RNPressable>\n );\n\n // BUTTON mode: collapse to a single layer — Pressable IS the styled\n // pill. User wrapperStyle applies to the same element that carries\n // the default selection colors (containerStyle). wrapperStyle wins\n // because RN style arrays apply later entries on top.\n if (!item.withBulbs && !item.component) {\n return (\n <RNPressable\n onPress={() => { if (!disabled) onToggle(); }}\n disabled={disabled}\n style={[containerStyle, wrapperStyle]}\n >\n {renderContent()}\n </RNPressable>\n );\n }\n\n // BULB / COMPONENT modes keep the nested Flex for bulb + content\n // layout. Outer wrapper carries user style; Pressable inside takes\n // the click without re-wrapping width.\n return (\n <Flex\n pointerEvents={disabled ? \"none\" : \"auto\"}\n style={wrapperStyle}\n alignItems=\"flex-start\"\n >\n {item.withBulbs ? renderBulb() : renderComponent()}\n </Flex>\n );\n};\n\nexport default RadioButton;\n"],"names":["RNPressable","CoreRadioIndicator"],"mappings":"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"}
|
|
@@ -59,6 +59,8 @@ require('yup');
|
|
|
59
59
|
require('../../../packages/types/src/Css/map/index.cjs');
|
|
60
60
|
require('../../../packages/types/src/Theme/shadows.cjs');
|
|
61
61
|
require('../../../packages/types/src/Theme/defaultTheme.cjs');
|
|
62
|
+
require('../../../packages/types/src/Theme/alphaColors.cjs');
|
|
63
|
+
require('../../../apps/mobile/src/Factory/helpers/cssVarMap.cjs');
|
|
62
64
|
require('../../../apps/mobile/src/Factory/DimensionsContext.cjs');
|
|
63
65
|
require('i18next');
|
|
64
66
|
require('react-i18next');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../../../../../src/form/controls/SelectButton/index.native.tsx"],"sourcesContent":["import {SelectButton as SelectButtonMobile, type SelectButtonProps} from \"@lmb-it/kitsconcertomobile\";\n\nexport const SelectButton = (props:SelectButtonProps)=>{\n return <SelectButtonMobile {...props} />\n}\n"],"names":["jsx","SelectButtonMobile"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../../../src/form/controls/SelectButton/index.native.tsx"],"sourcesContent":["import {SelectButton as SelectButtonMobile, type SelectButtonProps} from \"@lmb-it/kitsconcertomobile\";\n\nexport const SelectButton = (props:SelectButtonProps)=>{\n return <SelectButtonMobile {...props} />\n}\n"],"names":["jsx","SelectButtonMobile"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEO,MAAM,YAAA,GAAe,CAAC,KAAA,KAA0B;AACnD,EAAA,uBAAOA,cAAA,CAACC,kBAAA,EAAA,EAAoB,GAAG,KAAA,EAAO,CAAA;AAC1C;;;;"}
|
|
@@ -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 'i18next';
|
|
62
64
|
import 'react-i18next';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../src/form/controls/SelectButton/index.native.tsx"],"sourcesContent":["import {SelectButton as SelectButtonMobile, type SelectButtonProps} from \"@lmb-it/kitsconcertomobile\";\n\nexport const SelectButton = (props:SelectButtonProps)=>{\n return <SelectButtonMobile {...props} />\n}\n"],"names":["SelectButtonMobile"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/form/controls/SelectButton/index.native.tsx"],"sourcesContent":["import {SelectButton as SelectButtonMobile, type SelectButtonProps} from \"@lmb-it/kitsconcertomobile\";\n\nexport const SelectButton = (props:SelectButtonProps)=>{\n return <SelectButtonMobile {...props} />\n}\n"],"names":["SelectButtonMobile"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEO,MAAM,YAAA,GAAe,CAAC,KAAA,KAA0B;AACnD,EAAA,uBAAO,GAAA,CAACA,cAAA,EAAA,EAAoB,GAAG,KAAA,EAAO,CAAA;AAC1C;;;;"}
|
|
@@ -59,6 +59,8 @@ require('yup');
|
|
|
59
59
|
require('../../../packages/types/src/Css/map/index.cjs');
|
|
60
60
|
require('../../../packages/types/src/Theme/shadows.cjs');
|
|
61
61
|
require('../../../packages/types/src/Theme/defaultTheme.cjs');
|
|
62
|
+
require('../../../packages/types/src/Theme/alphaColors.cjs');
|
|
63
|
+
require('../../../apps/mobile/src/Factory/helpers/cssVarMap.cjs');
|
|
62
64
|
require('../../../apps/mobile/src/Factory/DimensionsContext.cjs');
|
|
63
65
|
require('i18next');
|
|
64
66
|
require('react-i18next');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../../../../../src/form/controls/TriStateCheckbox/index.native.tsx"],"sourcesContent":["import {TriStateCheckbox as TriStateCheckboxMobile, type TriStateCheckboxProps} from \"@lmb-it/kitsconcertomobile\";\nimport {useSelectionController} from \"../../../hooks\";\n\nexport const TriStateCheckbox = (props:TriStateCheckboxProps)=>{\n const { value, onChange } = useSelectionController({\n mode: 'tristate',\n defaultValue: false // Start at false\n });\n\n return <TriStateCheckboxMobile value={value} onChange={()=>onChange()} {...props} />\n}\n"],"names":["useSelectionController","jsx","TriStateCheckboxMobile"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../../../src/form/controls/TriStateCheckbox/index.native.tsx"],"sourcesContent":["import {TriStateCheckbox as TriStateCheckboxMobile, type TriStateCheckboxProps} from \"@lmb-it/kitsconcertomobile\";\nimport {useSelectionController} from \"../../../hooks\";\n\nexport const TriStateCheckbox = (props:TriStateCheckboxProps)=>{\n const { value, onChange } = useSelectionController({\n mode: 'tristate',\n defaultValue: false // Start at false\n });\n\n return <TriStateCheckboxMobile value={value} onChange={()=>onChange()} {...props} />\n}\n"],"names":["useSelectionController","jsx","TriStateCheckboxMobile"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGO,MAAM,gBAAA,GAAmB,CAAC,KAAA,KAA8B;AAC3D,EAAA,MAAM,EAAE,KAAA,EAAO,QAAA,EAAS,GAAIA,8BAAA,CAAuB;AAAA,IAC/C,IAAA,EAAM,UAAA;AAAA,IACN,YAAA,EAAc;AAAA;AAAA,GACjB,CAAA;AAED,EAAA,uBAAOC,cAAA,CAACC,0BAAuB,KAAA,EAAc,QAAA,EAAU,MAAI,QAAA,EAAS,EAAI,GAAG,KAAA,EAAO,CAAA;AACtF;;;;"}
|
|
@@ -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 'i18next';
|
|
62
64
|
import 'react-i18next';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../src/form/controls/TriStateCheckbox/index.native.tsx"],"sourcesContent":["import {TriStateCheckbox as TriStateCheckboxMobile, type TriStateCheckboxProps} from \"@lmb-it/kitsconcertomobile\";\nimport {useSelectionController} from \"../../../hooks\";\n\nexport const TriStateCheckbox = (props:TriStateCheckboxProps)=>{\n const { value, onChange } = useSelectionController({\n mode: 'tristate',\n defaultValue: false // Start at false\n });\n\n return <TriStateCheckboxMobile value={value} onChange={()=>onChange()} {...props} />\n}\n"],"names":["TriStateCheckboxMobile"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/form/controls/TriStateCheckbox/index.native.tsx"],"sourcesContent":["import {TriStateCheckbox as TriStateCheckboxMobile, type TriStateCheckboxProps} from \"@lmb-it/kitsconcertomobile\";\nimport {useSelectionController} from \"../../../hooks\";\n\nexport const TriStateCheckbox = (props:TriStateCheckboxProps)=>{\n const { value, onChange } = useSelectionController({\n mode: 'tristate',\n defaultValue: false // Start at false\n });\n\n return <TriStateCheckboxMobile value={value} onChange={()=>onChange()} {...props} />\n}\n"],"names":["TriStateCheckboxMobile"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGO,MAAM,gBAAA,GAAmB,CAAC,KAAA,KAA8B;AAC3D,EAAA,MAAM,EAAE,KAAA,EAAO,QAAA,EAAS,GAAI,sBAAA,CAAuB;AAAA,IAC/C,IAAA,EAAM,UAAA;AAAA,IACN,YAAA,EAAc;AAAA;AAAA,GACjB,CAAA;AAED,EAAA,uBAAO,GAAA,CAACA,sBAAuB,KAAA,EAAc,QAAA,EAAU,MAAI,QAAA,EAAS,EAAI,GAAG,KAAA,EAAO,CAAA;AACtF;;;;"}
|
|
@@ -15,6 +15,7 @@ require('yup');
|
|
|
15
15
|
require('../../../packages/types/src/Css/map/index.cjs');
|
|
16
16
|
require('../../../packages/types/src/Theme/shadows.cjs');
|
|
17
17
|
require('../../../packages/types/src/Theme/defaultTheme.cjs');
|
|
18
|
+
require('../../../packages/types/src/Theme/alphaColors.cjs');
|
|
18
19
|
var index_native$1 = require('../SingleFileUploader/index.cjs');
|
|
19
20
|
var index_native$2 = require('../MultipleFileUploader/index.cjs');
|
|
20
21
|
var index_native = require('../SingleImageUploader/index.cjs');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../../../../../src/form/file-pickers/MainUploader/index.native.tsx"],"sourcesContent":["import React, {\n createContext,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport DocumentPicker, { type DocumentPickerOptions } from \"react-native-document-picker\";\nimport { launchImageLibrary } from \"react-native-image-picker\";\nimport RNFS from \"react-native-fs\";\n\nimport {type IFileUploader, type File, type IMemes, toMemes} from \"@lmb-it/kitsconcerto-types\";\nimport { getType } from \"@lmb-it/kitsconcerto-types\";\nimport { Flex } from \"../../../_compat\";\n\nimport SingleFileUploader from \"../SingleFileUploader\";\nimport MultipleFileUploader from \"../MultipleFileUploader\";\nimport SingleImageUploader from \"../SingleImageUploader\";\nimport MultipleImageUploader from \"../MultipleImageUploader\";\nimport {AnyFile} from \"../../../utils\";\n\ntype Base64Item = { filename: string; base64: string; type: string };\n\ninterface IFileUploaderContextValues {\n onChangeAnyFileUploader(files: File[]): void;\n onPick(): void;\n removeFile(fileIndex: number): () => void;\n onInvalidInput(errors: any): void;\n\n selectedFiles: File[];\n selectedInitialFiles: string[];\n\n placeholder?: string;\n disabled?: boolean;\n isClassicUploader: boolean;\n limit: number;\n acceptedMemes: string[]; // mime list\n files: { name: string; ext: string; shortName: string; file: { uri: string } | string }[];\n id: string;\n isImage: boolean;\n}\n\nexport const FileUploaderContext = createContext<IFileUploaderContextValues>({\n onChangeAnyFileUploader: () => {\n },\n onPick: () => {},\n removeFile: () => () => {},\n onInvalidInput: () => {},\n disabled: false,\n limit: 1,\n isClassicUploader: true,\n selectedInitialFiles: [],\n selectedFiles: [],\n acceptedMemes: [],\n files: [],\n id: \"\",\n isImage: false,\n});\n\nconst stripExt = (name: string) => name.replace(/\\.[^/.]+$/, \"\");\nconst getExt = (name: string) => (name.split(\".\").pop() ?? \"\").toLowerCase();\n\nconst readFileAsBase64 = async (uri: string) => {\n // DocumentPicker returns fileCopyUri when copyTo is used; use that when possible\n // RNFS expects file paths without \"file://\"\n const path = uri.startsWith(\"file://\") ? uri.replace(\"file://\", \"\") : uri;\n return RNFS.readFile(path, \"base64\");\n};\n\nconst MainUploader = (props: IFileUploader) => {\n const {\n acceptedTypes,\n type,\n classicUploader = true,\n limit = 1,\n onError,\n onFocus,\n placeholder,\n defaultValue,\n multiple,\n isJsonOutput = true,\n onChange,\n value,\n name,\n disabled,\n maxFileSize,\n minFileSize,\n children,\n } = props;\n\n const initialValueSynced = useRef(false);\n\n const [selectedFiles, setSelectedFiles] = useState<File[]>([]);\n const [selectedInitialFiles, setSelectedInitialFiles] = useState<string[]>([]);\n const [selectedFilesAsBase64, setSelectedFilesAsBase64] = useState<Base64Item[]>([]);\n\n const isImage = type === \"Image\";\n const isOneFile = !multiple || limit < 2;\n\n const onInvalidInput = (err: any) => onError?.(err);\n\n const acceptedMemes = useMemo(() => {\n return acceptedTypes ? toMemes(acceptedTypes) : toMemes(['allFiles']);\n }, [acceptedTypes]);\n\n const validateSize = (sizeBytes?: number) => {\n if (!sizeBytes) return true;\n const sizeKB = sizeBytes / 1000;\n if (maxFileSize && sizeKB > maxFileSize) return false;\n return !(minFileSize && sizeKB < minFileSize);\n\n };\n\n const pickDocuments = async () => {\n try {\n const types:DocumentPickerOptions = {\n allowMultiSelection: !isOneFile,\n // copy to cache so we can read base64 reliably\n copyTo: \"cachesDirectory\",\n // DocumentPicker supports mime list; if empty let OS choose anything\n type: acceptedMemes.length ? acceptedMemes : [DocumentPicker.types.allFiles],\n }\n\n const res = await DocumentPicker.pick(types);\n\n const docs = (Array.isArray(res) ? res : [res]).map((d) => ({\n uri: (d.fileCopyUri || d.uri) as string,\n name: d.name || \"file\",\n type: d.type || undefined,\n size: d.size || undefined,\n }));\n\n const filtered = docs.filter((d) => {\n const ok = validateSize(d.size);\n if (!ok) {\n onInvalidInput(`File \"${d.name}\" size is not allowed`);\n }\n return ok;\n });\n\n if (!filtered.length) return;\n setSelectedFiles((prev) => {\n if (isOneFile) {\n const [first] = filtered;\n return first ? [first] : prev;\n }\n return [...prev, ...filtered];\n });\n onInvalidInput(\"clear\");\n } catch (e: any) {\n if (DocumentPicker.isCancel(e)) return;\n onInvalidInput(e);\n }\n };\n\n const pickImages = async () => {\n try {\n const res = await launchImageLibrary({\n mediaType: \"photo\",\n selectionLimit: isOneFile ? 1 : limit,\n includeBase64: true,\n });\n\n if (res.didCancel) return;\n if (res.errorCode) {\n onInvalidInput(res.errorMessage || res.errorCode);\n return;\n }\n\n const assets = res.assets || [];\n const mapped: File[] = assets\n .filter((a) => !!a.uri)\n .map((a) => ({\n uri: a.uri!,\n name: a.fileName || \"image\",\n type: a.type || \"image/jpeg\",\n size: a.fileSize,\n }))\n .filter((f) => {\n const ok = validateSize(f.size);\n if (!ok) onInvalidInput(`File \"${f.name}\" size is not allowed`);\n return ok;\n });\n\n if (!mapped.length) return;\n\n setSelectedFiles((prev) => {\n if (isOneFile) {\n const [first] = mapped;\n return first ? [first] : prev;\n }\n return [...prev, ...mapped];\n });\n\n onInvalidInput(\"clear\");\n\n // for images, we already have base64 in the picker response; store it immediately\n const b64: Base64Item[] = assets\n .filter((a) => !!a.base64)\n .map((a) => ({\n filename: stripExt(a.fileName || \"image\"),\n base64: a.base64!,\n type: a.type || \"image/jpeg\",\n }));\n\n // keep order aligned with selectedFiles: for single this is OK; for multi, append\n setSelectedFilesAsBase64((prev) => (isOneFile ? b64.slice(0, 1) : [...prev, ...b64]));\n } catch (e: any) {\n onInvalidInput(e);\n }\n };\n\n const onChangeAnyFileUploader = (files: File[]) => {\n if (disabled) {\n return;\n }\n const filesList: any[] = [];\n\n setSelectedFilesAsBase64([]);\n for (let i = 0; i < files.length; i++) {\n const f = files[i];\n if (f) {\n // @ts-ignore\n const fileSize = f.size / 1000; // size in KB\n\n if ((!maxFileSize || fileSize <= maxFileSize) && (!minFileSize || fileSize >= minFileSize)) {\n filesList.push(f);\n onInvalidInput('clear')\n } else {\n let message = `File \"${f.name}\" is `;\n\n if (maxFileSize && fileSize > maxFileSize) {\n message += `too large. Maximum allowed is ${maxFileSize/1000} MB.`;\n } else if (minFileSize && fileSize < minFileSize) {\n message += `too small. Minimum allowed is ${minFileSize/1000} MB.`;\n }\n\n console.log(message)\n onInvalidInput(message);\n }\n }\n }\n\n if (!isOneFile) {\n setSelectedFiles(prevState => {\n return [...prevState, ...filesList];\n });\n } else {\n if (filesList.length)\n setSelectedFiles(filesList.slice(0, 1));\n }\n };\n const onPick = async () => {\n if (disabled) return;\n if (isImage) return pickImages();\n return pickDocuments();\n };\n\n const removeFile = (fileIndex: number) => () => {\n if (fileIndex < selectedInitialFiles.length) {\n setSelectedInitialFiles((prev) => prev.filter((_, i) => i !== fileIndex));\n return;\n }\n\n const editIndex = fileIndex - selectedInitialFiles.length;\n setSelectedFiles((prev) => prev.filter((_, i) => i !== editIndex));\n setSelectedFilesAsBase64((prev) => prev.filter((_, i) => i !== editIndex));\n };\n\n // Convert picked documents to base64 (images handled by picker includeBase64)\n useEffect(() => {\n if (isImage) return;\n\n const run = async () => {\n try {\n const next: Base64Item[] = [];\n for (const f of selectedFiles) {\n // only for documents; images might not be readable via RNFS content URIs\n const b64 = await readFileAsBase64(f.uri);\n next.push({\n filename: stripExt(f.name),\n base64: b64,\n type: f.type || getType(getExt(f.name) as any) || \"application/octet-stream\",\n });\n }\n setSelectedFilesAsBase64(next);\n } catch (e) {\n onInvalidInput(e);\n }\n };\n\n run().then(r => {\n\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedFiles, isImage]);\n\n // Emit onChange\n useEffect(() => {\n if (disabled) return;\n\n if (!selectedFiles.length && !selectedInitialFiles.length) {\n onChange?.([], []);\n return;\n }\n\n // Respect isJsonOutput (web behavior):\n // - when true: use base64Data output\n // - when false: still return picked files list (native file objects)\n // Output shape is platform-specific via types.native.ts\n if (isJsonOutput) {\n if (selectedFilesAsBase64.length === selectedFiles.length || isImage) {\n onChange?.(selectedFiles as any, selectedFilesAsBase64);\n }\n } else {\n onChange?.(selectedFiles as any, selectedFilesAsBase64);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedFilesAsBase64, selectedInitialFiles, selectedFiles]);\n\n // defaultValue + controlled value sync\n useEffect(() => {\n if (defaultValue) {\n setSelectedInitialFiles(Array.isArray(defaultValue) ? defaultValue : [defaultValue]);\n }\n }, [defaultValue]);\n\n useEffect(() => {\n if (initialValueSynced.current) return;\n if (value) {\n setSelectedInitialFiles(Array.isArray(value) ? value : [value]);\n }\n initialValueSynced.current = true;\n }, [value]);\n\n const display = useMemo(() => {\n const fromInitial = selectedInitialFiles.map((uri) => ({\n name: uri.split(\"/\").pop() ?? uri,\n shortName:AnyFile.shortName(uri),\n ext: getExt(uri),\n file: { uri },\n }));\n\n const fromPicked = selectedFiles.map((f) => ({\n name: f.name,\n shortName:AnyFile.shortName(f.name),\n ext: getExt(f.name),\n file: { uri: f.uri },\n }));\n\n return [...fromInitial, ...fromPicked];\n }, [selectedFiles, selectedInitialFiles]);\n\n /** Replace entire file selection (for template's update callback) */\n const updateFiles = (files: File | File[]) => {\n const arr = Array.isArray(files) ? files : [files];\n setSelectedFiles(arr);\n setSelectedInitialFiles([]);\n setSelectedFilesAsBase64([]);\n };\n\n const contextValue = {\n onChangeAnyFileUploader,\n onPick,\n removeFile,\n onInvalidInput,\n selectedFiles,\n selectedInitialFiles,\n disabled,\n limit,\n placeholder,\n isClassicUploader: classicUploader,\n acceptedMemes,\n files: display,\n id: name ?? \"\",\n isImage,\n };\n\n return (\n <FileUploaderContext.Provider value={contextValue}>\n <Flex onFocus={onFocus as any} w={\"full\"} >\n {children ? children({\n values: selectedFiles,\n browse: onPick,\n update: updateFiles,\n remove: (index: number) => removeFile(index)(),\n type: isImage ? 'image' : 'file',\n isMultiple: !isOneFile,\n }) : (\n <>\n {isImage && isOneFile && <SingleImageUploader />}\n {!isImage && isOneFile && <SingleFileUploader />}\n {!isImage && !isOneFile && <MultipleFileUploader />}\n {isImage && !isOneFile && <MultipleImageUploader />}\n </>\n )}\n </Flex>\n </FileUploaderContext.Provider>\n );\n};\n\nexport default MainUploader;\nexport const useUploader = () => useContext(FileUploaderContext);\n"],"names":["createContext","useRef","useState","useMemo","toMemes","launchImageLibrary","useEffect","getType","AnyFile","jsx","Flex","jsxs","Fragment","SingleImageUploader","SingleFileUploader","MultipleFileUploader","MultipleImageUploader","useContext"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../../../src/form/file-pickers/MainUploader/index.native.tsx"],"sourcesContent":["import React, {\n createContext,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport DocumentPicker, { type DocumentPickerOptions } from \"react-native-document-picker\";\nimport { launchImageLibrary } from \"react-native-image-picker\";\nimport RNFS from \"react-native-fs\";\n\nimport {type IFileUploader, type File, type IMemes, toMemes} from \"@lmb-it/kitsconcerto-types\";\nimport { getType } from \"@lmb-it/kitsconcerto-types\";\nimport { Flex } from \"../../../_compat\";\n\nimport SingleFileUploader from \"../SingleFileUploader\";\nimport MultipleFileUploader from \"../MultipleFileUploader\";\nimport SingleImageUploader from \"../SingleImageUploader\";\nimport MultipleImageUploader from \"../MultipleImageUploader\";\nimport {AnyFile} from \"../../../utils\";\n\ntype Base64Item = { filename: string; base64: string; type: string };\n\ninterface IFileUploaderContextValues {\n onChangeAnyFileUploader(files: File[]): void;\n onPick(): void;\n removeFile(fileIndex: number): () => void;\n onInvalidInput(errors: any): void;\n\n selectedFiles: File[];\n selectedInitialFiles: string[];\n\n placeholder?: string;\n disabled?: boolean;\n isClassicUploader: boolean;\n limit: number;\n acceptedMemes: string[]; // mime list\n files: { name: string; ext: string; shortName: string; file: { uri: string } | string }[];\n id: string;\n isImage: boolean;\n}\n\nexport const FileUploaderContext = createContext<IFileUploaderContextValues>({\n onChangeAnyFileUploader: () => {\n },\n onPick: () => {},\n removeFile: () => () => {},\n onInvalidInput: () => {},\n disabled: false,\n limit: 1,\n isClassicUploader: true,\n selectedInitialFiles: [],\n selectedFiles: [],\n acceptedMemes: [],\n files: [],\n id: \"\",\n isImage: false,\n});\n\nconst stripExt = (name: string) => name.replace(/\\.[^/.]+$/, \"\");\nconst getExt = (name: string) => (name.split(\".\").pop() ?? \"\").toLowerCase();\n\nconst readFileAsBase64 = async (uri: string) => {\n // DocumentPicker returns fileCopyUri when copyTo is used; use that when possible\n // RNFS expects file paths without \"file://\"\n const path = uri.startsWith(\"file://\") ? uri.replace(\"file://\", \"\") : uri;\n return RNFS.readFile(path, \"base64\");\n};\n\nconst MainUploader = (props: IFileUploader) => {\n const {\n acceptedTypes,\n type,\n classicUploader = true,\n limit = 1,\n onError,\n onFocus,\n placeholder,\n defaultValue,\n multiple,\n isJsonOutput = true,\n onChange,\n value,\n name,\n disabled,\n maxFileSize,\n minFileSize,\n children,\n } = props;\n\n const initialValueSynced = useRef(false);\n\n const [selectedFiles, setSelectedFiles] = useState<File[]>([]);\n const [selectedInitialFiles, setSelectedInitialFiles] = useState<string[]>([]);\n const [selectedFilesAsBase64, setSelectedFilesAsBase64] = useState<Base64Item[]>([]);\n\n const isImage = type === \"Image\";\n const isOneFile = !multiple || limit < 2;\n\n const onInvalidInput = (err: any) => onError?.(err);\n\n const acceptedMemes = useMemo(() => {\n return acceptedTypes ? toMemes(acceptedTypes) : toMemes(['allFiles']);\n }, [acceptedTypes]);\n\n const validateSize = (sizeBytes?: number) => {\n if (!sizeBytes) return true;\n const sizeKB = sizeBytes / 1000;\n if (maxFileSize && sizeKB > maxFileSize) return false;\n return !(minFileSize && sizeKB < minFileSize);\n\n };\n\n const pickDocuments = async () => {\n try {\n const types:DocumentPickerOptions = {\n allowMultiSelection: !isOneFile,\n // copy to cache so we can read base64 reliably\n copyTo: \"cachesDirectory\",\n // DocumentPicker supports mime list; if empty let OS choose anything\n type: acceptedMemes.length ? acceptedMemes : [DocumentPicker.types.allFiles],\n }\n\n const res = await DocumentPicker.pick(types);\n\n const docs = (Array.isArray(res) ? res : [res]).map((d) => ({\n uri: (d.fileCopyUri || d.uri) as string,\n name: d.name || \"file\",\n type: d.type || undefined,\n size: d.size || undefined,\n }));\n\n const filtered = docs.filter((d) => {\n const ok = validateSize(d.size);\n if (!ok) {\n onInvalidInput(`File \"${d.name}\" size is not allowed`);\n }\n return ok;\n });\n\n if (!filtered.length) return;\n setSelectedFiles((prev) => {\n if (isOneFile) {\n const [first] = filtered;\n return first ? [first] : prev;\n }\n return [...prev, ...filtered];\n });\n onInvalidInput(\"clear\");\n } catch (e: any) {\n if (DocumentPicker.isCancel(e)) return;\n onInvalidInput(e);\n }\n };\n\n const pickImages = async () => {\n try {\n const res = await launchImageLibrary({\n mediaType: \"photo\",\n selectionLimit: isOneFile ? 1 : limit,\n includeBase64: true,\n });\n\n if (res.didCancel) return;\n if (res.errorCode) {\n onInvalidInput(res.errorMessage || res.errorCode);\n return;\n }\n\n const assets = res.assets || [];\n const mapped: File[] = assets\n .filter((a) => !!a.uri)\n .map((a) => ({\n uri: a.uri!,\n name: a.fileName || \"image\",\n type: a.type || \"image/jpeg\",\n size: a.fileSize,\n }))\n .filter((f) => {\n const ok = validateSize(f.size);\n if (!ok) onInvalidInput(`File \"${f.name}\" size is not allowed`);\n return ok;\n });\n\n if (!mapped.length) return;\n\n setSelectedFiles((prev) => {\n if (isOneFile) {\n const [first] = mapped;\n return first ? [first] : prev;\n }\n return [...prev, ...mapped];\n });\n\n onInvalidInput(\"clear\");\n\n // for images, we already have base64 in the picker response; store it immediately\n const b64: Base64Item[] = assets\n .filter((a) => !!a.base64)\n .map((a) => ({\n filename: stripExt(a.fileName || \"image\"),\n base64: a.base64!,\n type: a.type || \"image/jpeg\",\n }));\n\n // keep order aligned with selectedFiles: for single this is OK; for multi, append\n setSelectedFilesAsBase64((prev) => (isOneFile ? b64.slice(0, 1) : [...prev, ...b64]));\n } catch (e: any) {\n onInvalidInput(e);\n }\n };\n\n const onChangeAnyFileUploader = (files: File[]) => {\n if (disabled) {\n return;\n }\n const filesList: any[] = [];\n\n setSelectedFilesAsBase64([]);\n for (let i = 0; i < files.length; i++) {\n const f = files[i];\n if (f) {\n // @ts-ignore\n const fileSize = f.size / 1000; // size in KB\n\n if ((!maxFileSize || fileSize <= maxFileSize) && (!minFileSize || fileSize >= minFileSize)) {\n filesList.push(f);\n onInvalidInput('clear')\n } else {\n let message = `File \"${f.name}\" is `;\n\n if (maxFileSize && fileSize > maxFileSize) {\n message += `too large. Maximum allowed is ${maxFileSize/1000} MB.`;\n } else if (minFileSize && fileSize < minFileSize) {\n message += `too small. Minimum allowed is ${minFileSize/1000} MB.`;\n }\n\n console.log(message)\n onInvalidInput(message);\n }\n }\n }\n\n if (!isOneFile) {\n setSelectedFiles(prevState => {\n return [...prevState, ...filesList];\n });\n } else {\n if (filesList.length)\n setSelectedFiles(filesList.slice(0, 1));\n }\n };\n const onPick = async () => {\n if (disabled) return;\n if (isImage) return pickImages();\n return pickDocuments();\n };\n\n const removeFile = (fileIndex: number) => () => {\n if (fileIndex < selectedInitialFiles.length) {\n setSelectedInitialFiles((prev) => prev.filter((_, i) => i !== fileIndex));\n return;\n }\n\n const editIndex = fileIndex - selectedInitialFiles.length;\n setSelectedFiles((prev) => prev.filter((_, i) => i !== editIndex));\n setSelectedFilesAsBase64((prev) => prev.filter((_, i) => i !== editIndex));\n };\n\n // Convert picked documents to base64 (images handled by picker includeBase64)\n useEffect(() => {\n if (isImage) return;\n\n const run = async () => {\n try {\n const next: Base64Item[] = [];\n for (const f of selectedFiles) {\n // only for documents; images might not be readable via RNFS content URIs\n const b64 = await readFileAsBase64(f.uri);\n next.push({\n filename: stripExt(f.name),\n base64: b64,\n type: f.type || getType(getExt(f.name) as any) || \"application/octet-stream\",\n });\n }\n setSelectedFilesAsBase64(next);\n } catch (e) {\n onInvalidInput(e);\n }\n };\n\n run().then(r => {\n\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedFiles, isImage]);\n\n // Emit onChange\n useEffect(() => {\n if (disabled) return;\n\n if (!selectedFiles.length && !selectedInitialFiles.length) {\n onChange?.([], []);\n return;\n }\n\n // Respect isJsonOutput (web behavior):\n // - when true: use base64Data output\n // - when false: still return picked files list (native file objects)\n // Output shape is platform-specific via types.native.ts\n if (isJsonOutput) {\n if (selectedFilesAsBase64.length === selectedFiles.length || isImage) {\n onChange?.(selectedFiles as any, selectedFilesAsBase64);\n }\n } else {\n onChange?.(selectedFiles as any, selectedFilesAsBase64);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedFilesAsBase64, selectedInitialFiles, selectedFiles]);\n\n // defaultValue + controlled value sync\n useEffect(() => {\n if (defaultValue) {\n setSelectedInitialFiles(Array.isArray(defaultValue) ? defaultValue : [defaultValue]);\n }\n }, [defaultValue]);\n\n useEffect(() => {\n if (initialValueSynced.current) return;\n if (value) {\n setSelectedInitialFiles(Array.isArray(value) ? value : [value]);\n }\n initialValueSynced.current = true;\n }, [value]);\n\n const display = useMemo(() => {\n const fromInitial = selectedInitialFiles.map((uri) => ({\n name: uri.split(\"/\").pop() ?? uri,\n shortName:AnyFile.shortName(uri),\n ext: getExt(uri),\n file: { uri },\n }));\n\n const fromPicked = selectedFiles.map((f) => ({\n name: f.name,\n shortName:AnyFile.shortName(f.name),\n ext: getExt(f.name),\n file: { uri: f.uri },\n }));\n\n return [...fromInitial, ...fromPicked];\n }, [selectedFiles, selectedInitialFiles]);\n\n /** Replace entire file selection (for template's update callback) */\n const updateFiles = (files: File | File[]) => {\n const arr = Array.isArray(files) ? files : [files];\n setSelectedFiles(arr);\n setSelectedInitialFiles([]);\n setSelectedFilesAsBase64([]);\n };\n\n const contextValue = {\n onChangeAnyFileUploader,\n onPick,\n removeFile,\n onInvalidInput,\n selectedFiles,\n selectedInitialFiles,\n disabled,\n limit,\n placeholder,\n isClassicUploader: classicUploader,\n acceptedMemes,\n files: display,\n id: name ?? \"\",\n isImage,\n };\n\n return (\n <FileUploaderContext.Provider value={contextValue}>\n <Flex onFocus={onFocus as any} w={\"full\"} >\n {children ? children({\n values: selectedFiles,\n browse: onPick,\n update: updateFiles,\n remove: (index: number) => removeFile(index)(),\n type: isImage ? 'image' : 'file',\n isMultiple: !isOneFile,\n }) : (\n <>\n {isImage && isOneFile && <SingleImageUploader />}\n {!isImage && isOneFile && <SingleFileUploader />}\n {!isImage && !isOneFile && <MultipleFileUploader />}\n {isImage && !isOneFile && <MultipleImageUploader />}\n </>\n )}\n </Flex>\n </FileUploaderContext.Provider>\n );\n};\n\nexport default MainUploader;\nexport const useUploader = () => useContext(FileUploaderContext);\n"],"names":["createContext","useRef","useState","useMemo","toMemes","launchImageLibrary","useEffect","getType","AnyFile","jsx","Flex","jsxs","Fragment","SingleImageUploader","SingleFileUploader","MultipleFileUploader","MultipleImageUploader","useContext"],"mappings":"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"}
|
|
@@ -11,6 +11,7 @@ import 'yup';
|
|
|
11
11
|
import '../../../packages/types/src/Css/map/index.js';
|
|
12
12
|
import '../../../packages/types/src/Theme/shadows.js';
|
|
13
13
|
import '../../../packages/types/src/Theme/defaultTheme.js';
|
|
14
|
+
import '../../../packages/types/src/Theme/alphaColors.js';
|
|
14
15
|
import SingleFileUploader from '../SingleFileUploader/index.js';
|
|
15
16
|
import MultipleFileUploader from '../MultipleFileUploader/index.js';
|
|
16
17
|
import SingleImageUploader from '../SingleImageUploader/index.js';
|