@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
|
@@ -62,6 +62,8 @@ require('yup');
|
|
|
62
62
|
require('../../packages/types/src/Css/map/index.cjs');
|
|
63
63
|
require('../../packages/types/src/Theme/shadows.cjs');
|
|
64
64
|
require('../../packages/types/src/Theme/defaultTheme.cjs');
|
|
65
|
+
require('../../packages/types/src/Theme/alphaColors.cjs');
|
|
66
|
+
require('../../apps/mobile/src/Factory/helpers/cssVarMap.cjs');
|
|
65
67
|
require('../../apps/mobile/src/Factory/DimensionsContext.cjs');
|
|
66
68
|
var index = require('../../apps/mobile/src/i18n/index.cjs');
|
|
67
69
|
require('../../apps/mobile/src/Core/AutoComplete/index.cjs');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../../../../src/contexts/Locale/index.native.tsx"],"sourcesContent":["import React, {createContext, type FC, type PropsWithChildren, useCallback, useEffect, useRef, useState} from \"react\";\nimport AsyncStorage from \"@react-native-async-storage/async-storage\";\nimport {initMobileI18n} from \"@lmb-it/kitsconcertomobile\"; // ← our new initializer\nimport localeFiles from \"../../locale\"; // built-in languages\nimport type {ILocaleContextProps, ILocaleContextValues,} from \"@lmb-it/kitsconcerto-types\";\nimport i18n from \"i18next\";\n\nexport const LocaleContext = createContext<ILocaleContextValues>(\n {} as ILocaleContextValues\n);\n\nconst STORAGE_KEY = \"currentLanguage\";\n\nconst LocaleContextProvider: FC<PropsWithChildren<ILocaleContextProps>> = ({\n children,\n languages,\n defaultLanguage = \"en\",\n onChangeLanguage\n }) => {\n\n const defaultLocal = useRef<string>(\"\");\n const [language, setLanguage] = useState(defaultLanguage);\n const [isRTL, setIsRTL] = useState(defaultLanguage === \"ar\");\n const [isReady, setIsReady] = useState(false);\n\n // Build extra translations from props to match the expected format\n\n\n const translationsList = () => {\n const l: any = {};\n\n Object.keys(localeFiles).forEach(key => {\n l[key] = {translation: localeFiles[key]};\n })\n\n if (languages) {\n languages.forEach(({lang, translations}) => {\n if (lang in l) {\n l[lang] = {\n translation: {\n ...l[lang].translation,\n ...translations\n }\n };\n } else {\n l[lang] = {\n translation: {\n ...translations\n }\n };\n }\n\n })\n }\n return l;\n }\n\n // Initialize i18next on mount\n useEffect(() => {\n if (defaultLocal.current == defaultLanguage) return;\n const init = async () => {\n\n await initMobileI18n(translationsList()); // ← initialize i18n (merges base + user)\n\n // restore saved language\n const stored = await AsyncStorage.getItem(STORAGE_KEY);\n const lang = stored || defaultLanguage;\n\n await i18n.changeLanguage(lang);\n setLanguage(lang);\n setIsRTL(lang === \"ar\");\n\n defaultLocal.current = defaultLanguage;\n setIsReady(true);\n };\n\n void init();\n }, [defaultLanguage]);\n\n\n const isKeyExists = (key: string)=>{\n return i18n.exists(key)\n }\n // Change language (writes to AsyncStorage + updates context + updates i18next)\n const changeLanguage = useCallback(\n async (newLang: string) => {\n setLanguage(newLang);\n setIsRTL(newLang === \"ar\");\n\n await i18n.changeLanguage(newLang);\n\n await AsyncStorage.setItem(STORAGE_KEY, newLang);\n\n onChangeLanguage?.(newLang);\n },\n [onChangeLanguage]\n );\n\n // t() now comes directly from i18next\n const t = useCallback(\n (key: string, ...params: (string | number)[]) =>\n i18n.t(key, {replace: params}),\n []\n );\n\n return (\n <LocaleContext.Provider\n value={{\n t,\n changeLanguage,\n currentLanguage: language,\n isRTL,\n isKeyExists\n }}\n >\n {isReady ? children : null}\n </LocaleContext.Provider>\n );\n};\n\nexport default LocaleContextProvider;\n"],"names":["createContext","useRef","useState","localeFiles","useEffect","initMobileI18n","useCallback","jsx"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../../src/contexts/Locale/index.native.tsx"],"sourcesContent":["import React, {createContext, type FC, type PropsWithChildren, useCallback, useEffect, useRef, useState} from \"react\";\nimport AsyncStorage from \"@react-native-async-storage/async-storage\";\nimport {initMobileI18n} from \"@lmb-it/kitsconcertomobile\"; // ← our new initializer\nimport localeFiles from \"../../locale\"; // built-in languages\nimport type {ILocaleContextProps, ILocaleContextValues,} from \"@lmb-it/kitsconcerto-types\";\nimport i18n from \"i18next\";\n\nexport const LocaleContext = createContext<ILocaleContextValues>(\n {} as ILocaleContextValues\n);\n\nconst STORAGE_KEY = \"currentLanguage\";\n\nconst LocaleContextProvider: FC<PropsWithChildren<ILocaleContextProps>> = ({\n children,\n languages,\n defaultLanguage = \"en\",\n onChangeLanguage\n }) => {\n\n const defaultLocal = useRef<string>(\"\");\n const [language, setLanguage] = useState(defaultLanguage);\n const [isRTL, setIsRTL] = useState(defaultLanguage === \"ar\");\n const [isReady, setIsReady] = useState(false);\n\n // Build extra translations from props to match the expected format\n\n\n const translationsList = () => {\n const l: any = {};\n\n Object.keys(localeFiles).forEach(key => {\n l[key] = {translation: localeFiles[key]};\n })\n\n if (languages) {\n languages.forEach(({lang, translations}) => {\n if (lang in l) {\n l[lang] = {\n translation: {\n ...l[lang].translation,\n ...translations\n }\n };\n } else {\n l[lang] = {\n translation: {\n ...translations\n }\n };\n }\n\n })\n }\n return l;\n }\n\n // Initialize i18next on mount\n useEffect(() => {\n if (defaultLocal.current == defaultLanguage) return;\n const init = async () => {\n\n await initMobileI18n(translationsList()); // ← initialize i18n (merges base + user)\n\n // restore saved language\n const stored = await AsyncStorage.getItem(STORAGE_KEY);\n const lang = stored || defaultLanguage;\n\n await i18n.changeLanguage(lang);\n setLanguage(lang);\n setIsRTL(lang === \"ar\");\n\n defaultLocal.current = defaultLanguage;\n setIsReady(true);\n };\n\n void init();\n }, [defaultLanguage]);\n\n\n const isKeyExists = (key: string)=>{\n return i18n.exists(key)\n }\n // Change language (writes to AsyncStorage + updates context + updates i18next)\n const changeLanguage = useCallback(\n async (newLang: string) => {\n setLanguage(newLang);\n setIsRTL(newLang === \"ar\");\n\n await i18n.changeLanguage(newLang);\n\n await AsyncStorage.setItem(STORAGE_KEY, newLang);\n\n onChangeLanguage?.(newLang);\n },\n [onChangeLanguage]\n );\n\n // t() now comes directly from i18next\n const t = useCallback(\n (key: string, ...params: (string | number)[]) =>\n i18n.t(key, {replace: params}),\n []\n );\n\n return (\n <LocaleContext.Provider\n value={{\n t,\n changeLanguage,\n currentLanguage: language,\n isRTL,\n isKeyExists\n }}\n >\n {isReady ? children : null}\n </LocaleContext.Provider>\n );\n};\n\nexport default LocaleContextProvider;\n"],"names":["createContext","useRef","useState","localeFiles","useEffect","initMobileI18n","useCallback","jsx"],"mappings":"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"}
|
package/contexts/Locale/index.js
CHANGED
|
@@ -58,6 +58,8 @@ import 'yup';
|
|
|
58
58
|
import '../../packages/types/src/Css/map/index.js';
|
|
59
59
|
import '../../packages/types/src/Theme/shadows.js';
|
|
60
60
|
import '../../packages/types/src/Theme/defaultTheme.js';
|
|
61
|
+
import '../../packages/types/src/Theme/alphaColors.js';
|
|
62
|
+
import '../../apps/mobile/src/Factory/helpers/cssVarMap.js';
|
|
61
63
|
import '../../apps/mobile/src/Factory/DimensionsContext.js';
|
|
62
64
|
import { initMobileI18n } from '../../apps/mobile/src/i18n/index.js';
|
|
63
65
|
import '../../apps/mobile/src/Core/AutoComplete/index.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/contexts/Locale/index.native.tsx"],"sourcesContent":["import React, {createContext, type FC, type PropsWithChildren, useCallback, useEffect, useRef, useState} from \"react\";\nimport AsyncStorage from \"@react-native-async-storage/async-storage\";\nimport {initMobileI18n} from \"@lmb-it/kitsconcertomobile\"; // ← our new initializer\nimport localeFiles from \"../../locale\"; // built-in languages\nimport type {ILocaleContextProps, ILocaleContextValues,} from \"@lmb-it/kitsconcerto-types\";\nimport i18n from \"i18next\";\n\nexport const LocaleContext = createContext<ILocaleContextValues>(\n {} as ILocaleContextValues\n);\n\nconst STORAGE_KEY = \"currentLanguage\";\n\nconst LocaleContextProvider: FC<PropsWithChildren<ILocaleContextProps>> = ({\n children,\n languages,\n defaultLanguage = \"en\",\n onChangeLanguage\n }) => {\n\n const defaultLocal = useRef<string>(\"\");\n const [language, setLanguage] = useState(defaultLanguage);\n const [isRTL, setIsRTL] = useState(defaultLanguage === \"ar\");\n const [isReady, setIsReady] = useState(false);\n\n // Build extra translations from props to match the expected format\n\n\n const translationsList = () => {\n const l: any = {};\n\n Object.keys(localeFiles).forEach(key => {\n l[key] = {translation: localeFiles[key]};\n })\n\n if (languages) {\n languages.forEach(({lang, translations}) => {\n if (lang in l) {\n l[lang] = {\n translation: {\n ...l[lang].translation,\n ...translations\n }\n };\n } else {\n l[lang] = {\n translation: {\n ...translations\n }\n };\n }\n\n })\n }\n return l;\n }\n\n // Initialize i18next on mount\n useEffect(() => {\n if (defaultLocal.current == defaultLanguage) return;\n const init = async () => {\n\n await initMobileI18n(translationsList()); // ← initialize i18n (merges base + user)\n\n // restore saved language\n const stored = await AsyncStorage.getItem(STORAGE_KEY);\n const lang = stored || defaultLanguage;\n\n await i18n.changeLanguage(lang);\n setLanguage(lang);\n setIsRTL(lang === \"ar\");\n\n defaultLocal.current = defaultLanguage;\n setIsReady(true);\n };\n\n void init();\n }, [defaultLanguage]);\n\n\n const isKeyExists = (key: string)=>{\n return i18n.exists(key)\n }\n // Change language (writes to AsyncStorage + updates context + updates i18next)\n const changeLanguage = useCallback(\n async (newLang: string) => {\n setLanguage(newLang);\n setIsRTL(newLang === \"ar\");\n\n await i18n.changeLanguage(newLang);\n\n await AsyncStorage.setItem(STORAGE_KEY, newLang);\n\n onChangeLanguage?.(newLang);\n },\n [onChangeLanguage]\n );\n\n // t() now comes directly from i18next\n const t = useCallback(\n (key: string, ...params: (string | number)[]) =>\n i18n.t(key, {replace: params}),\n []\n );\n\n return (\n <LocaleContext.Provider\n value={{\n t,\n changeLanguage,\n currentLanguage: language,\n isRTL,\n isKeyExists\n }}\n >\n {isReady ? children : null}\n </LocaleContext.Provider>\n );\n};\n\nexport default LocaleContextProvider;\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/contexts/Locale/index.native.tsx"],"sourcesContent":["import React, {createContext, type FC, type PropsWithChildren, useCallback, useEffect, useRef, useState} from \"react\";\nimport AsyncStorage from \"@react-native-async-storage/async-storage\";\nimport {initMobileI18n} from \"@lmb-it/kitsconcertomobile\"; // ← our new initializer\nimport localeFiles from \"../../locale\"; // built-in languages\nimport type {ILocaleContextProps, ILocaleContextValues,} from \"@lmb-it/kitsconcerto-types\";\nimport i18n from \"i18next\";\n\nexport const LocaleContext = createContext<ILocaleContextValues>(\n {} as ILocaleContextValues\n);\n\nconst STORAGE_KEY = \"currentLanguage\";\n\nconst LocaleContextProvider: FC<PropsWithChildren<ILocaleContextProps>> = ({\n children,\n languages,\n defaultLanguage = \"en\",\n onChangeLanguage\n }) => {\n\n const defaultLocal = useRef<string>(\"\");\n const [language, setLanguage] = useState(defaultLanguage);\n const [isRTL, setIsRTL] = useState(defaultLanguage === \"ar\");\n const [isReady, setIsReady] = useState(false);\n\n // Build extra translations from props to match the expected format\n\n\n const translationsList = () => {\n const l: any = {};\n\n Object.keys(localeFiles).forEach(key => {\n l[key] = {translation: localeFiles[key]};\n })\n\n if (languages) {\n languages.forEach(({lang, translations}) => {\n if (lang in l) {\n l[lang] = {\n translation: {\n ...l[lang].translation,\n ...translations\n }\n };\n } else {\n l[lang] = {\n translation: {\n ...translations\n }\n };\n }\n\n })\n }\n return l;\n }\n\n // Initialize i18next on mount\n useEffect(() => {\n if (defaultLocal.current == defaultLanguage) return;\n const init = async () => {\n\n await initMobileI18n(translationsList()); // ← initialize i18n (merges base + user)\n\n // restore saved language\n const stored = await AsyncStorage.getItem(STORAGE_KEY);\n const lang = stored || defaultLanguage;\n\n await i18n.changeLanguage(lang);\n setLanguage(lang);\n setIsRTL(lang === \"ar\");\n\n defaultLocal.current = defaultLanguage;\n setIsReady(true);\n };\n\n void init();\n }, [defaultLanguage]);\n\n\n const isKeyExists = (key: string)=>{\n return i18n.exists(key)\n }\n // Change language (writes to AsyncStorage + updates context + updates i18next)\n const changeLanguage = useCallback(\n async (newLang: string) => {\n setLanguage(newLang);\n setIsRTL(newLang === \"ar\");\n\n await i18n.changeLanguage(newLang);\n\n await AsyncStorage.setItem(STORAGE_KEY, newLang);\n\n onChangeLanguage?.(newLang);\n },\n [onChangeLanguage]\n );\n\n // t() now comes directly from i18next\n const t = useCallback(\n (key: string, ...params: (string | number)[]) =>\n i18n.t(key, {replace: params}),\n []\n );\n\n return (\n <LocaleContext.Provider\n value={{\n t,\n changeLanguage,\n currentLanguage: language,\n isRTL,\n isKeyExists\n }}\n >\n {isReady ? children : null}\n </LocaleContext.Provider>\n );\n};\n\nexport default LocaleContextProvider;\n"],"names":[],"mappings":"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"}
|
package/contexts/Main/index.cjs
CHANGED
|
@@ -62,6 +62,8 @@ require('yup');
|
|
|
62
62
|
require('../../packages/types/src/Css/map/index.cjs');
|
|
63
63
|
require('../../packages/types/src/Theme/shadows.cjs');
|
|
64
64
|
require('../../packages/types/src/Theme/defaultTheme.cjs');
|
|
65
|
+
require('../../packages/types/src/Theme/alphaColors.cjs');
|
|
66
|
+
require('../../apps/mobile/src/Factory/helpers/cssVarMap.cjs');
|
|
65
67
|
var DimensionsContext = require('../../apps/mobile/src/Factory/DimensionsContext.cjs');
|
|
66
68
|
require('i18next');
|
|
67
69
|
require('react-i18next');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../../../../src/contexts/Main/index.native.tsx"],"sourcesContent":["import React, {createContext, type PropsWithChildren, type ReactNode, useRef} from 'react';\nimport type {IMainContextProps, IMainContextValues} from '@lmb-it/kitsconcerto-types';\nimport DialogProvider from '../DialogContext';\nimport PermissionsProvider from '../PermissionsContext';\nimport LocaleContextProvider from '../Locale';\nimport ThemeContext, {KitsThemeProvider} from '../Theme';\n// import {IHeaderRef} from '../Components/Organisms/Layout/Header';\n// import {AuthLayout} from '../Components';\n// import AdminLayout from '../Components/Organisms/Layout/AdminLayout';\nimport {useWindowDimensions} from 'react-native';\nimport {GluestackUIProvider, DimensionsProvider} from '@lmb-it/kitsconcertomobile';\n\nexport const MainContext = createContext<IMainContextValues>({} as IMainContextValues);\n\nexport default function MainContextProvider({\n children,\n theme,\n kitsTheme,\n onLogOut,\n nonAuthRoutes,\n menuItems,\n permissions,\n logo,\n languages,\n defaultLanguage = 'en',\n authedRoutes,\n onChangeLanguage\n }: PropsWithChildren<IMainContextProps>) {\n const {width, height} = useWindowDimensions();\n\n const mq = {\n isSmall: width < 768,\n isTablet: width >= 768 && width < 1024,\n isDesktop: width >= 1024,\n isLandscape: width > height,\n isPortrait: height >= width\n };\n type IHeaderRef = any;\n const headerRef = useRef<IHeaderRef>(null);\n const appendToHeader = (element: ReactNode) => {\n if (headerRef.current?.appendToHeader) headerRef.current.appendToHeader(element);\n };\n\n\n const authLayout = !children && nonAuthRoutes?.length && !authedRoutes?.length;\n const adminLayout = !children && authedRoutes?.length && !nonAuthRoutes?.length;\n\n return (\n <MainContext.Provider value={{logo, onLogOut, appendToHeader, menuItems, mq}}>\n <GluestackUIProvider mode={theme}>\n <DimensionsProvider>\n <KitsThemeProvider theme={kitsTheme}>\n <ThemeContext theme={theme}>\n <LocaleContextProvider\n defaultLanguage={defaultLanguage}\n languages={languages}\n onChangeLanguage={onChangeLanguage}\n >\n <DialogProvider>\n <PermissionsProvider roles={permissions}>\n {!authLayout && !adminLayout && children}\n {/*{authLayout && <AuthLayout routes={nonAuthRoutes} />}*/}\n {/*{adminLayout && <AdminLayout routes={authedRoutes} headerRef={headerRef} />}*/}\n </PermissionsProvider>\n </DialogProvider>\n </LocaleContextProvider>\n </ThemeContext>\n </KitsThemeProvider>\n </DimensionsProvider>\n </GluestackUIProvider>\n </MainContext.Provider>\n );\n}\n"],"names":["createContext","useWindowDimensions","useRef","jsx","GluestackUIProvider","DimensionsProvider","KitsThemeProvider","ThemeContext","LocaleContextProvider","DialogProvider","PermissionsProvider"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../../src/contexts/Main/index.native.tsx"],"sourcesContent":["import React, {createContext, type PropsWithChildren, type ReactNode, useRef} from 'react';\nimport type {IMainContextProps, IMainContextValues} from '@lmb-it/kitsconcerto-types';\nimport DialogProvider from '../DialogContext';\nimport PermissionsProvider from '../PermissionsContext';\nimport LocaleContextProvider from '../Locale';\nimport ThemeContext, {KitsThemeProvider} from '../Theme';\n// import {IHeaderRef} from '../Components/Organisms/Layout/Header';\n// import {AuthLayout} from '../Components';\n// import AdminLayout from '../Components/Organisms/Layout/AdminLayout';\nimport {useWindowDimensions} from 'react-native';\nimport {GluestackUIProvider, DimensionsProvider} from '@lmb-it/kitsconcertomobile';\n\nexport const MainContext = createContext<IMainContextValues>({} as IMainContextValues);\n\nexport default function MainContextProvider({\n children,\n theme,\n kitsTheme,\n onLogOut,\n nonAuthRoutes,\n menuItems,\n permissions,\n logo,\n languages,\n defaultLanguage = 'en',\n authedRoutes,\n onChangeLanguage\n }: PropsWithChildren<IMainContextProps>) {\n const {width, height} = useWindowDimensions();\n\n const mq = {\n isSmall: width < 768,\n isTablet: width >= 768 && width < 1024,\n isDesktop: width >= 1024,\n isLandscape: width > height,\n isPortrait: height >= width\n };\n type IHeaderRef = any;\n const headerRef = useRef<IHeaderRef>(null);\n const appendToHeader = (element: ReactNode) => {\n if (headerRef.current?.appendToHeader) headerRef.current.appendToHeader(element);\n };\n\n\n const authLayout = !children && nonAuthRoutes?.length && !authedRoutes?.length;\n const adminLayout = !children && authedRoutes?.length && !nonAuthRoutes?.length;\n\n return (\n <MainContext.Provider value={{logo, onLogOut, appendToHeader, menuItems, mq}}>\n <GluestackUIProvider mode={theme}>\n <DimensionsProvider>\n <KitsThemeProvider theme={kitsTheme}>\n <ThemeContext theme={theme}>\n <LocaleContextProvider\n defaultLanguage={defaultLanguage}\n languages={languages}\n onChangeLanguage={onChangeLanguage}\n >\n <DialogProvider>\n <PermissionsProvider roles={permissions}>\n {!authLayout && !adminLayout && children}\n {/*{authLayout && <AuthLayout routes={nonAuthRoutes} />}*/}\n {/*{adminLayout && <AdminLayout routes={authedRoutes} headerRef={headerRef} />}*/}\n </PermissionsProvider>\n </DialogProvider>\n </LocaleContextProvider>\n </ThemeContext>\n </KitsThemeProvider>\n </DimensionsProvider>\n </GluestackUIProvider>\n </MainContext.Provider>\n );\n}\n"],"names":["createContext","useWindowDimensions","useRef","jsx","GluestackUIProvider","DimensionsProvider","KitsThemeProvider","ThemeContext","LocaleContextProvider","DialogProvider","PermissionsProvider"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYO,MAAM,WAAA,GAAcA,mBAAA,CAAkC,EAAwB;AAErF,SAAwB,mBAAA,CAAoB;AAAA,EACI,QAAA;AAAA,EACA,KAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA;AAAA,EACA,aAAA;AAAA,EACA,SAAA;AAAA,EACA,WAAA;AAAA,EACA,IAAA;AAAA,EACA,SAAA;AAAA,EACA,eAAA,GAAkB,IAAA;AAAA,EAClB,YAAA;AAAA,EACA;AACJ,CAAA,EAAyC;AACjF,EAAA,MAAM,EAAC,KAAA,EAAO,MAAA,EAAM,GAAIC,+BAAA,EAAoB;AAE5C,EAAA,MAAM,EAAA,GAAK;AAAA,IACP,SAAS,KAAA,GAAQ,GAAA;AAAA,IACjB,QAAA,EAAU,KAAA,IAAS,GAAA,IAAO,KAAA,GAAQ,IAAA;AAAA,IAClC,WAAW,KAAA,IAAS,IAAA;AAAA,IACpB,aAAa,KAAA,GAAQ,MAAA;AAAA,IACrB,YAAY,MAAA,IAAU;AAAA,GAC1B;AAEA,EAAA,MAAM,SAAA,GAAYC,aAAmB,IAAI,CAAA;AACzC,EAAA,MAAM,cAAA,GAAiB,CAAC,OAAA,KAAuB;AAC3C,IAAA,IAAI,UAAU,OAAA,EAAS,cAAA,EAAgB,SAAA,CAAU,OAAA,CAAQ,eAAe,OAAO,CAAA;AAAA,EACnF,CAAA;AAGA,EAAA,MAAM,aAAa,CAAC,QAAA,IAAY,aAAA,EAAe,MAAA,IAAU,CAAC,YAAA,EAAc,MAAA;AACxE,EAAA,MAAM,cAAc,CAAC,QAAA,IAAY,YAAA,EAAc,MAAA,IAAU,CAAC,aAAA,EAAe,MAAA;AAEzE,EAAA,uBACIC,cAAA,CAAC,WAAA,CAAY,QAAA,EAAZ,EAAqB,KAAA,EAAO,EAAC,IAAA,EAAM,QAAA,EAAU,cAAA,EAAgB,SAAA,EAAW,EAAA,EAAE,EACvE,yCAACC,yBAAA,EAAA,EAAoB,IAAA,EAAM,KAAA,EACvB,QAAA,kBAAAD,cAAA,CAACE,oCAAA,EAAA,EACG,QAAA,kBAAAF,cAAA,CAACG,8CAAkB,KAAA,EAAO,SAAA,EACtB,QAAA,kBAAAH,cAAA,CAACI,oBAAA,EAAA,EAAa,KAAA,EACV,QAAA,kBAAAJ,cAAA;AAAA,IAACK,sBAAA;AAAA,IAAA;AAAA,MACG,eAAA;AAAA,MACA,SAAA;AAAA,MACA,gBAAA;AAAA,MAEA,QAAA,kBAAAL,cAAA,CAACM,qBAAA,EAAA,EACG,QAAA,kBAAAN,cAAA,CAACO,0BAAA,EAAA,EAAoB,KAAA,EAAO,WAAA,EACvB,QAAA,EAAA,CAAC,UAAA,IAAc,CAAC,WAAA,IAAe,QAAA,EAGpC,CAAA,EACJ;AAAA;AAAA,GACJ,EACJ,CAAA,EACJ,CAAA,EACJ,CAAA,EACJ,CAAA,EACJ,CAAA;AAER;;;;;"}
|
package/contexts/Main/index.js
CHANGED
|
@@ -58,6 +58,8 @@ import 'yup';
|
|
|
58
58
|
import '../../packages/types/src/Css/map/index.js';
|
|
59
59
|
import '../../packages/types/src/Theme/shadows.js';
|
|
60
60
|
import '../../packages/types/src/Theme/defaultTheme.js';
|
|
61
|
+
import '../../packages/types/src/Theme/alphaColors.js';
|
|
62
|
+
import '../../apps/mobile/src/Factory/helpers/cssVarMap.js';
|
|
61
63
|
import { DimensionsProvider } from '../../apps/mobile/src/Factory/DimensionsContext.js';
|
|
62
64
|
import 'i18next';
|
|
63
65
|
import 'react-i18next';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/contexts/Main/index.native.tsx"],"sourcesContent":["import React, {createContext, type PropsWithChildren, type ReactNode, useRef} from 'react';\nimport type {IMainContextProps, IMainContextValues} from '@lmb-it/kitsconcerto-types';\nimport DialogProvider from '../DialogContext';\nimport PermissionsProvider from '../PermissionsContext';\nimport LocaleContextProvider from '../Locale';\nimport ThemeContext, {KitsThemeProvider} from '../Theme';\n// import {IHeaderRef} from '../Components/Organisms/Layout/Header';\n// import {AuthLayout} from '../Components';\n// import AdminLayout from '../Components/Organisms/Layout/AdminLayout';\nimport {useWindowDimensions} from 'react-native';\nimport {GluestackUIProvider, DimensionsProvider} from '@lmb-it/kitsconcertomobile';\n\nexport const MainContext = createContext<IMainContextValues>({} as IMainContextValues);\n\nexport default function MainContextProvider({\n children,\n theme,\n kitsTheme,\n onLogOut,\n nonAuthRoutes,\n menuItems,\n permissions,\n logo,\n languages,\n defaultLanguage = 'en',\n authedRoutes,\n onChangeLanguage\n }: PropsWithChildren<IMainContextProps>) {\n const {width, height} = useWindowDimensions();\n\n const mq = {\n isSmall: width < 768,\n isTablet: width >= 768 && width < 1024,\n isDesktop: width >= 1024,\n isLandscape: width > height,\n isPortrait: height >= width\n };\n type IHeaderRef = any;\n const headerRef = useRef<IHeaderRef>(null);\n const appendToHeader = (element: ReactNode) => {\n if (headerRef.current?.appendToHeader) headerRef.current.appendToHeader(element);\n };\n\n\n const authLayout = !children && nonAuthRoutes?.length && !authedRoutes?.length;\n const adminLayout = !children && authedRoutes?.length && !nonAuthRoutes?.length;\n\n return (\n <MainContext.Provider value={{logo, onLogOut, appendToHeader, menuItems, mq}}>\n <GluestackUIProvider mode={theme}>\n <DimensionsProvider>\n <KitsThemeProvider theme={kitsTheme}>\n <ThemeContext theme={theme}>\n <LocaleContextProvider\n defaultLanguage={defaultLanguage}\n languages={languages}\n onChangeLanguage={onChangeLanguage}\n >\n <DialogProvider>\n <PermissionsProvider roles={permissions}>\n {!authLayout && !adminLayout && children}\n {/*{authLayout && <AuthLayout routes={nonAuthRoutes} />}*/}\n {/*{adminLayout && <AdminLayout routes={authedRoutes} headerRef={headerRef} />}*/}\n </PermissionsProvider>\n </DialogProvider>\n </LocaleContextProvider>\n </ThemeContext>\n </KitsThemeProvider>\n </DimensionsProvider>\n </GluestackUIProvider>\n </MainContext.Provider>\n );\n}\n"],"names":["ThemeContext","DialogProvider"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/contexts/Main/index.native.tsx"],"sourcesContent":["import React, {createContext, type PropsWithChildren, type ReactNode, useRef} from 'react';\nimport type {IMainContextProps, IMainContextValues} from '@lmb-it/kitsconcerto-types';\nimport DialogProvider from '../DialogContext';\nimport PermissionsProvider from '../PermissionsContext';\nimport LocaleContextProvider from '../Locale';\nimport ThemeContext, {KitsThemeProvider} from '../Theme';\n// import {IHeaderRef} from '../Components/Organisms/Layout/Header';\n// import {AuthLayout} from '../Components';\n// import AdminLayout from '../Components/Organisms/Layout/AdminLayout';\nimport {useWindowDimensions} from 'react-native';\nimport {GluestackUIProvider, DimensionsProvider} from '@lmb-it/kitsconcertomobile';\n\nexport const MainContext = createContext<IMainContextValues>({} as IMainContextValues);\n\nexport default function MainContextProvider({\n children,\n theme,\n kitsTheme,\n onLogOut,\n nonAuthRoutes,\n menuItems,\n permissions,\n logo,\n languages,\n defaultLanguage = 'en',\n authedRoutes,\n onChangeLanguage\n }: PropsWithChildren<IMainContextProps>) {\n const {width, height} = useWindowDimensions();\n\n const mq = {\n isSmall: width < 768,\n isTablet: width >= 768 && width < 1024,\n isDesktop: width >= 1024,\n isLandscape: width > height,\n isPortrait: height >= width\n };\n type IHeaderRef = any;\n const headerRef = useRef<IHeaderRef>(null);\n const appendToHeader = (element: ReactNode) => {\n if (headerRef.current?.appendToHeader) headerRef.current.appendToHeader(element);\n };\n\n\n const authLayout = !children && nonAuthRoutes?.length && !authedRoutes?.length;\n const adminLayout = !children && authedRoutes?.length && !nonAuthRoutes?.length;\n\n return (\n <MainContext.Provider value={{logo, onLogOut, appendToHeader, menuItems, mq}}>\n <GluestackUIProvider mode={theme}>\n <DimensionsProvider>\n <KitsThemeProvider theme={kitsTheme}>\n <ThemeContext theme={theme}>\n <LocaleContextProvider\n defaultLanguage={defaultLanguage}\n languages={languages}\n onChangeLanguage={onChangeLanguage}\n >\n <DialogProvider>\n <PermissionsProvider roles={permissions}>\n {!authLayout && !adminLayout && children}\n {/*{authLayout && <AuthLayout routes={nonAuthRoutes} />}*/}\n {/*{adminLayout && <AdminLayout routes={authedRoutes} headerRef={headerRef} />}*/}\n </PermissionsProvider>\n </DialogProvider>\n </LocaleContextProvider>\n </ThemeContext>\n </KitsThemeProvider>\n </DimensionsProvider>\n </GluestackUIProvider>\n </MainContext.Provider>\n );\n}\n"],"names":["ThemeContext","DialogProvider"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYO,MAAM,WAAA,GAAc,aAAA,CAAkC,EAAwB;AAErF,SAAwB,mBAAA,CAAoB;AAAA,EACI,QAAA;AAAA,EACA,KAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA;AAAA,EACA,aAAA;AAAA,EACA,SAAA;AAAA,EACA,WAAA;AAAA,EACA,IAAA;AAAA,EACA,SAAA;AAAA,EACA,eAAA,GAAkB,IAAA;AAAA,EAClB,YAAA;AAAA,EACA;AACJ,CAAA,EAAyC;AACjF,EAAA,MAAM,EAAC,KAAA,EAAO,MAAA,EAAM,GAAI,mBAAA,EAAoB;AAE5C,EAAA,MAAM,EAAA,GAAK;AAAA,IACP,SAAS,KAAA,GAAQ,GAAA;AAAA,IACjB,QAAA,EAAU,KAAA,IAAS,GAAA,IAAO,KAAA,GAAQ,IAAA;AAAA,IAClC,WAAW,KAAA,IAAS,IAAA;AAAA,IACpB,aAAa,KAAA,GAAQ,MAAA;AAAA,IACrB,YAAY,MAAA,IAAU;AAAA,GAC1B;AAEA,EAAA,MAAM,SAAA,GAAY,OAAmB,IAAI,CAAA;AACzC,EAAA,MAAM,cAAA,GAAiB,CAAC,OAAA,KAAuB;AAC3C,IAAA,IAAI,UAAU,OAAA,EAAS,cAAA,EAAgB,SAAA,CAAU,OAAA,CAAQ,eAAe,OAAO,CAAA;AAAA,EACnF,CAAA;AAGA,EAAA,MAAM,aAAa,CAAC,QAAA,IAAY,aAAA,EAAe,MAAA,IAAU,CAAC,YAAA,EAAc,MAAA;AACxE,EAAA,MAAM,cAAc,CAAC,QAAA,IAAY,YAAA,EAAc,MAAA,IAAU,CAAC,aAAA,EAAe,MAAA;AAEzE,EAAA,uBACI,GAAA,CAAC,WAAA,CAAY,QAAA,EAAZ,EAAqB,KAAA,EAAO,EAAC,IAAA,EAAM,QAAA,EAAU,cAAA,EAAgB,SAAA,EAAW,EAAA,EAAE,EACvE,8BAAC,mBAAA,EAAA,EAAoB,IAAA,EAAM,KAAA,EACvB,QAAA,kBAAA,GAAA,CAAC,kBAAA,EAAA,EACG,QAAA,kBAAA,GAAA,CAAC,qBAAkB,KAAA,EAAO,SAAA,EACtB,QAAA,kBAAA,GAAA,CAACA,oBAAA,EAAA,EAAa,KAAA,EACV,QAAA,kBAAA,GAAA;AAAA,IAAC,qBAAA;AAAA,IAAA;AAAA,MACG,eAAA;AAAA,MACA,SAAA;AAAA,MACA,gBAAA;AAAA,MAEA,QAAA,kBAAA,GAAA,CAACC,aAAA,EAAA,EACG,QAAA,kBAAA,GAAA,CAAC,mBAAA,EAAA,EAAoB,KAAA,EAAO,WAAA,EACvB,QAAA,EAAA,CAAC,UAAA,IAAc,CAAC,WAAA,IAAe,QAAA,EAGpC,CAAA,EACJ;AAAA;AAAA,GACJ,EACJ,CAAA,EACJ,CAAA,EACJ,CAAA,EACJ,CAAA,EACJ,CAAA;AAER;;;;"}
|
|
@@ -12,6 +12,7 @@ var shadows = require('../../packages/types/src/Theme/shadows.cjs');
|
|
|
12
12
|
var defaultTheme = require('../../packages/types/src/Theme/defaultTheme.cjs');
|
|
13
13
|
var extendTheme = require('../../packages/types/src/Theme/extendTheme.cjs');
|
|
14
14
|
var resolvers = require('../../packages/types/src/Theme/resolvers.cjs');
|
|
15
|
+
require('../../packages/types/src/Theme/alphaColors.cjs');
|
|
15
16
|
var reactNative = require('react-native');
|
|
16
17
|
var resolvers_native = require('./resolvers.cjs');
|
|
17
18
|
require('../../apps/mobile/src/ui/accordion/index.cjs');
|
|
@@ -64,6 +65,7 @@ require('../../apps/mobile/src/ui/vstack/index.cjs');
|
|
|
64
65
|
require('react-native-reanimated');
|
|
65
66
|
var style = require('../../apps/mobile/src/Factory/helpers/style.cjs');
|
|
66
67
|
require('../../apps/mobile/src/Factory/DimensionsContext.cjs');
|
|
68
|
+
require('../../apps/mobile/src/Factory/helpers/cssVarMap.cjs');
|
|
67
69
|
require('i18next');
|
|
68
70
|
require('react-i18next');
|
|
69
71
|
require('../../apps/mobile/src/Core/AutoComplete/index.cjs');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KitsThemeProvider.cjs","sources":["../../../../src/contexts/Theme/KitsThemeProvider.native.tsx"],"sourcesContent":["import React, {createContext, useCallback, useContext, useEffect, useMemo, useRef, useState} from 'react';\nimport type {ColorMode, IKitsTheme, IKitsThemeContextValues, INativeShadow, KitsThemeOverride} from '@lmb-it/kitsconcerto-types';\nimport {defaultTheme, deepMerge, resolveTokenValue, setActiveNativeShadows, shadowNative} from '@lmb-it/kitsconcerto-types';\nimport {useColorScheme} from 'react-native';\nimport {buildNativeColorMap} from './resolvers.native';\nimport {setActiveColorMap} from '@lmb-it/kitsconcertomobile';\n\nconst KitsThemeContext = createContext<IKitsThemeContextValues | null>(null);\n\n/** Context for the resolved native color map, consumed by style.ts */\nconst NativeColorMapContext = createContext<Record<string, string>>({});\n\nexport interface KitsThemeProviderProps {\n theme?: KitsThemeOverride;\n children: React.ReactNode;\n}\n\nexport function KitsThemeProvider({theme: themeOverride, children}: KitsThemeProviderProps) {\n const mergedTheme = useMemo(\n () => (themeOverride ? deepMerge(defaultTheme, themeOverride as Record<string, any>) as IKitsTheme : defaultTheme),\n [themeOverride],\n );\n\n const systemScheme = useColorScheme();\n const [colorMode, setColorMode] = useState<ColorMode>(mergedTheme.config.initialColorMode);\n const manualOverrideRef = useRef(false);\n\n const toggleColorMode = useCallback(() => {\n manualOverrideRef.current = true;\n setColorMode(m => (m === 'light' ? 'dark' : 'light'));\n }, []);\n\n const setColorModeManual = useCallback((mode: ColorMode) => {\n manualOverrideRef.current = true;\n setColorMode(mode);\n }, []);\n\n // System color mode detection\n useEffect(() => {\n if (mergedTheme.config.useSystemColorMode && systemScheme && !manualOverrideRef.current) {\n setColorMode(systemScheme);\n }\n }, [systemScheme, mergedTheme.config.useSystemColorMode]);\n\n // Build native color map and sync it to the style module\n const resolvedColorMap = useMemo(\n () => buildNativeColorMap(mergedTheme, colorMode),\n [mergedTheme, colorMode],\n );\n\n // Set synchronously during render so children have the correct color map\n // on their first render (useEffect would fire too late).\n setActiveColorMap(resolvedColorMap);\n\n // Publish the theme's native shadow scale (params per preset) so the\n // `shadow` style key and the `<Box shadow>` factory prop resolve to real\n // RN shadow props. Mirrors setActiveColorMap — synchronous during render.\n const resolvedNativeShadows = useMemo(() => {\n const out: Record<string, INativeShadow> = {};\n for (const [key, value] of Object.entries(mergedTheme.shadows)) {\n const native = shadowNative(value);\n if (native) out[key] = native;\n }\n return out;\n }, [mergedTheme]);\n setActiveNativeShadows(resolvedNativeShadows);\n\n const resolveToken = useCallback(\n (token: string) => resolveTokenValue(mergedTheme, colorMode, token, 'native'),\n [mergedTheme, colorMode],\n );\n\n const value = useMemo<IKitsThemeContextValues>(\n () => ({theme: mergedTheme, colorMode, toggleColorMode, setColorMode: setColorModeManual, resolveToken}),\n [mergedTheme, colorMode, toggleColorMode, setColorModeManual, resolveToken],\n );\n\n return (\n <KitsThemeContext.Provider value={value}>\n <NativeColorMapContext.Provider value={resolvedColorMap}>\n {children}\n </NativeColorMapContext.Provider>\n </KitsThemeContext.Provider>\n );\n}\n\nexport function useKitsTheme(): IKitsThemeContextValues {\n const ctx = useContext(KitsThemeContext);\n if (!ctx) {\n return {\n theme: defaultTheme,\n colorMode: 'light',\n toggleColorMode: () => {},\n setColorMode: () => {},\n resolveToken: (token: string) => resolveTokenValue(defaultTheme, 'light', token, 'native'),\n };\n }\n return ctx;\n}\n\n/** Returns the resolved native color map for use in style functions */\nexport function useNativeColorMap(): Record<string, string> {\n return useContext(NativeColorMapContext);\n}\n\nexport {KitsThemeContext, NativeColorMapContext};\n"],"names":["createContext","useMemo","deepMerge","defaultTheme","useColorScheme","useState","useRef","useCallback","useEffect","buildNativeColorMap","setActiveColorMap","value","shadowNative","setActiveNativeShadows","resolveTokenValue","jsx","useContext"],"mappings":"
|
|
1
|
+
{"version":3,"file":"KitsThemeProvider.cjs","sources":["../../../../src/contexts/Theme/KitsThemeProvider.native.tsx"],"sourcesContent":["import React, {createContext, useCallback, useContext, useEffect, useMemo, useRef, useState} from 'react';\nimport type {ColorMode, IKitsTheme, IKitsThemeContextValues, INativeShadow, KitsThemeOverride} from '@lmb-it/kitsconcerto-types';\nimport {defaultTheme, deepMerge, resolveTokenValue, setActiveNativeShadows, shadowNative} from '@lmb-it/kitsconcerto-types';\nimport {useColorScheme} from 'react-native';\nimport {buildNativeColorMap} from './resolvers.native';\nimport {setActiveColorMap} from '@lmb-it/kitsconcertomobile';\n\nconst KitsThemeContext = createContext<IKitsThemeContextValues | null>(null);\n\n/** Context for the resolved native color map, consumed by style.ts */\nconst NativeColorMapContext = createContext<Record<string, string>>({});\n\nexport interface KitsThemeProviderProps {\n theme?: KitsThemeOverride;\n children: React.ReactNode;\n}\n\nexport function KitsThemeProvider({theme: themeOverride, children}: KitsThemeProviderProps) {\n const mergedTheme = useMemo(\n () => (themeOverride ? deepMerge(defaultTheme, themeOverride as Record<string, any>) as IKitsTheme : defaultTheme),\n [themeOverride],\n );\n\n const systemScheme = useColorScheme();\n const [colorMode, setColorMode] = useState<ColorMode>(mergedTheme.config.initialColorMode);\n const manualOverrideRef = useRef(false);\n\n const toggleColorMode = useCallback(() => {\n manualOverrideRef.current = true;\n setColorMode(m => (m === 'light' ? 'dark' : 'light'));\n }, []);\n\n const setColorModeManual = useCallback((mode: ColorMode) => {\n manualOverrideRef.current = true;\n setColorMode(mode);\n }, []);\n\n // System color mode detection\n useEffect(() => {\n if (mergedTheme.config.useSystemColorMode && systemScheme && !manualOverrideRef.current) {\n setColorMode(systemScheme);\n }\n }, [systemScheme, mergedTheme.config.useSystemColorMode]);\n\n // Build native color map and sync it to the style module\n const resolvedColorMap = useMemo(\n () => buildNativeColorMap(mergedTheme, colorMode),\n [mergedTheme, colorMode],\n );\n\n // Set synchronously during render so children have the correct color map\n // on their first render (useEffect would fire too late).\n setActiveColorMap(resolvedColorMap);\n\n // Publish the theme's native shadow scale (params per preset) so the\n // `shadow` style key and the `<Box shadow>` factory prop resolve to real\n // RN shadow props. Mirrors setActiveColorMap — synchronous during render.\n const resolvedNativeShadows = useMemo(() => {\n const out: Record<string, INativeShadow> = {};\n for (const [key, value] of Object.entries(mergedTheme.shadows)) {\n const native = shadowNative(value);\n if (native) out[key] = native;\n }\n return out;\n }, [mergedTheme]);\n setActiveNativeShadows(resolvedNativeShadows);\n\n const resolveToken = useCallback(\n (token: string) => resolveTokenValue(mergedTheme, colorMode, token, 'native'),\n [mergedTheme, colorMode],\n );\n\n const value = useMemo<IKitsThemeContextValues>(\n () => ({theme: mergedTheme, colorMode, toggleColorMode, setColorMode: setColorModeManual, resolveToken}),\n [mergedTheme, colorMode, toggleColorMode, setColorModeManual, resolveToken],\n );\n\n return (\n <KitsThemeContext.Provider value={value}>\n <NativeColorMapContext.Provider value={resolvedColorMap}>\n {children}\n </NativeColorMapContext.Provider>\n </KitsThemeContext.Provider>\n );\n}\n\nexport function useKitsTheme(): IKitsThemeContextValues {\n const ctx = useContext(KitsThemeContext);\n if (!ctx) {\n return {\n theme: defaultTheme,\n colorMode: 'light',\n toggleColorMode: () => {},\n setColorMode: () => {},\n resolveToken: (token: string) => resolveTokenValue(defaultTheme, 'light', token, 'native'),\n };\n }\n return ctx;\n}\n\n/** Returns the resolved native color map for use in style functions */\nexport function useNativeColorMap(): Record<string, string> {\n return useContext(NativeColorMapContext);\n}\n\nexport {KitsThemeContext, NativeColorMapContext};\n"],"names":["createContext","useMemo","deepMerge","defaultTheme","useColorScheme","useState","useRef","useCallback","useEffect","buildNativeColorMap","setActiveColorMap","value","shadowNative","setActiveNativeShadows","resolveTokenValue","jsx","useContext"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,MAAM,gBAAA,GAAmBA,oBAA8C,IAAI;AAG3E,MAAM,qBAAA,GAAwBA,mBAAA,CAAsC,EAAE;AAO/D,SAAS,iBAAA,CAAkB,EAAC,KAAA,EAAO,aAAA,EAAe,UAAQ,EAA2B;AACxF,EAAA,MAAM,WAAA,GAAcC,aAAA;AAAA,IAChB,MAAO,aAAA,GAAgBC,qBAAA,CAAUC,yBAAA,EAAc,aAAoC,CAAA,GAAkBA,yBAAA;AAAA,IACrG,CAAC,aAAa;AAAA,GAClB;AAEA,EAAA,MAAM,eAAeC,0BAAA,EAAe;AACpC,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,IAAIC,cAAA,CAAoB,WAAA,CAAY,OAAO,gBAAgB,CAAA;AACzF,EAAA,MAAM,iBAAA,GAAoBC,aAAO,KAAK,CAAA;AAEtC,EAAA,MAAM,eAAA,GAAkBC,kBAAY,MAAM;AACtC,IAAA,iBAAA,CAAkB,OAAA,GAAU,IAAA;AAC5B,IAAA,YAAA,CAAa,CAAA,CAAA,KAAM,CAAA,KAAM,OAAA,GAAU,MAAA,GAAS,OAAQ,CAAA;AAAA,EACxD,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,MAAM,kBAAA,GAAqBA,iBAAA,CAAY,CAAC,IAAA,KAAoB;AACxD,IAAA,iBAAA,CAAkB,OAAA,GAAU,IAAA;AAC5B,IAAA,YAAA,CAAa,IAAI,CAAA;AAAA,EACrB,CAAA,EAAG,EAAE,CAAA;AAGL,EAAAC,eAAA,CAAU,MAAM;AACZ,IAAA,IAAI,YAAY,MAAA,CAAO,kBAAA,IAAsB,YAAA,IAAgB,CAAC,kBAAkB,OAAA,EAAS;AACrF,MAAA,YAAA,CAAa,YAAY,CAAA;AAAA,IAC7B;AAAA,EACJ,GAAG,CAAC,YAAA,EAAc,WAAA,CAAY,MAAA,CAAO,kBAAkB,CAAC,CAAA;AAGxD,EAAA,MAAM,gBAAA,GAAmBP,aAAA;AAAA,IACrB,MAAMQ,oCAAA,CAAoB,WAAA,EAAa,SAAS,CAAA;AAAA,IAChD,CAAC,aAAa,SAAS;AAAA,GAC3B;AAIA,EAAAC,uBAAA,CAAkB,gBAAgB,CAAA;AAKlC,EAAA,MAAM,qBAAA,GAAwBT,cAAQ,MAAM;AACxC,IAAA,MAAM,MAAqC,EAAC;AAC5C,IAAA,KAAA,MAAW,CAAC,KAAKU,MAAK,CAAA,IAAK,OAAO,OAAA,CAAQ,WAAA,CAAY,OAAO,CAAA,EAAG;AAC5D,MAAA,MAAM,MAAA,GAASC,qBAAaD,MAAK,CAAA;AACjC,MAAA,IAAI,MAAA,EAAQ,GAAA,CAAI,GAAG,CAAA,GAAI,MAAA;AAAA,IAC3B;AACA,IAAA,OAAO,GAAA;AAAA,EACX,CAAA,EAAG,CAAC,WAAW,CAAC,CAAA;AAChB,EAAAE,8BAAA,CAAuB,qBAAqB,CAAA;AAE5C,EAAA,MAAM,YAAA,GAAeN,iBAAA;AAAA,IACjB,CAAC,KAAA,KAAkBO,2BAAA,CAAkB,WAAA,EAAa,SAAA,EAAW,OAAO,QAAQ,CAAA;AAAA,IAC5E,CAAC,aAAa,SAAS;AAAA,GAC3B;AAEA,EAAA,MAAM,KAAA,GAAQb,aAAA;AAAA,IACV,OAAO,EAAC,KAAA,EAAO,WAAA,EAAa,WAAW,eAAA,EAAiB,YAAA,EAAc,oBAAoB,YAAA,EAAY,CAAA;AAAA,IACtG,CAAC,WAAA,EAAa,SAAA,EAAW,eAAA,EAAiB,oBAAoB,YAAY;AAAA,GAC9E;AAEA,EAAA,uBACIc,cAAA,CAAC,gBAAA,CAAiB,QAAA,EAAjB,EAA0B,KAAA,EACvB,QAAA,kBAAAA,cAAA,CAAC,qBAAA,CAAsB,QAAA,EAAtB,EAA+B,KAAA,EAAO,gBAAA,EAClC,QAAA,EACL,CAAA,EACJ,CAAA;AAER;AAEO,SAAS,YAAA,GAAwC;AACpD,EAAA,MAAM,GAAA,GAAMC,iBAAW,gBAAgB,CAAA;AACvC,EAAA,IAAI,CAAC,GAAA,EAAK;AACN,IAAA,OAAO;AAAA,MACH,KAAA,EAAOb,yBAAA;AAAA,MACP,SAAA,EAAW,OAAA;AAAA,MACX,iBAAiB,MAAM;AAAA,MAAC,CAAA;AAAA,MACxB,cAAc,MAAM;AAAA,MAAC,CAAA;AAAA,MACrB,cAAc,CAAC,KAAA,KAAkBW,4BAAkBX,yBAAA,EAAc,OAAA,EAAS,OAAO,QAAQ;AAAA,KAC7F;AAAA,EACJ;AACA,EAAA,OAAO,GAAA;AACX;AAGO,SAAS,iBAAA,GAA4C;AACxD,EAAA,OAAOa,iBAAW,qBAAqB,CAAA;AAC3C;;;;;;;;"}
|
|
@@ -10,6 +10,7 @@ import { shadowNative, setActiveNativeShadows } from '../../packages/types/src/T
|
|
|
10
10
|
import { defaultTheme } from '../../packages/types/src/Theme/defaultTheme.js';
|
|
11
11
|
import { deepMerge } from '../../packages/types/src/Theme/extendTheme.js';
|
|
12
12
|
import { resolveTokenValue } from '../../packages/types/src/Theme/resolvers.js';
|
|
13
|
+
import '../../packages/types/src/Theme/alphaColors.js';
|
|
13
14
|
import { useColorScheme } from 'react-native';
|
|
14
15
|
import { buildNativeColorMap } from './resolvers.js';
|
|
15
16
|
import '../../apps/mobile/src/ui/accordion/index.js';
|
|
@@ -62,6 +63,7 @@ import '../../apps/mobile/src/ui/vstack/index.js';
|
|
|
62
63
|
import 'react-native-reanimated';
|
|
63
64
|
import { setActiveColorMap } from '../../apps/mobile/src/Factory/helpers/style.js';
|
|
64
65
|
import '../../apps/mobile/src/Factory/DimensionsContext.js';
|
|
66
|
+
import '../../apps/mobile/src/Factory/helpers/cssVarMap.js';
|
|
65
67
|
import 'i18next';
|
|
66
68
|
import 'react-i18next';
|
|
67
69
|
import '../../apps/mobile/src/Core/AutoComplete/index.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KitsThemeProvider.js","sources":["../../../../src/contexts/Theme/KitsThemeProvider.native.tsx"],"sourcesContent":["import React, {createContext, useCallback, useContext, useEffect, useMemo, useRef, useState} from 'react';\nimport type {ColorMode, IKitsTheme, IKitsThemeContextValues, INativeShadow, KitsThemeOverride} from '@lmb-it/kitsconcerto-types';\nimport {defaultTheme, deepMerge, resolveTokenValue, setActiveNativeShadows, shadowNative} from '@lmb-it/kitsconcerto-types';\nimport {useColorScheme} from 'react-native';\nimport {buildNativeColorMap} from './resolvers.native';\nimport {setActiveColorMap} from '@lmb-it/kitsconcertomobile';\n\nconst KitsThemeContext = createContext<IKitsThemeContextValues | null>(null);\n\n/** Context for the resolved native color map, consumed by style.ts */\nconst NativeColorMapContext = createContext<Record<string, string>>({});\n\nexport interface KitsThemeProviderProps {\n theme?: KitsThemeOverride;\n children: React.ReactNode;\n}\n\nexport function KitsThemeProvider({theme: themeOverride, children}: KitsThemeProviderProps) {\n const mergedTheme = useMemo(\n () => (themeOverride ? deepMerge(defaultTheme, themeOverride as Record<string, any>) as IKitsTheme : defaultTheme),\n [themeOverride],\n );\n\n const systemScheme = useColorScheme();\n const [colorMode, setColorMode] = useState<ColorMode>(mergedTheme.config.initialColorMode);\n const manualOverrideRef = useRef(false);\n\n const toggleColorMode = useCallback(() => {\n manualOverrideRef.current = true;\n setColorMode(m => (m === 'light' ? 'dark' : 'light'));\n }, []);\n\n const setColorModeManual = useCallback((mode: ColorMode) => {\n manualOverrideRef.current = true;\n setColorMode(mode);\n }, []);\n\n // System color mode detection\n useEffect(() => {\n if (mergedTheme.config.useSystemColorMode && systemScheme && !manualOverrideRef.current) {\n setColorMode(systemScheme);\n }\n }, [systemScheme, mergedTheme.config.useSystemColorMode]);\n\n // Build native color map and sync it to the style module\n const resolvedColorMap = useMemo(\n () => buildNativeColorMap(mergedTheme, colorMode),\n [mergedTheme, colorMode],\n );\n\n // Set synchronously during render so children have the correct color map\n // on their first render (useEffect would fire too late).\n setActiveColorMap(resolvedColorMap);\n\n // Publish the theme's native shadow scale (params per preset) so the\n // `shadow` style key and the `<Box shadow>` factory prop resolve to real\n // RN shadow props. Mirrors setActiveColorMap — synchronous during render.\n const resolvedNativeShadows = useMemo(() => {\n const out: Record<string, INativeShadow> = {};\n for (const [key, value] of Object.entries(mergedTheme.shadows)) {\n const native = shadowNative(value);\n if (native) out[key] = native;\n }\n return out;\n }, [mergedTheme]);\n setActiveNativeShadows(resolvedNativeShadows);\n\n const resolveToken = useCallback(\n (token: string) => resolveTokenValue(mergedTheme, colorMode, token, 'native'),\n [mergedTheme, colorMode],\n );\n\n const value = useMemo<IKitsThemeContextValues>(\n () => ({theme: mergedTheme, colorMode, toggleColorMode, setColorMode: setColorModeManual, resolveToken}),\n [mergedTheme, colorMode, toggleColorMode, setColorModeManual, resolveToken],\n );\n\n return (\n <KitsThemeContext.Provider value={value}>\n <NativeColorMapContext.Provider value={resolvedColorMap}>\n {children}\n </NativeColorMapContext.Provider>\n </KitsThemeContext.Provider>\n );\n}\n\nexport function useKitsTheme(): IKitsThemeContextValues {\n const ctx = useContext(KitsThemeContext);\n if (!ctx) {\n return {\n theme: defaultTheme,\n colorMode: 'light',\n toggleColorMode: () => {},\n setColorMode: () => {},\n resolveToken: (token: string) => resolveTokenValue(defaultTheme, 'light', token, 'native'),\n };\n }\n return ctx;\n}\n\n/** Returns the resolved native color map for use in style functions */\nexport function useNativeColorMap(): Record<string, string> {\n return useContext(NativeColorMapContext);\n}\n\nexport {KitsThemeContext, NativeColorMapContext};\n"],"names":["value"],"mappings":"
|
|
1
|
+
{"version":3,"file":"KitsThemeProvider.js","sources":["../../../../src/contexts/Theme/KitsThemeProvider.native.tsx"],"sourcesContent":["import React, {createContext, useCallback, useContext, useEffect, useMemo, useRef, useState} from 'react';\nimport type {ColorMode, IKitsTheme, IKitsThemeContextValues, INativeShadow, KitsThemeOverride} from '@lmb-it/kitsconcerto-types';\nimport {defaultTheme, deepMerge, resolveTokenValue, setActiveNativeShadows, shadowNative} from '@lmb-it/kitsconcerto-types';\nimport {useColorScheme} from 'react-native';\nimport {buildNativeColorMap} from './resolvers.native';\nimport {setActiveColorMap} from '@lmb-it/kitsconcertomobile';\n\nconst KitsThemeContext = createContext<IKitsThemeContextValues | null>(null);\n\n/** Context for the resolved native color map, consumed by style.ts */\nconst NativeColorMapContext = createContext<Record<string, string>>({});\n\nexport interface KitsThemeProviderProps {\n theme?: KitsThemeOverride;\n children: React.ReactNode;\n}\n\nexport function KitsThemeProvider({theme: themeOverride, children}: KitsThemeProviderProps) {\n const mergedTheme = useMemo(\n () => (themeOverride ? deepMerge(defaultTheme, themeOverride as Record<string, any>) as IKitsTheme : defaultTheme),\n [themeOverride],\n );\n\n const systemScheme = useColorScheme();\n const [colorMode, setColorMode] = useState<ColorMode>(mergedTheme.config.initialColorMode);\n const manualOverrideRef = useRef(false);\n\n const toggleColorMode = useCallback(() => {\n manualOverrideRef.current = true;\n setColorMode(m => (m === 'light' ? 'dark' : 'light'));\n }, []);\n\n const setColorModeManual = useCallback((mode: ColorMode) => {\n manualOverrideRef.current = true;\n setColorMode(mode);\n }, []);\n\n // System color mode detection\n useEffect(() => {\n if (mergedTheme.config.useSystemColorMode && systemScheme && !manualOverrideRef.current) {\n setColorMode(systemScheme);\n }\n }, [systemScheme, mergedTheme.config.useSystemColorMode]);\n\n // Build native color map and sync it to the style module\n const resolvedColorMap = useMemo(\n () => buildNativeColorMap(mergedTheme, colorMode),\n [mergedTheme, colorMode],\n );\n\n // Set synchronously during render so children have the correct color map\n // on their first render (useEffect would fire too late).\n setActiveColorMap(resolvedColorMap);\n\n // Publish the theme's native shadow scale (params per preset) so the\n // `shadow` style key and the `<Box shadow>` factory prop resolve to real\n // RN shadow props. Mirrors setActiveColorMap — synchronous during render.\n const resolvedNativeShadows = useMemo(() => {\n const out: Record<string, INativeShadow> = {};\n for (const [key, value] of Object.entries(mergedTheme.shadows)) {\n const native = shadowNative(value);\n if (native) out[key] = native;\n }\n return out;\n }, [mergedTheme]);\n setActiveNativeShadows(resolvedNativeShadows);\n\n const resolveToken = useCallback(\n (token: string) => resolveTokenValue(mergedTheme, colorMode, token, 'native'),\n [mergedTheme, colorMode],\n );\n\n const value = useMemo<IKitsThemeContextValues>(\n () => ({theme: mergedTheme, colorMode, toggleColorMode, setColorMode: setColorModeManual, resolveToken}),\n [mergedTheme, colorMode, toggleColorMode, setColorModeManual, resolveToken],\n );\n\n return (\n <KitsThemeContext.Provider value={value}>\n <NativeColorMapContext.Provider value={resolvedColorMap}>\n {children}\n </NativeColorMapContext.Provider>\n </KitsThemeContext.Provider>\n );\n}\n\nexport function useKitsTheme(): IKitsThemeContextValues {\n const ctx = useContext(KitsThemeContext);\n if (!ctx) {\n return {\n theme: defaultTheme,\n colorMode: 'light',\n toggleColorMode: () => {},\n setColorMode: () => {},\n resolveToken: (token: string) => resolveTokenValue(defaultTheme, 'light', token, 'native'),\n };\n }\n return ctx;\n}\n\n/** Returns the resolved native color map for use in style functions */\nexport function useNativeColorMap(): Record<string, string> {\n return useContext(NativeColorMapContext);\n}\n\nexport {KitsThemeContext, NativeColorMapContext};\n"],"names":["value"],"mappings":"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"}
|
package/contexts/Theme/index.cjs
CHANGED
|
@@ -14,6 +14,7 @@ require('yup');
|
|
|
14
14
|
require('../../packages/types/src/Css/map/index.cjs');
|
|
15
15
|
require('../../packages/types/src/Theme/shadows.cjs');
|
|
16
16
|
require('../../packages/types/src/Theme/defaultTheme.cjs');
|
|
17
|
+
require('../../packages/types/src/Theme/alphaColors.cjs');
|
|
17
18
|
|
|
18
19
|
const ThemeContext = React.createContext({});
|
|
19
20
|
const ThemeContextProvider = ({ children, theme }) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../../../../src/contexts/Theme/index.native.tsx"],"sourcesContent":["import React, {createContext, type FC, type PropsWithChildren, useContext, useEffect, useState} from 'react';\nimport type {IThemeContextProps, IThemeContextValues} from '@lmb-it/kitsconcerto-types';\nimport {useColorScheme} from 'react-native';\n\nconst ThemeContext = createContext<IThemeContextValues>({} as IThemeContextValues);\n\nconst ThemeContextProvider: FC<PropsWithChildren<IThemeContextProps>> = ({children,theme }) => {\n const systemScheme = useColorScheme();\n const [selectedTheme, setTheme] = useState<'light' | 'dark'>(systemScheme ?? 'light');\n const [colorMode, setColorMode] = useState<any>();\n\n\n useEffect(() => {\n theme && setTheme(theme)\n }, [theme]);\n const switchTheme = (themeFile?: string) => {\n const newTheme = selectedTheme === 'dark' ? 'light' : 'dark';\n setTheme(newTheme);\n if (setColorMode) setColorMode(newTheme);\n };\n\n return (\n <ThemeContext.Provider value={{switchTheme, theme:selectedTheme}}>\n {children}\n </ThemeContext.Provider>\n );\n};\n\nexport default ThemeContextProvider;\nexport const useTheme = () => useContext(ThemeContext);\n\nexport {KitsThemeProvider, useKitsTheme, useNativeColorMap} from './KitsThemeProvider.native';\nexport {extendTheme, deepMerge} from './utils';\n"],"names":["createContext","useColorScheme","useState","useEffect","jsx","useContext"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../../src/contexts/Theme/index.native.tsx"],"sourcesContent":["import React, {createContext, type FC, type PropsWithChildren, useContext, useEffect, useState} from 'react';\nimport type {IThemeContextProps, IThemeContextValues} from '@lmb-it/kitsconcerto-types';\nimport {useColorScheme} from 'react-native';\n\nconst ThemeContext = createContext<IThemeContextValues>({} as IThemeContextValues);\n\nconst ThemeContextProvider: FC<PropsWithChildren<IThemeContextProps>> = ({children,theme }) => {\n const systemScheme = useColorScheme();\n const [selectedTheme, setTheme] = useState<'light' | 'dark'>(systemScheme ?? 'light');\n const [colorMode, setColorMode] = useState<any>();\n\n\n useEffect(() => {\n theme && setTheme(theme)\n }, [theme]);\n const switchTheme = (themeFile?: string) => {\n const newTheme = selectedTheme === 'dark' ? 'light' : 'dark';\n setTheme(newTheme);\n if (setColorMode) setColorMode(newTheme);\n };\n\n return (\n <ThemeContext.Provider value={{switchTheme, theme:selectedTheme}}>\n {children}\n </ThemeContext.Provider>\n );\n};\n\nexport default ThemeContextProvider;\nexport const useTheme = () => useContext(ThemeContext);\n\nexport {KitsThemeProvider, useKitsTheme, useNativeColorMap} from './KitsThemeProvider.native';\nexport {extendTheme, deepMerge} from './utils';\n"],"names":["createContext","useColorScheme","useState","useEffect","jsx","useContext"],"mappings":";;;;;;;;;;;;;;;;;;AAIA,MAAM,YAAA,GAAeA,mBAAA,CAAmC,EAAyB,CAAA;AAEjF,MAAM,oBAAA,GAAkE,CAAC,EAAC,QAAA,EAAS,OAAM,KAAM;AAC3F,EAAA,MAAM,eAAeC,0BAAA,EAAe;AACpC,EAAA,MAAM,CAAC,aAAA,EAAe,QAAQ,CAAA,GAAIC,cAAA,CAA2B,gBAAgB,OAAO,CAAA;AACpF,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAIA,cAAA,EAAc;AAGhD,EAAAC,eAAA,CAAU,MAAM;AACZ,IAAA,KAAA,IAAS,SAAS,KAAK,CAAA;AAAA,EAC3B,CAAA,EAAG,CAAC,KAAK,CAAC,CAAA;AACV,EAAA,MAAM,WAAA,GAAc,CAAC,SAAA,KAAuB;AACxC,IAAA,MAAM,QAAA,GAAW,aAAA,KAAkB,MAAA,GAAS,OAAA,GAAU,MAAA;AACtD,IAAA,QAAA,CAAS,QAAQ,CAAA;AACjB,IAAA,IAAI,YAAA,eAA2B,QAAQ,CAAA;AAAA,EAC3C,CAAA;AAEA,EAAA,uBACIC,cAAA,CAAC,YAAA,CAAa,QAAA,EAAb,EAAsB,KAAA,EAAO,EAAC,WAAA,EAAa,KAAA,EAAM,aAAA,EAAa,EAC1D,QAAA,EACL,CAAA;AAER;AAGO,MAAM,QAAA,GAAW,MAAMC,gBAAA,CAAW,YAAY;;;;;;;;"}
|
package/contexts/Theme/index.js
CHANGED
|
@@ -10,6 +10,7 @@ import 'yup';
|
|
|
10
10
|
import '../../packages/types/src/Css/map/index.js';
|
|
11
11
|
import '../../packages/types/src/Theme/shadows.js';
|
|
12
12
|
import '../../packages/types/src/Theme/defaultTheme.js';
|
|
13
|
+
import '../../packages/types/src/Theme/alphaColors.js';
|
|
13
14
|
|
|
14
15
|
const ThemeContext = createContext({});
|
|
15
16
|
const ThemeContextProvider = ({ children, theme }) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/contexts/Theme/index.native.tsx"],"sourcesContent":["import React, {createContext, type FC, type PropsWithChildren, useContext, useEffect, useState} from 'react';\nimport type {IThemeContextProps, IThemeContextValues} from '@lmb-it/kitsconcerto-types';\nimport {useColorScheme} from 'react-native';\n\nconst ThemeContext = createContext<IThemeContextValues>({} as IThemeContextValues);\n\nconst ThemeContextProvider: FC<PropsWithChildren<IThemeContextProps>> = ({children,theme }) => {\n const systemScheme = useColorScheme();\n const [selectedTheme, setTheme] = useState<'light' | 'dark'>(systemScheme ?? 'light');\n const [colorMode, setColorMode] = useState<any>();\n\n\n useEffect(() => {\n theme && setTheme(theme)\n }, [theme]);\n const switchTheme = (themeFile?: string) => {\n const newTheme = selectedTheme === 'dark' ? 'light' : 'dark';\n setTheme(newTheme);\n if (setColorMode) setColorMode(newTheme);\n };\n\n return (\n <ThemeContext.Provider value={{switchTheme, theme:selectedTheme}}>\n {children}\n </ThemeContext.Provider>\n );\n};\n\nexport default ThemeContextProvider;\nexport const useTheme = () => useContext(ThemeContext);\n\nexport {KitsThemeProvider, useKitsTheme, useNativeColorMap} from './KitsThemeProvider.native';\nexport {extendTheme, deepMerge} from './utils';\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/contexts/Theme/index.native.tsx"],"sourcesContent":["import React, {createContext, type FC, type PropsWithChildren, useContext, useEffect, useState} from 'react';\nimport type {IThemeContextProps, IThemeContextValues} from '@lmb-it/kitsconcerto-types';\nimport {useColorScheme} from 'react-native';\n\nconst ThemeContext = createContext<IThemeContextValues>({} as IThemeContextValues);\n\nconst ThemeContextProvider: FC<PropsWithChildren<IThemeContextProps>> = ({children,theme }) => {\n const systemScheme = useColorScheme();\n const [selectedTheme, setTheme] = useState<'light' | 'dark'>(systemScheme ?? 'light');\n const [colorMode, setColorMode] = useState<any>();\n\n\n useEffect(() => {\n theme && setTheme(theme)\n }, [theme]);\n const switchTheme = (themeFile?: string) => {\n const newTheme = selectedTheme === 'dark' ? 'light' : 'dark';\n setTheme(newTheme);\n if (setColorMode) setColorMode(newTheme);\n };\n\n return (\n <ThemeContext.Provider value={{switchTheme, theme:selectedTheme}}>\n {children}\n </ThemeContext.Provider>\n );\n};\n\nexport default ThemeContextProvider;\nexport const useTheme = () => useContext(ThemeContext);\n\nexport {KitsThemeProvider, useKitsTheme, useNativeColorMap} from './KitsThemeProvider.native';\nexport {extendTheme, deepMerge} from './utils';\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAIA,MAAM,YAAA,GAAe,aAAA,CAAmC,EAAyB,CAAA;AAEjF,MAAM,oBAAA,GAAkE,CAAC,EAAC,QAAA,EAAS,OAAM,KAAM;AAC3F,EAAA,MAAM,eAAe,cAAA,EAAe;AACpC,EAAA,MAAM,CAAC,aAAA,EAAe,QAAQ,CAAA,GAAI,QAAA,CAA2B,gBAAgB,OAAO,CAAA;AACpF,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAI,QAAA,EAAc;AAGhD,EAAA,SAAA,CAAU,MAAM;AACZ,IAAA,KAAA,IAAS,SAAS,KAAK,CAAA;AAAA,EAC3B,CAAA,EAAG,CAAC,KAAK,CAAC,CAAA;AACV,EAAA,MAAM,WAAA,GAAc,CAAC,SAAA,KAAuB;AACxC,IAAA,MAAM,QAAA,GAAW,aAAA,KAAkB,MAAA,GAAS,OAAA,GAAU,MAAA;AACtD,IAAA,QAAA,CAAS,QAAQ,CAAA;AACjB,IAAA,IAAI,YAAA,eAA2B,QAAQ,CAAA;AAAA,EAC3C,CAAA;AAEA,EAAA,uBACI,GAAA,CAAC,YAAA,CAAa,QAAA,EAAb,EAAsB,KAAA,EAAO,EAAC,WAAA,EAAa,KAAA,EAAM,aAAA,EAAa,EAC1D,QAAA,EACL,CAAA;AAER;AAGO,MAAM,QAAA,GAAW,MAAM,UAAA,CAAW,YAAY;;;;"}
|
|
@@ -9,6 +9,7 @@ require('../../packages/types/src/Css/map/index.cjs');
|
|
|
9
9
|
require('../../packages/types/src/Theme/shadows.cjs');
|
|
10
10
|
require('../../packages/types/src/Theme/defaultTheme.cjs');
|
|
11
11
|
var resolvers = require('../../packages/types/src/Theme/resolvers.cjs');
|
|
12
|
+
var alphaColors = require('../../packages/types/src/Theme/alphaColors.cjs');
|
|
12
13
|
|
|
13
14
|
function buildNativeColorMap(theme, colorMode) {
|
|
14
15
|
const map = {};
|
|
@@ -43,6 +44,9 @@ function buildNativeColorMap(theme, colorMode) {
|
|
|
43
44
|
if (typeof value !== "string") continue;
|
|
44
45
|
map[`--kits-font-${key}`] = value;
|
|
45
46
|
}
|
|
47
|
+
for (const [name, value] of Object.entries(alphaColors.ALPHA_COLOR_VARS)) {
|
|
48
|
+
map[name] = value;
|
|
49
|
+
}
|
|
46
50
|
map["--white"] = "#FFFFFF";
|
|
47
51
|
map["--black"] = "#000000";
|
|
48
52
|
map["--font-family"] = typeof theme.fonts.body === "string" ? theme.fonts.body : "System";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolvers.cjs","sources":["../../../../src/contexts/Theme/resolvers.native.ts"],"sourcesContent":["import type {ColorMode, ColorScale, IKitsTheme} from '@lmb-it/kitsconcerto-types';\nimport {resolveTokenValue} from '@lmb-it/kitsconcerto-types';\n\n/**\n * Builds a flat color map (CSS var name → hex) from the theme object.\n * This replaces the static CSS_VAR_MAP on native, making colors dynamic.\n */\nexport function buildNativeColorMap(theme: IKitsTheme, colorMode: ColorMode): Record<string, string> {\n const map: Record<string, string> = {};\n\n // All palette colors: --kits-{family}-{shade} and legacy --{family}-{shade}\n for (const [family, scale] of Object.entries(theme.colors)) {\n for (const [shade, hex] of Object.entries(scale as ColorScale)) {\n map[`--kits-${family}-${shade}`] = hex;\n map[`--${family}-${shade}`] = hex;\n }\n }\n\n // Semantic tokens resolved for current mode: --kits-{name}\n const semantics = theme.semanticTokens[colorMode];\n for (const [name, ref] of Object.entries(semantics)) {\n const hex = resolveTokenValue(theme, colorMode, ref, 'native');\n map[`--kits-${name}`] = hex;\n }\n\n // Legacy PrimeReact mappings\n map['--primary-color'] = resolveTokenValue(theme, colorMode, 'primary', 'native');\n map['--primary'] = map['--primary-color']!;\n map['--primary-reverse'] = colorMode === 'dark' ? theme.colors.gray[900] : '#FFFFFF';\n map['--text-color'] = resolveTokenValue(theme, colorMode, 'text', 'native');\n map['--text-color-secondary'] = resolveTokenValue(theme, colorMode, 'text-secondary', 'native');\n map['--surface-ground'] = resolveTokenValue(theme, colorMode, 'surface-ground', 'native');\n map['--surface-card'] = resolveTokenValue(theme, colorMode, 'surface-card', 'native');\n map['--surface-overlay'] = resolveTokenValue(theme, colorMode, 'surface-overlay', 'native');\n map['--surface-hover'] = resolveTokenValue(theme, colorMode, 'surface-hover', 'native');\n map['--surface-border'] = resolveTokenValue(theme, colorMode, 'border', 'native');\n\n // Surface numbered (gray scale)\n for (const [shade, hex] of Object.entries(theme.colors.gray)) {\n map[`--surface-${shade}`] = hex;\n }\n\n // Text numbered\n for (const [shade, hex] of Object.entries(theme.colors.gray)) {\n map[`--text-${shade}`] = hex;\n }\n\n // Font family tokens — required so `resolveThemeTokenForNative('$fonts.body')`\n // (used by KitsCoreInputField and any other native consumer that resolves\n // via the `$fonts.<key>` prefix syntax) returns the configured stack\n // instead of falling back to the literal token string.\n for (const [key, value] of Object.entries(theme.fonts)) {\n if (typeof value !== 'string') continue;\n map[`--kits-font-${key}`] = value;\n }\n\n // Special values\n map['--white'] = '#FFFFFF';\n map['--black'] = '#000000';\n // Legacy `--font-family` kept for backwards compat — now reflects\n // theme.fonts.body so RN consumers reading this still pick up the\n // configured app-wide font.\n map['--font-family'] = (typeof theme.fonts.body === 'string' ? theme.fonts.body : 'System');\n\n return map;\n}\n"],"names":["resolveTokenValue"],"mappings":"
|
|
1
|
+
{"version":3,"file":"resolvers.cjs","sources":["../../../../src/contexts/Theme/resolvers.native.ts"],"sourcesContent":["import type {ColorMode, ColorScale, IKitsTheme} from '@lmb-it/kitsconcerto-types';\nimport {ALPHA_COLOR_VARS, resolveTokenValue} from '@lmb-it/kitsconcerto-types';\n\n/**\n * Builds a flat color map (CSS var name → hex) from the theme object.\n * This replaces the static CSS_VAR_MAP on native, making colors dynamic.\n */\nexport function buildNativeColorMap(theme: IKitsTheme, colorMode: ColorMode): Record<string, string> {\n const map: Record<string, string> = {};\n\n // All palette colors: --kits-{family}-{shade} and legacy --{family}-{shade}\n for (const [family, scale] of Object.entries(theme.colors)) {\n for (const [shade, hex] of Object.entries(scale as ColorScale)) {\n map[`--kits-${family}-${shade}`] = hex;\n map[`--${family}-${shade}`] = hex;\n }\n }\n\n // Semantic tokens resolved for current mode: --kits-{name}\n const semantics = theme.semanticTokens[colorMode];\n for (const [name, ref] of Object.entries(semantics)) {\n const hex = resolveTokenValue(theme, colorMode, ref, 'native');\n map[`--kits-${name}`] = hex;\n }\n\n // Legacy PrimeReact mappings\n map['--primary-color'] = resolveTokenValue(theme, colorMode, 'primary', 'native');\n map['--primary'] = map['--primary-color']!;\n map['--primary-reverse'] = colorMode === 'dark' ? theme.colors.gray[900] : '#FFFFFF';\n map['--text-color'] = resolveTokenValue(theme, colorMode, 'text', 'native');\n map['--text-color-secondary'] = resolveTokenValue(theme, colorMode, 'text-secondary', 'native');\n map['--surface-ground'] = resolveTokenValue(theme, colorMode, 'surface-ground', 'native');\n map['--surface-card'] = resolveTokenValue(theme, colorMode, 'surface-card', 'native');\n map['--surface-overlay'] = resolveTokenValue(theme, colorMode, 'surface-overlay', 'native');\n map['--surface-hover'] = resolveTokenValue(theme, colorMode, 'surface-hover', 'native');\n map['--surface-border'] = resolveTokenValue(theme, colorMode, 'border', 'native');\n\n // Surface numbered (gray scale)\n for (const [shade, hex] of Object.entries(theme.colors.gray)) {\n map[`--surface-${shade}`] = hex;\n }\n\n // Text numbered\n for (const [shade, hex] of Object.entries(theme.colors.gray)) {\n map[`--text-${shade}`] = hex;\n }\n\n // Font family tokens — required so `resolveThemeTokenForNative('$fonts.body')`\n // (used by KitsCoreInputField and any other native consumer that resolves\n // via the `$fonts.<key>` prefix syntax) returns the configured stack\n // instead of falling back to the literal token string.\n for (const [key, value] of Object.entries(theme.fonts)) {\n if (typeof value !== 'string') continue;\n map[`--kits-font-${key}`] = value;\n }\n\n // Alpha overlay families (white-alpha-* / black-alpha-*). LITERAL —\n // written identically regardless of colorMode; overlay/scrim colors must\n // never invert. Single source of truth: ALPHA_COLOR_VARS in types.\n for (const [name, value] of Object.entries(ALPHA_COLOR_VARS)) {\n map[name] = value;\n }\n\n // Special values\n map['--white'] = '#FFFFFF';\n map['--black'] = '#000000';\n // Legacy `--font-family` kept for backwards compat — now reflects\n // theme.fonts.body so RN consumers reading this still pick up the\n // configured app-wide font.\n map['--font-family'] = (typeof theme.fonts.body === 'string' ? theme.fonts.body : 'System');\n\n return map;\n}\n"],"names":["resolveTokenValue","ALPHA_COLOR_VARS"],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@ import '../../packages/types/src/Css/map/index.js';
|
|
|
7
7
|
import '../../packages/types/src/Theme/shadows.js';
|
|
8
8
|
import '../../packages/types/src/Theme/defaultTheme.js';
|
|
9
9
|
import { resolveTokenValue } from '../../packages/types/src/Theme/resolvers.js';
|
|
10
|
+
import { ALPHA_COLOR_VARS } from '../../packages/types/src/Theme/alphaColors.js';
|
|
10
11
|
|
|
11
12
|
function buildNativeColorMap(theme, colorMode) {
|
|
12
13
|
const map = {};
|
|
@@ -41,6 +42,9 @@ function buildNativeColorMap(theme, colorMode) {
|
|
|
41
42
|
if (typeof value !== "string") continue;
|
|
42
43
|
map[`--kits-font-${key}`] = value;
|
|
43
44
|
}
|
|
45
|
+
for (const [name, value] of Object.entries(ALPHA_COLOR_VARS)) {
|
|
46
|
+
map[name] = value;
|
|
47
|
+
}
|
|
44
48
|
map["--white"] = "#FFFFFF";
|
|
45
49
|
map["--black"] = "#000000";
|
|
46
50
|
map["--font-family"] = typeof theme.fonts.body === "string" ? theme.fonts.body : "System";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolvers.js","sources":["../../../../src/contexts/Theme/resolvers.native.ts"],"sourcesContent":["import type {ColorMode, ColorScale, IKitsTheme} from '@lmb-it/kitsconcerto-types';\nimport {resolveTokenValue} from '@lmb-it/kitsconcerto-types';\n\n/**\n * Builds a flat color map (CSS var name → hex) from the theme object.\n * This replaces the static CSS_VAR_MAP on native, making colors dynamic.\n */\nexport function buildNativeColorMap(theme: IKitsTheme, colorMode: ColorMode): Record<string, string> {\n const map: Record<string, string> = {};\n\n // All palette colors: --kits-{family}-{shade} and legacy --{family}-{shade}\n for (const [family, scale] of Object.entries(theme.colors)) {\n for (const [shade, hex] of Object.entries(scale as ColorScale)) {\n map[`--kits-${family}-${shade}`] = hex;\n map[`--${family}-${shade}`] = hex;\n }\n }\n\n // Semantic tokens resolved for current mode: --kits-{name}\n const semantics = theme.semanticTokens[colorMode];\n for (const [name, ref] of Object.entries(semantics)) {\n const hex = resolveTokenValue(theme, colorMode, ref, 'native');\n map[`--kits-${name}`] = hex;\n }\n\n // Legacy PrimeReact mappings\n map['--primary-color'] = resolveTokenValue(theme, colorMode, 'primary', 'native');\n map['--primary'] = map['--primary-color']!;\n map['--primary-reverse'] = colorMode === 'dark' ? theme.colors.gray[900] : '#FFFFFF';\n map['--text-color'] = resolveTokenValue(theme, colorMode, 'text', 'native');\n map['--text-color-secondary'] = resolveTokenValue(theme, colorMode, 'text-secondary', 'native');\n map['--surface-ground'] = resolveTokenValue(theme, colorMode, 'surface-ground', 'native');\n map['--surface-card'] = resolveTokenValue(theme, colorMode, 'surface-card', 'native');\n map['--surface-overlay'] = resolveTokenValue(theme, colorMode, 'surface-overlay', 'native');\n map['--surface-hover'] = resolveTokenValue(theme, colorMode, 'surface-hover', 'native');\n map['--surface-border'] = resolveTokenValue(theme, colorMode, 'border', 'native');\n\n // Surface numbered (gray scale)\n for (const [shade, hex] of Object.entries(theme.colors.gray)) {\n map[`--surface-${shade}`] = hex;\n }\n\n // Text numbered\n for (const [shade, hex] of Object.entries(theme.colors.gray)) {\n map[`--text-${shade}`] = hex;\n }\n\n // Font family tokens — required so `resolveThemeTokenForNative('$fonts.body')`\n // (used by KitsCoreInputField and any other native consumer that resolves\n // via the `$fonts.<key>` prefix syntax) returns the configured stack\n // instead of falling back to the literal token string.\n for (const [key, value] of Object.entries(theme.fonts)) {\n if (typeof value !== 'string') continue;\n map[`--kits-font-${key}`] = value;\n }\n\n // Special values\n map['--white'] = '#FFFFFF';\n map['--black'] = '#000000';\n // Legacy `--font-family` kept for backwards compat — now reflects\n // theme.fonts.body so RN consumers reading this still pick up the\n // configured app-wide font.\n map['--font-family'] = (typeof theme.fonts.body === 'string' ? theme.fonts.body : 'System');\n\n return map;\n}\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"resolvers.js","sources":["../../../../src/contexts/Theme/resolvers.native.ts"],"sourcesContent":["import type {ColorMode, ColorScale, IKitsTheme} from '@lmb-it/kitsconcerto-types';\nimport {ALPHA_COLOR_VARS, resolveTokenValue} from '@lmb-it/kitsconcerto-types';\n\n/**\n * Builds a flat color map (CSS var name → hex) from the theme object.\n * This replaces the static CSS_VAR_MAP on native, making colors dynamic.\n */\nexport function buildNativeColorMap(theme: IKitsTheme, colorMode: ColorMode): Record<string, string> {\n const map: Record<string, string> = {};\n\n // All palette colors: --kits-{family}-{shade} and legacy --{family}-{shade}\n for (const [family, scale] of Object.entries(theme.colors)) {\n for (const [shade, hex] of Object.entries(scale as ColorScale)) {\n map[`--kits-${family}-${shade}`] = hex;\n map[`--${family}-${shade}`] = hex;\n }\n }\n\n // Semantic tokens resolved for current mode: --kits-{name}\n const semantics = theme.semanticTokens[colorMode];\n for (const [name, ref] of Object.entries(semantics)) {\n const hex = resolveTokenValue(theme, colorMode, ref, 'native');\n map[`--kits-${name}`] = hex;\n }\n\n // Legacy PrimeReact mappings\n map['--primary-color'] = resolveTokenValue(theme, colorMode, 'primary', 'native');\n map['--primary'] = map['--primary-color']!;\n map['--primary-reverse'] = colorMode === 'dark' ? theme.colors.gray[900] : '#FFFFFF';\n map['--text-color'] = resolveTokenValue(theme, colorMode, 'text', 'native');\n map['--text-color-secondary'] = resolveTokenValue(theme, colorMode, 'text-secondary', 'native');\n map['--surface-ground'] = resolveTokenValue(theme, colorMode, 'surface-ground', 'native');\n map['--surface-card'] = resolveTokenValue(theme, colorMode, 'surface-card', 'native');\n map['--surface-overlay'] = resolveTokenValue(theme, colorMode, 'surface-overlay', 'native');\n map['--surface-hover'] = resolveTokenValue(theme, colorMode, 'surface-hover', 'native');\n map['--surface-border'] = resolveTokenValue(theme, colorMode, 'border', 'native');\n\n // Surface numbered (gray scale)\n for (const [shade, hex] of Object.entries(theme.colors.gray)) {\n map[`--surface-${shade}`] = hex;\n }\n\n // Text numbered\n for (const [shade, hex] of Object.entries(theme.colors.gray)) {\n map[`--text-${shade}`] = hex;\n }\n\n // Font family tokens — required so `resolveThemeTokenForNative('$fonts.body')`\n // (used by KitsCoreInputField and any other native consumer that resolves\n // via the `$fonts.<key>` prefix syntax) returns the configured stack\n // instead of falling back to the literal token string.\n for (const [key, value] of Object.entries(theme.fonts)) {\n if (typeof value !== 'string') continue;\n map[`--kits-font-${key}`] = value;\n }\n\n // Alpha overlay families (white-alpha-* / black-alpha-*). LITERAL —\n // written identically regardless of colorMode; overlay/scrim colors must\n // never invert. Single source of truth: ALPHA_COLOR_VARS in types.\n for (const [name, value] of Object.entries(ALPHA_COLOR_VARS)) {\n map[name] = value;\n }\n\n // Special values\n map['--white'] = '#FFFFFF';\n map['--black'] = '#000000';\n // Legacy `--font-family` kept for backwards compat — now reflects\n // theme.fonts.body so RN consumers reading this still pick up the\n // configured app-wide font.\n map['--font-family'] = (typeof theme.fonts.body === 'string' ? theme.fonts.body : 'System');\n\n return map;\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -61,6 +61,8 @@ require('yup');
|
|
|
61
61
|
require('../../../packages/types/src/Css/map/index.cjs');
|
|
62
62
|
require('../../../packages/types/src/Theme/shadows.cjs');
|
|
63
63
|
require('../../../packages/types/src/Theme/defaultTheme.cjs');
|
|
64
|
+
require('../../../packages/types/src/Theme/alphaColors.cjs');
|
|
65
|
+
require('../../../apps/mobile/src/Factory/helpers/cssVarMap.cjs');
|
|
64
66
|
require('../../../apps/mobile/src/Factory/DimensionsContext.cjs');
|
|
65
67
|
require('i18next');
|
|
66
68
|
require('react-i18next');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../../../../../src/data/DataView/Pagination/index.native.tsx"],"sourcesContent":["import React from \"react\";\nimport {Paginator} from \"@lmb-it/kitsconcertomobile\";\nimport {useDataView} from \"../index\";\nimport {Box} from \"../../../_compat\";\n\nexport default function Pagination() {\n const { paginationParams } = useDataView();\n\n return (\n <Box className=\"card\">\n <Paginator\n first={paginationParams?.start}\n rows={paginationParams?.pageSize}\n totalRecords={paginationParams?.totalRecords}\n rowsPerPageOptions={[15, 25, 30, 50, 100]}\n onPageChange={(e) => paginationParams?.onChangePage(e)}\n />\n </Box>\n );\n}\n"],"names":["useDataView","jsx","Box","Paginator"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../../../src/data/DataView/Pagination/index.native.tsx"],"sourcesContent":["import React from \"react\";\nimport {Paginator} from \"@lmb-it/kitsconcertomobile\";\nimport {useDataView} from \"../index\";\nimport {Box} from \"../../../_compat\";\n\nexport default function Pagination() {\n const { paginationParams } = useDataView();\n\n return (\n <Box className=\"card\">\n <Paginator\n first={paginationParams?.start}\n rows={paginationParams?.pageSize}\n totalRecords={paginationParams?.totalRecords}\n rowsPerPageOptions={[15, 25, 30, 50, 100]}\n onPageChange={(e) => paginationParams?.onChangePage(e)}\n />\n </Box>\n );\n}\n"],"names":["useDataView","jsx","Box","Paginator"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,SAAwB,UAAA,GAAa;AACnC,EAAA,MAAM,EAAE,gBAAA,EAAiB,GAAIA,wBAAA,EAAY;AAEzC,EAAA,uBACEC,cAAA,CAACC,aAAA,EAAA,EAAI,SAAA,EAAU,MAAA,EACb,QAAA,kBAAAD,cAAA;AAAA,IAACE,iBAAA;AAAA,IAAA;AAAA,MACG,OAAO,gBAAA,EAAkB,KAAA;AAAA,MACzB,MAAM,gBAAA,EAAkB,QAAA;AAAA,MACxB,cAAc,gBAAA,EAAkB,YAAA;AAAA,MAChC,oBAAoB,CAAC,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,GAAG,CAAA;AAAA,MACxC,YAAA,EAAc,CAAC,CAAA,KAAM,gBAAA,EAAkB,aAAa,CAAC;AAAA;AAAA,GACzD,EACF,CAAA;AAEJ;;;;"}
|
|
@@ -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/data/DataView/Pagination/index.native.tsx"],"sourcesContent":["import React from \"react\";\nimport {Paginator} from \"@lmb-it/kitsconcertomobile\";\nimport {useDataView} from \"../index\";\nimport {Box} from \"../../../_compat\";\n\nexport default function Pagination() {\n const { paginationParams } = useDataView();\n\n return (\n <Box className=\"card\">\n <Paginator\n first={paginationParams?.start}\n rows={paginationParams?.pageSize}\n totalRecords={paginationParams?.totalRecords}\n rowsPerPageOptions={[15, 25, 30, 50, 100]}\n onPageChange={(e) => paginationParams?.onChangePage(e)}\n />\n </Box>\n );\n}\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/data/DataView/Pagination/index.native.tsx"],"sourcesContent":["import React from \"react\";\nimport {Paginator} from \"@lmb-it/kitsconcertomobile\";\nimport {useDataView} from \"../index\";\nimport {Box} from \"../../../_compat\";\n\nexport default function Pagination() {\n const { paginationParams } = useDataView();\n\n return (\n <Box className=\"card\">\n <Paginator\n first={paginationParams?.start}\n rows={paginationParams?.pageSize}\n totalRecords={paginationParams?.totalRecords}\n rowsPerPageOptions={[15, 25, 30, 50, 100]}\n onPageChange={(e) => paginationParams?.onChangePage(e)}\n />\n </Box>\n );\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,SAAwB,UAAA,GAAa;AACnC,EAAA,MAAM,EAAE,gBAAA,EAAiB,GAAI,WAAA,EAAY;AAEzC,EAAA,uBACE,GAAA,CAAC,GAAA,EAAA,EAAI,SAAA,EAAU,MAAA,EACb,QAAA,kBAAA,GAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACG,OAAO,gBAAA,EAAkB,KAAA;AAAA,MACzB,MAAM,gBAAA,EAAkB,QAAA;AAAA,MACxB,cAAc,gBAAA,EAAkB,YAAA;AAAA,MAChC,oBAAoB,CAAC,EAAA,EAAI,EAAA,EAAI,EAAA,EAAI,IAAI,GAAG,CAAA;AAAA,MACxC,YAAA,EAAc,CAAC,CAAA,KAAM,gBAAA,EAAkB,aAAa,CAAC;AAAA;AAAA,GACzD,EACF,CAAA;AAEJ;;;;"}
|
package/data/TreeView/index.cjs
CHANGED
|
@@ -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":"index.cjs","sources":["../../../../src/data/TreeView/index.native.tsx"],"sourcesContent":["import React, { useRef } from \"react\";\nimport { TreeView as Tree, type TreeRef } from \"@lmb-it/kitsconcertomobile\";\nimport { Flex, Text } from \"../../_compat\";\nimport type { ITreeViewProps } from \"@lmb-it/kitsconcerto-types\";\nimport { useTreeViewController } from \"./useTreeViewController\";\nimport TreeViewToolbar from \"./Toolbar\";\nimport { Pressable, View } from \"react-native\";\nimport {useKitsTheme} from \"../../contexts/Theme\";\n\nconst TreeView = <T = any,>(props: ITreeViewProps<T>) => {\n const {\n treeValue,\n selectedNode,\n filterValue,\n build,\n setFilterValue,\n expandAll,\n collapseAll,\n operations,\n treeProps,\n } = useTreeViewController(props);\n\n const {resolveToken} = useKitsTheme();\n const selectedBg = resolveToken('surface-hover');\n\n const {\n nodeTemplate,\n containerProps,\n hideSearchBox,\n hideDisabledButton,\n expendableControls,\n hideToolbar: propsHideToolbar,\n } = props;\n\n const treeRef = useRef<TreeRef>(null);\n\n const shouldHideToolbar =\n propsHideToolbar ||\n (!!hideSearchBox && !!hideDisabledButton && !expendableControls);\n\n return (\n <Flex\n id={\"tree-view\"}\n w={\"full\"}\n h={\"full\"}\n flexDirection={\"column\"}\n {...containerProps}\n >\n {!shouldHideToolbar && (\n <TreeViewToolbar\n props={props}\n filterValue={filterValue}\n setFilterValue={setFilterValue}\n treeRef={treeRef.current}\n selectedNode={selectedNode}\n expandAll={expandAll}\n collapseAll={collapseAll}\n onAddNode={operations.onAddNode}\n onAddNodeItem={operations.onAddNodeItem}\n onDeleteNode={operations.onDeleteNode}\n onEditNode={operations.onEditNode}\n build={build}\n />\n )}\n\n <Tree\n ref={treeRef}\n {...treeProps}\n filterValue={filterValue}\n filterMode={\"lenient\"}\n nodeTemplate={(node, options) => {\n const isSelected = node.key == selectedNode?.key;\n return (\n <Pressable\n onPress={() => {\n if (treeProps.onNodeClick) {\n treeProps.onNodeClick({\n node,\n originalEvent: {} as any,\n });\n }\n }}\n style={{\n flex: 1,\n flexDirection: \"row\",\n alignItems: \"center\",\n minHeight: 40,\n paddingHorizontal: 4,\n backgroundColor: isSelected\n ? selectedBg\n : \"transparent\",\n borderRadius: 4,\n }}\n >\n {!!nodeTemplate ? (\n nodeTemplate(node, options)\n ) : (\n <Text\n fontWeight={isSelected ? \"bold\" : \"normal\"}\n >\n {node.label}\n </Text>\n )}\n </Pressable>\n );\n }}\n />\n </Flex>\n );\n};\n\nexport default TreeView;\n"],"names":["useTreeViewController","useKitsTheme","useRef","jsxs","Flex","jsx","TreeViewToolbar","Tree","Pressable","Text"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../../src/data/TreeView/index.native.tsx"],"sourcesContent":["import React, { useRef } from \"react\";\nimport { TreeView as Tree, type TreeRef } from \"@lmb-it/kitsconcertomobile\";\nimport { Flex, Text } from \"../../_compat\";\nimport type { ITreeViewProps } from \"@lmb-it/kitsconcerto-types\";\nimport { useTreeViewController } from \"./useTreeViewController\";\nimport TreeViewToolbar from \"./Toolbar\";\nimport { Pressable, View } from \"react-native\";\nimport {useKitsTheme} from \"../../contexts/Theme\";\n\nconst TreeView = <T = any,>(props: ITreeViewProps<T>) => {\n const {\n treeValue,\n selectedNode,\n filterValue,\n build,\n setFilterValue,\n expandAll,\n collapseAll,\n operations,\n treeProps,\n } = useTreeViewController(props);\n\n const {resolveToken} = useKitsTheme();\n const selectedBg = resolveToken('surface-hover');\n\n const {\n nodeTemplate,\n containerProps,\n hideSearchBox,\n hideDisabledButton,\n expendableControls,\n hideToolbar: propsHideToolbar,\n } = props;\n\n const treeRef = useRef<TreeRef>(null);\n\n const shouldHideToolbar =\n propsHideToolbar ||\n (!!hideSearchBox && !!hideDisabledButton && !expendableControls);\n\n return (\n <Flex\n id={\"tree-view\"}\n w={\"full\"}\n h={\"full\"}\n flexDirection={\"column\"}\n {...containerProps}\n >\n {!shouldHideToolbar && (\n <TreeViewToolbar\n props={props}\n filterValue={filterValue}\n setFilterValue={setFilterValue}\n treeRef={treeRef.current}\n selectedNode={selectedNode}\n expandAll={expandAll}\n collapseAll={collapseAll}\n onAddNode={operations.onAddNode}\n onAddNodeItem={operations.onAddNodeItem}\n onDeleteNode={operations.onDeleteNode}\n onEditNode={operations.onEditNode}\n build={build}\n />\n )}\n\n <Tree\n ref={treeRef}\n {...treeProps}\n filterValue={filterValue}\n filterMode={\"lenient\"}\n nodeTemplate={(node, options) => {\n const isSelected = node.key == selectedNode?.key;\n return (\n <Pressable\n onPress={() => {\n if (treeProps.onNodeClick) {\n treeProps.onNodeClick({\n node,\n originalEvent: {} as any,\n });\n }\n }}\n style={{\n flex: 1,\n flexDirection: \"row\",\n alignItems: \"center\",\n minHeight: 40,\n paddingHorizontal: 4,\n backgroundColor: isSelected\n ? selectedBg\n : \"transparent\",\n borderRadius: 4,\n }}\n >\n {!!nodeTemplate ? (\n nodeTemplate(node, options)\n ) : (\n <Text\n fontWeight={isSelected ? \"bold\" : \"normal\"}\n >\n {node.label}\n </Text>\n )}\n </Pressable>\n );\n }}\n />\n </Flex>\n );\n};\n\nexport default TreeView;\n"],"names":["useTreeViewController","useKitsTheme","useRef","jsxs","Flex","jsx","TreeViewToolbar","Tree","Pressable","Text"],"mappings":"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"}
|
package/data/TreeView/index.js
CHANGED
|
@@ -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/data/TreeView/index.native.tsx"],"sourcesContent":["import React, { useRef } from \"react\";\nimport { TreeView as Tree, type TreeRef } from \"@lmb-it/kitsconcertomobile\";\nimport { Flex, Text } from \"../../_compat\";\nimport type { ITreeViewProps } from \"@lmb-it/kitsconcerto-types\";\nimport { useTreeViewController } from \"./useTreeViewController\";\nimport TreeViewToolbar from \"./Toolbar\";\nimport { Pressable, View } from \"react-native\";\nimport {useKitsTheme} from \"../../contexts/Theme\";\n\nconst TreeView = <T = any,>(props: ITreeViewProps<T>) => {\n const {\n treeValue,\n selectedNode,\n filterValue,\n build,\n setFilterValue,\n expandAll,\n collapseAll,\n operations,\n treeProps,\n } = useTreeViewController(props);\n\n const {resolveToken} = useKitsTheme();\n const selectedBg = resolveToken('surface-hover');\n\n const {\n nodeTemplate,\n containerProps,\n hideSearchBox,\n hideDisabledButton,\n expendableControls,\n hideToolbar: propsHideToolbar,\n } = props;\n\n const treeRef = useRef<TreeRef>(null);\n\n const shouldHideToolbar =\n propsHideToolbar ||\n (!!hideSearchBox && !!hideDisabledButton && !expendableControls);\n\n return (\n <Flex\n id={\"tree-view\"}\n w={\"full\"}\n h={\"full\"}\n flexDirection={\"column\"}\n {...containerProps}\n >\n {!shouldHideToolbar && (\n <TreeViewToolbar\n props={props}\n filterValue={filterValue}\n setFilterValue={setFilterValue}\n treeRef={treeRef.current}\n selectedNode={selectedNode}\n expandAll={expandAll}\n collapseAll={collapseAll}\n onAddNode={operations.onAddNode}\n onAddNodeItem={operations.onAddNodeItem}\n onDeleteNode={operations.onDeleteNode}\n onEditNode={operations.onEditNode}\n build={build}\n />\n )}\n\n <Tree\n ref={treeRef}\n {...treeProps}\n filterValue={filterValue}\n filterMode={\"lenient\"}\n nodeTemplate={(node, options) => {\n const isSelected = node.key == selectedNode?.key;\n return (\n <Pressable\n onPress={() => {\n if (treeProps.onNodeClick) {\n treeProps.onNodeClick({\n node,\n originalEvent: {} as any,\n });\n }\n }}\n style={{\n flex: 1,\n flexDirection: \"row\",\n alignItems: \"center\",\n minHeight: 40,\n paddingHorizontal: 4,\n backgroundColor: isSelected\n ? selectedBg\n : \"transparent\",\n borderRadius: 4,\n }}\n >\n {!!nodeTemplate ? (\n nodeTemplate(node, options)\n ) : (\n <Text\n fontWeight={isSelected ? \"bold\" : \"normal\"}\n >\n {node.label}\n </Text>\n )}\n </Pressable>\n );\n }}\n />\n </Flex>\n );\n};\n\nexport default TreeView;\n"],"names":["Tree"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/data/TreeView/index.native.tsx"],"sourcesContent":["import React, { useRef } from \"react\";\nimport { TreeView as Tree, type TreeRef } from \"@lmb-it/kitsconcertomobile\";\nimport { Flex, Text } from \"../../_compat\";\nimport type { ITreeViewProps } from \"@lmb-it/kitsconcerto-types\";\nimport { useTreeViewController } from \"./useTreeViewController\";\nimport TreeViewToolbar from \"./Toolbar\";\nimport { Pressable, View } from \"react-native\";\nimport {useKitsTheme} from \"../../contexts/Theme\";\n\nconst TreeView = <T = any,>(props: ITreeViewProps<T>) => {\n const {\n treeValue,\n selectedNode,\n filterValue,\n build,\n setFilterValue,\n expandAll,\n collapseAll,\n operations,\n treeProps,\n } = useTreeViewController(props);\n\n const {resolveToken} = useKitsTheme();\n const selectedBg = resolveToken('surface-hover');\n\n const {\n nodeTemplate,\n containerProps,\n hideSearchBox,\n hideDisabledButton,\n expendableControls,\n hideToolbar: propsHideToolbar,\n } = props;\n\n const treeRef = useRef<TreeRef>(null);\n\n const shouldHideToolbar =\n propsHideToolbar ||\n (!!hideSearchBox && !!hideDisabledButton && !expendableControls);\n\n return (\n <Flex\n id={\"tree-view\"}\n w={\"full\"}\n h={\"full\"}\n flexDirection={\"column\"}\n {...containerProps}\n >\n {!shouldHideToolbar && (\n <TreeViewToolbar\n props={props}\n filterValue={filterValue}\n setFilterValue={setFilterValue}\n treeRef={treeRef.current}\n selectedNode={selectedNode}\n expandAll={expandAll}\n collapseAll={collapseAll}\n onAddNode={operations.onAddNode}\n onAddNodeItem={operations.onAddNodeItem}\n onDeleteNode={operations.onDeleteNode}\n onEditNode={operations.onEditNode}\n build={build}\n />\n )}\n\n <Tree\n ref={treeRef}\n {...treeProps}\n filterValue={filterValue}\n filterMode={\"lenient\"}\n nodeTemplate={(node, options) => {\n const isSelected = node.key == selectedNode?.key;\n return (\n <Pressable\n onPress={() => {\n if (treeProps.onNodeClick) {\n treeProps.onNodeClick({\n node,\n originalEvent: {} as any,\n });\n }\n }}\n style={{\n flex: 1,\n flexDirection: \"row\",\n alignItems: \"center\",\n minHeight: 40,\n paddingHorizontal: 4,\n backgroundColor: isSelected\n ? selectedBg\n : \"transparent\",\n borderRadius: 4,\n }}\n >\n {!!nodeTemplate ? (\n nodeTemplate(node, options)\n ) : (\n <Text\n fontWeight={isSelected ? \"bold\" : \"normal\"}\n >\n {node.label}\n </Text>\n )}\n </Pressable>\n );\n }}\n />\n </Flex>\n );\n};\n\nexport default TreeView;\n"],"names":["Tree"],"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');
|