@lmb-it/kitsconcerto-native 0.1.243 → 0.1.244
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +19 -18
- package/components/overlay/Toast/index.cjs.map +1 -1
- package/components/overlay/Toast/index.js +22 -21
- 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 +32 -1
- 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
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":"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"}
|
|
@@ -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');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkbox.cjs","sources":["../../../../../src/form/controls/Checkbox/checkbox.native.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport type { IRadioCheckboxListItem } from \"@lmb-it/kitsconcerto-types\";\nimport { Flex, Text } from \"../../../_compat\";\nimport { Pressable } from \"react-native\";\nimport { CoreCheckboxIndicator } from \"@lmb-it/kitsconcertomobile\";\nimport { useKitsTheme } from \"../../../contexts/Theme\";\nimport { resolveStyleRecord, splitTextStyle } from \"../../../hooks/useResolvedStyle\";\n\ninterface CheckboxButtonProps<T> {\n item: IRadioCheckboxListItem<T>;\n selected: boolean;\n disabled?: boolean;\n isInvalid?: boolean;\n onToggle: () => void;\n /**\n * Pre-merged slot styles from KitsCheckbox (theme `Checkbox.item*` +\n * per-instance `slots.item*`). Unresolved IStyleClasses.\n */\n slotStyles?: {\n item?: Record<string, any>;\n itemSelected?: Record<string, any>;\n itemDisabled?: Record<string, any>;\n itemInvalid?: Record<string, any>;\n };\n}\n\nconst indicatorSize = (s?: string): 'sm' | 'md' | 'lg' => {\n switch (s) {\n case 'xs': case 'sm': return 'sm';\n case 'lg': case 'xl': return 'lg';\n default: return 'md';\n }\n};\n\nconst CheckboxButton = <T,>({\n item,\n selected,\n disabled,\n isInvalid,\n onToggle,\n slotStyles,\n}: CheckboxButtonProps<T>) => {\n const { resolveToken } = useKitsTheme();\n const primaryColor = resolveToken('primary');\n const borderColor = resolveToken('gray.300');\n\n /* Per-item style (slotStyles + item.style*), token-resolved.\n slotStyles is pre-merged at KitsCheckbox level\n (FormElement < Checkbox.item < per-instance slots.item). */\n const resolvedItemStyle = useMemo(() => {\n const merged: Record<string, any> = {\n ...(slotStyles?.item || {}),\n ...(selected ? slotStyles?.itemSelected : null),\n ...(disabled ? slotStyles?.itemDisabled : null),\n ...(isInvalid ? slotStyles?.itemInvalid : null),\n ...(item.w != null && !(item.style && (item.style as any).w != null) && !(item.style && (item.style as any).width != null)\n ? { width: item.w }\n : null),\n ...(item.style || {}),\n ...(selected ? item.styleSelected : null),\n ...(disabled ? item.styleDisabled : null),\n ...(isInvalid ? item.styleInvalid : null),\n };\n return resolveStyleRecord(merged, resolveToken);\n }, [slotStyles, selected, disabled, isInvalid, item.style, item.styleSelected, item.styleDisabled, item.styleInvalid, item.w, resolveToken]);\n\n // Route text props to inner Text, layout props to outer wrapper.\n // No size default — `style.flex` / `style.width` flow through directly.\n const { wrapper: wrapperStyle, text: textStyle } = useMemo(\n () => splitTextStyle(resolvedItemStyle),\n [resolvedItemStyle],\n );\n\n const sizes: Record<string, number> = {\n xs: 13, sm: 17, md: 22, lg: 27, xl: 30,\n };\n\n const paddings: Record<string, [number, number]> = {\n xs: [1, 3], sm: [2, 5], md: [3, 7], lg: [4, 9], xl: [5, 13],\n };\n\n const size = item.size ? sizes[item.size] : sizes.xs;\n const padding = item.size ? paddings[item.size] : paddings.xs;\n\n /* ---- Label positioning (mirrors web) ---- */\n const leftLabel = item.labelPosition === \"left\";\n const bottomLabel = item.labelPosition === \"bottom\";\n const topLabel = item.labelPosition === \"top\";\n\n const direction =\n leftLabel ? \"row-reverse\" :\n bottomLabel ? \"column\" :\n topLabel ? \"column-reverse\" :\n \"row\";\n\n /* ---- Button mode style (mirrors web checked-option) ---- */\n const containerStyle = useMemo(() => ({\n opacity: disabled ? 40 : 100,\n borderWidth: item.component ? 0 : 1,\n borderRadius: item.component ? 0 : 8,\n borderColor: selected ? primaryColor : borderColor,\n backgroundColor: selected ? primaryColor : 'transparent',\n paddingHorizontal: item.component ? 0 : padding?.[1],\n paddingVertical: item.component ? 0 : padding?.[0],\n }), [disabled, selected, item.component, padding]);\n\n /* ---- Content: custom component or label text ---- */\n const renderContent = () => {\n if (item.component) {\n return typeof item.component === \"function\"\n ? item.component({ selected, value: item.value, isInvalid: !!isInvalid })\n : item.component;\n }\n // Default selected-button color (white on primary fill) kept,\n // but user-supplied text props override it via spread style.\n const defaultColor = selected && !item.withBulbs ? '#fff' : undefined;\n return (\n <Text\n fontSize={size}\n fontColor={defaultColor}\n m={0}\n style={textStyle}\n >\n {item.label}\n </Text>\n );\n };\n\n /* ---- Bulb: custom checkbox indicator + content (mirrors web PrimeCheckbox + renderContent) ---- */\n const renderBulb = () => (\n <Pressable\n onPress={() => { if (!disabled) onToggle(); }}\n disabled={disabled}\n >\n <Flex alignItems=\"center\" gap={6} flexDirection={direction}>\n <CoreCheckboxIndicator\n checked={selected}\n disabled={disabled}\n invalid={isInvalid}\n checkedBackgroundColor={primaryColor}\n checkedBorderColor={primaryColor}\n size={indicatorSize(item.size)}\n />\n {renderContent()}\n </Flex>\n </Pressable>\n );\n\n /* ---- Component: custom component + label (mirrors web renderComponent) ---- */\n const renderComponent = () => (\n <Pressable\n onPress={() => { if (!disabled) onToggle(); }}\n disabled={disabled}\n >\n <Flex flexDirection={direction} alignItems=\"center\" gap={4}>\n {renderContent()}\n {!!item.label && <Text>{item.label}</Text>}\n </Flex>\n </Pressable>\n );\n\n\n // BUTTON mode: collapse to a single layer — Pressable IS the styled\n // pill. wrapperStyle wins over containerStyle (later in RN array).\n if (!item.withBulbs && !item.component) {\n return (\n <Pressable\n onPress={() => { if (!disabled) onToggle(); }}\n disabled={disabled}\n style={[containerStyle, wrapperStyle]}\n >\n {renderContent()}\n </Pressable>\n );\n }\n\n // BULB / COMPONENT modes keep the nested structure.\n return (\n <Flex\n pointerEvents={disabled ? \"none\" : \"auto\"}\n style={wrapperStyle}\n alignItems=\"flex-start\"\n >\n {item.withBulbs ? renderBulb() : renderComponent()}\n </Flex>\n );\n};\n\nexport default CheckboxButton;\n"],"names":["useKitsTheme","useMemo","resolveStyleRecord","splitTextStyle","jsx","Text","Pressable","Flex","CoreCheckboxIndicator"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"checkbox.cjs","sources":["../../../../../src/form/controls/Checkbox/checkbox.native.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport type { IRadioCheckboxListItem } from \"@lmb-it/kitsconcerto-types\";\nimport { Flex, Text } from \"../../../_compat\";\nimport { Pressable } from \"react-native\";\nimport { CoreCheckboxIndicator } from \"@lmb-it/kitsconcertomobile\";\nimport { useKitsTheme } from \"../../../contexts/Theme\";\nimport { resolveStyleRecord, splitTextStyle } from \"../../../hooks/useResolvedStyle\";\n\ninterface CheckboxButtonProps<T> {\n item: IRadioCheckboxListItem<T>;\n selected: boolean;\n disabled?: boolean;\n isInvalid?: boolean;\n onToggle: () => void;\n /**\n * Pre-merged slot styles from KitsCheckbox (theme `Checkbox.item*` +\n * per-instance `slots.item*`). Unresolved IStyleClasses.\n */\n slotStyles?: {\n item?: Record<string, any>;\n itemSelected?: Record<string, any>;\n itemDisabled?: Record<string, any>;\n itemInvalid?: Record<string, any>;\n };\n}\n\nconst indicatorSize = (s?: string): 'sm' | 'md' | 'lg' => {\n switch (s) {\n case 'xs': case 'sm': return 'sm';\n case 'lg': case 'xl': return 'lg';\n default: return 'md';\n }\n};\n\nconst CheckboxButton = <T,>({\n item,\n selected,\n disabled,\n isInvalid,\n onToggle,\n slotStyles,\n}: CheckboxButtonProps<T>) => {\n const { resolveToken } = useKitsTheme();\n const primaryColor = resolveToken('primary');\n const borderColor = resolveToken('gray.300');\n\n /* Per-item style (slotStyles + item.style*), token-resolved.\n slotStyles is pre-merged at KitsCheckbox level\n (FormElement < Checkbox.item < per-instance slots.item). */\n const resolvedItemStyle = useMemo(() => {\n const merged: Record<string, any> = {\n ...(slotStyles?.item || {}),\n ...(selected ? slotStyles?.itemSelected : null),\n ...(disabled ? slotStyles?.itemDisabled : null),\n ...(isInvalid ? slotStyles?.itemInvalid : null),\n ...(item.w != null && !(item.style && (item.style as any).w != null) && !(item.style && (item.style as any).width != null)\n ? { width: item.w }\n : null),\n ...(item.style || {}),\n ...(selected ? item.styleSelected : null),\n ...(disabled ? item.styleDisabled : null),\n ...(isInvalid ? item.styleInvalid : null),\n };\n return resolveStyleRecord(merged, resolveToken);\n }, [slotStyles, selected, disabled, isInvalid, item.style, item.styleSelected, item.styleDisabled, item.styleInvalid, item.w, resolveToken]);\n\n // Route text props to inner Text, layout props to outer wrapper.\n // No size default — `style.flex` / `style.width` flow through directly.\n const { wrapper: wrapperStyle, text: textStyle } = useMemo(\n () => splitTextStyle(resolvedItemStyle),\n [resolvedItemStyle],\n );\n\n const sizes: Record<string, number> = {\n xs: 13, sm: 17, md: 22, lg: 27, xl: 30,\n };\n\n const paddings: Record<string, [number, number]> = {\n xs: [1, 3], sm: [2, 5], md: [3, 7], lg: [4, 9], xl: [5, 13],\n };\n\n const size = item.size ? sizes[item.size] : sizes.xs;\n const padding = item.size ? paddings[item.size] : paddings.xs;\n\n /* ---- Label positioning (mirrors web) ---- */\n const leftLabel = item.labelPosition === \"left\";\n const bottomLabel = item.labelPosition === \"bottom\";\n const topLabel = item.labelPosition === \"top\";\n\n const direction =\n leftLabel ? \"row-reverse\" :\n bottomLabel ? \"column\" :\n topLabel ? \"column-reverse\" :\n \"row\";\n\n /* ---- Button mode style (mirrors web checked-option) ---- */\n const containerStyle = useMemo(() => ({\n opacity: disabled ? 40 : 100,\n borderWidth: item.component ? 0 : 1,\n borderRadius: item.component ? 0 : 8,\n borderColor: selected ? primaryColor : borderColor,\n backgroundColor: selected ? primaryColor : 'transparent',\n paddingHorizontal: item.component ? 0 : padding?.[1],\n paddingVertical: item.component ? 0 : padding?.[0],\n }), [disabled, selected, item.component, padding]);\n\n /* ---- Content: custom component or label text ---- */\n const renderContent = () => {\n if (item.component) {\n return typeof item.component === \"function\"\n ? item.component({ selected, value: item.value, isInvalid: !!isInvalid })\n : item.component;\n }\n // Default selected-button color (white on primary fill) kept,\n // but user-supplied text props override it via spread style.\n const defaultColor = selected && !item.withBulbs ? '#fff' : undefined;\n return (\n <Text\n fontSize={size}\n fontColor={defaultColor}\n m={0}\n style={textStyle}\n >\n {item.label}\n </Text>\n );\n };\n\n /* ---- Bulb: custom checkbox indicator + content (mirrors web PrimeCheckbox + renderContent) ---- */\n const renderBulb = () => (\n <Pressable\n onPress={() => { if (!disabled) onToggle(); }}\n disabled={disabled}\n >\n <Flex alignItems=\"center\" gap={6} flexDirection={direction}>\n <CoreCheckboxIndicator\n checked={selected}\n disabled={disabled}\n invalid={isInvalid}\n checkedBackgroundColor={primaryColor}\n checkedBorderColor={primaryColor}\n size={indicatorSize(item.size)}\n />\n {renderContent()}\n </Flex>\n </Pressable>\n );\n\n /* ---- Component: custom component + label (mirrors web renderComponent) ---- */\n const renderComponent = () => (\n <Pressable\n onPress={() => { if (!disabled) onToggle(); }}\n disabled={disabled}\n >\n <Flex flexDirection={direction} alignItems=\"center\" gap={4}>\n {renderContent()}\n {!!item.label && <Text>{item.label}</Text>}\n </Flex>\n </Pressable>\n );\n\n\n // BUTTON mode: collapse to a single layer — Pressable IS the styled\n // pill. wrapperStyle wins over containerStyle (later in RN array).\n if (!item.withBulbs && !item.component) {\n return (\n <Pressable\n onPress={() => { if (!disabled) onToggle(); }}\n disabled={disabled}\n style={[containerStyle, wrapperStyle]}\n >\n {renderContent()}\n </Pressable>\n );\n }\n\n // BULB / COMPONENT modes keep the nested structure.\n return (\n <Flex\n pointerEvents={disabled ? \"none\" : \"auto\"}\n style={wrapperStyle}\n alignItems=\"flex-start\"\n >\n {item.withBulbs ? renderBulb() : renderComponent()}\n </Flex>\n );\n};\n\nexport default CheckboxButton;\n"],"names":["useKitsTheme","useMemo","resolveStyleRecord","splitTextStyle","jsx","Text","Pressable","Flex","CoreCheckboxIndicator"],"mappings":"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"}
|
|
@@ -57,6 +57,8 @@ import 'yup';
|
|
|
57
57
|
import '../../../packages/types/src/Css/map/index.js';
|
|
58
58
|
import '../../../packages/types/src/Theme/shadows.js';
|
|
59
59
|
import '../../../packages/types/src/Theme/defaultTheme.js';
|
|
60
|
+
import '../../../packages/types/src/Theme/alphaColors.js';
|
|
61
|
+
import '../../../apps/mobile/src/Factory/helpers/cssVarMap.js';
|
|
60
62
|
import '../../../apps/mobile/src/Factory/DimensionsContext.js';
|
|
61
63
|
import 'i18next';
|
|
62
64
|
import 'react-i18next';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkbox.js","sources":["../../../../../src/form/controls/Checkbox/checkbox.native.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport type { IRadioCheckboxListItem } from \"@lmb-it/kitsconcerto-types\";\nimport { Flex, Text } from \"../../../_compat\";\nimport { Pressable } from \"react-native\";\nimport { CoreCheckboxIndicator } from \"@lmb-it/kitsconcertomobile\";\nimport { useKitsTheme } from \"../../../contexts/Theme\";\nimport { resolveStyleRecord, splitTextStyle } from \"../../../hooks/useResolvedStyle\";\n\ninterface CheckboxButtonProps<T> {\n item: IRadioCheckboxListItem<T>;\n selected: boolean;\n disabled?: boolean;\n isInvalid?: boolean;\n onToggle: () => void;\n /**\n * Pre-merged slot styles from KitsCheckbox (theme `Checkbox.item*` +\n * per-instance `slots.item*`). Unresolved IStyleClasses.\n */\n slotStyles?: {\n item?: Record<string, any>;\n itemSelected?: Record<string, any>;\n itemDisabled?: Record<string, any>;\n itemInvalid?: Record<string, any>;\n };\n}\n\nconst indicatorSize = (s?: string): 'sm' | 'md' | 'lg' => {\n switch (s) {\n case 'xs': case 'sm': return 'sm';\n case 'lg': case 'xl': return 'lg';\n default: return 'md';\n }\n};\n\nconst CheckboxButton = <T,>({\n item,\n selected,\n disabled,\n isInvalid,\n onToggle,\n slotStyles,\n}: CheckboxButtonProps<T>) => {\n const { resolveToken } = useKitsTheme();\n const primaryColor = resolveToken('primary');\n const borderColor = resolveToken('gray.300');\n\n /* Per-item style (slotStyles + item.style*), token-resolved.\n slotStyles is pre-merged at KitsCheckbox level\n (FormElement < Checkbox.item < per-instance slots.item). */\n const resolvedItemStyle = useMemo(() => {\n const merged: Record<string, any> = {\n ...(slotStyles?.item || {}),\n ...(selected ? slotStyles?.itemSelected : null),\n ...(disabled ? slotStyles?.itemDisabled : null),\n ...(isInvalid ? slotStyles?.itemInvalid : null),\n ...(item.w != null && !(item.style && (item.style as any).w != null) && !(item.style && (item.style as any).width != null)\n ? { width: item.w }\n : null),\n ...(item.style || {}),\n ...(selected ? item.styleSelected : null),\n ...(disabled ? item.styleDisabled : null),\n ...(isInvalid ? item.styleInvalid : null),\n };\n return resolveStyleRecord(merged, resolveToken);\n }, [slotStyles, selected, disabled, isInvalid, item.style, item.styleSelected, item.styleDisabled, item.styleInvalid, item.w, resolveToken]);\n\n // Route text props to inner Text, layout props to outer wrapper.\n // No size default — `style.flex` / `style.width` flow through directly.\n const { wrapper: wrapperStyle, text: textStyle } = useMemo(\n () => splitTextStyle(resolvedItemStyle),\n [resolvedItemStyle],\n );\n\n const sizes: Record<string, number> = {\n xs: 13, sm: 17, md: 22, lg: 27, xl: 30,\n };\n\n const paddings: Record<string, [number, number]> = {\n xs: [1, 3], sm: [2, 5], md: [3, 7], lg: [4, 9], xl: [5, 13],\n };\n\n const size = item.size ? sizes[item.size] : sizes.xs;\n const padding = item.size ? paddings[item.size] : paddings.xs;\n\n /* ---- Label positioning (mirrors web) ---- */\n const leftLabel = item.labelPosition === \"left\";\n const bottomLabel = item.labelPosition === \"bottom\";\n const topLabel = item.labelPosition === \"top\";\n\n const direction =\n leftLabel ? \"row-reverse\" :\n bottomLabel ? \"column\" :\n topLabel ? \"column-reverse\" :\n \"row\";\n\n /* ---- Button mode style (mirrors web checked-option) ---- */\n const containerStyle = useMemo(() => ({\n opacity: disabled ? 40 : 100,\n borderWidth: item.component ? 0 : 1,\n borderRadius: item.component ? 0 : 8,\n borderColor: selected ? primaryColor : borderColor,\n backgroundColor: selected ? primaryColor : 'transparent',\n paddingHorizontal: item.component ? 0 : padding?.[1],\n paddingVertical: item.component ? 0 : padding?.[0],\n }), [disabled, selected, item.component, padding]);\n\n /* ---- Content: custom component or label text ---- */\n const renderContent = () => {\n if (item.component) {\n return typeof item.component === \"function\"\n ? item.component({ selected, value: item.value, isInvalid: !!isInvalid })\n : item.component;\n }\n // Default selected-button color (white on primary fill) kept,\n // but user-supplied text props override it via spread style.\n const defaultColor = selected && !item.withBulbs ? '#fff' : undefined;\n return (\n <Text\n fontSize={size}\n fontColor={defaultColor}\n m={0}\n style={textStyle}\n >\n {item.label}\n </Text>\n );\n };\n\n /* ---- Bulb: custom checkbox indicator + content (mirrors web PrimeCheckbox + renderContent) ---- */\n const renderBulb = () => (\n <Pressable\n onPress={() => { if (!disabled) onToggle(); }}\n disabled={disabled}\n >\n <Flex alignItems=\"center\" gap={6} flexDirection={direction}>\n <CoreCheckboxIndicator\n checked={selected}\n disabled={disabled}\n invalid={isInvalid}\n checkedBackgroundColor={primaryColor}\n checkedBorderColor={primaryColor}\n size={indicatorSize(item.size)}\n />\n {renderContent()}\n </Flex>\n </Pressable>\n );\n\n /* ---- Component: custom component + label (mirrors web renderComponent) ---- */\n const renderComponent = () => (\n <Pressable\n onPress={() => { if (!disabled) onToggle(); }}\n disabled={disabled}\n >\n <Flex flexDirection={direction} alignItems=\"center\" gap={4}>\n {renderContent()}\n {!!item.label && <Text>{item.label}</Text>}\n </Flex>\n </Pressable>\n );\n\n\n // BUTTON mode: collapse to a single layer — Pressable IS the styled\n // pill. wrapperStyle wins over containerStyle (later in RN array).\n if (!item.withBulbs && !item.component) {\n return (\n <Pressable\n onPress={() => { if (!disabled) onToggle(); }}\n disabled={disabled}\n style={[containerStyle, wrapperStyle]}\n >\n {renderContent()}\n </Pressable>\n );\n }\n\n // BULB / COMPONENT modes keep the nested structure.\n return (\n <Flex\n pointerEvents={disabled ? \"none\" : \"auto\"}\n style={wrapperStyle}\n alignItems=\"flex-start\"\n >\n {item.withBulbs ? renderBulb() : renderComponent()}\n </Flex>\n );\n};\n\nexport default CheckboxButton;\n"],"names":["CoreCheckboxIndicator"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"checkbox.js","sources":["../../../../../src/form/controls/Checkbox/checkbox.native.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport type { IRadioCheckboxListItem } from \"@lmb-it/kitsconcerto-types\";\nimport { Flex, Text } from \"../../../_compat\";\nimport { Pressable } from \"react-native\";\nimport { CoreCheckboxIndicator } from \"@lmb-it/kitsconcertomobile\";\nimport { useKitsTheme } from \"../../../contexts/Theme\";\nimport { resolveStyleRecord, splitTextStyle } from \"../../../hooks/useResolvedStyle\";\n\ninterface CheckboxButtonProps<T> {\n item: IRadioCheckboxListItem<T>;\n selected: boolean;\n disabled?: boolean;\n isInvalid?: boolean;\n onToggle: () => void;\n /**\n * Pre-merged slot styles from KitsCheckbox (theme `Checkbox.item*` +\n * per-instance `slots.item*`). Unresolved IStyleClasses.\n */\n slotStyles?: {\n item?: Record<string, any>;\n itemSelected?: Record<string, any>;\n itemDisabled?: Record<string, any>;\n itemInvalid?: Record<string, any>;\n };\n}\n\nconst indicatorSize = (s?: string): 'sm' | 'md' | 'lg' => {\n switch (s) {\n case 'xs': case 'sm': return 'sm';\n case 'lg': case 'xl': return 'lg';\n default: return 'md';\n }\n};\n\nconst CheckboxButton = <T,>({\n item,\n selected,\n disabled,\n isInvalid,\n onToggle,\n slotStyles,\n}: CheckboxButtonProps<T>) => {\n const { resolveToken } = useKitsTheme();\n const primaryColor = resolveToken('primary');\n const borderColor = resolveToken('gray.300');\n\n /* Per-item style (slotStyles + item.style*), token-resolved.\n slotStyles is pre-merged at KitsCheckbox level\n (FormElement < Checkbox.item < per-instance slots.item). */\n const resolvedItemStyle = useMemo(() => {\n const merged: Record<string, any> = {\n ...(slotStyles?.item || {}),\n ...(selected ? slotStyles?.itemSelected : null),\n ...(disabled ? slotStyles?.itemDisabled : null),\n ...(isInvalid ? slotStyles?.itemInvalid : null),\n ...(item.w != null && !(item.style && (item.style as any).w != null) && !(item.style && (item.style as any).width != null)\n ? { width: item.w }\n : null),\n ...(item.style || {}),\n ...(selected ? item.styleSelected : null),\n ...(disabled ? item.styleDisabled : null),\n ...(isInvalid ? item.styleInvalid : null),\n };\n return resolveStyleRecord(merged, resolveToken);\n }, [slotStyles, selected, disabled, isInvalid, item.style, item.styleSelected, item.styleDisabled, item.styleInvalid, item.w, resolveToken]);\n\n // Route text props to inner Text, layout props to outer wrapper.\n // No size default — `style.flex` / `style.width` flow through directly.\n const { wrapper: wrapperStyle, text: textStyle } = useMemo(\n () => splitTextStyle(resolvedItemStyle),\n [resolvedItemStyle],\n );\n\n const sizes: Record<string, number> = {\n xs: 13, sm: 17, md: 22, lg: 27, xl: 30,\n };\n\n const paddings: Record<string, [number, number]> = {\n xs: [1, 3], sm: [2, 5], md: [3, 7], lg: [4, 9], xl: [5, 13],\n };\n\n const size = item.size ? sizes[item.size] : sizes.xs;\n const padding = item.size ? paddings[item.size] : paddings.xs;\n\n /* ---- Label positioning (mirrors web) ---- */\n const leftLabel = item.labelPosition === \"left\";\n const bottomLabel = item.labelPosition === \"bottom\";\n const topLabel = item.labelPosition === \"top\";\n\n const direction =\n leftLabel ? \"row-reverse\" :\n bottomLabel ? \"column\" :\n topLabel ? \"column-reverse\" :\n \"row\";\n\n /* ---- Button mode style (mirrors web checked-option) ---- */\n const containerStyle = useMemo(() => ({\n opacity: disabled ? 40 : 100,\n borderWidth: item.component ? 0 : 1,\n borderRadius: item.component ? 0 : 8,\n borderColor: selected ? primaryColor : borderColor,\n backgroundColor: selected ? primaryColor : 'transparent',\n paddingHorizontal: item.component ? 0 : padding?.[1],\n paddingVertical: item.component ? 0 : padding?.[0],\n }), [disabled, selected, item.component, padding]);\n\n /* ---- Content: custom component or label text ---- */\n const renderContent = () => {\n if (item.component) {\n return typeof item.component === \"function\"\n ? item.component({ selected, value: item.value, isInvalid: !!isInvalid })\n : item.component;\n }\n // Default selected-button color (white on primary fill) kept,\n // but user-supplied text props override it via spread style.\n const defaultColor = selected && !item.withBulbs ? '#fff' : undefined;\n return (\n <Text\n fontSize={size}\n fontColor={defaultColor}\n m={0}\n style={textStyle}\n >\n {item.label}\n </Text>\n );\n };\n\n /* ---- Bulb: custom checkbox indicator + content (mirrors web PrimeCheckbox + renderContent) ---- */\n const renderBulb = () => (\n <Pressable\n onPress={() => { if (!disabled) onToggle(); }}\n disabled={disabled}\n >\n <Flex alignItems=\"center\" gap={6} flexDirection={direction}>\n <CoreCheckboxIndicator\n checked={selected}\n disabled={disabled}\n invalid={isInvalid}\n checkedBackgroundColor={primaryColor}\n checkedBorderColor={primaryColor}\n size={indicatorSize(item.size)}\n />\n {renderContent()}\n </Flex>\n </Pressable>\n );\n\n /* ---- Component: custom component + label (mirrors web renderComponent) ---- */\n const renderComponent = () => (\n <Pressable\n onPress={() => { if (!disabled) onToggle(); }}\n disabled={disabled}\n >\n <Flex flexDirection={direction} alignItems=\"center\" gap={4}>\n {renderContent()}\n {!!item.label && <Text>{item.label}</Text>}\n </Flex>\n </Pressable>\n );\n\n\n // BUTTON mode: collapse to a single layer — Pressable IS the styled\n // pill. wrapperStyle wins over containerStyle (later in RN array).\n if (!item.withBulbs && !item.component) {\n return (\n <Pressable\n onPress={() => { if (!disabled) onToggle(); }}\n disabled={disabled}\n style={[containerStyle, wrapperStyle]}\n >\n {renderContent()}\n </Pressable>\n );\n }\n\n // BULB / COMPONENT modes keep the nested structure.\n return (\n <Flex\n pointerEvents={disabled ? \"none\" : \"auto\"}\n style={wrapperStyle}\n alignItems=\"flex-start\"\n >\n {item.withBulbs ? renderBulb() : renderComponent()}\n </Flex>\n );\n};\n\nexport default CheckboxButton;\n"],"names":["CoreCheckboxIndicator"],"mappings":"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"}
|