@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
|
@@ -10,6 +10,7 @@ var index_native = require('../../../../../packages/types/src/Css/map/index.cjs'
|
|
|
10
10
|
var index_native$1 = require('../../../../../packages/types/src/Css/constants/breakpoints/index.cjs');
|
|
11
11
|
var shadows = require('../../../../../packages/types/src/Theme/shadows.cjs');
|
|
12
12
|
require('../../../../../packages/types/src/Theme/defaultTheme.cjs');
|
|
13
|
+
require('../../../../../packages/types/src/Theme/alphaColors.cjs');
|
|
13
14
|
var cssVarMap = require('./cssVarMap.cjs');
|
|
14
15
|
|
|
15
16
|
let _activeColorMap = cssVarMap.CSS_VAR_MAP;
|
|
@@ -20,7 +21,21 @@ function resolveCssVar(value) {
|
|
|
20
21
|
const varMatch = value.match(/^var\(\s*(--[^)]+)\s*\)$/);
|
|
21
22
|
if (!varMatch) return value;
|
|
22
23
|
const varName = varMatch[1];
|
|
23
|
-
|
|
24
|
+
const resolved = _activeColorMap[varName] ?? cssVarMap.CSS_VAR_MAP[varName];
|
|
25
|
+
if (resolved != null) return resolved;
|
|
26
|
+
if (__DEV__) warnUnresolvedToken(value);
|
|
27
|
+
return value;
|
|
28
|
+
}
|
|
29
|
+
const _warnedTokens = /* @__PURE__ */ new Set();
|
|
30
|
+
function warnUnresolvedToken(token) {
|
|
31
|
+
if (_warnedTokens.has(token)) return;
|
|
32
|
+
_warnedTokens.add(token);
|
|
33
|
+
console.warn(`[KitsConcerto] Unresolved theme token: "${token}"`);
|
|
34
|
+
}
|
|
35
|
+
function looksLikeUnresolvedToken(v) {
|
|
36
|
+
return /^[a-zA-Z]+\.\d+$/.test(v) || // dot-notation: blue.500
|
|
37
|
+
v.startsWith("$") || // $spacing.4, $radii.lg
|
|
38
|
+
/-alpha-\d+$/.test(v);
|
|
24
39
|
}
|
|
25
40
|
function resolveThemeTokenForNative(value) {
|
|
26
41
|
const dotMatch = value.match(/^([a-zA-Z]+)\.(\d+)$/);
|
|
@@ -61,6 +76,7 @@ function resolveThemeTokenForNative(value) {
|
|
|
61
76
|
if (_activeColorMap[semanticVarName]) {
|
|
62
77
|
return _activeColorMap[semanticVarName];
|
|
63
78
|
}
|
|
79
|
+
if (__DEV__ && looksLikeUnresolvedToken(value)) warnUnresolvedToken(value);
|
|
64
80
|
return value;
|
|
65
81
|
}
|
|
66
82
|
function createStyleContext() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"style.cjs","sources":["../../../../../../../../../apps/mobile/src/Factory/helpers/style.ts"],"sourcesContent":["import { Dimensions, Platform, type ViewStyle } from 'react-native';\nimport { breakpoints, expandShadowNative, isShadowPreset, type IStyleClasses, mapCssProperties } from '@lmb-it/kitsconcerto-types';\nimport { CSS_VAR_MAP } from './cssVarMap';\n\n// Dynamic color map — defaults to static CSS_VAR_MAP, overridden by KitsThemeProvider\nlet _activeColorMap: Record<string, string> = CSS_VAR_MAP;\n\n/** Sets the active color map (called by KitsThemeProvider on native) */\nexport function setActiveColorMap(map: Record<string, string>) {\n _activeColorMap = map;\n}\n\n/** Returns the active color map */\nexport function getActiveColorMap(): Record<string, string> {\n return _activeColorMap;\n}\n\nexport type StyleContext = {\n platform: 'ios' | 'android';\n width: number;\n height: number;\n orientation: 'portrait' | 'landscape';\n device: 'phone' | 'tablet';\n breakpoint: keyof typeof breakpoints;\n};\n\n/**\n * Strips the `var()` wrapper from a CSS variable string.\n * e.g. `var(--primary-500)` → `--primary-500`\n */\nexport const normalizeColor = (color: string): string => {\n const match = color.match(/^var\\((--[^)]+)\\)$/);\n return match ? match[1]! : color;\n};\n\n/**\n * Resolves a CSS variable `var(--xyz)` to its native hex value via the active color map.\n * Non-variable strings are returned unchanged.\n */\nexport function resolveCssVar(value: string): string {\n const varMatch = value.match(/^var\\(\\s*(--[^)]+)\\s*\\)$/);\n if (!varMatch) return value;\n const varName = varMatch[1]!;\n return _activeColorMap[varName] ?? CSS_VAR_MAP[varName] ?? value;\n}\n\n/**\n * Resolves theme tokens (dot-notation, semantic, $-prefixed) to native values.\n * - 'blue.500' → lookup --kits-blue-500 in color map\n * - 'primary' → lookup --kits-primary in color map\n * - '$spacing.4' → '1rem' (then further converted by toNativeValue)\n */\nexport function resolveThemeTokenForNative(value: string): string {\n // Dot-notation: blue.500\n const dotMatch = value.match(/^([a-zA-Z]+)\\.(\\d+)$/);\n if (dotMatch) {\n const varName = `--kits-${dotMatch[1]}-${dotMatch[2]}`;\n return _activeColorMap[varName] ?? value;\n }\n\n // $-prefixed tokens: $spacing.4, $radii.lg, etc.\n if (value.startsWith('$')) {\n const dotIdx = value.indexOf('.');\n if (dotIdx > 1) {\n const category = value.substring(1, dotIdx);\n const key = value.substring(dotIdx + 1);\n switch (category) {\n case 'spacing': {\n const varName = `--kits-space-${key}`;\n return _activeColorMap[varName] ?? value;\n }\n case 'radii': {\n const varName = `--kits-radii-${key}`;\n return _activeColorMap[varName] ?? value;\n }\n case 'shadows': {\n const varName = `--kits-shadow-${key}`;\n return _activeColorMap[varName] ?? value;\n }\n case 'fontSizes': {\n const varName = `--kits-fontSize-${key}`;\n return _activeColorMap[varName] ?? value;\n }\n case 'fonts': {\n const varName = `--kits-font-${key}`;\n return _activeColorMap[varName] ?? value;\n }\n }\n }\n }\n\n // Semantic tokens: 'primary', 'danger', etc.\n const semanticVarName = `--kits-${value}`;\n if (_activeColorMap[semanticVarName]) {\n return _activeColorMap[semanticVarName]!;\n }\n\n return value;\n}\nexport function createStyleContext(): StyleContext {\n const { width, height } = Dimensions.get('window');\n\n const orientation = width > height ? 'landscape' : 'portrait';\n const device = Math.min(width, height) >= 768 ? 'tablet' : 'phone';\n\n return {\n platform: Platform.OS as 'ios' | 'android',\n width,\n height,\n orientation,\n device,\n breakpoint: getCurrentBreakpoint(width),\n };\n}\nexport const getCurrentBreakpoint = (\n width: number\n): keyof typeof breakpoints => {\n const entries = Object.entries(breakpoints)\n .sort((a, b) => b[1] - a[1]);\n\n for (const [key, value] of entries) {\n if (width >= value) return key as keyof typeof breakpoints;\n }\n return 'base';\n};\n\nconst breakpointOrder: (keyof typeof breakpoints)[] = [\n 'base',\n 'xs',\n 'sm',\n 'md',\n 'lg',\n 'xl',\n 'xxl',\n 'xxxl',\n];\n\n// ---------------------------------------------------------------------------\n// CSS unit → React Native value conversion\n// RN only accepts numbers (dp) or percentage strings for most layout props.\n// 1rem = 16dp baseline, 1em = 16dp baseline, px is stripped to a number.\n// Percentages (e.g. \"50%\") are passed through — RN supports them for dimensions.\n// CSS variables var(--*) are resolved via CSS_VAR_MAP to their native values.\n// ---------------------------------------------------------------------------\nexport function toNativeValue(value: any): any {\n if (typeof value !== 'string') return value;\n if (value === '0') return 0;\n\n // Theme token resolution: 'blue.500', 'primary', '$spacing.4',\n // 'on-primary', 'surface-subtle', and any other consumer-declared\n // semantic token.\n //\n // We try resolution UNCONDITIONALLY on every string value — the old\n // `isThemeToken(value)` gate only recognised the 15 built-in semantic\n // names hardcoded in the types package, so consumer-extended tokens\n // (registered via `extendTheme({ semanticTokens: {...} })`) silently\n // fell through to RN as raw strings and rendered as invalid colors.\n //\n // `resolveThemeTokenForNative` is a safe no-op when the input isn't\n // in the active color map: it returns the input unchanged, so CSS\n // keywords like 'flex-start' / 'row-reverse' / 'space-between' and\n // layout strings pass through without side effects.\n const resolvedToken = resolveThemeTokenForNative(value);\n if (resolvedToken !== value) return toNativeValue(resolvedToken);\n\n // CSS variable resolution: var(--xyz) → resolved hex color or value\n if (value.startsWith('var(')) {\n const resolved = resolveCssVar(value);\n // If resolution returned something different, recurse (it might be a rem value etc.)\n return resolved !== value ? toNativeValue(resolved) : value;\n }\n\n // rem → number (1rem = 16dp)\n const remMatch = value.match(/^(-?\\d*\\.?\\d+)rem$/);\n if (remMatch) return parseFloat(remMatch[1]!) * 16;\n\n // em → number (1em = 16dp baseline)\n const emMatch = value.match(/^(-?\\d*\\.?\\d+)em$/);\n if (emMatch) return parseFloat(emMatch[1]!) * 16;\n\n // px → number\n const pxMatch = value.match(/^(-?\\d*\\.?\\d+)px$/);\n if (pxMatch) return parseFloat(pxMatch[1]!);\n\n // pc (pica) → number (1pc = 12pt = 16dp)\n const pcMatch = value.match(/^(-?\\d*\\.?\\d+)pc$/);\n if (pcMatch) return parseFloat(pcMatch[1]!) * 16;\n\n // pure number string → number\n const numMatch = value.match(/^(-?\\d*\\.?\\d+)$/);\n if (numMatch) return parseFloat(numMatch[1]!);\n\n // Percentage strings, keywords, colors — pass through\n return value;\n}\n\ntype ParsedBorder = {\n borderWidth?: number;\n borderStyle?: 'solid' | 'dotted' | 'dashed';\n borderColor?: string;\n};\n\nconst BORDER_STYLES = [\"solid\", \"dashed\", \"dotted\", \"double\", \"groove\", \"ridge\", \"inset\", \"outset\"];\n\n// Extract numeric border width, with rem/em/px unit conversion\nfunction extractBorderWidth(part: string): number | undefined {\n // rem\n const remMatch = part.match(/^(\\d+(\\.\\d+)?)rem$/);\n if (remMatch) return parseFloat(remMatch[1]!) * 16;\n // em\n const emMatch = part.match(/^(\\d+(\\.\\d+)?)em$/);\n if (emMatch) return parseFloat(emMatch[1]!) * 16;\n // px or bare number\n const match = part.match(/^(\\d+(\\.\\d+)?)(px)?$/);\n if (!match) return undefined;\n const n = Number(match[1]);\n return Number.isFinite(n) ? n : undefined;\n}\n\nconst parseBorder = (value: string): ParsedBorder => {\n if (!value || typeof value !== \"string\") return {};\n\n const parts = value.trim().split(/\\s+/);\n\n let borderWidth: number | undefined;\n let borderStyle: \"solid\" | \"dotted\" | \"dashed\" | undefined;\n let borderColor: string | undefined;\n\n for (const part of parts) {\n // Detect width (e.g., \"1px\", \"2rem\", \"0.5em\", \"0\", \"5\", etc.)\n if (!borderWidth && /^(\\d+(\\.\\d+)?(px|em|rem|%)?)$/.test(part)) {\n const extracted = extractBorderWidth(part);\n if (extracted !== undefined) {\n borderWidth = extracted;\n continue;\n }\n continue;\n }\n\n // Detect style\n if (!borderStyle && BORDER_STYLES.includes(part)) {\n borderStyle = part as \"solid\" | \"dotted\" | \"dashed\";\n continue;\n }\n\n // Detect color (hex, rgb, rgba, hsl, named colors — not CSS vars)\n if (\n !borderColor &&\n (/^#([0-9a-f]{3}|[0-9a-f]{6}|[0-9a-f]{8})$/i.test(part) ||\n /^rgb(a)?\\(/.test(part) ||\n /^hsl(a)?\\(/.test(part) ||\n /^[a-zA-Z]+$/.test(part))\n ) {\n borderColor = part;\n }\n }\n\n return { borderWidth, borderStyle, borderColor };\n};\n\nconst isPrimitive = (v: any) =>\n typeof v === 'number' || typeof v === 'string';\n\nexport function resolveResponsiveValue<T>(\n input: any,\n ctx: StyleContext\n): T | undefined {\n\n // 1. Direct value\n if (input == null || isPrimitive(input)) {\n return input as T;\n }\n\n // 2. Array syntax — cascade like CSS: find the last defined value at or\n // before the current breakpoint index, matching web's min-width cascade.\n if (Array.isArray(input)) {\n const index = breakpointOrder.indexOf(ctx.breakpoint);\n for (let i = index; i >= 0; i--) {\n const val = input[i];\n if (val !== null && val !== undefined) return val as T;\n }\n return undefined;\n }\n\n // 3. Platform\n if (ctx.platform in input) {\n return resolveResponsiveValue(input[ctx.platform], ctx);\n }\n\n // 4. Device\n if (ctx.device in input) {\n return resolveResponsiveValue(input[ctx.device], ctx);\n }\n\n // 5. Orientation\n if (ctx.orientation in input) {\n return resolveResponsiveValue(input[ctx.orientation], ctx);\n }\n\n // 6. Breakpoints (fallback chain)\n for (\n let i = breakpointOrder.indexOf(ctx.breakpoint);\n i >= 0;\n i--\n ) {\n const bp = breakpointOrder[i];\n if (bp && bp in input) return input[bp];\n }\n\n return undefined;\n}\n\nconst resolveSizing = (value: any, key: string, ctx: StyleContext) => {\n if (value === 'full') return '100%';\n if (value === 'screen') {\n const isH = key === 'h' || key === 'height' || key === 'minH' || key === 'maxH';\n return isH ? ctx.height : ctx.width;\n }\n return toNativeValue(value);\n};\n\nconst parseBorderSide = (resolved: string, side: string): Record<string, any> => {\n const parsed = parseBorder(resolved);\n const styles: Record<string, any> = {};\n if (parsed.borderWidth !== undefined) styles[`${side}Width`] = parsed.borderWidth;\n if (parsed.borderColor) styles[`${side}Color`] = parsed.borderColor;\n if (parsed.borderStyle) styles[`${side}Style`] = parsed.borderStyle;\n return styles;\n};\n\nexport const style = (props: IStyleClasses, externalCtx?: StyleContext) => {\n const ctx = externalCtx ?? createStyleContext();\n const finalStyles: Partial<ViewStyle> = {};\n const transforms: { [key: string]: any }[] = [];\n const apply = (key: string, value: any) => {\n const mapped = mapCssProperties[key];\n if (!mapped) return;\n const converted = toNativeValue(value);\n (finalStyles as Record<string, any>)[mapped] = converted;\n };\n\n Object.entries(props).forEach(([key, val]) => {\n if (val === undefined || key.startsWith('_')) return;\n\n const resolved = resolveResponsiveValue<any>(val, ctx);\n if (resolved === undefined) return;\n\n switch (key) {\n // Margin shorthands\n case 'mx':\n finalStyles.marginLeft = toNativeValue(resolved);\n finalStyles.marginRight = toNativeValue(resolved);\n break;\n case 'my':\n finalStyles.marginTop = toNativeValue(resolved);\n finalStyles.marginBottom = toNativeValue(resolved);\n break;\n\n // Padding shorthands\n case 'px':\n finalStyles.paddingLeft = toNativeValue(resolved);\n finalStyles.paddingRight = toNativeValue(resolved);\n break;\n case 'py':\n finalStyles.paddingTop = toNativeValue(resolved);\n finalStyles.paddingBottom = toNativeValue(resolved);\n break;\n\n // Sizing with \"full\"/\"screen\" support\n case 'w':\n case 'width':\n finalStyles.width = resolveSizing(resolved, key, ctx);\n break;\n case 'h':\n case 'height':\n finalStyles.height = resolveSizing(resolved, key, ctx);\n break;\n case 'minW':\n case 'minWidth':\n finalStyles.minWidth = resolveSizing(resolved, key, ctx);\n break;\n case 'maxW':\n case 'maxWidth':\n finalStyles.maxWidth = resolveSizing(resolved, key, ctx);\n break;\n case 'minH':\n case 'minHeight':\n finalStyles.minHeight = resolveSizing(resolved, key, ctx);\n break;\n case 'maxH':\n case 'maxHeight':\n finalStyles.maxHeight = resolveSizing(resolved, key, ctx);\n break;\n\n // Opacity normalization (0-100 -> 0-1)\n case 'opacity':\n finalStyles.opacity = typeof resolved === 'number' ? resolved / 100 : resolved;\n break;\n\n // Border shorthand\n case 'border':\n if (typeof resolved === 'string') {\n Object.assign(finalStyles, parseBorder(resolved));\n }\n break;\n // Border side-specific\n case 'borderTop':\n if (typeof resolved === 'string') {\n Object.assign(finalStyles, parseBorderSide(resolved, 'borderTop'));\n }\n break;\n case 'borderBottom':\n if (typeof resolved === 'string') {\n Object.assign(finalStyles, parseBorderSide(resolved, 'borderBottom'));\n }\n break;\n case 'borderLeft':\n if (typeof resolved === 'string') {\n Object.assign(finalStyles, parseBorderSide(resolved, 'borderLeft'));\n }\n break;\n case 'borderRight':\n if (typeof resolved === 'string') {\n Object.assign(finalStyles, parseBorderSide(resolved, 'borderRight'));\n }\n break;\n // Border X/Y shorthands\n case 'borderX':\n if (typeof resolved === 'string') {\n Object.assign(finalStyles, parseBorderSide(resolved, 'borderLeft'));\n Object.assign(finalStyles, parseBorderSide(resolved, 'borderRight'));\n }\n break;\n case 'borderY':\n if (typeof resolved === 'string') {\n Object.assign(finalStyles, parseBorderSide(resolved, 'borderTop'));\n Object.assign(finalStyles, parseBorderSide(resolved, 'borderBottom'));\n }\n break;\n\n // Border radius shorthands\n case 'borderRadiusTop':\n finalStyles.borderTopLeftRadius = toNativeValue(resolved);\n finalStyles.borderTopRightRadius = toNativeValue(resolved);\n break;\n case 'borderRadiusBottom':\n finalStyles.borderBottomLeftRadius = toNativeValue(resolved);\n finalStyles.borderBottomRightRadius = toNativeValue(resolved);\n break;\n case 'borderRadiusLeft':\n finalStyles.borderTopLeftRadius = toNativeValue(resolved);\n finalStyles.borderBottomLeftRadius = toNativeValue(resolved);\n break;\n case 'borderRadiusRight':\n finalStyles.borderTopRightRadius = toNativeValue(resolved);\n finalStyles.borderBottomRightRadius = toNativeValue(resolved);\n break;\n\n // Transform props -> RN transform array\n case 'translateX':\n transforms.push({ translateX: typeof resolved === 'string' ? parseFloat(resolved) || 0 : resolved });\n break;\n case 'translateY':\n transforms.push({ translateY: typeof resolved === 'string' ? parseFloat(resolved) || 0 : resolved });\n break;\n case 'rotate':\n transforms.push({ rotate: typeof resolved === 'number' ? `${resolved}deg` : resolved });\n break;\n\n // Cross-platform shadow preset → native shadow props (shadowColor /\n // shadowOffset / shadowOpacity / shadowRadius / elevation). The scale is\n // published by the native KitsThemeProvider from `theme.shadows`.\n case 'shadow':\n if (typeof resolved === 'string' && isShadowPreset(resolved)) {\n Object.assign(finalStyles, expandShadowNative(resolved));\n }\n break;\n\n default:\n apply(key, resolved);\n break;\n }\n });\n\n if (transforms.length > 0) {\n finalStyles.transform = transforms as any;\n }\n\n return finalStyles;\n};\n"],"names":["CSS_VAR_MAP","Dimensions","Platform","breakpoints","mapCssProperties","isShadowPreset","expandShadowNative"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"style.cjs","sources":["../../../../../../../../../apps/mobile/src/Factory/helpers/style.ts"],"sourcesContent":["import { Dimensions, Platform, type ViewStyle } from 'react-native';\nimport { breakpoints, expandShadowNative, isShadowPreset, type IStyleClasses, mapCssProperties } from '@lmb-it/kitsconcerto-types';\nimport { CSS_VAR_MAP } from './cssVarMap';\n\n// Dynamic color map — defaults to static CSS_VAR_MAP, overridden by KitsThemeProvider\nlet _activeColorMap: Record<string, string> = CSS_VAR_MAP;\n\n/** Sets the active color map (called by KitsThemeProvider on native) */\nexport function setActiveColorMap(map: Record<string, string>) {\n _activeColorMap = map;\n}\n\n/** Returns the active color map */\nexport function getActiveColorMap(): Record<string, string> {\n return _activeColorMap;\n}\n\nexport type StyleContext = {\n platform: 'ios' | 'android';\n width: number;\n height: number;\n orientation: 'portrait' | 'landscape';\n device: 'phone' | 'tablet';\n breakpoint: keyof typeof breakpoints;\n};\n\n/**\n * Strips the `var()` wrapper from a CSS variable string.\n * e.g. `var(--primary-500)` → `--primary-500`\n */\nexport const normalizeColor = (color: string): string => {\n const match = color.match(/^var\\((--[^)]+)\\)$/);\n return match ? match[1]! : color;\n};\n\n/**\n * Resolves a CSS variable `var(--xyz)` to its native hex value via the active color map.\n * Non-variable strings are returned unchanged.\n */\nexport function resolveCssVar(value: string): string {\n const varMatch = value.match(/^var\\(\\s*(--[^)]+)\\s*\\)$/);\n if (!varMatch) return value;\n const varName = varMatch[1]!;\n const resolved = _activeColorMap[varName] ?? CSS_VAR_MAP[varName];\n if (resolved != null) return resolved;\n if (__DEV__) warnUnresolvedToken(value);\n return value;\n}\n\n// ── Dev-only unresolved-token warning ──────────────────────────────────────\n// Surfaces the silent-failure class where a token is advertised by the type\n// system (ColorValue, $-prefix tokens, …) but the active theme never builds\n// it, so RN receives the raw string and renders nothing. Deduped per token\n// per session; zero cost in production (guarded by __DEV__, which bundlers\n// strip). Never changes the returned value — callers see identical behavior.\nconst _warnedTokens = new Set<string>();\n\nfunction warnUnresolvedToken(token: string): void {\n if (_warnedTokens.has(token)) return;\n _warnedTokens.add(token);\n // eslint-disable-next-line no-console\n console.warn(`[KitsConcerto] Unresolved theme token: \"${token}\"`);\n}\n\n// Only warn for strings that clearly *intended* to be a token — otherwise\n// `toNativeValue` (which runs this on every style string) would warn on plain\n// CSS keywords like 'flex-start', 'row-reverse', '50%'. `var(--x)` is handled\n// by resolveCssVar, not here.\nfunction looksLikeUnresolvedToken(v: string): boolean {\n return (\n /^[a-zA-Z]+\\.\\d+$/.test(v) || // dot-notation: blue.500\n v.startsWith('$') || // $spacing.4, $radii.lg\n /-alpha-\\d+$/.test(v) // white-alpha-60 / black-alpha-90\n );\n}\n\n/**\n * Resolves theme tokens (dot-notation, semantic, $-prefixed) to native values.\n * - 'blue.500' → lookup --kits-blue-500 in color map\n * - 'primary' → lookup --kits-primary in color map\n * - '$spacing.4' → '1rem' (then further converted by toNativeValue)\n */\nexport function resolveThemeTokenForNative(value: string): string {\n // Dot-notation: blue.500\n const dotMatch = value.match(/^([a-zA-Z]+)\\.(\\d+)$/);\n if (dotMatch) {\n const varName = `--kits-${dotMatch[1]}-${dotMatch[2]}`;\n return _activeColorMap[varName] ?? value;\n }\n\n // $-prefixed tokens: $spacing.4, $radii.lg, etc.\n if (value.startsWith('$')) {\n const dotIdx = value.indexOf('.');\n if (dotIdx > 1) {\n const category = value.substring(1, dotIdx);\n const key = value.substring(dotIdx + 1);\n switch (category) {\n case 'spacing': {\n const varName = `--kits-space-${key}`;\n return _activeColorMap[varName] ?? value;\n }\n case 'radii': {\n const varName = `--kits-radii-${key}`;\n return _activeColorMap[varName] ?? value;\n }\n case 'shadows': {\n const varName = `--kits-shadow-${key}`;\n return _activeColorMap[varName] ?? value;\n }\n case 'fontSizes': {\n const varName = `--kits-fontSize-${key}`;\n return _activeColorMap[varName] ?? value;\n }\n case 'fonts': {\n const varName = `--kits-font-${key}`;\n return _activeColorMap[varName] ?? value;\n }\n }\n }\n }\n\n // Semantic tokens: 'primary', 'danger', etc.\n // Also resolves alpha families ('white-alpha-60' → '--kits-white-alpha-60',\n // built into the color map from ALPHA_COLOR_VARS on both platforms).\n const semanticVarName = `--kits-${value}`;\n if (_activeColorMap[semanticVarName]) {\n return _activeColorMap[semanticVarName]!;\n }\n\n // Unresolved token-shaped string: surface it in dev, return unchanged.\n if (__DEV__ && looksLikeUnresolvedToken(value)) warnUnresolvedToken(value);\n\n return value;\n}\nexport function createStyleContext(): StyleContext {\n const { width, height } = Dimensions.get('window');\n\n const orientation = width > height ? 'landscape' : 'portrait';\n const device = Math.min(width, height) >= 768 ? 'tablet' : 'phone';\n\n return {\n platform: Platform.OS as 'ios' | 'android',\n width,\n height,\n orientation,\n device,\n breakpoint: getCurrentBreakpoint(width),\n };\n}\nexport const getCurrentBreakpoint = (\n width: number\n): keyof typeof breakpoints => {\n const entries = Object.entries(breakpoints)\n .sort((a, b) => b[1] - a[1]);\n\n for (const [key, value] of entries) {\n if (width >= value) return key as keyof typeof breakpoints;\n }\n return 'base';\n};\n\nconst breakpointOrder: (keyof typeof breakpoints)[] = [\n 'base',\n 'xs',\n 'sm',\n 'md',\n 'lg',\n 'xl',\n 'xxl',\n 'xxxl',\n];\n\n// ---------------------------------------------------------------------------\n// CSS unit → React Native value conversion\n// RN only accepts numbers (dp) or percentage strings for most layout props.\n// 1rem = 16dp baseline, 1em = 16dp baseline, px is stripped to a number.\n// Percentages (e.g. \"50%\") are passed through — RN supports them for dimensions.\n// CSS variables var(--*) are resolved via CSS_VAR_MAP to their native values.\n// ---------------------------------------------------------------------------\nexport function toNativeValue(value: any): any {\n if (typeof value !== 'string') return value;\n if (value === '0') return 0;\n\n // Theme token resolution: 'blue.500', 'primary', '$spacing.4',\n // 'on-primary', 'surface-subtle', and any other consumer-declared\n // semantic token.\n //\n // We try resolution UNCONDITIONALLY on every string value — the old\n // `isThemeToken(value)` gate only recognised the 15 built-in semantic\n // names hardcoded in the types package, so consumer-extended tokens\n // (registered via `extendTheme({ semanticTokens: {...} })`) silently\n // fell through to RN as raw strings and rendered as invalid colors.\n //\n // `resolveThemeTokenForNative` is a safe no-op when the input isn't\n // in the active color map: it returns the input unchanged, so CSS\n // keywords like 'flex-start' / 'row-reverse' / 'space-between' and\n // layout strings pass through without side effects.\n const resolvedToken = resolveThemeTokenForNative(value);\n if (resolvedToken !== value) return toNativeValue(resolvedToken);\n\n // CSS variable resolution: var(--xyz) → resolved hex color or value\n if (value.startsWith('var(')) {\n const resolved = resolveCssVar(value);\n // If resolution returned something different, recurse (it might be a rem value etc.)\n return resolved !== value ? toNativeValue(resolved) : value;\n }\n\n // rem → number (1rem = 16dp)\n const remMatch = value.match(/^(-?\\d*\\.?\\d+)rem$/);\n if (remMatch) return parseFloat(remMatch[1]!) * 16;\n\n // em → number (1em = 16dp baseline)\n const emMatch = value.match(/^(-?\\d*\\.?\\d+)em$/);\n if (emMatch) return parseFloat(emMatch[1]!) * 16;\n\n // px → number\n const pxMatch = value.match(/^(-?\\d*\\.?\\d+)px$/);\n if (pxMatch) return parseFloat(pxMatch[1]!);\n\n // pc (pica) → number (1pc = 12pt = 16dp)\n const pcMatch = value.match(/^(-?\\d*\\.?\\d+)pc$/);\n if (pcMatch) return parseFloat(pcMatch[1]!) * 16;\n\n // pure number string → number\n const numMatch = value.match(/^(-?\\d*\\.?\\d+)$/);\n if (numMatch) return parseFloat(numMatch[1]!);\n\n // Percentage strings, keywords, colors — pass through\n return value;\n}\n\ntype ParsedBorder = {\n borderWidth?: number;\n borderStyle?: 'solid' | 'dotted' | 'dashed';\n borderColor?: string;\n};\n\nconst BORDER_STYLES = [\"solid\", \"dashed\", \"dotted\", \"double\", \"groove\", \"ridge\", \"inset\", \"outset\"];\n\n// Extract numeric border width, with rem/em/px unit conversion\nfunction extractBorderWidth(part: string): number | undefined {\n // rem\n const remMatch = part.match(/^(\\d+(\\.\\d+)?)rem$/);\n if (remMatch) return parseFloat(remMatch[1]!) * 16;\n // em\n const emMatch = part.match(/^(\\d+(\\.\\d+)?)em$/);\n if (emMatch) return parseFloat(emMatch[1]!) * 16;\n // px or bare number\n const match = part.match(/^(\\d+(\\.\\d+)?)(px)?$/);\n if (!match) return undefined;\n const n = Number(match[1]);\n return Number.isFinite(n) ? n : undefined;\n}\n\nconst parseBorder = (value: string): ParsedBorder => {\n if (!value || typeof value !== \"string\") return {};\n\n const parts = value.trim().split(/\\s+/);\n\n let borderWidth: number | undefined;\n let borderStyle: \"solid\" | \"dotted\" | \"dashed\" | undefined;\n let borderColor: string | undefined;\n\n for (const part of parts) {\n // Detect width (e.g., \"1px\", \"2rem\", \"0.5em\", \"0\", \"5\", etc.)\n if (!borderWidth && /^(\\d+(\\.\\d+)?(px|em|rem|%)?)$/.test(part)) {\n const extracted = extractBorderWidth(part);\n if (extracted !== undefined) {\n borderWidth = extracted;\n continue;\n }\n continue;\n }\n\n // Detect style\n if (!borderStyle && BORDER_STYLES.includes(part)) {\n borderStyle = part as \"solid\" | \"dotted\" | \"dashed\";\n continue;\n }\n\n // Detect color (hex, rgb, rgba, hsl, named colors — not CSS vars)\n if (\n !borderColor &&\n (/^#([0-9a-f]{3}|[0-9a-f]{6}|[0-9a-f]{8})$/i.test(part) ||\n /^rgb(a)?\\(/.test(part) ||\n /^hsl(a)?\\(/.test(part) ||\n /^[a-zA-Z]+$/.test(part))\n ) {\n borderColor = part;\n }\n }\n\n return { borderWidth, borderStyle, borderColor };\n};\n\nconst isPrimitive = (v: any) =>\n typeof v === 'number' || typeof v === 'string';\n\nexport function resolveResponsiveValue<T>(\n input: any,\n ctx: StyleContext\n): T | undefined {\n\n // 1. Direct value\n if (input == null || isPrimitive(input)) {\n return input as T;\n }\n\n // 2. Array syntax — cascade like CSS: find the last defined value at or\n // before the current breakpoint index, matching web's min-width cascade.\n if (Array.isArray(input)) {\n const index = breakpointOrder.indexOf(ctx.breakpoint);\n for (let i = index; i >= 0; i--) {\n const val = input[i];\n if (val !== null && val !== undefined) return val as T;\n }\n return undefined;\n }\n\n // 3. Platform\n if (ctx.platform in input) {\n return resolveResponsiveValue(input[ctx.platform], ctx);\n }\n\n // 4. Device\n if (ctx.device in input) {\n return resolveResponsiveValue(input[ctx.device], ctx);\n }\n\n // 5. Orientation\n if (ctx.orientation in input) {\n return resolveResponsiveValue(input[ctx.orientation], ctx);\n }\n\n // 6. Breakpoints (fallback chain)\n for (\n let i = breakpointOrder.indexOf(ctx.breakpoint);\n i >= 0;\n i--\n ) {\n const bp = breakpointOrder[i];\n if (bp && bp in input) return input[bp];\n }\n\n return undefined;\n}\n\nconst resolveSizing = (value: any, key: string, ctx: StyleContext) => {\n if (value === 'full') return '100%';\n if (value === 'screen') {\n const isH = key === 'h' || key === 'height' || key === 'minH' || key === 'maxH';\n return isH ? ctx.height : ctx.width;\n }\n return toNativeValue(value);\n};\n\nconst parseBorderSide = (resolved: string, side: string): Record<string, any> => {\n const parsed = parseBorder(resolved);\n const styles: Record<string, any> = {};\n if (parsed.borderWidth !== undefined) styles[`${side}Width`] = parsed.borderWidth;\n if (parsed.borderColor) styles[`${side}Color`] = parsed.borderColor;\n if (parsed.borderStyle) styles[`${side}Style`] = parsed.borderStyle;\n return styles;\n};\n\nexport const style = (props: IStyleClasses, externalCtx?: StyleContext) => {\n const ctx = externalCtx ?? createStyleContext();\n const finalStyles: Partial<ViewStyle> = {};\n const transforms: { [key: string]: any }[] = [];\n const apply = (key: string, value: any) => {\n const mapped = mapCssProperties[key];\n if (!mapped) return;\n const converted = toNativeValue(value);\n (finalStyles as Record<string, any>)[mapped] = converted;\n };\n\n Object.entries(props).forEach(([key, val]) => {\n if (val === undefined || key.startsWith('_')) return;\n\n const resolved = resolveResponsiveValue<any>(val, ctx);\n if (resolved === undefined) return;\n\n switch (key) {\n // Margin shorthands\n case 'mx':\n finalStyles.marginLeft = toNativeValue(resolved);\n finalStyles.marginRight = toNativeValue(resolved);\n break;\n case 'my':\n finalStyles.marginTop = toNativeValue(resolved);\n finalStyles.marginBottom = toNativeValue(resolved);\n break;\n\n // Padding shorthands\n case 'px':\n finalStyles.paddingLeft = toNativeValue(resolved);\n finalStyles.paddingRight = toNativeValue(resolved);\n break;\n case 'py':\n finalStyles.paddingTop = toNativeValue(resolved);\n finalStyles.paddingBottom = toNativeValue(resolved);\n break;\n\n // Sizing with \"full\"/\"screen\" support\n case 'w':\n case 'width':\n finalStyles.width = resolveSizing(resolved, key, ctx);\n break;\n case 'h':\n case 'height':\n finalStyles.height = resolveSizing(resolved, key, ctx);\n break;\n case 'minW':\n case 'minWidth':\n finalStyles.minWidth = resolveSizing(resolved, key, ctx);\n break;\n case 'maxW':\n case 'maxWidth':\n finalStyles.maxWidth = resolveSizing(resolved, key, ctx);\n break;\n case 'minH':\n case 'minHeight':\n finalStyles.minHeight = resolveSizing(resolved, key, ctx);\n break;\n case 'maxH':\n case 'maxHeight':\n finalStyles.maxHeight = resolveSizing(resolved, key, ctx);\n break;\n\n // Opacity normalization (0-100 -> 0-1)\n case 'opacity':\n finalStyles.opacity = typeof resolved === 'number' ? resolved / 100 : resolved;\n break;\n\n // Border shorthand\n case 'border':\n if (typeof resolved === 'string') {\n Object.assign(finalStyles, parseBorder(resolved));\n }\n break;\n // Border side-specific\n case 'borderTop':\n if (typeof resolved === 'string') {\n Object.assign(finalStyles, parseBorderSide(resolved, 'borderTop'));\n }\n break;\n case 'borderBottom':\n if (typeof resolved === 'string') {\n Object.assign(finalStyles, parseBorderSide(resolved, 'borderBottom'));\n }\n break;\n case 'borderLeft':\n if (typeof resolved === 'string') {\n Object.assign(finalStyles, parseBorderSide(resolved, 'borderLeft'));\n }\n break;\n case 'borderRight':\n if (typeof resolved === 'string') {\n Object.assign(finalStyles, parseBorderSide(resolved, 'borderRight'));\n }\n break;\n // Border X/Y shorthands\n case 'borderX':\n if (typeof resolved === 'string') {\n Object.assign(finalStyles, parseBorderSide(resolved, 'borderLeft'));\n Object.assign(finalStyles, parseBorderSide(resolved, 'borderRight'));\n }\n break;\n case 'borderY':\n if (typeof resolved === 'string') {\n Object.assign(finalStyles, parseBorderSide(resolved, 'borderTop'));\n Object.assign(finalStyles, parseBorderSide(resolved, 'borderBottom'));\n }\n break;\n\n // Border radius shorthands\n case 'borderRadiusTop':\n finalStyles.borderTopLeftRadius = toNativeValue(resolved);\n finalStyles.borderTopRightRadius = toNativeValue(resolved);\n break;\n case 'borderRadiusBottom':\n finalStyles.borderBottomLeftRadius = toNativeValue(resolved);\n finalStyles.borderBottomRightRadius = toNativeValue(resolved);\n break;\n case 'borderRadiusLeft':\n finalStyles.borderTopLeftRadius = toNativeValue(resolved);\n finalStyles.borderBottomLeftRadius = toNativeValue(resolved);\n break;\n case 'borderRadiusRight':\n finalStyles.borderTopRightRadius = toNativeValue(resolved);\n finalStyles.borderBottomRightRadius = toNativeValue(resolved);\n break;\n\n // Transform props -> RN transform array\n case 'translateX':\n transforms.push({ translateX: typeof resolved === 'string' ? parseFloat(resolved) || 0 : resolved });\n break;\n case 'translateY':\n transforms.push({ translateY: typeof resolved === 'string' ? parseFloat(resolved) || 0 : resolved });\n break;\n case 'rotate':\n transforms.push({ rotate: typeof resolved === 'number' ? `${resolved}deg` : resolved });\n break;\n\n // Cross-platform shadow preset → native shadow props (shadowColor /\n // shadowOffset / shadowOpacity / shadowRadius / elevation). The scale is\n // published by the native KitsThemeProvider from `theme.shadows`.\n case 'shadow':\n if (typeof resolved === 'string' && isShadowPreset(resolved)) {\n Object.assign(finalStyles, expandShadowNative(resolved));\n }\n break;\n\n default:\n apply(key, resolved);\n break;\n }\n });\n\n if (transforms.length > 0) {\n finalStyles.transform = transforms as any;\n }\n\n return finalStyles;\n};\n"],"names":["CSS_VAR_MAP","Dimensions","Platform","breakpoints","mapCssProperties","isShadowPreset","expandShadowNative"],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@ import allProperties from '../../../../../packages/types/src/Css/map/index.js';
|
|
|
8
8
|
import { breakpoints } from '../../../../../packages/types/src/Css/constants/breakpoints/index.js';
|
|
9
9
|
import { isShadowPreset, expandShadowNative } from '../../../../../packages/types/src/Theme/shadows.js';
|
|
10
10
|
import '../../../../../packages/types/src/Theme/defaultTheme.js';
|
|
11
|
+
import '../../../../../packages/types/src/Theme/alphaColors.js';
|
|
11
12
|
import { CSS_VAR_MAP } from './cssVarMap.js';
|
|
12
13
|
|
|
13
14
|
let _activeColorMap = CSS_VAR_MAP;
|
|
@@ -18,7 +19,21 @@ function resolveCssVar(value) {
|
|
|
18
19
|
const varMatch = value.match(/^var\(\s*(--[^)]+)\s*\)$/);
|
|
19
20
|
if (!varMatch) return value;
|
|
20
21
|
const varName = varMatch[1];
|
|
21
|
-
|
|
22
|
+
const resolved = _activeColorMap[varName] ?? CSS_VAR_MAP[varName];
|
|
23
|
+
if (resolved != null) return resolved;
|
|
24
|
+
if (__DEV__) warnUnresolvedToken(value);
|
|
25
|
+
return value;
|
|
26
|
+
}
|
|
27
|
+
const _warnedTokens = /* @__PURE__ */ new Set();
|
|
28
|
+
function warnUnresolvedToken(token) {
|
|
29
|
+
if (_warnedTokens.has(token)) return;
|
|
30
|
+
_warnedTokens.add(token);
|
|
31
|
+
console.warn(`[KitsConcerto] Unresolved theme token: "${token}"`);
|
|
32
|
+
}
|
|
33
|
+
function looksLikeUnresolvedToken(v) {
|
|
34
|
+
return /^[a-zA-Z]+\.\d+$/.test(v) || // dot-notation: blue.500
|
|
35
|
+
v.startsWith("$") || // $spacing.4, $radii.lg
|
|
36
|
+
/-alpha-\d+$/.test(v);
|
|
22
37
|
}
|
|
23
38
|
function resolveThemeTokenForNative(value) {
|
|
24
39
|
const dotMatch = value.match(/^([a-zA-Z]+)\.(\d+)$/);
|
|
@@ -59,6 +74,7 @@ function resolveThemeTokenForNative(value) {
|
|
|
59
74
|
if (_activeColorMap[semanticVarName]) {
|
|
60
75
|
return _activeColorMap[semanticVarName];
|
|
61
76
|
}
|
|
77
|
+
if (__DEV__ && looksLikeUnresolvedToken(value)) warnUnresolvedToken(value);
|
|
62
78
|
return value;
|
|
63
79
|
}
|
|
64
80
|
function createStyleContext() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"style.js","sources":["../../../../../../../../../apps/mobile/src/Factory/helpers/style.ts"],"sourcesContent":["import { Dimensions, Platform, type ViewStyle } from 'react-native';\nimport { breakpoints, expandShadowNative, isShadowPreset, type IStyleClasses, mapCssProperties } from '@lmb-it/kitsconcerto-types';\nimport { CSS_VAR_MAP } from './cssVarMap';\n\n// Dynamic color map — defaults to static CSS_VAR_MAP, overridden by KitsThemeProvider\nlet _activeColorMap: Record<string, string> = CSS_VAR_MAP;\n\n/** Sets the active color map (called by KitsThemeProvider on native) */\nexport function setActiveColorMap(map: Record<string, string>) {\n _activeColorMap = map;\n}\n\n/** Returns the active color map */\nexport function getActiveColorMap(): Record<string, string> {\n return _activeColorMap;\n}\n\nexport type StyleContext = {\n platform: 'ios' | 'android';\n width: number;\n height: number;\n orientation: 'portrait' | 'landscape';\n device: 'phone' | 'tablet';\n breakpoint: keyof typeof breakpoints;\n};\n\n/**\n * Strips the `var()` wrapper from a CSS variable string.\n * e.g. `var(--primary-500)` → `--primary-500`\n */\nexport const normalizeColor = (color: string): string => {\n const match = color.match(/^var\\((--[^)]+)\\)$/);\n return match ? match[1]! : color;\n};\n\n/**\n * Resolves a CSS variable `var(--xyz)` to its native hex value via the active color map.\n * Non-variable strings are returned unchanged.\n */\nexport function resolveCssVar(value: string): string {\n const varMatch = value.match(/^var\\(\\s*(--[^)]+)\\s*\\)$/);\n if (!varMatch) return value;\n const varName = varMatch[1]!;\n return _activeColorMap[varName] ?? CSS_VAR_MAP[varName] ?? value;\n}\n\n/**\n * Resolves theme tokens (dot-notation, semantic, $-prefixed) to native values.\n * - 'blue.500' → lookup --kits-blue-500 in color map\n * - 'primary' → lookup --kits-primary in color map\n * - '$spacing.4' → '1rem' (then further converted by toNativeValue)\n */\nexport function resolveThemeTokenForNative(value: string): string {\n // Dot-notation: blue.500\n const dotMatch = value.match(/^([a-zA-Z]+)\\.(\\d+)$/);\n if (dotMatch) {\n const varName = `--kits-${dotMatch[1]}-${dotMatch[2]}`;\n return _activeColorMap[varName] ?? value;\n }\n\n // $-prefixed tokens: $spacing.4, $radii.lg, etc.\n if (value.startsWith('$')) {\n const dotIdx = value.indexOf('.');\n if (dotIdx > 1) {\n const category = value.substring(1, dotIdx);\n const key = value.substring(dotIdx + 1);\n switch (category) {\n case 'spacing': {\n const varName = `--kits-space-${key}`;\n return _activeColorMap[varName] ?? value;\n }\n case 'radii': {\n const varName = `--kits-radii-${key}`;\n return _activeColorMap[varName] ?? value;\n }\n case 'shadows': {\n const varName = `--kits-shadow-${key}`;\n return _activeColorMap[varName] ?? value;\n }\n case 'fontSizes': {\n const varName = `--kits-fontSize-${key}`;\n return _activeColorMap[varName] ?? value;\n }\n case 'fonts': {\n const varName = `--kits-font-${key}`;\n return _activeColorMap[varName] ?? value;\n }\n }\n }\n }\n\n // Semantic tokens: 'primary', 'danger', etc.\n const semanticVarName = `--kits-${value}`;\n if (_activeColorMap[semanticVarName]) {\n return _activeColorMap[semanticVarName]!;\n }\n\n return value;\n}\nexport function createStyleContext(): StyleContext {\n const { width, height } = Dimensions.get('window');\n\n const orientation = width > height ? 'landscape' : 'portrait';\n const device = Math.min(width, height) >= 768 ? 'tablet' : 'phone';\n\n return {\n platform: Platform.OS as 'ios' | 'android',\n width,\n height,\n orientation,\n device,\n breakpoint: getCurrentBreakpoint(width),\n };\n}\nexport const getCurrentBreakpoint = (\n width: number\n): keyof typeof breakpoints => {\n const entries = Object.entries(breakpoints)\n .sort((a, b) => b[1] - a[1]);\n\n for (const [key, value] of entries) {\n if (width >= value) return key as keyof typeof breakpoints;\n }\n return 'base';\n};\n\nconst breakpointOrder: (keyof typeof breakpoints)[] = [\n 'base',\n 'xs',\n 'sm',\n 'md',\n 'lg',\n 'xl',\n 'xxl',\n 'xxxl',\n];\n\n// ---------------------------------------------------------------------------\n// CSS unit → React Native value conversion\n// RN only accepts numbers (dp) or percentage strings for most layout props.\n// 1rem = 16dp baseline, 1em = 16dp baseline, px is stripped to a number.\n// Percentages (e.g. \"50%\") are passed through — RN supports them for dimensions.\n// CSS variables var(--*) are resolved via CSS_VAR_MAP to their native values.\n// ---------------------------------------------------------------------------\nexport function toNativeValue(value: any): any {\n if (typeof value !== 'string') return value;\n if (value === '0') return 0;\n\n // Theme token resolution: 'blue.500', 'primary', '$spacing.4',\n // 'on-primary', 'surface-subtle', and any other consumer-declared\n // semantic token.\n //\n // We try resolution UNCONDITIONALLY on every string value — the old\n // `isThemeToken(value)` gate only recognised the 15 built-in semantic\n // names hardcoded in the types package, so consumer-extended tokens\n // (registered via `extendTheme({ semanticTokens: {...} })`) silently\n // fell through to RN as raw strings and rendered as invalid colors.\n //\n // `resolveThemeTokenForNative` is a safe no-op when the input isn't\n // in the active color map: it returns the input unchanged, so CSS\n // keywords like 'flex-start' / 'row-reverse' / 'space-between' and\n // layout strings pass through without side effects.\n const resolvedToken = resolveThemeTokenForNative(value);\n if (resolvedToken !== value) return toNativeValue(resolvedToken);\n\n // CSS variable resolution: var(--xyz) → resolved hex color or value\n if (value.startsWith('var(')) {\n const resolved = resolveCssVar(value);\n // If resolution returned something different, recurse (it might be a rem value etc.)\n return resolved !== value ? toNativeValue(resolved) : value;\n }\n\n // rem → number (1rem = 16dp)\n const remMatch = value.match(/^(-?\\d*\\.?\\d+)rem$/);\n if (remMatch) return parseFloat(remMatch[1]!) * 16;\n\n // em → number (1em = 16dp baseline)\n const emMatch = value.match(/^(-?\\d*\\.?\\d+)em$/);\n if (emMatch) return parseFloat(emMatch[1]!) * 16;\n\n // px → number\n const pxMatch = value.match(/^(-?\\d*\\.?\\d+)px$/);\n if (pxMatch) return parseFloat(pxMatch[1]!);\n\n // pc (pica) → number (1pc = 12pt = 16dp)\n const pcMatch = value.match(/^(-?\\d*\\.?\\d+)pc$/);\n if (pcMatch) return parseFloat(pcMatch[1]!) * 16;\n\n // pure number string → number\n const numMatch = value.match(/^(-?\\d*\\.?\\d+)$/);\n if (numMatch) return parseFloat(numMatch[1]!);\n\n // Percentage strings, keywords, colors — pass through\n return value;\n}\n\ntype ParsedBorder = {\n borderWidth?: number;\n borderStyle?: 'solid' | 'dotted' | 'dashed';\n borderColor?: string;\n};\n\nconst BORDER_STYLES = [\"solid\", \"dashed\", \"dotted\", \"double\", \"groove\", \"ridge\", \"inset\", \"outset\"];\n\n// Extract numeric border width, with rem/em/px unit conversion\nfunction extractBorderWidth(part: string): number | undefined {\n // rem\n const remMatch = part.match(/^(\\d+(\\.\\d+)?)rem$/);\n if (remMatch) return parseFloat(remMatch[1]!) * 16;\n // em\n const emMatch = part.match(/^(\\d+(\\.\\d+)?)em$/);\n if (emMatch) return parseFloat(emMatch[1]!) * 16;\n // px or bare number\n const match = part.match(/^(\\d+(\\.\\d+)?)(px)?$/);\n if (!match) return undefined;\n const n = Number(match[1]);\n return Number.isFinite(n) ? n : undefined;\n}\n\nconst parseBorder = (value: string): ParsedBorder => {\n if (!value || typeof value !== \"string\") return {};\n\n const parts = value.trim().split(/\\s+/);\n\n let borderWidth: number | undefined;\n let borderStyle: \"solid\" | \"dotted\" | \"dashed\" | undefined;\n let borderColor: string | undefined;\n\n for (const part of parts) {\n // Detect width (e.g., \"1px\", \"2rem\", \"0.5em\", \"0\", \"5\", etc.)\n if (!borderWidth && /^(\\d+(\\.\\d+)?(px|em|rem|%)?)$/.test(part)) {\n const extracted = extractBorderWidth(part);\n if (extracted !== undefined) {\n borderWidth = extracted;\n continue;\n }\n continue;\n }\n\n // Detect style\n if (!borderStyle && BORDER_STYLES.includes(part)) {\n borderStyle = part as \"solid\" | \"dotted\" | \"dashed\";\n continue;\n }\n\n // Detect color (hex, rgb, rgba, hsl, named colors — not CSS vars)\n if (\n !borderColor &&\n (/^#([0-9a-f]{3}|[0-9a-f]{6}|[0-9a-f]{8})$/i.test(part) ||\n /^rgb(a)?\\(/.test(part) ||\n /^hsl(a)?\\(/.test(part) ||\n /^[a-zA-Z]+$/.test(part))\n ) {\n borderColor = part;\n }\n }\n\n return { borderWidth, borderStyle, borderColor };\n};\n\nconst isPrimitive = (v: any) =>\n typeof v === 'number' || typeof v === 'string';\n\nexport function resolveResponsiveValue<T>(\n input: any,\n ctx: StyleContext\n): T | undefined {\n\n // 1. Direct value\n if (input == null || isPrimitive(input)) {\n return input as T;\n }\n\n // 2. Array syntax — cascade like CSS: find the last defined value at or\n // before the current breakpoint index, matching web's min-width cascade.\n if (Array.isArray(input)) {\n const index = breakpointOrder.indexOf(ctx.breakpoint);\n for (let i = index; i >= 0; i--) {\n const val = input[i];\n if (val !== null && val !== undefined) return val as T;\n }\n return undefined;\n }\n\n // 3. Platform\n if (ctx.platform in input) {\n return resolveResponsiveValue(input[ctx.platform], ctx);\n }\n\n // 4. Device\n if (ctx.device in input) {\n return resolveResponsiveValue(input[ctx.device], ctx);\n }\n\n // 5. Orientation\n if (ctx.orientation in input) {\n return resolveResponsiveValue(input[ctx.orientation], ctx);\n }\n\n // 6. Breakpoints (fallback chain)\n for (\n let i = breakpointOrder.indexOf(ctx.breakpoint);\n i >= 0;\n i--\n ) {\n const bp = breakpointOrder[i];\n if (bp && bp in input) return input[bp];\n }\n\n return undefined;\n}\n\nconst resolveSizing = (value: any, key: string, ctx: StyleContext) => {\n if (value === 'full') return '100%';\n if (value === 'screen') {\n const isH = key === 'h' || key === 'height' || key === 'minH' || key === 'maxH';\n return isH ? ctx.height : ctx.width;\n }\n return toNativeValue(value);\n};\n\nconst parseBorderSide = (resolved: string, side: string): Record<string, any> => {\n const parsed = parseBorder(resolved);\n const styles: Record<string, any> = {};\n if (parsed.borderWidth !== undefined) styles[`${side}Width`] = parsed.borderWidth;\n if (parsed.borderColor) styles[`${side}Color`] = parsed.borderColor;\n if (parsed.borderStyle) styles[`${side}Style`] = parsed.borderStyle;\n return styles;\n};\n\nexport const style = (props: IStyleClasses, externalCtx?: StyleContext) => {\n const ctx = externalCtx ?? createStyleContext();\n const finalStyles: Partial<ViewStyle> = {};\n const transforms: { [key: string]: any }[] = [];\n const apply = (key: string, value: any) => {\n const mapped = mapCssProperties[key];\n if (!mapped) return;\n const converted = toNativeValue(value);\n (finalStyles as Record<string, any>)[mapped] = converted;\n };\n\n Object.entries(props).forEach(([key, val]) => {\n if (val === undefined || key.startsWith('_')) return;\n\n const resolved = resolveResponsiveValue<any>(val, ctx);\n if (resolved === undefined) return;\n\n switch (key) {\n // Margin shorthands\n case 'mx':\n finalStyles.marginLeft = toNativeValue(resolved);\n finalStyles.marginRight = toNativeValue(resolved);\n break;\n case 'my':\n finalStyles.marginTop = toNativeValue(resolved);\n finalStyles.marginBottom = toNativeValue(resolved);\n break;\n\n // Padding shorthands\n case 'px':\n finalStyles.paddingLeft = toNativeValue(resolved);\n finalStyles.paddingRight = toNativeValue(resolved);\n break;\n case 'py':\n finalStyles.paddingTop = toNativeValue(resolved);\n finalStyles.paddingBottom = toNativeValue(resolved);\n break;\n\n // Sizing with \"full\"/\"screen\" support\n case 'w':\n case 'width':\n finalStyles.width = resolveSizing(resolved, key, ctx);\n break;\n case 'h':\n case 'height':\n finalStyles.height = resolveSizing(resolved, key, ctx);\n break;\n case 'minW':\n case 'minWidth':\n finalStyles.minWidth = resolveSizing(resolved, key, ctx);\n break;\n case 'maxW':\n case 'maxWidth':\n finalStyles.maxWidth = resolveSizing(resolved, key, ctx);\n break;\n case 'minH':\n case 'minHeight':\n finalStyles.minHeight = resolveSizing(resolved, key, ctx);\n break;\n case 'maxH':\n case 'maxHeight':\n finalStyles.maxHeight = resolveSizing(resolved, key, ctx);\n break;\n\n // Opacity normalization (0-100 -> 0-1)\n case 'opacity':\n finalStyles.opacity = typeof resolved === 'number' ? resolved / 100 : resolved;\n break;\n\n // Border shorthand\n case 'border':\n if (typeof resolved === 'string') {\n Object.assign(finalStyles, parseBorder(resolved));\n }\n break;\n // Border side-specific\n case 'borderTop':\n if (typeof resolved === 'string') {\n Object.assign(finalStyles, parseBorderSide(resolved, 'borderTop'));\n }\n break;\n case 'borderBottom':\n if (typeof resolved === 'string') {\n Object.assign(finalStyles, parseBorderSide(resolved, 'borderBottom'));\n }\n break;\n case 'borderLeft':\n if (typeof resolved === 'string') {\n Object.assign(finalStyles, parseBorderSide(resolved, 'borderLeft'));\n }\n break;\n case 'borderRight':\n if (typeof resolved === 'string') {\n Object.assign(finalStyles, parseBorderSide(resolved, 'borderRight'));\n }\n break;\n // Border X/Y shorthands\n case 'borderX':\n if (typeof resolved === 'string') {\n Object.assign(finalStyles, parseBorderSide(resolved, 'borderLeft'));\n Object.assign(finalStyles, parseBorderSide(resolved, 'borderRight'));\n }\n break;\n case 'borderY':\n if (typeof resolved === 'string') {\n Object.assign(finalStyles, parseBorderSide(resolved, 'borderTop'));\n Object.assign(finalStyles, parseBorderSide(resolved, 'borderBottom'));\n }\n break;\n\n // Border radius shorthands\n case 'borderRadiusTop':\n finalStyles.borderTopLeftRadius = toNativeValue(resolved);\n finalStyles.borderTopRightRadius = toNativeValue(resolved);\n break;\n case 'borderRadiusBottom':\n finalStyles.borderBottomLeftRadius = toNativeValue(resolved);\n finalStyles.borderBottomRightRadius = toNativeValue(resolved);\n break;\n case 'borderRadiusLeft':\n finalStyles.borderTopLeftRadius = toNativeValue(resolved);\n finalStyles.borderBottomLeftRadius = toNativeValue(resolved);\n break;\n case 'borderRadiusRight':\n finalStyles.borderTopRightRadius = toNativeValue(resolved);\n finalStyles.borderBottomRightRadius = toNativeValue(resolved);\n break;\n\n // Transform props -> RN transform array\n case 'translateX':\n transforms.push({ translateX: typeof resolved === 'string' ? parseFloat(resolved) || 0 : resolved });\n break;\n case 'translateY':\n transforms.push({ translateY: typeof resolved === 'string' ? parseFloat(resolved) || 0 : resolved });\n break;\n case 'rotate':\n transforms.push({ rotate: typeof resolved === 'number' ? `${resolved}deg` : resolved });\n break;\n\n // Cross-platform shadow preset → native shadow props (shadowColor /\n // shadowOffset / shadowOpacity / shadowRadius / elevation). The scale is\n // published by the native KitsThemeProvider from `theme.shadows`.\n case 'shadow':\n if (typeof resolved === 'string' && isShadowPreset(resolved)) {\n Object.assign(finalStyles, expandShadowNative(resolved));\n }\n break;\n\n default:\n apply(key, resolved);\n break;\n }\n });\n\n if (transforms.length > 0) {\n finalStyles.transform = transforms as any;\n }\n\n return finalStyles;\n};\n"],"names":["mapCssProperties"],"mappings":";;;;;;;;;;;;AAKA,IAAI,eAAA,GAA0C,WAAA;AAGvC,SAAS,kBAAkB,GAAA,EAA6B;AAC7D,EAAA,eAAA,GAAkB,GAAA;AACpB;AA6BO,SAAS,cAAc,KAAA,EAAuB;AACnD,EAAA,MAAM,QAAA,GAAW,KAAA,CAAM,KAAA,CAAM,0BAA0B,CAAA;AACvD,EAAA,IAAI,CAAC,UAAU,OAAO,KAAA;AACtB,EAAA,MAAM,OAAA,GAAU,SAAS,CAAC,CAAA;AAC1B,EAAA,OAAO,eAAA,CAAgB,OAAO,CAAA,IAAK,WAAA,CAAY,OAAO,CAAA,IAAK,KAAA;AAC7D;AAQO,SAAS,2BAA2B,KAAA,EAAuB;AAEhE,EAAA,MAAM,QAAA,GAAW,KAAA,CAAM,KAAA,CAAM,sBAAsB,CAAA;AACnD,EAAA,IAAI,QAAA,EAAU;AACZ,IAAA,MAAM,OAAA,GAAU,UAAU,QAAA,CAAS,CAAC,CAAC,CAAA,CAAA,EAAI,QAAA,CAAS,CAAC,CAAC,CAAA,CAAA;AACpD,IAAA,OAAO,eAAA,CAAgB,OAAO,CAAA,IAAK,KAAA;AAAA,EACrC;AAGA,EAAA,IAAI,KAAA,CAAM,UAAA,CAAW,GAAG,CAAA,EAAG;AACzB,IAAA,MAAM,MAAA,GAAS,KAAA,CAAM,OAAA,CAAQ,GAAG,CAAA;AAChC,IAAA,IAAI,SAAS,CAAA,EAAG;AACd,MAAA,MAAM,QAAA,GAAW,KAAA,CAAM,SAAA,CAAU,CAAA,EAAG,MAAM,CAAA;AAC1C,MAAA,MAAM,GAAA,GAAM,KAAA,CAAM,SAAA,CAAU,MAAA,GAAS,CAAC,CAAA;AACtC,MAAA,QAAQ,QAAA;AAAU,QAChB,KAAK,SAAA,EAAW;AACd,UAAA,MAAM,OAAA,GAAU,gBAAgB,GAAG,CAAA,CAAA;AACnC,UAAA,OAAO,eAAA,CAAgB,OAAO,CAAA,IAAK,KAAA;AAAA,QACrC;AAAA,QACA,KAAK,OAAA,EAAS;AACZ,UAAA,MAAM,OAAA,GAAU,gBAAgB,GAAG,CAAA,CAAA;AACnC,UAAA,OAAO,eAAA,CAAgB,OAAO,CAAA,IAAK,KAAA;AAAA,QACrC;AAAA,QACA,KAAK,SAAA,EAAW;AACd,UAAA,MAAM,OAAA,GAAU,iBAAiB,GAAG,CAAA,CAAA;AACpC,UAAA,OAAO,eAAA,CAAgB,OAAO,CAAA,IAAK,KAAA;AAAA,QACrC;AAAA,QACA,KAAK,WAAA,EAAa;AAChB,UAAA,MAAM,OAAA,GAAU,mBAAmB,GAAG,CAAA,CAAA;AACtC,UAAA,OAAO,eAAA,CAAgB,OAAO,CAAA,IAAK,KAAA;AAAA,QACrC;AAAA,QACA,KAAK,OAAA,EAAS;AACZ,UAAA,MAAM,OAAA,GAAU,eAAe,GAAG,CAAA,CAAA;AAClC,UAAA,OAAO,eAAA,CAAgB,OAAO,CAAA,IAAK,KAAA;AAAA,QACrC;AAAA;AACF,IACF;AAAA,EACF;AAGA,EAAA,MAAM,eAAA,GAAkB,UAAU,KAAK,CAAA,CAAA;AACvC,EAAA,IAAI,eAAA,CAAgB,eAAe,CAAA,EAAG;AACpC,IAAA,OAAO,gBAAgB,eAAe,CAAA;AAAA,EACxC;AAEA,EAAA,OAAO,KAAA;AACT;AACO,SAAS,kBAAA,GAAmC;AACjD,EAAA,MAAM,EAAE,KAAA,EAAO,MAAA,EAAO,GAAI,UAAA,CAAW,IAAI,QAAQ,CAAA;AAEjD,EAAA,MAAM,WAAA,GAAc,KAAA,GAAQ,MAAA,GAAS,WAAA,GAAc,UAAA;AACnD,EAAA,MAAM,SAAS,IAAA,CAAK,GAAA,CAAI,OAAO,MAAM,CAAA,IAAK,MAAM,QAAA,GAAW,OAAA;AAE3D,EAAA,OAAO;AAAA,IACL,UAAU,QAAA,CAAS,EAAA;AAAA,IACnB,KAAA;AAAA,IACA,MAAA;AAAA,IACA,WAAA;AAAA,IACA,MAAA;AAAA,IACA,UAAA,EAAY,qBAAqB,KAAK;AAAA,GACxC;AACF;AACO,MAAM,oBAAA,GAAuB,CAClC,KAAA,KAC6B;AAC7B,EAAA,MAAM,OAAA,GAAU,MAAA,CAAO,OAAA,CAAQ,WAAW,EACvC,IAAA,CAAK,CAAC,CAAA,EAAG,CAAA,KAAM,CAAA,CAAE,CAAC,CAAA,GAAI,CAAA,CAAE,CAAC,CAAC,CAAA;AAE7B,EAAA,KAAA,MAAW,CAAC,GAAA,EAAK,KAAK,CAAA,IAAK,OAAA,EAAS;AAClC,IAAA,IAAI,KAAA,IAAS,OAAO,OAAO,GAAA;AAAA,EAC7B;AACA,EAAA,OAAO,MAAA;AACT;AAEA,MAAM,eAAA,GAAgD;AAAA,EACpD,MAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA;AAAA,EACA;AACF,CAAA;AASO,SAAS,cAAc,KAAA,EAAiB;AAC7C,EAAA,IAAI,OAAO,KAAA,KAAU,QAAA,EAAU,OAAO,KAAA;AACtC,EAAA,IAAI,KAAA,KAAU,KAAK,OAAO,CAAA;AAgB1B,EAAA,MAAM,aAAA,GAAgB,2BAA2B,KAAK,CAAA;AACtD,EAAA,IAAI,aAAA,KAAkB,KAAA,EAAO,OAAO,aAAA,CAAc,aAAa,CAAA;AAG/D,EAAA,IAAI,KAAA,CAAM,UAAA,CAAW,MAAM,CAAA,EAAG;AAC5B,IAAA,MAAM,QAAA,GAAW,cAAc,KAAK,CAAA;AAEpC,IAAA,OAAO,QAAA,KAAa,KAAA,GAAQ,aAAA,CAAc,QAAQ,CAAA,GAAI,KAAA;AAAA,EACxD;AAGA,EAAA,MAAM,QAAA,GAAW,KAAA,CAAM,KAAA,CAAM,oBAAoB,CAAA;AACjD,EAAA,IAAI,UAAU,OAAO,UAAA,CAAW,QAAA,CAAS,CAAC,CAAE,CAAA,GAAI,EAAA;AAGhD,EAAA,MAAM,OAAA,GAAU,KAAA,CAAM,KAAA,CAAM,mBAAmB,CAAA;AAC/C,EAAA,IAAI,SAAS,OAAO,UAAA,CAAW,OAAA,CAAQ,CAAC,CAAE,CAAA,GAAI,EAAA;AAG9C,EAAA,MAAM,OAAA,GAAU,KAAA,CAAM,KAAA,CAAM,mBAAmB,CAAA;AAC/C,EAAA,IAAI,OAAA,EAAS,OAAO,UAAA,CAAW,OAAA,CAAQ,CAAC,CAAE,CAAA;AAG1C,EAAA,MAAM,OAAA,GAAU,KAAA,CAAM,KAAA,CAAM,mBAAmB,CAAA;AAC/C,EAAA,IAAI,SAAS,OAAO,UAAA,CAAW,OAAA,CAAQ,CAAC,CAAE,CAAA,GAAI,EAAA;AAG9C,EAAA,MAAM,QAAA,GAAW,KAAA,CAAM,KAAA,CAAM,iBAAiB,CAAA;AAC9C,EAAA,IAAI,QAAA,EAAU,OAAO,UAAA,CAAW,QAAA,CAAS,CAAC,CAAE,CAAA;AAG5C,EAAA,OAAO,KAAA;AACT;AAQA,MAAM,aAAA,GAAgB,CAAC,OAAA,EAAS,QAAA,EAAU,UAAU,QAAA,EAAU,QAAA,EAAU,OAAA,EAAS,OAAA,EAAS,QAAQ,CAAA;AAGlG,SAAS,mBAAmB,IAAA,EAAkC;AAE5D,EAAA,MAAM,QAAA,GAAW,IAAA,CAAK,KAAA,CAAM,oBAAoB,CAAA;AAChD,EAAA,IAAI,UAAU,OAAO,UAAA,CAAW,QAAA,CAAS,CAAC,CAAE,CAAA,GAAI,EAAA;AAEhD,EAAA,MAAM,OAAA,GAAU,IAAA,CAAK,KAAA,CAAM,mBAAmB,CAAA;AAC9C,EAAA,IAAI,SAAS,OAAO,UAAA,CAAW,OAAA,CAAQ,CAAC,CAAE,CAAA,GAAI,EAAA;AAE9C,EAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,KAAA,CAAM,sBAAsB,CAAA;AAC/C,EAAA,IAAI,CAAC,OAAO,OAAO,MAAA;AACnB,EAAA,MAAM,CAAA,GAAI,MAAA,CAAO,KAAA,CAAM,CAAC,CAAC,CAAA;AACzB,EAAA,OAAO,MAAA,CAAO,QAAA,CAAS,CAAC,CAAA,GAAI,CAAA,GAAI,MAAA;AAClC;AAEA,MAAM,WAAA,GAAc,CAAC,KAAA,KAAgC;AACnD,EAAA,IAAI,CAAC,KAAA,IAAS,OAAO,KAAA,KAAU,QAAA,SAAiB,EAAC;AAEjD,EAAA,MAAM,KAAA,GAAQ,KAAA,CAAM,IAAA,EAAK,CAAE,MAAM,KAAK,CAAA;AAEtC,EAAA,IAAI,WAAA;AACJ,EAAA,IAAI,WAAA;AACJ,EAAA,IAAI,WAAA;AAEJ,EAAA,KAAA,MAAW,QAAQ,KAAA,EAAO;AAExB,IAAA,IAAI,CAAC,WAAA,IAAe,+BAAA,CAAgC,IAAA,CAAK,IAAI,CAAA,EAAG;AAC9D,MAAA,MAAM,SAAA,GAAY,mBAAmB,IAAI,CAAA;AACzC,MAAA,IAAI,cAAc,MAAA,EAAW;AAC3B,QAAA,WAAA,GAAc,SAAA;AACd,QAAA;AAAA,MACF;AACA,MAAA;AAAA,IACF;AAGA,IAAA,IAAI,CAAC,WAAA,IAAe,aAAA,CAAc,QAAA,CAAS,IAAI,CAAA,EAAG;AAChD,MAAA,WAAA,GAAc,IAAA;AACd,MAAA;AAAA,IACF;AAGA,IAAA,IACE,CAAC,WAAA,KACA,2CAAA,CAA4C,IAAA,CAAK,IAAI,KACpD,YAAA,CAAa,IAAA,CAAK,IAAI,CAAA,IACtB,aAAa,IAAA,CAAK,IAAI,KACtB,aAAA,CAAc,IAAA,CAAK,IAAI,CAAA,CAAA,EACzB;AACA,MAAA,WAAA,GAAc,IAAA;AAAA,IAChB;AAAA,EACF;AAEA,EAAA,OAAO,EAAE,WAAA,EAAa,WAAA,EAAa,WAAA,EAAY;AACjD,CAAA;AAEA,MAAM,cAAc,CAAC,CAAA,KACnB,OAAO,CAAA,KAAM,QAAA,IAAY,OAAO,CAAA,KAAM,QAAA;AAEjC,SAAS,sBAAA,CACd,OACA,GAAA,EACe;AAGf,EAAA,IAAI,KAAA,IAAS,IAAA,IAAQ,WAAA,CAAY,KAAK,CAAA,EAAG;AACvC,IAAA,OAAO,KAAA;AAAA,EACT;AAIA,EAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,EAAG;AACxB,IAAA,MAAM,KAAA,GAAQ,eAAA,CAAgB,OAAA,CAAQ,GAAA,CAAI,UAAU,CAAA;AACpD,IAAA,KAAA,IAAS,CAAA,GAAI,KAAA,EAAO,CAAA,IAAK,CAAA,EAAG,CAAA,EAAA,EAAK;AAC/B,MAAA,MAAM,GAAA,GAAM,MAAM,CAAC,CAAA;AACnB,MAAA,IAAI,GAAA,KAAQ,IAAA,IAAQ,GAAA,KAAQ,MAAA,EAAW,OAAO,GAAA;AAAA,IAChD;AACA,IAAA,OAAO,MAAA;AAAA,EACT;AAGA,EAAA,IAAI,GAAA,CAAI,YAAY,KAAA,EAAO;AACzB,IAAA,OAAO,sBAAA,CAAuB,KAAA,CAAM,GAAA,CAAI,QAAQ,GAAG,GAAG,CAAA;AAAA,EACxD;AAGA,EAAA,IAAI,GAAA,CAAI,UAAU,KAAA,EAAO;AACvB,IAAA,OAAO,sBAAA,CAAuB,KAAA,CAAM,GAAA,CAAI,MAAM,GAAG,GAAG,CAAA;AAAA,EACtD;AAGA,EAAA,IAAI,GAAA,CAAI,eAAe,KAAA,EAAO;AAC5B,IAAA,OAAO,sBAAA,CAAuB,KAAA,CAAM,GAAA,CAAI,WAAW,GAAG,GAAG,CAAA;AAAA,EAC3D;AAGA,EAAA,KAAA,IACM,CAAA,GAAI,gBAAgB,OAAA,CAAQ,GAAA,CAAI,UAAU,CAAA,EAC9C,CAAA,IAAK,GACL,CAAA,EAAA,EACA;AACA,IAAA,MAAM,EAAA,GAAK,gBAAgB,CAAC,CAAA;AAC5B,IAAA,IAAI,EAAA,IAAM,EAAA,IAAM,KAAA,EAAO,OAAO,MAAM,EAAE,CAAA;AAAA,EACxC;AAEA,EAAA,OAAO,MAAA;AACT;AAEA,MAAM,aAAA,GAAgB,CAAC,KAAA,EAAY,GAAA,EAAa,GAAA,KAAsB;AACpE,EAAA,IAAI,KAAA,KAAU,QAAQ,OAAO,MAAA;AAC7B,EAAA,IAAI,UAAU,QAAA,EAAU;AACtB,IAAA,MAAM,MAAM,GAAA,KAAQ,GAAA,IAAO,QAAQ,QAAA,IAAY,GAAA,KAAQ,UAAU,GAAA,KAAQ,MAAA;AACzE,IAAA,OAAO,GAAA,GAAM,GAAA,CAAI,MAAA,GAAS,GAAA,CAAI,KAAA;AAAA,EAChC;AACA,EAAA,OAAO,cAAc,KAAK,CAAA;AAC5B,CAAA;AAEA,MAAM,eAAA,GAAkB,CAAC,QAAA,EAAkB,IAAA,KAAsC;AAC/E,EAAA,MAAM,MAAA,GAAS,YAAY,QAAQ,CAAA;AACnC,EAAA,MAAM,SAA8B,EAAC;AACrC,EAAA,IAAI,MAAA,CAAO,gBAAgB,MAAA,EAAW,MAAA,CAAO,GAAG,IAAI,CAAA,KAAA,CAAO,IAAI,MAAA,CAAO,WAAA;AACtE,EAAA,IAAI,OAAO,WAAA,EAAa,MAAA,CAAO,GAAG,IAAI,CAAA,KAAA,CAAO,IAAI,MAAA,CAAO,WAAA;AACxD,EAAA,IAAI,OAAO,WAAA,EAAa,MAAA,CAAO,GAAG,IAAI,CAAA,KAAA,CAAO,IAAI,MAAA,CAAO,WAAA;AACxD,EAAA,OAAO,MAAA;AACT,CAAA;AAEO,MAAM,KAAA,GAAQ,CAAC,KAAA,EAAsB,WAAA,KAA+B;AACzE,EAAA,MAAM,GAAA,GAAM,eAAe,kBAAA,EAAmB;AAC9C,EAAA,MAAM,cAAkC,EAAC;AACzC,EAAA,MAAM,aAAuC,EAAC;AAC9C,EAAA,MAAM,KAAA,GAAQ,CAAC,GAAA,EAAa,KAAA,KAAe;AACzC,IAAA,MAAM,MAAA,GAASA,cAAiB,GAAG,CAAA;AACnC,IAAA,IAAI,CAAC,MAAA,EAAQ;AACb,IAAA,MAAM,SAAA,GAAY,cAAc,KAAK,CAAA;AACrC,IAAC,WAAA,CAAoC,MAAM,CAAA,GAAI,SAAA;AAAA,EACjD,CAAA;AAEA,EAAA,MAAA,CAAO,OAAA,CAAQ,KAAK,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAC,GAAA,EAAK,GAAG,CAAA,KAAM;AAC5C,IAAA,IAAI,GAAA,KAAQ,MAAA,IAAa,GAAA,CAAI,UAAA,CAAW,GAAG,CAAA,EAAG;AAE9C,IAAA,MAAM,QAAA,GAAW,sBAAA,CAA4B,GAAA,EAAK,GAAG,CAAA;AACrD,IAAA,IAAI,aAAa,MAAA,EAAW;AAE5B,IAAA,QAAQ,GAAA;AAAK;AAAA,MAEX,KAAK,IAAA;AACH,QAAA,WAAA,CAAY,UAAA,GAAa,cAAc,QAAQ,CAAA;AAC/C,QAAA,WAAA,CAAY,WAAA,GAAc,cAAc,QAAQ,CAAA;AAChD,QAAA;AAAA,MACF,KAAK,IAAA;AACH,QAAA,WAAA,CAAY,SAAA,GAAY,cAAc,QAAQ,CAAA;AAC9C,QAAA,WAAA,CAAY,YAAA,GAAe,cAAc,QAAQ,CAAA;AACjD,QAAA;AAAA;AAAA,MAGF,KAAK,IAAA;AACH,QAAA,WAAA,CAAY,WAAA,GAAc,cAAc,QAAQ,CAAA;AAChD,QAAA,WAAA,CAAY,YAAA,GAAe,cAAc,QAAQ,CAAA;AACjD,QAAA;AAAA,MACF,KAAK,IAAA;AACH,QAAA,WAAA,CAAY,UAAA,GAAa,cAAc,QAAQ,CAAA;AAC/C,QAAA,WAAA,CAAY,aAAA,GAAgB,cAAc,QAAQ,CAAA;AAClD,QAAA;AAAA;AAAA,MAGF,KAAK,GAAA;AAAA,MACL,KAAK,OAAA;AACH,QAAA,WAAA,CAAY,KAAA,GAAQ,aAAA,CAAc,QAAA,EAAU,GAAA,EAAK,GAAG,CAAA;AACpD,QAAA;AAAA,MACF,KAAK,GAAA;AAAA,MACL,KAAK,QAAA;AACH,QAAA,WAAA,CAAY,MAAA,GAAS,aAAA,CAAc,QAAA,EAAU,GAAA,EAAK,GAAG,CAAA;AACrD,QAAA;AAAA,MACF,KAAK,MAAA;AAAA,MACL,KAAK,UAAA;AACH,QAAA,WAAA,CAAY,QAAA,GAAW,aAAA,CAAc,QAAA,EAAU,GAAA,EAAK,GAAG,CAAA;AACvD,QAAA;AAAA,MACF,KAAK,MAAA;AAAA,MACL,KAAK,UAAA;AACH,QAAA,WAAA,CAAY,QAAA,GAAW,aAAA,CAAc,QAAA,EAAU,GAAA,EAAK,GAAG,CAAA;AACvD,QAAA;AAAA,MACF,KAAK,MAAA;AAAA,MACL,KAAK,WAAA;AACH,QAAA,WAAA,CAAY,SAAA,GAAY,aAAA,CAAc,QAAA,EAAU,GAAA,EAAK,GAAG,CAAA;AACxD,QAAA;AAAA,MACF,KAAK,MAAA;AAAA,MACL,KAAK,WAAA;AACH,QAAA,WAAA,CAAY,SAAA,GAAY,aAAA,CAAc,QAAA,EAAU,GAAA,EAAK,GAAG,CAAA;AACxD,QAAA;AAAA;AAAA,MAGF,KAAK,SAAA;AACH,QAAA,WAAA,CAAY,OAAA,GAAU,OAAO,QAAA,KAAa,QAAA,GAAW,WAAW,GAAA,GAAM,QAAA;AACtE,QAAA;AAAA;AAAA,MAGF,KAAK,QAAA;AACH,QAAA,IAAI,OAAO,aAAa,QAAA,EAAU;AAChC,UAAA,MAAA,CAAO,MAAA,CAAO,WAAA,EAAa,WAAA,CAAY,QAAQ,CAAC,CAAA;AAAA,QAClD;AACA,QAAA;AAAA;AAAA,MAEF,KAAK,WAAA;AACH,QAAA,IAAI,OAAO,aAAa,QAAA,EAAU;AAChC,UAAA,MAAA,CAAO,MAAA,CAAO,WAAA,EAAa,eAAA,CAAgB,QAAA,EAAU,WAAW,CAAC,CAAA;AAAA,QACnE;AACA,QAAA;AAAA,MACF,KAAK,cAAA;AACH,QAAA,IAAI,OAAO,aAAa,QAAA,EAAU;AAChC,UAAA,MAAA,CAAO,MAAA,CAAO,WAAA,EAAa,eAAA,CAAgB,QAAA,EAAU,cAAc,CAAC,CAAA;AAAA,QACtE;AACA,QAAA;AAAA,MACF,KAAK,YAAA;AACH,QAAA,IAAI,OAAO,aAAa,QAAA,EAAU;AAChC,UAAA,MAAA,CAAO,MAAA,CAAO,WAAA,EAAa,eAAA,CAAgB,QAAA,EAAU,YAAY,CAAC,CAAA;AAAA,QACpE;AACA,QAAA;AAAA,MACF,KAAK,aAAA;AACH,QAAA,IAAI,OAAO,aAAa,QAAA,EAAU;AAChC,UAAA,MAAA,CAAO,MAAA,CAAO,WAAA,EAAa,eAAA,CAAgB,QAAA,EAAU,aAAa,CAAC,CAAA;AAAA,QACrE;AACA,QAAA;AAAA;AAAA,MAEF,KAAK,SAAA;AACH,QAAA,IAAI,OAAO,aAAa,QAAA,EAAU;AAChC,UAAA,MAAA,CAAO,MAAA,CAAO,WAAA,EAAa,eAAA,CAAgB,QAAA,EAAU,YAAY,CAAC,CAAA;AAClE,UAAA,MAAA,CAAO,MAAA,CAAO,WAAA,EAAa,eAAA,CAAgB,QAAA,EAAU,aAAa,CAAC,CAAA;AAAA,QACrE;AACA,QAAA;AAAA,MACF,KAAK,SAAA;AACH,QAAA,IAAI,OAAO,aAAa,QAAA,EAAU;AAChC,UAAA,MAAA,CAAO,MAAA,CAAO,WAAA,EAAa,eAAA,CAAgB,QAAA,EAAU,WAAW,CAAC,CAAA;AACjE,UAAA,MAAA,CAAO,MAAA,CAAO,WAAA,EAAa,eAAA,CAAgB,QAAA,EAAU,cAAc,CAAC,CAAA;AAAA,QACtE;AACA,QAAA;AAAA;AAAA,MAGF,KAAK,iBAAA;AACH,QAAA,WAAA,CAAY,mBAAA,GAAsB,cAAc,QAAQ,CAAA;AACxD,QAAA,WAAA,CAAY,oBAAA,GAAuB,cAAc,QAAQ,CAAA;AACzD,QAAA;AAAA,MACF,KAAK,oBAAA;AACH,QAAA,WAAA,CAAY,sBAAA,GAAyB,cAAc,QAAQ,CAAA;AAC3D,QAAA,WAAA,CAAY,uBAAA,GAA0B,cAAc,QAAQ,CAAA;AAC5D,QAAA;AAAA,MACF,KAAK,kBAAA;AACH,QAAA,WAAA,CAAY,mBAAA,GAAsB,cAAc,QAAQ,CAAA;AACxD,QAAA,WAAA,CAAY,sBAAA,GAAyB,cAAc,QAAQ,CAAA;AAC3D,QAAA;AAAA,MACF,KAAK,mBAAA;AACH,QAAA,WAAA,CAAY,oBAAA,GAAuB,cAAc,QAAQ,CAAA;AACzD,QAAA,WAAA,CAAY,uBAAA,GAA0B,cAAc,QAAQ,CAAA;AAC5D,QAAA;AAAA;AAAA,MAGF,KAAK,YAAA;AACH,QAAA,UAAA,CAAW,IAAA,CAAK,EAAE,UAAA,EAAY,OAAO,QAAA,KAAa,QAAA,GAAW,UAAA,CAAW,QAAQ,CAAA,IAAK,CAAA,GAAI,QAAA,EAAU,CAAA;AACnG,QAAA;AAAA,MACF,KAAK,YAAA;AACH,QAAA,UAAA,CAAW,IAAA,CAAK,EAAE,UAAA,EAAY,OAAO,QAAA,KAAa,QAAA,GAAW,UAAA,CAAW,QAAQ,CAAA,IAAK,CAAA,GAAI,QAAA,EAAU,CAAA;AACnG,QAAA;AAAA,MACF,KAAK,QAAA;AACH,QAAA,UAAA,CAAW,IAAA,CAAK,EAAE,MAAA,EAAQ,OAAO,QAAA,KAAa,WAAW,CAAA,EAAG,QAAQ,CAAA,GAAA,CAAA,GAAQ,QAAA,EAAU,CAAA;AACtF,QAAA;AAAA;AAAA;AAAA;AAAA,MAKF,KAAK,QAAA;AACH,QAAA,IAAI,OAAO,QAAA,KAAa,QAAA,IAAY,cAAA,CAAe,QAAQ,CAAA,EAAG;AAC5D,UAAA,MAAA,CAAO,MAAA,CAAO,WAAA,EAAa,kBAAA,CAAmB,QAAQ,CAAC,CAAA;AAAA,QACzD;AACA,QAAA;AAAA,MAEF;AACE,QAAA,KAAA,CAAM,KAAK,QAAQ,CAAA;AACnB,QAAA;AAAA;AACJ,EACF,CAAC,CAAA;AAED,EAAA,IAAI,UAAA,CAAW,SAAS,CAAA,EAAG;AACzB,IAAA,WAAA,CAAY,SAAA,GAAY,UAAA;AAAA,EAC1B;AAEA,EAAA,OAAO,WAAA;AACT;;;;"}
|
|
1
|
+
{"version":3,"file":"style.js","sources":["../../../../../../../../../apps/mobile/src/Factory/helpers/style.ts"],"sourcesContent":["import { Dimensions, Platform, type ViewStyle } from 'react-native';\nimport { breakpoints, expandShadowNative, isShadowPreset, type IStyleClasses, mapCssProperties } from '@lmb-it/kitsconcerto-types';\nimport { CSS_VAR_MAP } from './cssVarMap';\n\n// Dynamic color map — defaults to static CSS_VAR_MAP, overridden by KitsThemeProvider\nlet _activeColorMap: Record<string, string> = CSS_VAR_MAP;\n\n/** Sets the active color map (called by KitsThemeProvider on native) */\nexport function setActiveColorMap(map: Record<string, string>) {\n _activeColorMap = map;\n}\n\n/** Returns the active color map */\nexport function getActiveColorMap(): Record<string, string> {\n return _activeColorMap;\n}\n\nexport type StyleContext = {\n platform: 'ios' | 'android';\n width: number;\n height: number;\n orientation: 'portrait' | 'landscape';\n device: 'phone' | 'tablet';\n breakpoint: keyof typeof breakpoints;\n};\n\n/**\n * Strips the `var()` wrapper from a CSS variable string.\n * e.g. `var(--primary-500)` → `--primary-500`\n */\nexport const normalizeColor = (color: string): string => {\n const match = color.match(/^var\\((--[^)]+)\\)$/);\n return match ? match[1]! : color;\n};\n\n/**\n * Resolves a CSS variable `var(--xyz)` to its native hex value via the active color map.\n * Non-variable strings are returned unchanged.\n */\nexport function resolveCssVar(value: string): string {\n const varMatch = value.match(/^var\\(\\s*(--[^)]+)\\s*\\)$/);\n if (!varMatch) return value;\n const varName = varMatch[1]!;\n const resolved = _activeColorMap[varName] ?? CSS_VAR_MAP[varName];\n if (resolved != null) return resolved;\n if (__DEV__) warnUnresolvedToken(value);\n return value;\n}\n\n// ── Dev-only unresolved-token warning ──────────────────────────────────────\n// Surfaces the silent-failure class where a token is advertised by the type\n// system (ColorValue, $-prefix tokens, …) but the active theme never builds\n// it, so RN receives the raw string and renders nothing. Deduped per token\n// per session; zero cost in production (guarded by __DEV__, which bundlers\n// strip). Never changes the returned value — callers see identical behavior.\nconst _warnedTokens = new Set<string>();\n\nfunction warnUnresolvedToken(token: string): void {\n if (_warnedTokens.has(token)) return;\n _warnedTokens.add(token);\n // eslint-disable-next-line no-console\n console.warn(`[KitsConcerto] Unresolved theme token: \"${token}\"`);\n}\n\n// Only warn for strings that clearly *intended* to be a token — otherwise\n// `toNativeValue` (which runs this on every style string) would warn on plain\n// CSS keywords like 'flex-start', 'row-reverse', '50%'. `var(--x)` is handled\n// by resolveCssVar, not here.\nfunction looksLikeUnresolvedToken(v: string): boolean {\n return (\n /^[a-zA-Z]+\\.\\d+$/.test(v) || // dot-notation: blue.500\n v.startsWith('$') || // $spacing.4, $radii.lg\n /-alpha-\\d+$/.test(v) // white-alpha-60 / black-alpha-90\n );\n}\n\n/**\n * Resolves theme tokens (dot-notation, semantic, $-prefixed) to native values.\n * - 'blue.500' → lookup --kits-blue-500 in color map\n * - 'primary' → lookup --kits-primary in color map\n * - '$spacing.4' → '1rem' (then further converted by toNativeValue)\n */\nexport function resolveThemeTokenForNative(value: string): string {\n // Dot-notation: blue.500\n const dotMatch = value.match(/^([a-zA-Z]+)\\.(\\d+)$/);\n if (dotMatch) {\n const varName = `--kits-${dotMatch[1]}-${dotMatch[2]}`;\n return _activeColorMap[varName] ?? value;\n }\n\n // $-prefixed tokens: $spacing.4, $radii.lg, etc.\n if (value.startsWith('$')) {\n const dotIdx = value.indexOf('.');\n if (dotIdx > 1) {\n const category = value.substring(1, dotIdx);\n const key = value.substring(dotIdx + 1);\n switch (category) {\n case 'spacing': {\n const varName = `--kits-space-${key}`;\n return _activeColorMap[varName] ?? value;\n }\n case 'radii': {\n const varName = `--kits-radii-${key}`;\n return _activeColorMap[varName] ?? value;\n }\n case 'shadows': {\n const varName = `--kits-shadow-${key}`;\n return _activeColorMap[varName] ?? value;\n }\n case 'fontSizes': {\n const varName = `--kits-fontSize-${key}`;\n return _activeColorMap[varName] ?? value;\n }\n case 'fonts': {\n const varName = `--kits-font-${key}`;\n return _activeColorMap[varName] ?? value;\n }\n }\n }\n }\n\n // Semantic tokens: 'primary', 'danger', etc.\n // Also resolves alpha families ('white-alpha-60' → '--kits-white-alpha-60',\n // built into the color map from ALPHA_COLOR_VARS on both platforms).\n const semanticVarName = `--kits-${value}`;\n if (_activeColorMap[semanticVarName]) {\n return _activeColorMap[semanticVarName]!;\n }\n\n // Unresolved token-shaped string: surface it in dev, return unchanged.\n if (__DEV__ && looksLikeUnresolvedToken(value)) warnUnresolvedToken(value);\n\n return value;\n}\nexport function createStyleContext(): StyleContext {\n const { width, height } = Dimensions.get('window');\n\n const orientation = width > height ? 'landscape' : 'portrait';\n const device = Math.min(width, height) >= 768 ? 'tablet' : 'phone';\n\n return {\n platform: Platform.OS as 'ios' | 'android',\n width,\n height,\n orientation,\n device,\n breakpoint: getCurrentBreakpoint(width),\n };\n}\nexport const getCurrentBreakpoint = (\n width: number\n): keyof typeof breakpoints => {\n const entries = Object.entries(breakpoints)\n .sort((a, b) => b[1] - a[1]);\n\n for (const [key, value] of entries) {\n if (width >= value) return key as keyof typeof breakpoints;\n }\n return 'base';\n};\n\nconst breakpointOrder: (keyof typeof breakpoints)[] = [\n 'base',\n 'xs',\n 'sm',\n 'md',\n 'lg',\n 'xl',\n 'xxl',\n 'xxxl',\n];\n\n// ---------------------------------------------------------------------------\n// CSS unit → React Native value conversion\n// RN only accepts numbers (dp) or percentage strings for most layout props.\n// 1rem = 16dp baseline, 1em = 16dp baseline, px is stripped to a number.\n// Percentages (e.g. \"50%\") are passed through — RN supports them for dimensions.\n// CSS variables var(--*) are resolved via CSS_VAR_MAP to their native values.\n// ---------------------------------------------------------------------------\nexport function toNativeValue(value: any): any {\n if (typeof value !== 'string') return value;\n if (value === '0') return 0;\n\n // Theme token resolution: 'blue.500', 'primary', '$spacing.4',\n // 'on-primary', 'surface-subtle', and any other consumer-declared\n // semantic token.\n //\n // We try resolution UNCONDITIONALLY on every string value — the old\n // `isThemeToken(value)` gate only recognised the 15 built-in semantic\n // names hardcoded in the types package, so consumer-extended tokens\n // (registered via `extendTheme({ semanticTokens: {...} })`) silently\n // fell through to RN as raw strings and rendered as invalid colors.\n //\n // `resolveThemeTokenForNative` is a safe no-op when the input isn't\n // in the active color map: it returns the input unchanged, so CSS\n // keywords like 'flex-start' / 'row-reverse' / 'space-between' and\n // layout strings pass through without side effects.\n const resolvedToken = resolveThemeTokenForNative(value);\n if (resolvedToken !== value) return toNativeValue(resolvedToken);\n\n // CSS variable resolution: var(--xyz) → resolved hex color or value\n if (value.startsWith('var(')) {\n const resolved = resolveCssVar(value);\n // If resolution returned something different, recurse (it might be a rem value etc.)\n return resolved !== value ? toNativeValue(resolved) : value;\n }\n\n // rem → number (1rem = 16dp)\n const remMatch = value.match(/^(-?\\d*\\.?\\d+)rem$/);\n if (remMatch) return parseFloat(remMatch[1]!) * 16;\n\n // em → number (1em = 16dp baseline)\n const emMatch = value.match(/^(-?\\d*\\.?\\d+)em$/);\n if (emMatch) return parseFloat(emMatch[1]!) * 16;\n\n // px → number\n const pxMatch = value.match(/^(-?\\d*\\.?\\d+)px$/);\n if (pxMatch) return parseFloat(pxMatch[1]!);\n\n // pc (pica) → number (1pc = 12pt = 16dp)\n const pcMatch = value.match(/^(-?\\d*\\.?\\d+)pc$/);\n if (pcMatch) return parseFloat(pcMatch[1]!) * 16;\n\n // pure number string → number\n const numMatch = value.match(/^(-?\\d*\\.?\\d+)$/);\n if (numMatch) return parseFloat(numMatch[1]!);\n\n // Percentage strings, keywords, colors — pass through\n return value;\n}\n\ntype ParsedBorder = {\n borderWidth?: number;\n borderStyle?: 'solid' | 'dotted' | 'dashed';\n borderColor?: string;\n};\n\nconst BORDER_STYLES = [\"solid\", \"dashed\", \"dotted\", \"double\", \"groove\", \"ridge\", \"inset\", \"outset\"];\n\n// Extract numeric border width, with rem/em/px unit conversion\nfunction extractBorderWidth(part: string): number | undefined {\n // rem\n const remMatch = part.match(/^(\\d+(\\.\\d+)?)rem$/);\n if (remMatch) return parseFloat(remMatch[1]!) * 16;\n // em\n const emMatch = part.match(/^(\\d+(\\.\\d+)?)em$/);\n if (emMatch) return parseFloat(emMatch[1]!) * 16;\n // px or bare number\n const match = part.match(/^(\\d+(\\.\\d+)?)(px)?$/);\n if (!match) return undefined;\n const n = Number(match[1]);\n return Number.isFinite(n) ? n : undefined;\n}\n\nconst parseBorder = (value: string): ParsedBorder => {\n if (!value || typeof value !== \"string\") return {};\n\n const parts = value.trim().split(/\\s+/);\n\n let borderWidth: number | undefined;\n let borderStyle: \"solid\" | \"dotted\" | \"dashed\" | undefined;\n let borderColor: string | undefined;\n\n for (const part of parts) {\n // Detect width (e.g., \"1px\", \"2rem\", \"0.5em\", \"0\", \"5\", etc.)\n if (!borderWidth && /^(\\d+(\\.\\d+)?(px|em|rem|%)?)$/.test(part)) {\n const extracted = extractBorderWidth(part);\n if (extracted !== undefined) {\n borderWidth = extracted;\n continue;\n }\n continue;\n }\n\n // Detect style\n if (!borderStyle && BORDER_STYLES.includes(part)) {\n borderStyle = part as \"solid\" | \"dotted\" | \"dashed\";\n continue;\n }\n\n // Detect color (hex, rgb, rgba, hsl, named colors — not CSS vars)\n if (\n !borderColor &&\n (/^#([0-9a-f]{3}|[0-9a-f]{6}|[0-9a-f]{8})$/i.test(part) ||\n /^rgb(a)?\\(/.test(part) ||\n /^hsl(a)?\\(/.test(part) ||\n /^[a-zA-Z]+$/.test(part))\n ) {\n borderColor = part;\n }\n }\n\n return { borderWidth, borderStyle, borderColor };\n};\n\nconst isPrimitive = (v: any) =>\n typeof v === 'number' || typeof v === 'string';\n\nexport function resolveResponsiveValue<T>(\n input: any,\n ctx: StyleContext\n): T | undefined {\n\n // 1. Direct value\n if (input == null || isPrimitive(input)) {\n return input as T;\n }\n\n // 2. Array syntax — cascade like CSS: find the last defined value at or\n // before the current breakpoint index, matching web's min-width cascade.\n if (Array.isArray(input)) {\n const index = breakpointOrder.indexOf(ctx.breakpoint);\n for (let i = index; i >= 0; i--) {\n const val = input[i];\n if (val !== null && val !== undefined) return val as T;\n }\n return undefined;\n }\n\n // 3. Platform\n if (ctx.platform in input) {\n return resolveResponsiveValue(input[ctx.platform], ctx);\n }\n\n // 4. Device\n if (ctx.device in input) {\n return resolveResponsiveValue(input[ctx.device], ctx);\n }\n\n // 5. Orientation\n if (ctx.orientation in input) {\n return resolveResponsiveValue(input[ctx.orientation], ctx);\n }\n\n // 6. Breakpoints (fallback chain)\n for (\n let i = breakpointOrder.indexOf(ctx.breakpoint);\n i >= 0;\n i--\n ) {\n const bp = breakpointOrder[i];\n if (bp && bp in input) return input[bp];\n }\n\n return undefined;\n}\n\nconst resolveSizing = (value: any, key: string, ctx: StyleContext) => {\n if (value === 'full') return '100%';\n if (value === 'screen') {\n const isH = key === 'h' || key === 'height' || key === 'minH' || key === 'maxH';\n return isH ? ctx.height : ctx.width;\n }\n return toNativeValue(value);\n};\n\nconst parseBorderSide = (resolved: string, side: string): Record<string, any> => {\n const parsed = parseBorder(resolved);\n const styles: Record<string, any> = {};\n if (parsed.borderWidth !== undefined) styles[`${side}Width`] = parsed.borderWidth;\n if (parsed.borderColor) styles[`${side}Color`] = parsed.borderColor;\n if (parsed.borderStyle) styles[`${side}Style`] = parsed.borderStyle;\n return styles;\n};\n\nexport const style = (props: IStyleClasses, externalCtx?: StyleContext) => {\n const ctx = externalCtx ?? createStyleContext();\n const finalStyles: Partial<ViewStyle> = {};\n const transforms: { [key: string]: any }[] = [];\n const apply = (key: string, value: any) => {\n const mapped = mapCssProperties[key];\n if (!mapped) return;\n const converted = toNativeValue(value);\n (finalStyles as Record<string, any>)[mapped] = converted;\n };\n\n Object.entries(props).forEach(([key, val]) => {\n if (val === undefined || key.startsWith('_')) return;\n\n const resolved = resolveResponsiveValue<any>(val, ctx);\n if (resolved === undefined) return;\n\n switch (key) {\n // Margin shorthands\n case 'mx':\n finalStyles.marginLeft = toNativeValue(resolved);\n finalStyles.marginRight = toNativeValue(resolved);\n break;\n case 'my':\n finalStyles.marginTop = toNativeValue(resolved);\n finalStyles.marginBottom = toNativeValue(resolved);\n break;\n\n // Padding shorthands\n case 'px':\n finalStyles.paddingLeft = toNativeValue(resolved);\n finalStyles.paddingRight = toNativeValue(resolved);\n break;\n case 'py':\n finalStyles.paddingTop = toNativeValue(resolved);\n finalStyles.paddingBottom = toNativeValue(resolved);\n break;\n\n // Sizing with \"full\"/\"screen\" support\n case 'w':\n case 'width':\n finalStyles.width = resolveSizing(resolved, key, ctx);\n break;\n case 'h':\n case 'height':\n finalStyles.height = resolveSizing(resolved, key, ctx);\n break;\n case 'minW':\n case 'minWidth':\n finalStyles.minWidth = resolveSizing(resolved, key, ctx);\n break;\n case 'maxW':\n case 'maxWidth':\n finalStyles.maxWidth = resolveSizing(resolved, key, ctx);\n break;\n case 'minH':\n case 'minHeight':\n finalStyles.minHeight = resolveSizing(resolved, key, ctx);\n break;\n case 'maxH':\n case 'maxHeight':\n finalStyles.maxHeight = resolveSizing(resolved, key, ctx);\n break;\n\n // Opacity normalization (0-100 -> 0-1)\n case 'opacity':\n finalStyles.opacity = typeof resolved === 'number' ? resolved / 100 : resolved;\n break;\n\n // Border shorthand\n case 'border':\n if (typeof resolved === 'string') {\n Object.assign(finalStyles, parseBorder(resolved));\n }\n break;\n // Border side-specific\n case 'borderTop':\n if (typeof resolved === 'string') {\n Object.assign(finalStyles, parseBorderSide(resolved, 'borderTop'));\n }\n break;\n case 'borderBottom':\n if (typeof resolved === 'string') {\n Object.assign(finalStyles, parseBorderSide(resolved, 'borderBottom'));\n }\n break;\n case 'borderLeft':\n if (typeof resolved === 'string') {\n Object.assign(finalStyles, parseBorderSide(resolved, 'borderLeft'));\n }\n break;\n case 'borderRight':\n if (typeof resolved === 'string') {\n Object.assign(finalStyles, parseBorderSide(resolved, 'borderRight'));\n }\n break;\n // Border X/Y shorthands\n case 'borderX':\n if (typeof resolved === 'string') {\n Object.assign(finalStyles, parseBorderSide(resolved, 'borderLeft'));\n Object.assign(finalStyles, parseBorderSide(resolved, 'borderRight'));\n }\n break;\n case 'borderY':\n if (typeof resolved === 'string') {\n Object.assign(finalStyles, parseBorderSide(resolved, 'borderTop'));\n Object.assign(finalStyles, parseBorderSide(resolved, 'borderBottom'));\n }\n break;\n\n // Border radius shorthands\n case 'borderRadiusTop':\n finalStyles.borderTopLeftRadius = toNativeValue(resolved);\n finalStyles.borderTopRightRadius = toNativeValue(resolved);\n break;\n case 'borderRadiusBottom':\n finalStyles.borderBottomLeftRadius = toNativeValue(resolved);\n finalStyles.borderBottomRightRadius = toNativeValue(resolved);\n break;\n case 'borderRadiusLeft':\n finalStyles.borderTopLeftRadius = toNativeValue(resolved);\n finalStyles.borderBottomLeftRadius = toNativeValue(resolved);\n break;\n case 'borderRadiusRight':\n finalStyles.borderTopRightRadius = toNativeValue(resolved);\n finalStyles.borderBottomRightRadius = toNativeValue(resolved);\n break;\n\n // Transform props -> RN transform array\n case 'translateX':\n transforms.push({ translateX: typeof resolved === 'string' ? parseFloat(resolved) || 0 : resolved });\n break;\n case 'translateY':\n transforms.push({ translateY: typeof resolved === 'string' ? parseFloat(resolved) || 0 : resolved });\n break;\n case 'rotate':\n transforms.push({ rotate: typeof resolved === 'number' ? `${resolved}deg` : resolved });\n break;\n\n // Cross-platform shadow preset → native shadow props (shadowColor /\n // shadowOffset / shadowOpacity / shadowRadius / elevation). The scale is\n // published by the native KitsThemeProvider from `theme.shadows`.\n case 'shadow':\n if (typeof resolved === 'string' && isShadowPreset(resolved)) {\n Object.assign(finalStyles, expandShadowNative(resolved));\n }\n break;\n\n default:\n apply(key, resolved);\n break;\n }\n });\n\n if (transforms.length > 0) {\n finalStyles.transform = transforms as any;\n }\n\n return finalStyles;\n};\n"],"names":["mapCssProperties"],"mappings":"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"}
|
|
@@ -10,6 +10,7 @@ require('yup');
|
|
|
10
10
|
var index_native = require('../../../../packages/types/src/Css/map/index.cjs');
|
|
11
11
|
require('../../../../packages/types/src/Theme/shadows.cjs');
|
|
12
12
|
require('../../../../packages/types/src/Theme/defaultTheme.cjs');
|
|
13
|
+
require('../../../../packages/types/src/Theme/alphaColors.cjs');
|
|
13
14
|
|
|
14
15
|
const split = (props) => {
|
|
15
16
|
const cssProps = {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSeparator.cjs","sources":["../../../../../../../../apps/mobile/src/Factory/useSeparator.ts"],"sourcesContent":["import { type IStyleClasses, mapCssProperties } from \"@lmb-it/kitsconcerto-types\";\n\nexport interface IUseSeparator<T> {\n cssProps: IStyleClasses;\n nativeProps: T;\n}\n\n/**\n * Split incoming props into styling-related props (cssProps)\n * and component-specific props (nativeProps).\n */\nexport const split = <T extends Record<string, any>>(props: Record<string, any>): IUseSeparator<T> => {\n const cssProps: IStyleClasses = {} as IStyleClasses;\n const nativeProps = {} as T;\n\n for (const key in props) {\n if (key in mapCssProperties) {\n (cssProps as any)[key] = props[key];\n } else {\n (nativeProps as any)[key] = props[key];\n }\n }\n\n return { cssProps, nativeProps };\n};\n\n/**\n * Main hook: returns separated cssProps and nativeProps\n */\nexport const useSeparator = <T extends Record<string, any>>(props: Record<string, any>): IUseSeparator<T> => {\n return split<T>(props);\n};\n\nexport default useSeparator;\n"],"names":["mapCssProperties"],"mappings":"
|
|
1
|
+
{"version":3,"file":"useSeparator.cjs","sources":["../../../../../../../../apps/mobile/src/Factory/useSeparator.ts"],"sourcesContent":["import { type IStyleClasses, mapCssProperties } from \"@lmb-it/kitsconcerto-types\";\n\nexport interface IUseSeparator<T> {\n cssProps: IStyleClasses;\n nativeProps: T;\n}\n\n/**\n * Split incoming props into styling-related props (cssProps)\n * and component-specific props (nativeProps).\n */\nexport const split = <T extends Record<string, any>>(props: Record<string, any>): IUseSeparator<T> => {\n const cssProps: IStyleClasses = {} as IStyleClasses;\n const nativeProps = {} as T;\n\n for (const key in props) {\n if (key in mapCssProperties) {\n (cssProps as any)[key] = props[key];\n } else {\n (nativeProps as any)[key] = props[key];\n }\n }\n\n return { cssProps, nativeProps };\n};\n\n/**\n * Main hook: returns separated cssProps and nativeProps\n */\nexport const useSeparator = <T extends Record<string, any>>(props: Record<string, any>): IUseSeparator<T> => {\n return split<T>(props);\n};\n\nexport default useSeparator;\n"],"names":["mapCssProperties"],"mappings":";;;;;;;;;;;;;;AAWO,MAAM,KAAA,GAAQ,CAAgC,KAAA,KAAiD;AACpG,EAAA,MAAM,WAA0B,EAAC;AACjC,EAAA,MAAM,cAAc,EAAC;AAErB,EAAA,KAAA,MAAW,OAAO,KAAA,EAAO;AACvB,IAAA,IAAI,OAAOA,oBAAA,EAAkB;AAC3B,MAAC,QAAA,CAAiB,GAAG,CAAA,GAAI,KAAA,CAAM,GAAG,CAAA;AAAA,IACpC,CAAA,MAAO;AACL,MAAC,WAAA,CAAoB,GAAG,CAAA,GAAI,KAAA,CAAM,GAAG,CAAA;AAAA,IACvC;AAAA,EACF;AAEA,EAAA,OAAO,EAAE,UAAU,WAAA,EAAY;AACjC;AAKO,MAAM,YAAA,GAAe,CAAgC,KAAA,KAAiD;AAC3G,EAAA,OAAO,MAAS,KAAK,CAAA;AACvB;;;;;;"}
|
|
@@ -6,6 +6,7 @@ import 'yup';
|
|
|
6
6
|
import allProperties from '../../../../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
|
+
import '../../../../packages/types/src/Theme/alphaColors.js';
|
|
9
10
|
|
|
10
11
|
const split = (props) => {
|
|
11
12
|
const cssProps = {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSeparator.js","sources":["../../../../../../../../apps/mobile/src/Factory/useSeparator.ts"],"sourcesContent":["import { type IStyleClasses, mapCssProperties } from \"@lmb-it/kitsconcerto-types\";\n\nexport interface IUseSeparator<T> {\n cssProps: IStyleClasses;\n nativeProps: T;\n}\n\n/**\n * Split incoming props into styling-related props (cssProps)\n * and component-specific props (nativeProps).\n */\nexport const split = <T extends Record<string, any>>(props: Record<string, any>): IUseSeparator<T> => {\n const cssProps: IStyleClasses = {} as IStyleClasses;\n const nativeProps = {} as T;\n\n for (const key in props) {\n if (key in mapCssProperties) {\n (cssProps as any)[key] = props[key];\n } else {\n (nativeProps as any)[key] = props[key];\n }\n }\n\n return { cssProps, nativeProps };\n};\n\n/**\n * Main hook: returns separated cssProps and nativeProps\n */\nexport const useSeparator = <T extends Record<string, any>>(props: Record<string, any>): IUseSeparator<T> => {\n return split<T>(props);\n};\n\nexport default useSeparator;\n"],"names":["mapCssProperties"],"mappings":"
|
|
1
|
+
{"version":3,"file":"useSeparator.js","sources":["../../../../../../../../apps/mobile/src/Factory/useSeparator.ts"],"sourcesContent":["import { type IStyleClasses, mapCssProperties } from \"@lmb-it/kitsconcerto-types\";\n\nexport interface IUseSeparator<T> {\n cssProps: IStyleClasses;\n nativeProps: T;\n}\n\n/**\n * Split incoming props into styling-related props (cssProps)\n * and component-specific props (nativeProps).\n */\nexport const split = <T extends Record<string, any>>(props: Record<string, any>): IUseSeparator<T> => {\n const cssProps: IStyleClasses = {} as IStyleClasses;\n const nativeProps = {} as T;\n\n for (const key in props) {\n if (key in mapCssProperties) {\n (cssProps as any)[key] = props[key];\n } else {\n (nativeProps as any)[key] = props[key];\n }\n }\n\n return { cssProps, nativeProps };\n};\n\n/**\n * Main hook: returns separated cssProps and nativeProps\n */\nexport const useSeparator = <T extends Record<string, any>>(props: Record<string, any>): IUseSeparator<T> => {\n return split<T>(props);\n};\n\nexport default useSeparator;\n"],"names":["mapCssProperties"],"mappings":";;;;;;;;;;AAWO,MAAM,KAAA,GAAQ,CAAgC,KAAA,KAAiD;AACpG,EAAA,MAAM,WAA0B,EAAC;AACjC,EAAA,MAAM,cAAc,EAAC;AAErB,EAAA,KAAA,MAAW,OAAO,KAAA,EAAO;AACvB,IAAA,IAAI,OAAOA,aAAA,EAAkB;AAC3B,MAAC,QAAA,CAAiB,GAAG,CAAA,GAAI,KAAA,CAAM,GAAG,CAAA;AAAA,IACpC,CAAA,MAAO;AACL,MAAC,WAAA,CAAoB,GAAG,CAAA,GAAI,KAAA,CAAM,GAAG,CAAA;AAAA,IACvC;AAAA,EACF;AAEA,EAAA,OAAO,EAAE,UAAU,WAAA,EAAY;AACjC;AAKO,MAAM,YAAA,GAAe,CAAgC,KAAA,KAAiD;AAC3G,EAAA,OAAO,MAAS,KAAK,CAAA;AACvB;;;;"}
|
|
@@ -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":"accordion.cjs","sources":["../../../../src/components/Accordion/accordion.native.tsx"],"sourcesContent":["import React, {useEffect, useState} from \"react\";\nimport type {IAccordionProps} from \"@lmb-it/kitsconcerto-types\";\n\nimport {\n Accordion,\n AccordionContent,\n AccordionContentText,\n AccordionHeader,\n AccordionIcon,\n AccordionItem,\n AccordionTitleText,\n AccordionTrigger,\n ChevronDownIcon,\n ChevronUpIcon,\n Divider\n} from \"@lmb-it/kitsconcertomobile\";\n\nimport {Box, Heading} from \"../../_compat\"; // your existing KitsConcerto components\nimport useThemedFont from \"../../hooks/useThemedFont\";\n\nconst CustomAccordion = ({\n accordionTitle,\n accordionItems,\n isLoading,\n allOpenedByDefault,\n localProps,\n }: IAccordionProps<any>) => {\n\n const [expanded, setExpanded] = useState<string[] | string>(\n localProps?.multiple ? [\"0\"] : \"0\"\n );\n\n // Apply \"open all by default\"\n useEffect(() => {\n if (allOpenedByDefault && accordionItems?.length) {\n const allValues = accordionItems.map((_, i) => `${i}`);\n setExpanded(localProps?.multiple ? allValues ?? [\"0\"] : allValues[0] ?? \"0\");\n }\n }, [allOpenedByDefault]);\n\n // Gluestack expects:\n // type=\"single\" or \"multiple\"\n const type = localProps?.multiple ? \"multiple\" : \"single\";\n\n const titleFont = useThemedFont('heading');\n const bodyFont = useThemedFont('body');\n\n const handleChange = (val: string | string[]) => {\n setExpanded(val);\n\n // call item-specific onToggle if provided\n if (accordionItems) {\n if (Array.isArray(val)) {\n val.forEach((key) => {\n const index = parseInt(key, 10);\n accordionItems[index]?.onToggle?.(true);\n });\n } else {\n const index = parseInt(val, 10);\n accordionItems[index]?.onToggle?.(true);\n }\n }\n };\n\n return (\n <Box w=\"100%\" borderRadius={8} overflow=\"hidden\" className=\"bg-background-0\">\n {!!accordionTitle && (\n <Heading as=\"h2\" p={4} fontSize=\"lg\" className=\"bg-background-100\">\n {accordionTitle}\n </Heading>\n )}\n\n {isLoading ? (\n <Box p={4}>\n {/* Replace with RN skeleton later */}\n </Box>\n ) : (\n <Accordion\n {...localProps}\n value={expanded}\n onValueChange={handleChange}\n type={type}\n className=\"w-full\"\n >\n {accordionItems?.map(({button, panel}, i) => (\n <React.Fragment key={i}>\n <AccordionItem value={`${i}`}>\n <AccordionHeader>\n <AccordionTrigger>\n {({isExpanded}:{isExpanded:boolean}) => (\n <>\n <AccordionTitleText style={titleFont ? {fontFamily: titleFont} : undefined}>{button}</AccordionTitleText>\n <AccordionIcon\n as={isExpanded ? ChevronUpIcon : ChevronDownIcon}\n className=\"ms-3\"\n />\n </>\n )}\n </AccordionTrigger>\n </AccordionHeader>\n\n <AccordionContent>\n <AccordionContentText style={bodyFont ? {fontFamily: bodyFont} : undefined}>\n {panel}\n </AccordionContentText>\n </AccordionContent>\n </AccordionItem>\n\n {i !== accordionItems.length - 1 && <Divider/>}\n </React.Fragment>\n ))}\n </Accordion>\n )}\n </Box>\n );\n};\n\nexport default CustomAccordion;\n"],"names":["useState","useEffect","useThemedFont","jsxs","Box","jsx","Heading","Accordion","AccordionItem","AccordionHeader","AccordionTrigger","Fragment","AccordionTitleText","AccordionIcon","ChevronUpIcon","ChevronDownIcon","AccordionContent","AccordionContentText","Divider"],"mappings":"
|
|
1
|
+
{"version":3,"file":"accordion.cjs","sources":["../../../../src/components/Accordion/accordion.native.tsx"],"sourcesContent":["import React, {useEffect, useState} from \"react\";\nimport type {IAccordionProps} from \"@lmb-it/kitsconcerto-types\";\n\nimport {\n Accordion,\n AccordionContent,\n AccordionContentText,\n AccordionHeader,\n AccordionIcon,\n AccordionItem,\n AccordionTitleText,\n AccordionTrigger,\n ChevronDownIcon,\n ChevronUpIcon,\n Divider\n} from \"@lmb-it/kitsconcertomobile\";\n\nimport {Box, Heading} from \"../../_compat\"; // your existing KitsConcerto components\nimport useThemedFont from \"../../hooks/useThemedFont\";\n\nconst CustomAccordion = ({\n accordionTitle,\n accordionItems,\n isLoading,\n allOpenedByDefault,\n localProps,\n }: IAccordionProps<any>) => {\n\n const [expanded, setExpanded] = useState<string[] | string>(\n localProps?.multiple ? [\"0\"] : \"0\"\n );\n\n // Apply \"open all by default\"\n useEffect(() => {\n if (allOpenedByDefault && accordionItems?.length) {\n const allValues = accordionItems.map((_, i) => `${i}`);\n setExpanded(localProps?.multiple ? allValues ?? [\"0\"] : allValues[0] ?? \"0\");\n }\n }, [allOpenedByDefault]);\n\n // Gluestack expects:\n // type=\"single\" or \"multiple\"\n const type = localProps?.multiple ? \"multiple\" : \"single\";\n\n const titleFont = useThemedFont('heading');\n const bodyFont = useThemedFont('body');\n\n const handleChange = (val: string | string[]) => {\n setExpanded(val);\n\n // call item-specific onToggle if provided\n if (accordionItems) {\n if (Array.isArray(val)) {\n val.forEach((key) => {\n const index = parseInt(key, 10);\n accordionItems[index]?.onToggle?.(true);\n });\n } else {\n const index = parseInt(val, 10);\n accordionItems[index]?.onToggle?.(true);\n }\n }\n };\n\n return (\n <Box w=\"100%\" borderRadius={8} overflow=\"hidden\" className=\"bg-background-0\">\n {!!accordionTitle && (\n <Heading as=\"h2\" p={4} fontSize=\"lg\" className=\"bg-background-100\">\n {accordionTitle}\n </Heading>\n )}\n\n {isLoading ? (\n <Box p={4}>\n {/* Replace with RN skeleton later */}\n </Box>\n ) : (\n <Accordion\n {...localProps}\n value={expanded}\n onValueChange={handleChange}\n type={type}\n className=\"w-full\"\n >\n {accordionItems?.map(({button, panel}, i) => (\n <React.Fragment key={i}>\n <AccordionItem value={`${i}`}>\n <AccordionHeader>\n <AccordionTrigger>\n {({isExpanded}:{isExpanded:boolean}) => (\n <>\n <AccordionTitleText style={titleFont ? {fontFamily: titleFont} : undefined}>{button}</AccordionTitleText>\n <AccordionIcon\n as={isExpanded ? ChevronUpIcon : ChevronDownIcon}\n className=\"ms-3\"\n />\n </>\n )}\n </AccordionTrigger>\n </AccordionHeader>\n\n <AccordionContent>\n <AccordionContentText style={bodyFont ? {fontFamily: bodyFont} : undefined}>\n {panel}\n </AccordionContentText>\n </AccordionContent>\n </AccordionItem>\n\n {i !== accordionItems.length - 1 && <Divider/>}\n </React.Fragment>\n ))}\n </Accordion>\n )}\n </Box>\n );\n};\n\nexport default CustomAccordion;\n"],"names":["useState","useEffect","useThemedFont","jsxs","Box","jsx","Heading","Accordion","AccordionItem","AccordionHeader","AccordionTrigger","Fragment","AccordionTitleText","AccordionIcon","ChevronUpIcon","ChevronDownIcon","AccordionContent","AccordionContentText","Divider"],"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":"accordion.js","sources":["../../../../src/components/Accordion/accordion.native.tsx"],"sourcesContent":["import React, {useEffect, useState} from \"react\";\nimport type {IAccordionProps} from \"@lmb-it/kitsconcerto-types\";\n\nimport {\n Accordion,\n AccordionContent,\n AccordionContentText,\n AccordionHeader,\n AccordionIcon,\n AccordionItem,\n AccordionTitleText,\n AccordionTrigger,\n ChevronDownIcon,\n ChevronUpIcon,\n Divider\n} from \"@lmb-it/kitsconcertomobile\";\n\nimport {Box, Heading} from \"../../_compat\"; // your existing KitsConcerto components\nimport useThemedFont from \"../../hooks/useThemedFont\";\n\nconst CustomAccordion = ({\n accordionTitle,\n accordionItems,\n isLoading,\n allOpenedByDefault,\n localProps,\n }: IAccordionProps<any>) => {\n\n const [expanded, setExpanded] = useState<string[] | string>(\n localProps?.multiple ? [\"0\"] : \"0\"\n );\n\n // Apply \"open all by default\"\n useEffect(() => {\n if (allOpenedByDefault && accordionItems?.length) {\n const allValues = accordionItems.map((_, i) => `${i}`);\n setExpanded(localProps?.multiple ? allValues ?? [\"0\"] : allValues[0] ?? \"0\");\n }\n }, [allOpenedByDefault]);\n\n // Gluestack expects:\n // type=\"single\" or \"multiple\"\n const type = localProps?.multiple ? \"multiple\" : \"single\";\n\n const titleFont = useThemedFont('heading');\n const bodyFont = useThemedFont('body');\n\n const handleChange = (val: string | string[]) => {\n setExpanded(val);\n\n // call item-specific onToggle if provided\n if (accordionItems) {\n if (Array.isArray(val)) {\n val.forEach((key) => {\n const index = parseInt(key, 10);\n accordionItems[index]?.onToggle?.(true);\n });\n } else {\n const index = parseInt(val, 10);\n accordionItems[index]?.onToggle?.(true);\n }\n }\n };\n\n return (\n <Box w=\"100%\" borderRadius={8} overflow=\"hidden\" className=\"bg-background-0\">\n {!!accordionTitle && (\n <Heading as=\"h2\" p={4} fontSize=\"lg\" className=\"bg-background-100\">\n {accordionTitle}\n </Heading>\n )}\n\n {isLoading ? (\n <Box p={4}>\n {/* Replace with RN skeleton later */}\n </Box>\n ) : (\n <Accordion\n {...localProps}\n value={expanded}\n onValueChange={handleChange}\n type={type}\n className=\"w-full\"\n >\n {accordionItems?.map(({button, panel}, i) => (\n <React.Fragment key={i}>\n <AccordionItem value={`${i}`}>\n <AccordionHeader>\n <AccordionTrigger>\n {({isExpanded}:{isExpanded:boolean}) => (\n <>\n <AccordionTitleText style={titleFont ? {fontFamily: titleFont} : undefined}>{button}</AccordionTitleText>\n <AccordionIcon\n as={isExpanded ? ChevronUpIcon : ChevronDownIcon}\n className=\"ms-3\"\n />\n </>\n )}\n </AccordionTrigger>\n </AccordionHeader>\n\n <AccordionContent>\n <AccordionContentText style={bodyFont ? {fontFamily: bodyFont} : undefined}>\n {panel}\n </AccordionContentText>\n </AccordionContent>\n </AccordionItem>\n\n {i !== accordionItems.length - 1 && <Divider/>}\n </React.Fragment>\n ))}\n </Accordion>\n )}\n </Box>\n );\n};\n\nexport default CustomAccordion;\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"accordion.js","sources":["../../../../src/components/Accordion/accordion.native.tsx"],"sourcesContent":["import React, {useEffect, useState} from \"react\";\nimport type {IAccordionProps} from \"@lmb-it/kitsconcerto-types\";\n\nimport {\n Accordion,\n AccordionContent,\n AccordionContentText,\n AccordionHeader,\n AccordionIcon,\n AccordionItem,\n AccordionTitleText,\n AccordionTrigger,\n ChevronDownIcon,\n ChevronUpIcon,\n Divider\n} from \"@lmb-it/kitsconcertomobile\";\n\nimport {Box, Heading} from \"../../_compat\"; // your existing KitsConcerto components\nimport useThemedFont from \"../../hooks/useThemedFont\";\n\nconst CustomAccordion = ({\n accordionTitle,\n accordionItems,\n isLoading,\n allOpenedByDefault,\n localProps,\n }: IAccordionProps<any>) => {\n\n const [expanded, setExpanded] = useState<string[] | string>(\n localProps?.multiple ? [\"0\"] : \"0\"\n );\n\n // Apply \"open all by default\"\n useEffect(() => {\n if (allOpenedByDefault && accordionItems?.length) {\n const allValues = accordionItems.map((_, i) => `${i}`);\n setExpanded(localProps?.multiple ? allValues ?? [\"0\"] : allValues[0] ?? \"0\");\n }\n }, [allOpenedByDefault]);\n\n // Gluestack expects:\n // type=\"single\" or \"multiple\"\n const type = localProps?.multiple ? \"multiple\" : \"single\";\n\n const titleFont = useThemedFont('heading');\n const bodyFont = useThemedFont('body');\n\n const handleChange = (val: string | string[]) => {\n setExpanded(val);\n\n // call item-specific onToggle if provided\n if (accordionItems) {\n if (Array.isArray(val)) {\n val.forEach((key) => {\n const index = parseInt(key, 10);\n accordionItems[index]?.onToggle?.(true);\n });\n } else {\n const index = parseInt(val, 10);\n accordionItems[index]?.onToggle?.(true);\n }\n }\n };\n\n return (\n <Box w=\"100%\" borderRadius={8} overflow=\"hidden\" className=\"bg-background-0\">\n {!!accordionTitle && (\n <Heading as=\"h2\" p={4} fontSize=\"lg\" className=\"bg-background-100\">\n {accordionTitle}\n </Heading>\n )}\n\n {isLoading ? (\n <Box p={4}>\n {/* Replace with RN skeleton later */}\n </Box>\n ) : (\n <Accordion\n {...localProps}\n value={expanded}\n onValueChange={handleChange}\n type={type}\n className=\"w-full\"\n >\n {accordionItems?.map(({button, panel}, i) => (\n <React.Fragment key={i}>\n <AccordionItem value={`${i}`}>\n <AccordionHeader>\n <AccordionTrigger>\n {({isExpanded}:{isExpanded:boolean}) => (\n <>\n <AccordionTitleText style={titleFont ? {fontFamily: titleFont} : undefined}>{button}</AccordionTitleText>\n <AccordionIcon\n as={isExpanded ? ChevronUpIcon : ChevronDownIcon}\n className=\"ms-3\"\n />\n </>\n )}\n </AccordionTrigger>\n </AccordionHeader>\n\n <AccordionContent>\n <AccordionContentText style={bodyFont ? {fontFamily: bodyFont} : undefined}>\n {panel}\n </AccordionContentText>\n </AccordionContent>\n </AccordionItem>\n\n {i !== accordionItems.length - 1 && <Divider/>}\n </React.Fragment>\n ))}\n </Accordion>\n )}\n </Box>\n );\n};\n\nexport default CustomAccordion;\n"],"names":[],"mappings":"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"}
|
|
@@ -59,6 +59,8 @@ require('yup');
|
|
|
59
59
|
require('../../packages/types/src/Css/map/index.cjs');
|
|
60
60
|
require('../../packages/types/src/Theme/shadows.cjs');
|
|
61
61
|
require('../../packages/types/src/Theme/defaultTheme.cjs');
|
|
62
|
+
require('../../packages/types/src/Theme/alphaColors.cjs');
|
|
63
|
+
require('../../apps/mobile/src/Factory/helpers/cssVarMap.cjs');
|
|
62
64
|
require('../../apps/mobile/src/Factory/DimensionsContext.cjs');
|
|
63
65
|
require('i18next');
|
|
64
66
|
require('react-i18next');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../../../../src/components/Badge/index.native.tsx"],"sourcesContent":["import {PrimeBadge, type BadgeProps} from \"@lmb-it/kitsconcertomobile\";\n\nexport type {BadgeProps};\n\nexport const Badge = (props: BadgeProps) => {\n return <PrimeBadge {...props} />;\n};\n"],"names":["jsx","PrimeBadge"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../../src/components/Badge/index.native.tsx"],"sourcesContent":["import {PrimeBadge, type BadgeProps} from \"@lmb-it/kitsconcertomobile\";\n\nexport type {BadgeProps};\n\nexport const Badge = (props: BadgeProps) => {\n return <PrimeBadge {...props} />;\n};\n"],"names":["jsx","PrimeBadge"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIO,MAAM,KAAA,GAAQ,CAAC,KAAA,KAAsB;AACxC,EAAA,uBAAOA,cAAA,CAACC,gBAAA,EAAA,EAAY,GAAG,KAAA,EAAO,CAAA;AAClC;;;;"}
|
|
@@ -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/components/Badge/index.native.tsx"],"sourcesContent":["import {PrimeBadge, type BadgeProps} from \"@lmb-it/kitsconcertomobile\";\n\nexport type {BadgeProps};\n\nexport const Badge = (props: BadgeProps) => {\n return <PrimeBadge {...props} />;\n};\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/Badge/index.native.tsx"],"sourcesContent":["import {PrimeBadge, type BadgeProps} from \"@lmb-it/kitsconcertomobile\";\n\nexport type {BadgeProps};\n\nexport const Badge = (props: BadgeProps) => {\n return <PrimeBadge {...props} />;\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIO,MAAM,KAAA,GAAQ,CAAC,KAAA,KAAsB;AACxC,EAAA,uBAAO,GAAA,CAAC,UAAA,EAAA,EAAY,GAAG,KAAA,EAAO,CAAA;AAClC;;;;"}
|
|
@@ -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('i18next');
|
|
65
67
|
require('react-i18next');
|
|
66
68
|
require('../../apps/mobile/src/Core/AutoComplete/index.cjs');
|