@lmb-it/kitsconcerto-native 0.1.289 → 0.1.291
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/apps/mobile/src/Core/Dropdown/index.cjs +1 -0
- package/apps/mobile/src/Core/Dropdown/index.cjs.map +1 -1
- package/apps/mobile/src/Core/Dropdown/index.js +1 -0
- package/apps/mobile/src/Core/Dropdown/index.js.map +1 -1
- package/apps/mobile/src/Core/Trees/components/CoreToolbar.cjs +1 -0
- package/apps/mobile/src/Core/Trees/components/CoreToolbar.cjs.map +1 -1
- package/apps/mobile/src/Core/Trees/components/CoreToolbar.js +1 -0
- package/apps/mobile/src/Core/Trees/components/CoreToolbar.js.map +1 -1
- package/apps/mobile/src/Factory/ResponsiveElement.cjs +1 -0
- package/apps/mobile/src/Factory/ResponsiveElement.cjs.map +1 -1
- package/apps/mobile/src/Factory/ResponsiveElement.js +1 -0
- package/apps/mobile/src/Factory/ResponsiveElement.js.map +1 -1
- package/apps/mobile/src/Factory/helpers/cssVarMap.cjs +1 -0
- package/apps/mobile/src/Factory/helpers/cssVarMap.cjs.map +1 -1
- package/apps/mobile/src/Factory/helpers/cssVarMap.js +1 -0
- package/apps/mobile/src/Factory/helpers/cssVarMap.js.map +1 -1
- package/apps/mobile/src/Factory/helpers/style.cjs +1 -0
- package/apps/mobile/src/Factory/helpers/style.cjs.map +1 -1
- package/apps/mobile/src/Factory/helpers/style.js +1 -0
- 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 +1 -0
- package/components/Accordion/accordion.cjs.map +1 -1
- package/components/Accordion/accordion.js +1 -0
- package/components/Accordion/accordion.js.map +1 -1
- package/components/Badge/index.cjs +1 -0
- package/components/Badge/index.cjs.map +1 -1
- package/components/Badge/index.js +1 -0
- package/components/Badge/index.js.map +1 -1
- package/components/BottomTabBar/index.cjs +1 -0
- package/components/BottomTabBar/index.cjs.map +1 -1
- package/components/BottomTabBar/index.js +1 -0
- package/components/BottomTabBar/index.js.map +1 -1
- package/components/Button/Button.cjs +1 -0
- package/components/Button/Button.cjs.map +1 -1
- package/components/Button/Button.js +1 -0
- package/components/Button/Button.js.map +1 -1
- package/components/MessageComposer/index.cjs +1 -0
- package/components/MessageComposer/index.cjs.map +1 -1
- package/components/MessageComposer/index.js +1 -0
- package/components/MessageComposer/index.js.map +1 -1
- package/components/SegmentedControl/index.cjs +1 -0
- package/components/SegmentedControl/index.cjs.map +1 -1
- package/components/SegmentedControl/index.js +1 -0
- package/components/SegmentedControl/index.js.map +1 -1
- package/components/SkeletonText/index.cjs +1 -0
- package/components/SkeletonText/index.cjs.map +1 -1
- package/components/SkeletonText/index.js +1 -0
- package/components/SkeletonText/index.js.map +1 -1
- package/components/Tabs/index.cjs +3 -2
- package/components/Tabs/index.cjs.map +1 -1
- package/components/Tabs/index.js +3 -2
- package/components/Tabs/index.js.map +1 -1
- package/contexts/Locale/index.cjs +1 -0
- package/contexts/Locale/index.cjs.map +1 -1
- package/contexts/Locale/index.js +1 -0
- package/contexts/Locale/index.js.map +1 -1
- package/contexts/Main/index.cjs +1 -0
- package/contexts/Main/index.cjs.map +1 -1
- package/contexts/Main/index.js +1 -0
- package/contexts/Main/index.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/data/DataView/Pagination/index.cjs +1 -0
- package/data/DataView/Pagination/index.cjs.map +1 -1
- package/data/DataView/Pagination/index.js +1 -0
- package/data/DataView/Pagination/index.js.map +1 -1
- package/data/TreeView/index.cjs +1 -0
- package/data/TreeView/index.cjs.map +1 -1
- package/data/TreeView/index.js +1 -0
- package/data/TreeView/index.js.map +1 -1
- package/form/controls/Checkbox/checkbox.cjs +1 -0
- package/form/controls/Checkbox/checkbox.cjs.map +1 -1
- package/form/controls/Checkbox/checkbox.js +1 -0
- package/form/controls/Checkbox/checkbox.js.map +1 -1
- package/form/controls/RadioButton/radiobutton.cjs +1 -0
- package/form/controls/RadioButton/radiobutton.cjs.map +1 -1
- package/form/controls/RadioButton/radiobutton.js +1 -0
- package/form/controls/RadioButton/radiobutton.js.map +1 -1
- package/form/controls/SelectButton/index.cjs +1 -0
- package/form/controls/SelectButton/index.cjs.map +1 -1
- package/form/controls/SelectButton/index.js +1 -0
- package/form/controls/SelectButton/index.js.map +1 -1
- package/form/controls/TriStateCheckbox/index.cjs +1 -0
- package/form/controls/TriStateCheckbox/index.cjs.map +1 -1
- package/form/controls/TriStateCheckbox/index.js +1 -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 +1 -0
- package/form/helpers/ErrorMessage/errormessage.cjs.map +1 -1
- package/form/helpers/ErrorMessage/errormessage.js +1 -0
- package/form/helpers/ErrorMessage/errormessage.js.map +1 -1
- package/form/helpers/FormContainer/index.cjs +1 -0
- package/form/helpers/FormContainer/index.cjs.map +1 -1
- package/form/helpers/FormContainer/index.js +1 -0
- package/form/helpers/FormContainer/index.js.map +1 -1
- package/form/helpers/Label/label.cjs +1 -0
- package/form/helpers/Label/label.cjs.map +1 -1
- package/form/helpers/Label/label.js +1 -0
- package/form/helpers/Label/label.js.map +1 -1
- package/form/inputs/InputMask/index.cjs +1 -0
- package/form/inputs/InputMask/index.cjs.map +1 -1
- package/form/inputs/InputMask/index.js +1 -0
- package/form/inputs/InputMask/index.js.map +1 -1
- package/form/inputs/InputNumber/index.cjs +1 -0
- package/form/inputs/InputNumber/index.cjs.map +1 -1
- package/form/inputs/InputNumber/index.js +1 -0
- package/form/inputs/InputNumber/index.js.map +1 -1
- package/form/inputs/InputPassword/index.cjs +1 -0
- package/form/inputs/InputPassword/index.cjs.map +1 -1
- package/form/inputs/InputPassword/index.js +1 -0
- package/form/inputs/InputPassword/index.js.map +1 -1
- package/form/inputs/InputSwitch/index.cjs +1 -0
- package/form/inputs/InputSwitch/index.cjs.map +1 -1
- package/form/inputs/InputSwitch/index.js +1 -0
- package/form/inputs/InputSwitch/index.js.map +1 -1
- package/form/inputs/InputText/index.cjs +1 -0
- package/form/inputs/InputText/index.cjs.map +1 -1
- package/form/inputs/InputText/index.js +1 -0
- package/form/inputs/InputText/index.js.map +1 -1
- package/form/inputs/InputTextarea/index.cjs +1 -0
- package/form/inputs/InputTextarea/index.cjs.map +1 -1
- package/form/inputs/InputTextarea/index.js +1 -0
- package/form/inputs/InputTextarea/index.js.map +1 -1
- package/form/inputs/PhoneInput/index.cjs +1 -0
- package/form/inputs/PhoneInput/index.cjs.map +1 -1
- package/form/inputs/PhoneInput/index.js +1 -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 +1 -0
- package/form/selects/AutoComplete/index.cjs.map +1 -1
- package/form/selects/AutoComplete/index.js +1 -0
- package/form/selects/AutoComplete/index.js.map +1 -1
- package/form/selects/Dropdown/index.cjs +1 -0
- package/form/selects/Dropdown/index.cjs.map +1 -1
- package/form/selects/Dropdown/index.js +1 -0
- package/form/selects/Dropdown/index.js.map +1 -1
- package/form/selects/ListBox/index.cjs +1 -0
- package/form/selects/ListBox/index.cjs.map +1 -1
- package/form/selects/ListBox/index.js +1 -0
- package/form/selects/ListBox/index.js.map +1 -1
- package/form/selects/MultiSelect/index.cjs +1 -0
- package/form/selects/MultiSelect/index.cjs.map +1 -1
- package/form/selects/MultiSelect/index.js +1 -0
- package/form/selects/MultiSelect/index.js.map +1 -1
- package/form/selects/TreeSelect/index.cjs +1 -0
- package/form/selects/TreeSelect/index.cjs.map +1 -1
- package/form/selects/TreeSelect/index.js +1 -0
- package/form/selects/TreeSelect/index.js.map +1 -1
- package/form/selects/helpers/SelectPopupOverlay.cjs +1 -0
- package/form/selects/helpers/SelectPopupOverlay.cjs.map +1 -1
- package/form/selects/helpers/SelectPopupOverlay.js +1 -0
- package/form/selects/helpers/SelectPopupOverlay.js.map +1 -1
- package/form-renderer/components/layout/FieldWrapper.cjs +1 -0
- package/form-renderer/components/layout/FieldWrapper.cjs.map +1 -1
- package/form-renderer/components/layout/FieldWrapper.js +1 -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 +1 -0
- package/hooks/useFocusStyles.cjs.map +1 -1
- package/hooks/useFocusStyles.js +1 -0
- package/hooks/useFocusStyles.js.map +1 -1
- package/index.cjs +2 -0
- package/index.cjs.map +1 -1
- package/index.d.ts +35 -3
- package/index.js +1 -0
- package/index.js.map +1 -1
- package/layout/Center/index.cjs +1 -0
- package/layout/Center/index.cjs.map +1 -1
- package/layout/Center/index.js +1 -0
- package/layout/Center/index.js.map +1 -1
- package/layout/Container/container.cjs +1 -0
- package/layout/Container/container.cjs.map +1 -1
- package/layout/Container/container.js +1 -0
- package/layout/Container/container.js.map +1 -1
- package/layout/Flex/index.cjs +1 -0
- package/layout/Flex/index.cjs.map +1 -1
- package/layout/Flex/index.js +1 -0
- package/layout/Flex/index.js.map +1 -1
- package/layout/HStack/index.cjs +1 -0
- package/layout/HStack/index.cjs.map +1 -1
- package/layout/HStack/index.js +1 -0
- package/layout/HStack/index.js.map +1 -1
- package/layout/List/index.cjs +1 -0
- package/layout/List/index.cjs.map +1 -1
- package/layout/List/index.js +1 -0
- package/layout/List/index.js.map +1 -1
- package/layout/ListItem/index.cjs +1 -0
- package/layout/ListItem/index.cjs.map +1 -1
- package/layout/ListItem/index.js +1 -0
- package/layout/ListItem/index.js.map +1 -1
- package/layout/ScrollView/index.cjs +1 -0
- package/layout/ScrollView/index.cjs.map +1 -1
- package/layout/ScrollView/index.js +1 -0
- package/layout/ScrollView/index.js.map +1 -1
- package/layout/VStack/index.cjs +1 -0
- package/layout/VStack/index.cjs.map +1 -1
- package/layout/VStack/index.js +1 -0
- package/layout/VStack/index.js.map +1 -1
- package/package.json +1 -1
- package/packages/types/src/Theme/defaultTheme.cjs +1 -1
- package/packages/types/src/Theme/defaultTheme.cjs.map +1 -1
- package/packages/types/src/Theme/defaultTheme.js +1 -1
- package/packages/types/src/Theme/defaultTheme.js.map +1 -1
- package/packages/types/src/Theme/resolvers.cjs +2 -55
- package/packages/types/src/Theme/resolvers.cjs.map +1 -1
- package/packages/types/src/Theme/resolvers.js +2 -55
- package/packages/types/src/Theme/resolvers.js.map +1 -1
- package/packages/types/src/Theme/semanticTokenNames.cjs +64 -0
- package/packages/types/src/Theme/semanticTokenNames.cjs.map +1 -0
- package/packages/types/src/Theme/semanticTokenNames.js +62 -0
- package/packages/types/src/Theme/semanticTokenNames.js.map +1 -0
- package/primitives/Box/index.cjs +1 -0
- package/primitives/Box/index.cjs.map +1 -1
- package/primitives/Box/index.js +1 -0
- package/primitives/Box/index.js.map +1 -1
- package/primitives/Card/index.cjs +1 -0
- package/primitives/Card/index.cjs.map +1 -1
- package/primitives/Card/index.js +1 -0
- package/primitives/Card/index.js.map +1 -1
- package/primitives/Divider/index.cjs +1 -0
- package/primitives/Divider/index.cjs.map +1 -1
- package/primitives/Divider/index.js +1 -0
- package/primitives/Divider/index.js.map +1 -1
- package/primitives/Heading/index.cjs +1 -0
- package/primitives/Heading/index.cjs.map +1 -1
- package/primitives/Heading/index.js +1 -0
- package/primitives/Heading/index.js.map +1 -1
- package/primitives/Image/index.cjs +1 -0
- package/primitives/Image/index.cjs.map +1 -1
- package/primitives/Image/index.js +1 -0
- package/primitives/Image/index.js.map +1 -1
- package/primitives/Skeleton/index.cjs +1 -0
- package/primitives/Skeleton/index.cjs.map +1 -1
- package/primitives/Skeleton/index.js +1 -0
- package/primitives/Skeleton/index.js.map +1 -1
- package/primitives/Svg/index.cjs +1 -0
- package/primitives/Svg/index.cjs.map +1 -1
- package/primitives/Svg/index.js +1 -0
- package/primitives/Svg/index.js.map +1 -1
- package/primitives/Text/index.cjs +1 -0
- package/primitives/Text/index.cjs.map +1 -1
- package/primitives/Text/index.js +1 -0
- package/primitives/Text/index.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolvers.cjs","sources":["../../../../../../../types/src/Theme/resolvers.ts"],"sourcesContent":["import type {ColorMode, ColorScale, IKitsTheme} from './types';\nimport {ALPHA_COLOR_VARS, isAlphaToken} from './alphaColors';\n\n/**\n * Set of built-in semantic token names for fast lookup. Mirrors the keys in\n * `defaultTheme.semanticTokens` — the web provider injects a `--kits-<name>`\n * CSS var for EVERY one, so all must be recognised here (otherwise\n * `bgColor=\"brand\"` falls through as the raw, invalid CSS value `brand`).\n * KEEP IN SYNC with SEMANTIC_TOKEN_NAMES in apps/web/src/Factory/css/theme.ts.\n */\nconst SEMANTIC_KEYS = new Set([\n // brand / primary\n 'primary', 'primary-hover', 'primary-active', 'secondary',\n 'brand', 'brand-bright', 'brand-deep', 'brand-muted',\n // status\n 'success', 'danger', 'warning', 'info', 'help', 'ai-accent',\n // text\n 'text', 'text-primary', 'text-secondary', 'text-subtle', 'text-muted',\n 'text-on-primary', 'text-link',\n // backgrounds\n 'bg', 'bg-subtle', 'bg-muted', 'bg-accent', 'bg-input', 'bg-page',\n // surfaces\n 'surface-ground', 'surface-card', 'surface-overlay', 'surface-hover',\n 'surface-sidebar', 'surface-border',\n // borders\n 'border', 'border-default', 'border-subtle', 'border-strong', 'divider',\n // tints\n 'success-tint', 'danger-tint', 'warning-tint', 'info-tint', 'brand-tint', 'ai-tint',\n // misc\n 'switch-bg',\n]);\n\nconst DOT_NOTATION_RE = /^([a-zA-Z]+)\\.(\\d+)$/;\nconst DASH_NOTATION_RE = /^([a-zA-Z]+)-(\\d+)$/;\n\n/**\n * Resolves a theme token string to a platform-appropriate value.\n *\n * Resolution order:\n * 1. Raw values (#hex, rgb, hsl, transparent) — pass through\n * 2. Semantic tokens ('primary', 'danger') — look up in semanticTokens[colorMode]\n * 3. Dot-notation ('blue.500') — look up in theme.colors\n * 4. Prefixed tokens ('$spacing.4', '$radii.lg', '$shadows.md', '$fontSizes.lg')\n * 5. Legacy var() — pass through on web, resolved separately on native\n * 6. Legacy dash-notation ('blue-500') — look up in theme.colors\n */\nexport function resolveTokenValue(\n theme: IKitsTheme,\n colorMode: ColorMode,\n token: string,\n platform: 'web' | 'native' = 'web',\n): string {\n if (typeof token !== 'string') return token;\n\n // 1. Raw values — pass through\n if (\n token.startsWith('#') ||\n token.startsWith('rgb') ||\n token.startsWith('hsl') ||\n token === 'transparent' ||\n token === 'inherit' ||\n token === 'currentColor'\n ) {\n return token;\n }\n\n // 1b. Alpha overlay families ('white-alpha-60', 'black-alpha-90').\n // LITERAL — identical value in both color modes; scrim/overlay colors\n // must never invert. Resolved before semantic/dot lookups so they can\n // never be shadowed by a same-named theme entry.\n if (isAlphaToken(token)) {\n return platform === 'web'\n ? `var(--kits-${token})`\n : ALPHA_COLOR_VARS[`--kits-${token}`]!;\n }\n\n // 2. Semantic token lookup\n const semantics = theme.semanticTokens[colorMode];\n if (semantics && token in semantics) {\n const resolved = semantics[token]!;\n return resolveTokenValue(theme, colorMode, resolved, platform);\n }\n\n // 3. Dot-notation: 'blue.500'\n const dotMatch = token.match(DOT_NOTATION_RE);\n if (dotMatch) {\n const [, family, shade] = dotMatch;\n const scale = theme.colors[family!] as ColorScale | undefined;\n if (scale && shade! in scale) {\n const hex = scale[shade as unknown as keyof ColorScale];\n return platform === 'web' ? `var(--kits-${family}-${shade})` : hex;\n }\n }\n\n // 4. Prefixed tokens: $spacing.4, $radii.lg, $shadows.md, $fontSizes.lg\n if (token.startsWith('$')) {\n const dotIdx = token.indexOf('.');\n if (dotIdx > 1) {\n const category = token.substring(1, dotIdx);\n const key = token.substring(dotIdx + 1);\n\n switch (category) {\n case 'spacing':\n if (key in theme.spacing) {\n return platform === 'web' ? `var(--kits-space-${key})` : theme.spacing[key]!;\n }\n break;\n case 'radii':\n if (key in theme.radii) {\n return platform === 'web' ? `var(--kits-radii-${key})` : theme.radii[key]!;\n }\n break;\n case 'shadows':\n if (key in theme.shadows) {\n if (platform === 'web') return `var(--kits-shadow-${key})`;\n // Native: tokens resolve to a string. Return the web CSS\n // string (best-effort); real native shadow params flow\n // through the `shadow` style key via `expandShadowNative`.\n const sv = theme.shadows[key]!;\n return typeof sv === 'string' ? sv : sv.web;\n }\n break;\n case 'fontSizes':\n if (key in theme.fontSizes) {\n return platform === 'web' ? `var(--kits-fontSize-${key})` : theme.fontSizes[key]!;\n }\n break;\n case 'fonts':\n if (key in theme.fonts) {\n return platform === 'web' ? `var(--kits-font-${key})` : theme.fonts[key as keyof typeof theme.fonts]!;\n }\n break;\n }\n }\n }\n\n // 5. Legacy var() — pass through\n if (token.startsWith('var(')) {\n return token;\n }\n\n // 6. Legacy dash-notation: 'blue-500'\n const dashMatch = token.match(DASH_NOTATION_RE);\n if (dashMatch) {\n const [, family, shade] = dashMatch;\n const scale = theme.colors[family!] as ColorScale | undefined;\n if (scale && shade! in scale) {\n const hex = scale[shade as unknown as keyof ColorScale];\n return platform === 'web' ? `var(--kits-${family}-${shade})` : hex;\n }\n }\n\n return token;\n}\n\n/**\n * Checks if a given string is a known semantic token name.\n * Used by the web style pipeline to detect tokens that should be resolved.\n */\nexport function isSemanticToken(value: string, theme?: IKitsTheme): boolean {\n if (SEMANTIC_KEYS.has(value)) return true;\n if (theme) {\n return value in theme.semanticTokens.light || value in theme.semanticTokens.dark;\n }\n return false;\n}\n\n/**\n * Checks if a value looks like a theme token (dot-notation, $prefix, or semantic).\n */\nexport function isThemeToken(value: string): boolean {\n if (typeof value !== 'string') return false;\n if (DOT_NOTATION_RE.test(value)) return true;\n if (value.startsWith('$')) return true;\n if (SEMANTIC_KEYS.has(value)) return true;\n if (isAlphaToken(value)) return true;\n return false;\n}\n"],"names":["isAlphaToken","ALPHA_COLOR_VARS"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"resolvers.cjs","sources":["../../../../../../../types/src/Theme/resolvers.ts"],"sourcesContent":["import type {ColorMode, ColorScale, IKitsTheme} from './types';\nimport {ALPHA_COLOR_VARS, isAlphaToken} from './alphaColors';\nimport {SEMANTIC_TOKEN_NAMES} from './semanticTokenNames';\n\n/**\n * Set of built-in semantic token names for fast lookup.\n *\n * ⛔ IT IS DERIVED FROM THE THEME NOW, BECAUSE A HAND-KEPT MIRROR DRIFTED.\n * This list and its twin in `apps/web/src/Factory/css/theme.ts` both carried\n * the instruction \"KEEP IN SYNC\", both were kept in sync with EACH OTHER —\n * 45 names, identical — and both had drifted from the theme they describe by\n * the same four: `surface-muted`, `warning-text`, `success-text` and\n * `brand-text`. All four are defined in `defaultTheme.semanticTokens`, and\n * the web provider injects a `--kits-<name>` CSS var for every one of them.\n *\n * ⛔ WHAT THAT COST. `isThemeToken('surface-muted')` answered false, so the\n * value fell through as the raw CSS string `surface-muted`, failed\n * `CSS.supports`, and no rule was emitted — the element simply rendered with\n * nothing. Silent, and indistinguishable from a styling decision. It is also\n * why `Tabs` could not be given a theme-aware default until now.\n *\n * ⚠️ THE NAMES COME FROM `semanticTokenNames.ts`, not from the theme object.\n * Deriving them with `Object.keys(defaultTheme…)` was the first fix and it\n * dragged the whole 55 KB theme into every primitive — see that file.\n */\nconst SEMANTIC_KEYS = new Set<string>(SEMANTIC_TOKEN_NAMES);\n\nconst DOT_NOTATION_RE = /^([a-zA-Z]+)\\.(\\d+)$/;\nconst DASH_NOTATION_RE = /^([a-zA-Z]+)-(\\d+)$/;\n\n/**\n * Resolves a theme token string to a platform-appropriate value.\n *\n * Resolution order:\n * 1. Raw values (#hex, rgb, hsl, transparent) — pass through\n * 2. Semantic tokens ('primary', 'danger') — look up in semanticTokens[colorMode]\n * 3. Dot-notation ('blue.500') — look up in theme.colors\n * 4. Prefixed tokens ('$spacing.4', '$radii.lg', '$shadows.md', '$fontSizes.lg')\n * 5. Legacy var() — pass through on web, resolved separately on native\n * 6. Legacy dash-notation ('blue-500') — look up in theme.colors\n */\nexport function resolveTokenValue(\n theme: IKitsTheme,\n colorMode: ColorMode,\n token: string,\n platform: 'web' | 'native' = 'web',\n): string {\n if (typeof token !== 'string') return token;\n\n // 1. Raw values — pass through\n if (\n token.startsWith('#') ||\n token.startsWith('rgb') ||\n token.startsWith('hsl') ||\n token === 'transparent' ||\n token === 'inherit' ||\n token === 'currentColor'\n ) {\n return token;\n }\n\n // 1b. Alpha overlay families ('white-alpha-60', 'black-alpha-90').\n // LITERAL — identical value in both color modes; scrim/overlay colors\n // must never invert. Resolved before semantic/dot lookups so they can\n // never be shadowed by a same-named theme entry.\n if (isAlphaToken(token)) {\n return platform === 'web'\n ? `var(--kits-${token})`\n : ALPHA_COLOR_VARS[`--kits-${token}`]!;\n }\n\n // 2. Semantic token lookup\n const semantics = theme.semanticTokens[colorMode];\n if (semantics && token in semantics) {\n const resolved = semantics[token]!;\n return resolveTokenValue(theme, colorMode, resolved, platform);\n }\n\n // 3. Dot-notation: 'blue.500'\n const dotMatch = token.match(DOT_NOTATION_RE);\n if (dotMatch) {\n const [, family, shade] = dotMatch;\n const scale = theme.colors[family!] as ColorScale | undefined;\n if (scale && shade! in scale) {\n const hex = scale[shade as unknown as keyof ColorScale];\n return platform === 'web' ? `var(--kits-${family}-${shade})` : hex;\n }\n }\n\n // 4. Prefixed tokens: $spacing.4, $radii.lg, $shadows.md, $fontSizes.lg\n if (token.startsWith('$')) {\n const dotIdx = token.indexOf('.');\n if (dotIdx > 1) {\n const category = token.substring(1, dotIdx);\n const key = token.substring(dotIdx + 1);\n\n switch (category) {\n case 'spacing':\n if (key in theme.spacing) {\n return platform === 'web' ? `var(--kits-space-${key})` : theme.spacing[key]!;\n }\n break;\n case 'radii':\n if (key in theme.radii) {\n return platform === 'web' ? `var(--kits-radii-${key})` : theme.radii[key]!;\n }\n break;\n case 'shadows':\n if (key in theme.shadows) {\n if (platform === 'web') return `var(--kits-shadow-${key})`;\n // Native: tokens resolve to a string. Return the web CSS\n // string (best-effort); real native shadow params flow\n // through the `shadow` style key via `expandShadowNative`.\n const sv = theme.shadows[key]!;\n return typeof sv === 'string' ? sv : sv.web;\n }\n break;\n case 'fontSizes':\n if (key in theme.fontSizes) {\n return platform === 'web' ? `var(--kits-fontSize-${key})` : theme.fontSizes[key]!;\n }\n break;\n case 'fonts':\n if (key in theme.fonts) {\n return platform === 'web' ? `var(--kits-font-${key})` : theme.fonts[key as keyof typeof theme.fonts]!;\n }\n break;\n }\n }\n }\n\n // 5. Legacy var() — pass through\n if (token.startsWith('var(')) {\n return token;\n }\n\n // 6. Legacy dash-notation: 'blue-500'\n const dashMatch = token.match(DASH_NOTATION_RE);\n if (dashMatch) {\n const [, family, shade] = dashMatch;\n const scale = theme.colors[family!] as ColorScale | undefined;\n if (scale && shade! in scale) {\n const hex = scale[shade as unknown as keyof ColorScale];\n return platform === 'web' ? `var(--kits-${family}-${shade})` : hex;\n }\n }\n\n return token;\n}\n\n/**\n * Checks if a given string is a known semantic token name.\n * Used by the web style pipeline to detect tokens that should be resolved.\n */\nexport function isSemanticToken(value: string, theme?: IKitsTheme): boolean {\n if (SEMANTIC_KEYS.has(value)) return true;\n if (theme) {\n return value in theme.semanticTokens.light || value in theme.semanticTokens.dark;\n }\n return false;\n}\n\n/**\n * Checks if a value looks like a theme token (dot-notation, $prefix, or semantic).\n */\nexport function isThemeToken(value: string): boolean {\n if (typeof value !== 'string') return false;\n if (DOT_NOTATION_RE.test(value)) return true;\n if (value.startsWith('$')) return true;\n if (SEMANTIC_KEYS.has(value)) return true;\n if (isAlphaToken(value)) return true;\n return false;\n}\n"],"names":["SEMANTIC_TOKEN_NAMES","isAlphaToken","ALPHA_COLOR_VARS"],"mappings":"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"}
|
|
@@ -1,60 +1,7 @@
|
|
|
1
1
|
import { isAlphaToken, ALPHA_COLOR_VARS } from './alphaColors.js';
|
|
2
|
+
import { SEMANTIC_TOKEN_NAMES } from './semanticTokenNames.js';
|
|
2
3
|
|
|
3
|
-
const SEMANTIC_KEYS =
|
|
4
|
-
// brand / primary
|
|
5
|
-
"primary",
|
|
6
|
-
"primary-hover",
|
|
7
|
-
"primary-active",
|
|
8
|
-
"secondary",
|
|
9
|
-
"brand",
|
|
10
|
-
"brand-bright",
|
|
11
|
-
"brand-deep",
|
|
12
|
-
"brand-muted",
|
|
13
|
-
// status
|
|
14
|
-
"success",
|
|
15
|
-
"danger",
|
|
16
|
-
"warning",
|
|
17
|
-
"info",
|
|
18
|
-
"help",
|
|
19
|
-
"ai-accent",
|
|
20
|
-
// text
|
|
21
|
-
"text",
|
|
22
|
-
"text-primary",
|
|
23
|
-
"text-secondary",
|
|
24
|
-
"text-subtle",
|
|
25
|
-
"text-muted",
|
|
26
|
-
"text-on-primary",
|
|
27
|
-
"text-link",
|
|
28
|
-
// backgrounds
|
|
29
|
-
"bg",
|
|
30
|
-
"bg-subtle",
|
|
31
|
-
"bg-muted",
|
|
32
|
-
"bg-accent",
|
|
33
|
-
"bg-input",
|
|
34
|
-
"bg-page",
|
|
35
|
-
// surfaces
|
|
36
|
-
"surface-ground",
|
|
37
|
-
"surface-card",
|
|
38
|
-
"surface-overlay",
|
|
39
|
-
"surface-hover",
|
|
40
|
-
"surface-sidebar",
|
|
41
|
-
"surface-border",
|
|
42
|
-
// borders
|
|
43
|
-
"border",
|
|
44
|
-
"border-default",
|
|
45
|
-
"border-subtle",
|
|
46
|
-
"border-strong",
|
|
47
|
-
"divider",
|
|
48
|
-
// tints
|
|
49
|
-
"success-tint",
|
|
50
|
-
"danger-tint",
|
|
51
|
-
"warning-tint",
|
|
52
|
-
"info-tint",
|
|
53
|
-
"brand-tint",
|
|
54
|
-
"ai-tint",
|
|
55
|
-
// misc
|
|
56
|
-
"switch-bg"
|
|
57
|
-
]);
|
|
4
|
+
const SEMANTIC_KEYS = new Set(SEMANTIC_TOKEN_NAMES);
|
|
58
5
|
const DOT_NOTATION_RE = /^([a-zA-Z]+)\.(\d+)$/;
|
|
59
6
|
const DASH_NOTATION_RE = /^([a-zA-Z]+)-(\d+)$/;
|
|
60
7
|
function resolveTokenValue(theme, colorMode, token, platform = "web") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolvers.js","sources":["../../../../../../../types/src/Theme/resolvers.ts"],"sourcesContent":["import type {ColorMode, ColorScale, IKitsTheme} from './types';\nimport {ALPHA_COLOR_VARS, isAlphaToken} from './alphaColors';\n\n/**\n * Set of built-in semantic token names for fast lookup. Mirrors the keys in\n * `defaultTheme.semanticTokens` — the web provider injects a `--kits-<name>`\n * CSS var for EVERY one, so all must be recognised here (otherwise\n * `bgColor=\"brand\"` falls through as the raw, invalid CSS value `brand`).\n * KEEP IN SYNC with SEMANTIC_TOKEN_NAMES in apps/web/src/Factory/css/theme.ts.\n */\nconst SEMANTIC_KEYS = new Set([\n // brand / primary\n 'primary', 'primary-hover', 'primary-active', 'secondary',\n 'brand', 'brand-bright', 'brand-deep', 'brand-muted',\n // status\n 'success', 'danger', 'warning', 'info', 'help', 'ai-accent',\n // text\n 'text', 'text-primary', 'text-secondary', 'text-subtle', 'text-muted',\n 'text-on-primary', 'text-link',\n // backgrounds\n 'bg', 'bg-subtle', 'bg-muted', 'bg-accent', 'bg-input', 'bg-page',\n // surfaces\n 'surface-ground', 'surface-card', 'surface-overlay', 'surface-hover',\n 'surface-sidebar', 'surface-border',\n // borders\n 'border', 'border-default', 'border-subtle', 'border-strong', 'divider',\n // tints\n 'success-tint', 'danger-tint', 'warning-tint', 'info-tint', 'brand-tint', 'ai-tint',\n // misc\n 'switch-bg',\n]);\n\nconst DOT_NOTATION_RE = /^([a-zA-Z]+)\\.(\\d+)$/;\nconst DASH_NOTATION_RE = /^([a-zA-Z]+)-(\\d+)$/;\n\n/**\n * Resolves a theme token string to a platform-appropriate value.\n *\n * Resolution order:\n * 1. Raw values (#hex, rgb, hsl, transparent) — pass through\n * 2. Semantic tokens ('primary', 'danger') — look up in semanticTokens[colorMode]\n * 3. Dot-notation ('blue.500') — look up in theme.colors\n * 4. Prefixed tokens ('$spacing.4', '$radii.lg', '$shadows.md', '$fontSizes.lg')\n * 5. Legacy var() — pass through on web, resolved separately on native\n * 6. Legacy dash-notation ('blue-500') — look up in theme.colors\n */\nexport function resolveTokenValue(\n theme: IKitsTheme,\n colorMode: ColorMode,\n token: string,\n platform: 'web' | 'native' = 'web',\n): string {\n if (typeof token !== 'string') return token;\n\n // 1. Raw values — pass through\n if (\n token.startsWith('#') ||\n token.startsWith('rgb') ||\n token.startsWith('hsl') ||\n token === 'transparent' ||\n token === 'inherit' ||\n token === 'currentColor'\n ) {\n return token;\n }\n\n // 1b. Alpha overlay families ('white-alpha-60', 'black-alpha-90').\n // LITERAL — identical value in both color modes; scrim/overlay colors\n // must never invert. Resolved before semantic/dot lookups so they can\n // never be shadowed by a same-named theme entry.\n if (isAlphaToken(token)) {\n return platform === 'web'\n ? `var(--kits-${token})`\n : ALPHA_COLOR_VARS[`--kits-${token}`]!;\n }\n\n // 2. Semantic token lookup\n const semantics = theme.semanticTokens[colorMode];\n if (semantics && token in semantics) {\n const resolved = semantics[token]!;\n return resolveTokenValue(theme, colorMode, resolved, platform);\n }\n\n // 3. Dot-notation: 'blue.500'\n const dotMatch = token.match(DOT_NOTATION_RE);\n if (dotMatch) {\n const [, family, shade] = dotMatch;\n const scale = theme.colors[family!] as ColorScale | undefined;\n if (scale && shade! in scale) {\n const hex = scale[shade as unknown as keyof ColorScale];\n return platform === 'web' ? `var(--kits-${family}-${shade})` : hex;\n }\n }\n\n // 4. Prefixed tokens: $spacing.4, $radii.lg, $shadows.md, $fontSizes.lg\n if (token.startsWith('$')) {\n const dotIdx = token.indexOf('.');\n if (dotIdx > 1) {\n const category = token.substring(1, dotIdx);\n const key = token.substring(dotIdx + 1);\n\n switch (category) {\n case 'spacing':\n if (key in theme.spacing) {\n return platform === 'web' ? `var(--kits-space-${key})` : theme.spacing[key]!;\n }\n break;\n case 'radii':\n if (key in theme.radii) {\n return platform === 'web' ? `var(--kits-radii-${key})` : theme.radii[key]!;\n }\n break;\n case 'shadows':\n if (key in theme.shadows) {\n if (platform === 'web') return `var(--kits-shadow-${key})`;\n // Native: tokens resolve to a string. Return the web CSS\n // string (best-effort); real native shadow params flow\n // through the `shadow` style key via `expandShadowNative`.\n const sv = theme.shadows[key]!;\n return typeof sv === 'string' ? sv : sv.web;\n }\n break;\n case 'fontSizes':\n if (key in theme.fontSizes) {\n return platform === 'web' ? `var(--kits-fontSize-${key})` : theme.fontSizes[key]!;\n }\n break;\n case 'fonts':\n if (key in theme.fonts) {\n return platform === 'web' ? `var(--kits-font-${key})` : theme.fonts[key as keyof typeof theme.fonts]!;\n }\n break;\n }\n }\n }\n\n // 5. Legacy var() — pass through\n if (token.startsWith('var(')) {\n return token;\n }\n\n // 6. Legacy dash-notation: 'blue-500'\n const dashMatch = token.match(DASH_NOTATION_RE);\n if (dashMatch) {\n const [, family, shade] = dashMatch;\n const scale = theme.colors[family!] as ColorScale | undefined;\n if (scale && shade! in scale) {\n const hex = scale[shade as unknown as keyof ColorScale];\n return platform === 'web' ? `var(--kits-${family}-${shade})` : hex;\n }\n }\n\n return token;\n}\n\n/**\n * Checks if a given string is a known semantic token name.\n * Used by the web style pipeline to detect tokens that should be resolved.\n */\nexport function isSemanticToken(value: string, theme?: IKitsTheme): boolean {\n if (SEMANTIC_KEYS.has(value)) return true;\n if (theme) {\n return value in theme.semanticTokens.light || value in theme.semanticTokens.dark;\n }\n return false;\n}\n\n/**\n * Checks if a value looks like a theme token (dot-notation, $prefix, or semantic).\n */\nexport function isThemeToken(value: string): boolean {\n if (typeof value !== 'string') return false;\n if (DOT_NOTATION_RE.test(value)) return true;\n if (value.startsWith('$')) return true;\n if (SEMANTIC_KEYS.has(value)) return true;\n if (isAlphaToken(value)) return true;\n return false;\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"resolvers.js","sources":["../../../../../../../types/src/Theme/resolvers.ts"],"sourcesContent":["import type {ColorMode, ColorScale, IKitsTheme} from './types';\nimport {ALPHA_COLOR_VARS, isAlphaToken} from './alphaColors';\nimport {SEMANTIC_TOKEN_NAMES} from './semanticTokenNames';\n\n/**\n * Set of built-in semantic token names for fast lookup.\n *\n * ⛔ IT IS DERIVED FROM THE THEME NOW, BECAUSE A HAND-KEPT MIRROR DRIFTED.\n * This list and its twin in `apps/web/src/Factory/css/theme.ts` both carried\n * the instruction \"KEEP IN SYNC\", both were kept in sync with EACH OTHER —\n * 45 names, identical — and both had drifted from the theme they describe by\n * the same four: `surface-muted`, `warning-text`, `success-text` and\n * `brand-text`. All four are defined in `defaultTheme.semanticTokens`, and\n * the web provider injects a `--kits-<name>` CSS var for every one of them.\n *\n * ⛔ WHAT THAT COST. `isThemeToken('surface-muted')` answered false, so the\n * value fell through as the raw CSS string `surface-muted`, failed\n * `CSS.supports`, and no rule was emitted — the element simply rendered with\n * nothing. Silent, and indistinguishable from a styling decision. It is also\n * why `Tabs` could not be given a theme-aware default until now.\n *\n * ⚠️ THE NAMES COME FROM `semanticTokenNames.ts`, not from the theme object.\n * Deriving them with `Object.keys(defaultTheme…)` was the first fix and it\n * dragged the whole 55 KB theme into every primitive — see that file.\n */\nconst SEMANTIC_KEYS = new Set<string>(SEMANTIC_TOKEN_NAMES);\n\nconst DOT_NOTATION_RE = /^([a-zA-Z]+)\\.(\\d+)$/;\nconst DASH_NOTATION_RE = /^([a-zA-Z]+)-(\\d+)$/;\n\n/**\n * Resolves a theme token string to a platform-appropriate value.\n *\n * Resolution order:\n * 1. Raw values (#hex, rgb, hsl, transparent) — pass through\n * 2. Semantic tokens ('primary', 'danger') — look up in semanticTokens[colorMode]\n * 3. Dot-notation ('blue.500') — look up in theme.colors\n * 4. Prefixed tokens ('$spacing.4', '$radii.lg', '$shadows.md', '$fontSizes.lg')\n * 5. Legacy var() — pass through on web, resolved separately on native\n * 6. Legacy dash-notation ('blue-500') — look up in theme.colors\n */\nexport function resolveTokenValue(\n theme: IKitsTheme,\n colorMode: ColorMode,\n token: string,\n platform: 'web' | 'native' = 'web',\n): string {\n if (typeof token !== 'string') return token;\n\n // 1. Raw values — pass through\n if (\n token.startsWith('#') ||\n token.startsWith('rgb') ||\n token.startsWith('hsl') ||\n token === 'transparent' ||\n token === 'inherit' ||\n token === 'currentColor'\n ) {\n return token;\n }\n\n // 1b. Alpha overlay families ('white-alpha-60', 'black-alpha-90').\n // LITERAL — identical value in both color modes; scrim/overlay colors\n // must never invert. Resolved before semantic/dot lookups so they can\n // never be shadowed by a same-named theme entry.\n if (isAlphaToken(token)) {\n return platform === 'web'\n ? `var(--kits-${token})`\n : ALPHA_COLOR_VARS[`--kits-${token}`]!;\n }\n\n // 2. Semantic token lookup\n const semantics = theme.semanticTokens[colorMode];\n if (semantics && token in semantics) {\n const resolved = semantics[token]!;\n return resolveTokenValue(theme, colorMode, resolved, platform);\n }\n\n // 3. Dot-notation: 'blue.500'\n const dotMatch = token.match(DOT_NOTATION_RE);\n if (dotMatch) {\n const [, family, shade] = dotMatch;\n const scale = theme.colors[family!] as ColorScale | undefined;\n if (scale && shade! in scale) {\n const hex = scale[shade as unknown as keyof ColorScale];\n return platform === 'web' ? `var(--kits-${family}-${shade})` : hex;\n }\n }\n\n // 4. Prefixed tokens: $spacing.4, $radii.lg, $shadows.md, $fontSizes.lg\n if (token.startsWith('$')) {\n const dotIdx = token.indexOf('.');\n if (dotIdx > 1) {\n const category = token.substring(1, dotIdx);\n const key = token.substring(dotIdx + 1);\n\n switch (category) {\n case 'spacing':\n if (key in theme.spacing) {\n return platform === 'web' ? `var(--kits-space-${key})` : theme.spacing[key]!;\n }\n break;\n case 'radii':\n if (key in theme.radii) {\n return platform === 'web' ? `var(--kits-radii-${key})` : theme.radii[key]!;\n }\n break;\n case 'shadows':\n if (key in theme.shadows) {\n if (platform === 'web') return `var(--kits-shadow-${key})`;\n // Native: tokens resolve to a string. Return the web CSS\n // string (best-effort); real native shadow params flow\n // through the `shadow` style key via `expandShadowNative`.\n const sv = theme.shadows[key]!;\n return typeof sv === 'string' ? sv : sv.web;\n }\n break;\n case 'fontSizes':\n if (key in theme.fontSizes) {\n return platform === 'web' ? `var(--kits-fontSize-${key})` : theme.fontSizes[key]!;\n }\n break;\n case 'fonts':\n if (key in theme.fonts) {\n return platform === 'web' ? `var(--kits-font-${key})` : theme.fonts[key as keyof typeof theme.fonts]!;\n }\n break;\n }\n }\n }\n\n // 5. Legacy var() — pass through\n if (token.startsWith('var(')) {\n return token;\n }\n\n // 6. Legacy dash-notation: 'blue-500'\n const dashMatch = token.match(DASH_NOTATION_RE);\n if (dashMatch) {\n const [, family, shade] = dashMatch;\n const scale = theme.colors[family!] as ColorScale | undefined;\n if (scale && shade! in scale) {\n const hex = scale[shade as unknown as keyof ColorScale];\n return platform === 'web' ? `var(--kits-${family}-${shade})` : hex;\n }\n }\n\n return token;\n}\n\n/**\n * Checks if a given string is a known semantic token name.\n * Used by the web style pipeline to detect tokens that should be resolved.\n */\nexport function isSemanticToken(value: string, theme?: IKitsTheme): boolean {\n if (SEMANTIC_KEYS.has(value)) return true;\n if (theme) {\n return value in theme.semanticTokens.light || value in theme.semanticTokens.dark;\n }\n return false;\n}\n\n/**\n * Checks if a value looks like a theme token (dot-notation, $prefix, or semantic).\n */\nexport function isThemeToken(value: string): boolean {\n if (typeof value !== 'string') return false;\n if (DOT_NOTATION_RE.test(value)) return true;\n if (value.startsWith('$')) return true;\n if (SEMANTIC_KEYS.has(value)) return true;\n if (isAlphaToken(value)) return true;\n return false;\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const SEMANTIC_TOKEN_NAMES = [
|
|
4
|
+
// brand / primary
|
|
5
|
+
"primary",
|
|
6
|
+
"primary-hover",
|
|
7
|
+
"primary-active",
|
|
8
|
+
"secondary",
|
|
9
|
+
"brand",
|
|
10
|
+
"brand-bright",
|
|
11
|
+
"brand-deep",
|
|
12
|
+
"brand-muted",
|
|
13
|
+
"brand-text",
|
|
14
|
+
// status
|
|
15
|
+
"success",
|
|
16
|
+
"success-text",
|
|
17
|
+
"danger",
|
|
18
|
+
"warning",
|
|
19
|
+
"warning-text",
|
|
20
|
+
"info",
|
|
21
|
+
"help",
|
|
22
|
+
"ai-accent",
|
|
23
|
+
// text
|
|
24
|
+
"text",
|
|
25
|
+
"text-primary",
|
|
26
|
+
"text-secondary",
|
|
27
|
+
"text-subtle",
|
|
28
|
+
"text-muted",
|
|
29
|
+
"text-on-primary",
|
|
30
|
+
"text-link",
|
|
31
|
+
// backgrounds
|
|
32
|
+
"bg",
|
|
33
|
+
"bg-subtle",
|
|
34
|
+
"bg-muted",
|
|
35
|
+
"bg-accent",
|
|
36
|
+
"bg-input",
|
|
37
|
+
"bg-page",
|
|
38
|
+
// surfaces
|
|
39
|
+
"surface-ground",
|
|
40
|
+
"surface-card",
|
|
41
|
+
"surface-overlay",
|
|
42
|
+
"surface-hover",
|
|
43
|
+
"surface-muted",
|
|
44
|
+
"surface-sidebar",
|
|
45
|
+
"surface-border",
|
|
46
|
+
// borders
|
|
47
|
+
"border",
|
|
48
|
+
"border-default",
|
|
49
|
+
"border-subtle",
|
|
50
|
+
"border-strong",
|
|
51
|
+
"divider",
|
|
52
|
+
// tints
|
|
53
|
+
"success-tint",
|
|
54
|
+
"danger-tint",
|
|
55
|
+
"warning-tint",
|
|
56
|
+
"info-tint",
|
|
57
|
+
"brand-tint",
|
|
58
|
+
"ai-tint",
|
|
59
|
+
// misc
|
|
60
|
+
"switch-bg"
|
|
61
|
+
];
|
|
62
|
+
|
|
63
|
+
exports.SEMANTIC_TOKEN_NAMES = SEMANTIC_TOKEN_NAMES;
|
|
64
|
+
//# sourceMappingURL=semanticTokenNames.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"semanticTokenNames.cjs","sources":["../../../../../../../types/src/Theme/semanticTokenNames.ts"],"sourcesContent":["/**\n * The names of every built-in semantic token, as a plain list.\n *\n * ⛔ IT IS ITS OWN MODULE SO THAT KNOWING A NAME DOES NOT COST THE THEME.\n * The first fix for the drift below derived this set from\n * `Object.keys(defaultTheme.semanticTokens)` — correct, drift-proof, and it\n * pulled the whole 55 KB default theme into every primitive that imports\n * `Box`, because the `Object.keys` call runs at module initialisation and a\n * bundler cannot drop what is read. `apps/web/src/Factory/css/theme.ts` says\n * in its first line that it uses a narrow subpath import precisely to avoid\n * that, and the derivation defeated it. Codex measured the cost.\n *\n * So the NAMES live here — a string array, nothing imported — and the theme's\n * values live where they always did. Both files that need the names take this\n * one instead.\n *\n * ⛔ AND DRIFT IS CAUGHT BY A TEST, NOT BY HOPE. This list and\n * `defaultTheme.semanticTokens` are two things that must agree, and the last\n * time two such lists existed they agreed with EACH OTHER for months while\n * both drifted from the theme — 45 identical names in two files, each\n * carrying the instruction \"KEEP IN SYNC\", each missing the same four:\n * `surface-muted`, `warning-text`, `success-text` and `brand-text`. A token\n * the theme defines and the resolver rejects falls through as raw CSS,\n * fails `CSS.supports`, and renders NOTHING — silently, and\n * indistinguishable from a styling decision. It is why the tab chips could\n * not be given a theme-aware default.\n *\n * `packages/types/tests/theme/aTabChipFollowsTheTheme.test.ts` asserts the\n * two agree, in both directions, on every run.\n */\nexport const SEMANTIC_TOKEN_NAMES: readonly string[] = [\n // brand / primary\n 'primary', 'primary-hover', 'primary-active', 'secondary',\n 'brand', 'brand-bright', 'brand-deep', 'brand-muted', 'brand-text',\n // status\n 'success', 'success-text', 'danger', 'warning', 'warning-text',\n 'info', 'help', 'ai-accent',\n // text\n 'text', 'text-primary', 'text-secondary', 'text-subtle', 'text-muted',\n 'text-on-primary', 'text-link',\n // backgrounds\n 'bg', 'bg-subtle', 'bg-muted', 'bg-accent', 'bg-input', 'bg-page',\n // surfaces\n 'surface-ground', 'surface-card', 'surface-overlay', 'surface-hover',\n 'surface-muted', 'surface-sidebar', 'surface-border',\n // borders\n 'border', 'border-default', 'border-subtle', 'border-strong', 'divider',\n // tints\n 'success-tint', 'danger-tint', 'warning-tint', 'info-tint', 'brand-tint', 'ai-tint',\n // misc\n 'switch-bg',\n];\n"],"names":[],"mappings":";;AA8BO,MAAM,oBAAA,GAA0C;AAAA;AAAA,EAEnD,SAAA;AAAA,EAAW,eAAA;AAAA,EAAiB,gBAAA;AAAA,EAAkB,WAAA;AAAA,EAC9C,OAAA;AAAA,EAAS,cAAA;AAAA,EAAgB,YAAA;AAAA,EAAc,aAAA;AAAA,EAAe,YAAA;AAAA;AAAA,EAEtD,SAAA;AAAA,EAAW,cAAA;AAAA,EAAgB,QAAA;AAAA,EAAU,SAAA;AAAA,EAAW,cAAA;AAAA,EAChD,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,WAAA;AAAA;AAAA,EAEhB,MAAA;AAAA,EAAQ,cAAA;AAAA,EAAgB,gBAAA;AAAA,EAAkB,aAAA;AAAA,EAAe,YAAA;AAAA,EACzD,iBAAA;AAAA,EAAmB,WAAA;AAAA;AAAA,EAEnB,IAAA;AAAA,EAAM,WAAA;AAAA,EAAa,UAAA;AAAA,EAAY,WAAA;AAAA,EAAa,UAAA;AAAA,EAAY,SAAA;AAAA;AAAA,EAExD,gBAAA;AAAA,EAAkB,cAAA;AAAA,EAAgB,iBAAA;AAAA,EAAmB,eAAA;AAAA,EACrD,eAAA;AAAA,EAAiB,iBAAA;AAAA,EAAmB,gBAAA;AAAA;AAAA,EAEpC,QAAA;AAAA,EAAU,gBAAA;AAAA,EAAkB,eAAA;AAAA,EAAiB,eAAA;AAAA,EAAiB,SAAA;AAAA;AAAA,EAE9D,cAAA;AAAA,EAAgB,aAAA;AAAA,EAAe,cAAA;AAAA,EAAgB,WAAA;AAAA,EAAa,YAAA;AAAA,EAAc,SAAA;AAAA;AAAA,EAE1E;AACJ;;;;"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
const SEMANTIC_TOKEN_NAMES = [
|
|
2
|
+
// brand / primary
|
|
3
|
+
"primary",
|
|
4
|
+
"primary-hover",
|
|
5
|
+
"primary-active",
|
|
6
|
+
"secondary",
|
|
7
|
+
"brand",
|
|
8
|
+
"brand-bright",
|
|
9
|
+
"brand-deep",
|
|
10
|
+
"brand-muted",
|
|
11
|
+
"brand-text",
|
|
12
|
+
// status
|
|
13
|
+
"success",
|
|
14
|
+
"success-text",
|
|
15
|
+
"danger",
|
|
16
|
+
"warning",
|
|
17
|
+
"warning-text",
|
|
18
|
+
"info",
|
|
19
|
+
"help",
|
|
20
|
+
"ai-accent",
|
|
21
|
+
// text
|
|
22
|
+
"text",
|
|
23
|
+
"text-primary",
|
|
24
|
+
"text-secondary",
|
|
25
|
+
"text-subtle",
|
|
26
|
+
"text-muted",
|
|
27
|
+
"text-on-primary",
|
|
28
|
+
"text-link",
|
|
29
|
+
// backgrounds
|
|
30
|
+
"bg",
|
|
31
|
+
"bg-subtle",
|
|
32
|
+
"bg-muted",
|
|
33
|
+
"bg-accent",
|
|
34
|
+
"bg-input",
|
|
35
|
+
"bg-page",
|
|
36
|
+
// surfaces
|
|
37
|
+
"surface-ground",
|
|
38
|
+
"surface-card",
|
|
39
|
+
"surface-overlay",
|
|
40
|
+
"surface-hover",
|
|
41
|
+
"surface-muted",
|
|
42
|
+
"surface-sidebar",
|
|
43
|
+
"surface-border",
|
|
44
|
+
// borders
|
|
45
|
+
"border",
|
|
46
|
+
"border-default",
|
|
47
|
+
"border-subtle",
|
|
48
|
+
"border-strong",
|
|
49
|
+
"divider",
|
|
50
|
+
// tints
|
|
51
|
+
"success-tint",
|
|
52
|
+
"danger-tint",
|
|
53
|
+
"warning-tint",
|
|
54
|
+
"info-tint",
|
|
55
|
+
"brand-tint",
|
|
56
|
+
"ai-tint",
|
|
57
|
+
// misc
|
|
58
|
+
"switch-bg"
|
|
59
|
+
];
|
|
60
|
+
|
|
61
|
+
export { SEMANTIC_TOKEN_NAMES };
|
|
62
|
+
//# sourceMappingURL=semanticTokenNames.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"semanticTokenNames.js","sources":["../../../../../../../types/src/Theme/semanticTokenNames.ts"],"sourcesContent":["/**\n * The names of every built-in semantic token, as a plain list.\n *\n * ⛔ IT IS ITS OWN MODULE SO THAT KNOWING A NAME DOES NOT COST THE THEME.\n * The first fix for the drift below derived this set from\n * `Object.keys(defaultTheme.semanticTokens)` — correct, drift-proof, and it\n * pulled the whole 55 KB default theme into every primitive that imports\n * `Box`, because the `Object.keys` call runs at module initialisation and a\n * bundler cannot drop what is read. `apps/web/src/Factory/css/theme.ts` says\n * in its first line that it uses a narrow subpath import precisely to avoid\n * that, and the derivation defeated it. Codex measured the cost.\n *\n * So the NAMES live here — a string array, nothing imported — and the theme's\n * values live where they always did. Both files that need the names take this\n * one instead.\n *\n * ⛔ AND DRIFT IS CAUGHT BY A TEST, NOT BY HOPE. This list and\n * `defaultTheme.semanticTokens` are two things that must agree, and the last\n * time two such lists existed they agreed with EACH OTHER for months while\n * both drifted from the theme — 45 identical names in two files, each\n * carrying the instruction \"KEEP IN SYNC\", each missing the same four:\n * `surface-muted`, `warning-text`, `success-text` and `brand-text`. A token\n * the theme defines and the resolver rejects falls through as raw CSS,\n * fails `CSS.supports`, and renders NOTHING — silently, and\n * indistinguishable from a styling decision. It is why the tab chips could\n * not be given a theme-aware default.\n *\n * `packages/types/tests/theme/aTabChipFollowsTheTheme.test.ts` asserts the\n * two agree, in both directions, on every run.\n */\nexport const SEMANTIC_TOKEN_NAMES: readonly string[] = [\n // brand / primary\n 'primary', 'primary-hover', 'primary-active', 'secondary',\n 'brand', 'brand-bright', 'brand-deep', 'brand-muted', 'brand-text',\n // status\n 'success', 'success-text', 'danger', 'warning', 'warning-text',\n 'info', 'help', 'ai-accent',\n // text\n 'text', 'text-primary', 'text-secondary', 'text-subtle', 'text-muted',\n 'text-on-primary', 'text-link',\n // backgrounds\n 'bg', 'bg-subtle', 'bg-muted', 'bg-accent', 'bg-input', 'bg-page',\n // surfaces\n 'surface-ground', 'surface-card', 'surface-overlay', 'surface-hover',\n 'surface-muted', 'surface-sidebar', 'surface-border',\n // borders\n 'border', 'border-default', 'border-subtle', 'border-strong', 'divider',\n // tints\n 'success-tint', 'danger-tint', 'warning-tint', 'info-tint', 'brand-tint', 'ai-tint',\n // misc\n 'switch-bg',\n];\n"],"names":[],"mappings":"AA8BO,MAAM,oBAAA,GAA0C;AAAA;AAAA,EAEnD,SAAA;AAAA,EAAW,eAAA;AAAA,EAAiB,gBAAA;AAAA,EAAkB,WAAA;AAAA,EAC9C,OAAA;AAAA,EAAS,cAAA;AAAA,EAAgB,YAAA;AAAA,EAAc,aAAA;AAAA,EAAe,YAAA;AAAA;AAAA,EAEtD,SAAA;AAAA,EAAW,cAAA;AAAA,EAAgB,QAAA;AAAA,EAAU,SAAA;AAAA,EAAW,cAAA;AAAA,EAChD,MAAA;AAAA,EAAQ,MAAA;AAAA,EAAQ,WAAA;AAAA;AAAA,EAEhB,MAAA;AAAA,EAAQ,cAAA;AAAA,EAAgB,gBAAA;AAAA,EAAkB,aAAA;AAAA,EAAe,YAAA;AAAA,EACzD,iBAAA;AAAA,EAAmB,WAAA;AAAA;AAAA,EAEnB,IAAA;AAAA,EAAM,WAAA;AAAA,EAAa,UAAA;AAAA,EAAY,WAAA;AAAA,EAAa,UAAA;AAAA,EAAY,SAAA;AAAA;AAAA,EAExD,gBAAA;AAAA,EAAkB,cAAA;AAAA,EAAgB,iBAAA;AAAA,EAAmB,eAAA;AAAA,EACrD,eAAA;AAAA,EAAiB,iBAAA;AAAA,EAAmB,gBAAA;AAAA;AAAA,EAEpC,QAAA;AAAA,EAAU,gBAAA;AAAA,EAAkB,eAAA;AAAA,EAAiB,eAAA;AAAA,EAAiB,SAAA;AAAA;AAAA,EAE9D,cAAA;AAAA,EAAgB,aAAA;AAAA,EAAe,cAAA;AAAA,EAAgB,WAAA;AAAA,EAAa,YAAA;AAAA,EAAc,SAAA;AAAA;AAAA,EAE1E;AACJ;;;;"}
|
package/primitives/Box/index.cjs
CHANGED
|
@@ -61,6 +61,7 @@ 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/resolvers.cjs');
|
|
64
65
|
require('../../packages/types/src/Theme/alphaColors.cjs');
|
|
65
66
|
require('../../apps/mobile/src/Factory/helpers/cssVarMap.cjs');
|
|
66
67
|
var useSeparator = require('../../apps/mobile/src/Factory/useSeparator.cjs');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../../../../src/primitives/Box/index.tsx"],"sourcesContent":["import React, {type PropsWithChildren} from \"react\";\nimport {ResponsiveElement, useSeparator} from \"../../factory\";\nimport type {IFlexComponent} from \"@lmb-it/kitsconcerto-types\";\n\nconst Box =\n ({ children, ref, ...props }:PropsWithChildren<IFlexComponent>) => {\n const { cssProps, nativeProps } = useSeparator<any>(props);\n const { scrollable, entering, exiting, ...restNativeProps } = nativeProps;\n\n return (\n <ResponsiveElement\n ref={ref}\n as={'Box'}\n scrollable={scrollable}\n entering={entering}\n exiting={exiting}\n additionalStyles={{\n display: \"flex\",\n flexDirection: \"column\",\n }}\n cssProps={cssProps}\n nativeProps={restNativeProps}\n children={children}\n />\n );\n }\n\nexport default Box;\n"],"names":["useSeparator","jsx","ResponsiveElement"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../../src/primitives/Box/index.tsx"],"sourcesContent":["import React, {type PropsWithChildren} from \"react\";\nimport {ResponsiveElement, useSeparator} from \"../../factory\";\nimport type {IFlexComponent} from \"@lmb-it/kitsconcerto-types\";\n\nconst Box =\n ({ children, ref, ...props }:PropsWithChildren<IFlexComponent>) => {\n const { cssProps, nativeProps } = useSeparator<any>(props);\n const { scrollable, entering, exiting, ...restNativeProps } = nativeProps;\n\n return (\n <ResponsiveElement\n ref={ref}\n as={'Box'}\n scrollable={scrollable}\n entering={entering}\n exiting={exiting}\n additionalStyles={{\n display: \"flex\",\n flexDirection: \"column\",\n }}\n cssProps={cssProps}\n nativeProps={restNativeProps}\n children={children}\n />\n );\n }\n\nexport default Box;\n"],"names":["useSeparator","jsx","ResponsiveElement"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,MAAM,MACJ,CAAC,EAAE,UAAU,GAAA,EAAK,GAAG,OAAM,KAAwC;AACjE,EAAA,MAAM,EAAE,QAAA,EAAU,WAAA,EAAY,GAAIA,qBAAkB,KAAK,CAAA;AACzD,EAAA,MAAM,EAAE,UAAA,EAAY,QAAA,EAAU,OAAA,EAAS,GAAG,iBAAgB,GAAI,WAAA;AAE9D,EAAA,uBACEC,cAAA;AAAA,IAACC,yBAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,EAAA,EAAI,KAAA;AAAA,MACJ,UAAA;AAAA,MACA,QAAA;AAAA,MACA,OAAA;AAAA,MACA,gBAAA,EAAkB;AAAA,QAChB,OAAA,EAAS,MAAA;AAAA,QACT,aAAA,EAAe;AAAA,OACjB;AAAA,MACA,QAAA;AAAA,MACA,WAAA,EAAa,eAAA;AAAA,MACb;AAAA;AAAA,GACF;AAEJ;;;;"}
|
package/primitives/Box/index.js
CHANGED
|
@@ -57,6 +57,7 @@ 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/resolvers.js';
|
|
60
61
|
import '../../packages/types/src/Theme/alphaColors.js';
|
|
61
62
|
import '../../apps/mobile/src/Factory/helpers/cssVarMap.js';
|
|
62
63
|
import useSeparator from '../../apps/mobile/src/Factory/useSeparator.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/primitives/Box/index.tsx"],"sourcesContent":["import React, {type PropsWithChildren} from \"react\";\nimport {ResponsiveElement, useSeparator} from \"../../factory\";\nimport type {IFlexComponent} from \"@lmb-it/kitsconcerto-types\";\n\nconst Box =\n ({ children, ref, ...props }:PropsWithChildren<IFlexComponent>) => {\n const { cssProps, nativeProps } = useSeparator<any>(props);\n const { scrollable, entering, exiting, ...restNativeProps } = nativeProps;\n\n return (\n <ResponsiveElement\n ref={ref}\n as={'Box'}\n scrollable={scrollable}\n entering={entering}\n exiting={exiting}\n additionalStyles={{\n display: \"flex\",\n flexDirection: \"column\",\n }}\n cssProps={cssProps}\n nativeProps={restNativeProps}\n children={children}\n />\n );\n }\n\nexport default Box;\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/primitives/Box/index.tsx"],"sourcesContent":["import React, {type PropsWithChildren} from \"react\";\nimport {ResponsiveElement, useSeparator} from \"../../factory\";\nimport type {IFlexComponent} from \"@lmb-it/kitsconcerto-types\";\n\nconst Box =\n ({ children, ref, ...props }:PropsWithChildren<IFlexComponent>) => {\n const { cssProps, nativeProps } = useSeparator<any>(props);\n const { scrollable, entering, exiting, ...restNativeProps } = nativeProps;\n\n return (\n <ResponsiveElement\n ref={ref}\n as={'Box'}\n scrollable={scrollable}\n entering={entering}\n exiting={exiting}\n additionalStyles={{\n display: \"flex\",\n flexDirection: \"column\",\n }}\n cssProps={cssProps}\n nativeProps={restNativeProps}\n children={children}\n />\n );\n }\n\nexport default Box;\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,MAAM,MACJ,CAAC,EAAE,UAAU,GAAA,EAAK,GAAG,OAAM,KAAwC;AACjE,EAAA,MAAM,EAAE,QAAA,EAAU,WAAA,EAAY,GAAI,aAAkB,KAAK,CAAA;AACzD,EAAA,MAAM,EAAE,UAAA,EAAY,QAAA,EAAU,OAAA,EAAS,GAAG,iBAAgB,GAAI,WAAA;AAE9D,EAAA,uBACE,GAAA;AAAA,IAAC,iBAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,EAAA,EAAI,KAAA;AAAA,MACJ,UAAA;AAAA,MACA,QAAA;AAAA,MACA,OAAA;AAAA,MACA,gBAAA,EAAkB;AAAA,QAChB,OAAA,EAAS,MAAA;AAAA,QACT,aAAA,EAAe;AAAA,OACjB;AAAA,MACA,QAAA;AAAA,MACA,WAAA,EAAa,eAAA;AAAA,MACb;AAAA;AAAA,GACF;AAEJ;;;;"}
|
|
@@ -61,6 +61,7 @@ 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/resolvers.cjs');
|
|
64
65
|
require('../../packages/types/src/Theme/alphaColors.cjs');
|
|
65
66
|
require('../../apps/mobile/src/Factory/helpers/cssVarMap.cjs');
|
|
66
67
|
var useSeparator = require('../../apps/mobile/src/Factory/useSeparator.cjs');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../../../../src/primitives/Card/index.native.tsx"],"sourcesContent":["import React, {useMemo} from \"react\";\nimport {Pressable} from \"react-native\";\nimport {Heading, Text, type ICardProps} from \"@lmb-it/kitsconcertomobile\";\nimport {ResponsiveElement, useSeparator} from \"../../factory\";\nimport type {ICardComponent} from \"@lmb-it/kitsconcerto-types\";\nimport {useComponentDefaults} from \"@lmb-it/kitsconcerto/hooks\";\n\nconst Card = (rawProps: ICardComponent<Omit<ICardProps, 'title'>>) => {\n const {mergedProps: cardProps, themeStyle, elementStyles} = useComponentDefaults('Card', rawProps);\n const {\n title,\n subTitle,\n header,\n footer,\n className,\n variant = 'elevated',\n size = 'md',\n ref,\n children: CardChildren,\n localProps,\n onPress,\n ...props\n } = cardProps;\n const {cssProps, nativeProps} = useSeparator<any>({\n variant,\n size,\n ...props\n });\n\n const children = useMemo(() => {\n const ret:any[] = [];\n\n if (header) {\n ret.push(React.isValidElement(header)\n ? React.cloneElement(header, { key: 'header' })\n : <React.Fragment key=\"header\">\n {typeof header == 'function' ? localProps ? header(localProps) : \"\" : header}\n </React.Fragment>);\n }\n\n if (title) {\n ret.push(\n <Heading key=\"title\" size=\"md\" className=\"mb-1\">\n {typeof title == 'function' ? localProps ? title(localProps) : \"\" : title}\n </Heading>\n );\n }\n\n if (subTitle) {\n ret.push(<Text key=\"subTitle\">\n {typeof subTitle == 'function' ? localProps ? subTitle(localProps) : \"\" : subTitle}\n </Text>);\n }\n\n if (CardChildren) {\n ret.push(React.isValidElement(CardChildren)\n ? React.cloneElement(CardChildren, { key: 'CardChildren' })\n : <React.Fragment key=\"CardChildren\">{CardChildren}</React.Fragment>);\n }\n\n if (footer) {\n ret.push(React.isValidElement(footer)\n ? React.cloneElement(footer, { key: 'footer' })\n : <React.Fragment key=\"footer\">\n {typeof footer == 'function' ? localProps ? footer(localProps) : \"\" : footer}\n </React.Fragment>);\n }\n return <>{ret}</>;\n }, [header, title, subTitle, CardChildren]);\n\n\n const classes = useMemo(() => {\n const classes: string[] = [];\n classes.push('shadow-hard-1')\n\n if(className){\n classes.push(className)\n }\n\n return classes.join(\" \");\n }, [className]);\n\n const { entering, exiting, ...restNativeProps } = nativeProps;\n\n const cardElement = (\n <ResponsiveElement\n ref={ref}\n entering={entering}\n exiting={exiting}\n additionalStyles={{\n display: \"flex\",\n width:'auto'\n }}\n additionalClasses={classes}\n cssProps={{...themeStyle, ...(elementStyles.root || {}), ...cssProps}}\n nativeProps={restNativeProps}\n as={'Card'}\n children={children}\n />\n );\n\n if (onPress) {\n return (\n <Pressable onPress={onPress} accessibilityRole=\"button\">\n {cardElement}\n </Pressable>\n );\n }\n\n return cardElement;\n}\n\nexport default Card;\n"],"names":["useComponentDefaults","useSeparator","useMemo","jsx","Heading","Text","classes","ResponsiveElement","Pressable"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../../src/primitives/Card/index.native.tsx"],"sourcesContent":["import React, {useMemo} from \"react\";\nimport {Pressable} from \"react-native\";\nimport {Heading, Text, type ICardProps} from \"@lmb-it/kitsconcertomobile\";\nimport {ResponsiveElement, useSeparator} from \"../../factory\";\nimport type {ICardComponent} from \"@lmb-it/kitsconcerto-types\";\nimport {useComponentDefaults} from \"@lmb-it/kitsconcerto/hooks\";\n\nconst Card = (rawProps: ICardComponent<Omit<ICardProps, 'title'>>) => {\n const {mergedProps: cardProps, themeStyle, elementStyles} = useComponentDefaults('Card', rawProps);\n const {\n title,\n subTitle,\n header,\n footer,\n className,\n variant = 'elevated',\n size = 'md',\n ref,\n children: CardChildren,\n localProps,\n onPress,\n ...props\n } = cardProps;\n const {cssProps, nativeProps} = useSeparator<any>({\n variant,\n size,\n ...props\n });\n\n const children = useMemo(() => {\n const ret:any[] = [];\n\n if (header) {\n ret.push(React.isValidElement(header)\n ? React.cloneElement(header, { key: 'header' })\n : <React.Fragment key=\"header\">\n {typeof header == 'function' ? localProps ? header(localProps) : \"\" : header}\n </React.Fragment>);\n }\n\n if (title) {\n ret.push(\n <Heading key=\"title\" size=\"md\" className=\"mb-1\">\n {typeof title == 'function' ? localProps ? title(localProps) : \"\" : title}\n </Heading>\n );\n }\n\n if (subTitle) {\n ret.push(<Text key=\"subTitle\">\n {typeof subTitle == 'function' ? localProps ? subTitle(localProps) : \"\" : subTitle}\n </Text>);\n }\n\n if (CardChildren) {\n ret.push(React.isValidElement(CardChildren)\n ? React.cloneElement(CardChildren, { key: 'CardChildren' })\n : <React.Fragment key=\"CardChildren\">{CardChildren}</React.Fragment>);\n }\n\n if (footer) {\n ret.push(React.isValidElement(footer)\n ? React.cloneElement(footer, { key: 'footer' })\n : <React.Fragment key=\"footer\">\n {typeof footer == 'function' ? localProps ? footer(localProps) : \"\" : footer}\n </React.Fragment>);\n }\n return <>{ret}</>;\n }, [header, title, subTitle, CardChildren]);\n\n\n const classes = useMemo(() => {\n const classes: string[] = [];\n classes.push('shadow-hard-1')\n\n if(className){\n classes.push(className)\n }\n\n return classes.join(\" \");\n }, [className]);\n\n const { entering, exiting, ...restNativeProps } = nativeProps;\n\n const cardElement = (\n <ResponsiveElement\n ref={ref}\n entering={entering}\n exiting={exiting}\n additionalStyles={{\n display: \"flex\",\n width:'auto'\n }}\n additionalClasses={classes}\n cssProps={{...themeStyle, ...(elementStyles.root || {}), ...cssProps}}\n nativeProps={restNativeProps}\n as={'Card'}\n children={children}\n />\n );\n\n if (onPress) {\n return (\n <Pressable onPress={onPress} accessibilityRole=\"button\">\n {cardElement}\n </Pressable>\n );\n }\n\n return cardElement;\n}\n\nexport default Card;\n"],"names":["useComponentDefaults","useSeparator","useMemo","jsx","Heading","Text","classes","ResponsiveElement","Pressable"],"mappings":"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"}
|
package/primitives/Card/index.js
CHANGED
|
@@ -57,6 +57,7 @@ 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/resolvers.js';
|
|
60
61
|
import '../../packages/types/src/Theme/alphaColors.js';
|
|
61
62
|
import '../../apps/mobile/src/Factory/helpers/cssVarMap.js';
|
|
62
63
|
import useSeparator from '../../apps/mobile/src/Factory/useSeparator.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/primitives/Card/index.native.tsx"],"sourcesContent":["import React, {useMemo} from \"react\";\nimport {Pressable} from \"react-native\";\nimport {Heading, Text, type ICardProps} from \"@lmb-it/kitsconcertomobile\";\nimport {ResponsiveElement, useSeparator} from \"../../factory\";\nimport type {ICardComponent} from \"@lmb-it/kitsconcerto-types\";\nimport {useComponentDefaults} from \"@lmb-it/kitsconcerto/hooks\";\n\nconst Card = (rawProps: ICardComponent<Omit<ICardProps, 'title'>>) => {\n const {mergedProps: cardProps, themeStyle, elementStyles} = useComponentDefaults('Card', rawProps);\n const {\n title,\n subTitle,\n header,\n footer,\n className,\n variant = 'elevated',\n size = 'md',\n ref,\n children: CardChildren,\n localProps,\n onPress,\n ...props\n } = cardProps;\n const {cssProps, nativeProps} = useSeparator<any>({\n variant,\n size,\n ...props\n });\n\n const children = useMemo(() => {\n const ret:any[] = [];\n\n if (header) {\n ret.push(React.isValidElement(header)\n ? React.cloneElement(header, { key: 'header' })\n : <React.Fragment key=\"header\">\n {typeof header == 'function' ? localProps ? header(localProps) : \"\" : header}\n </React.Fragment>);\n }\n\n if (title) {\n ret.push(\n <Heading key=\"title\" size=\"md\" className=\"mb-1\">\n {typeof title == 'function' ? localProps ? title(localProps) : \"\" : title}\n </Heading>\n );\n }\n\n if (subTitle) {\n ret.push(<Text key=\"subTitle\">\n {typeof subTitle == 'function' ? localProps ? subTitle(localProps) : \"\" : subTitle}\n </Text>);\n }\n\n if (CardChildren) {\n ret.push(React.isValidElement(CardChildren)\n ? React.cloneElement(CardChildren, { key: 'CardChildren' })\n : <React.Fragment key=\"CardChildren\">{CardChildren}</React.Fragment>);\n }\n\n if (footer) {\n ret.push(React.isValidElement(footer)\n ? React.cloneElement(footer, { key: 'footer' })\n : <React.Fragment key=\"footer\">\n {typeof footer == 'function' ? localProps ? footer(localProps) : \"\" : footer}\n </React.Fragment>);\n }\n return <>{ret}</>;\n }, [header, title, subTitle, CardChildren]);\n\n\n const classes = useMemo(() => {\n const classes: string[] = [];\n classes.push('shadow-hard-1')\n\n if(className){\n classes.push(className)\n }\n\n return classes.join(\" \");\n }, [className]);\n\n const { entering, exiting, ...restNativeProps } = nativeProps;\n\n const cardElement = (\n <ResponsiveElement\n ref={ref}\n entering={entering}\n exiting={exiting}\n additionalStyles={{\n display: \"flex\",\n width:'auto'\n }}\n additionalClasses={classes}\n cssProps={{...themeStyle, ...(elementStyles.root || {}), ...cssProps}}\n nativeProps={restNativeProps}\n as={'Card'}\n children={children}\n />\n );\n\n if (onPress) {\n return (\n <Pressable onPress={onPress} accessibilityRole=\"button\">\n {cardElement}\n </Pressable>\n );\n }\n\n return cardElement;\n}\n\nexport default Card;\n"],"names":["classes"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/primitives/Card/index.native.tsx"],"sourcesContent":["import React, {useMemo} from \"react\";\nimport {Pressable} from \"react-native\";\nimport {Heading, Text, type ICardProps} from \"@lmb-it/kitsconcertomobile\";\nimport {ResponsiveElement, useSeparator} from \"../../factory\";\nimport type {ICardComponent} from \"@lmb-it/kitsconcerto-types\";\nimport {useComponentDefaults} from \"@lmb-it/kitsconcerto/hooks\";\n\nconst Card = (rawProps: ICardComponent<Omit<ICardProps, 'title'>>) => {\n const {mergedProps: cardProps, themeStyle, elementStyles} = useComponentDefaults('Card', rawProps);\n const {\n title,\n subTitle,\n header,\n footer,\n className,\n variant = 'elevated',\n size = 'md',\n ref,\n children: CardChildren,\n localProps,\n onPress,\n ...props\n } = cardProps;\n const {cssProps, nativeProps} = useSeparator<any>({\n variant,\n size,\n ...props\n });\n\n const children = useMemo(() => {\n const ret:any[] = [];\n\n if (header) {\n ret.push(React.isValidElement(header)\n ? React.cloneElement(header, { key: 'header' })\n : <React.Fragment key=\"header\">\n {typeof header == 'function' ? localProps ? header(localProps) : \"\" : header}\n </React.Fragment>);\n }\n\n if (title) {\n ret.push(\n <Heading key=\"title\" size=\"md\" className=\"mb-1\">\n {typeof title == 'function' ? localProps ? title(localProps) : \"\" : title}\n </Heading>\n );\n }\n\n if (subTitle) {\n ret.push(<Text key=\"subTitle\">\n {typeof subTitle == 'function' ? localProps ? subTitle(localProps) : \"\" : subTitle}\n </Text>);\n }\n\n if (CardChildren) {\n ret.push(React.isValidElement(CardChildren)\n ? React.cloneElement(CardChildren, { key: 'CardChildren' })\n : <React.Fragment key=\"CardChildren\">{CardChildren}</React.Fragment>);\n }\n\n if (footer) {\n ret.push(React.isValidElement(footer)\n ? React.cloneElement(footer, { key: 'footer' })\n : <React.Fragment key=\"footer\">\n {typeof footer == 'function' ? localProps ? footer(localProps) : \"\" : footer}\n </React.Fragment>);\n }\n return <>{ret}</>;\n }, [header, title, subTitle, CardChildren]);\n\n\n const classes = useMemo(() => {\n const classes: string[] = [];\n classes.push('shadow-hard-1')\n\n if(className){\n classes.push(className)\n }\n\n return classes.join(\" \");\n }, [className]);\n\n const { entering, exiting, ...restNativeProps } = nativeProps;\n\n const cardElement = (\n <ResponsiveElement\n ref={ref}\n entering={entering}\n exiting={exiting}\n additionalStyles={{\n display: \"flex\",\n width:'auto'\n }}\n additionalClasses={classes}\n cssProps={{...themeStyle, ...(elementStyles.root || {}), ...cssProps}}\n nativeProps={restNativeProps}\n as={'Card'}\n children={children}\n />\n );\n\n if (onPress) {\n return (\n <Pressable onPress={onPress} accessibilityRole=\"button\">\n {cardElement}\n </Pressable>\n );\n }\n\n return cardElement;\n}\n\nexport default Card;\n"],"names":["classes"],"mappings":"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"}
|
|
@@ -61,6 +61,7 @@ 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/resolvers.cjs');
|
|
64
65
|
require('../../packages/types/src/Theme/alphaColors.cjs');
|
|
65
66
|
require('../../apps/mobile/src/Factory/helpers/cssVarMap.cjs');
|
|
66
67
|
require('../../apps/mobile/src/Factory/DimensionsContext.cjs');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../../../../src/primitives/Divider/index.native.tsx"],"sourcesContent":["import React from 'react';\nimport {View, Text, StyleSheet} from 'react-native';\nimport type {IDividerComponent} from '@lmb-it/kitsconcerto-types';\nimport {useSeparator} from \"../../factory\";\nimport useRtlLineHeight from \"../../hooks/useRtlLineHeight\";\nimport {useKitsTheme} from '../../contexts/Theme';\nimport useThemedFont from '../../hooks/useThemedFont';\n\nconst Divider: React.FC<IDividerComponent> = (props) => {\n const {nativeProps} = useSeparator<any>(props);\n /*\n * ⛔ ARABIC CLIPS WITHOUT AN EXPLICIT LINE BOX — a raw react-native <Text>\n * with a fontSize and no lineHeight gets the FONT'S natural box, and\n * NotoKufiArabic's is too short for its own ascenders. In an RTL script\n * that reads as a BAD TRANSLATION rather than as clipping: ش/س, غ/ع and\n * ة/ه differ only by marks above the baseline.\n * ⚠️ undefined in LTR, so no English layout moves.\n */\n const rtlLineHeight = useRtlLineHeight(undefined, 14);\n const {\n align = 'center',\n children,\n layout = 'horizontal',\n type: borderType = 'solid',\n unstyled = false,\n ...rest\n } = nativeProps;\n\n const {resolveToken} = useKitsTheme();\n // `color` overrides the line colour (resolved through the theme — token,\n // hex, or named); falls back to the `divider` token when omitted.\n const dividerColor = typeof props.color === 'string'\n ? resolveToken(props.color)\n : resolveToken('divider');\n const contentFont = useThemedFont('body');\n\n const isHorizontal = layout === 'horizontal';\n\n if (unstyled) {\n return (\n <View\n {...rest}\n style={[\n isHorizontal ? styles.horizontal : styles.vertical,\n rest.style,\n ]}\n />\n );\n }\n\n const lineStyle = isHorizontal\n ? [styles.horizontalLine, {borderBottomStyle: borderType, borderBottomColor: dividerColor}]\n : [styles.verticalLine, {borderLeftStyle: borderType, borderLeftColor: dividerColor}];\n\n if (!children) {\n return (\n <View\n {...rest}\n style={[\n isHorizontal ? styles.horizontal : styles.vertical,\n isHorizontal\n ? {borderBottomWidth: StyleSheet.hairlineWidth, borderBottomColor: dividerColor, borderStyle: borderType}\n : {borderLeftWidth: StyleSheet.hairlineWidth, borderLeftColor: dividerColor, borderStyle: borderType},\n rest.style,\n ]}\n />\n );\n }\n\n const alignMap: Record<string, 'flex-start' | 'center' | 'flex-end'> = {\n left: 'flex-start',\n top: 'flex-start',\n center: 'center',\n right: 'flex-end',\n bottom: 'flex-end',\n };\n const justifyContent = alignMap[align] ?? 'center';\n\n return (\n <View\n {...rest}\n style={[\n isHorizontal ? styles.horizontalWithContent : styles.verticalWithContent,\n {justifyContent},\n rest.style,\n ]}>\n <View style={[\n isHorizontal ? styles.lineSegment : styles.lineSegmentVertical,\n {backgroundColor: dividerColor},\n align === 'left' || align === 'top' ? {flex: 0, width: isHorizontal ? 24 : undefined, height: !isHorizontal ? 24 : undefined} : {flex: 1},\n ]} />\n <Text style={[styles.contentText, {color: resolveToken('text-secondary')}, rtlLineHeight != null ? {lineHeight: rtlLineHeight} : null, contentFont ? {fontFamily: contentFont} : null]}>\n {children}\n </Text>\n <View style={[\n isHorizontal ? styles.lineSegment : styles.lineSegmentVertical,\n {backgroundColor: dividerColor},\n align === 'right' || align === 'bottom' ? {flex: 0, width: isHorizontal ? 24 : undefined, height: !isHorizontal ? 24 : undefined} : {flex: 1},\n ]} />\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n horizontal: {\n width: '100%',\n flexDirection: 'row',\n },\n vertical: {\n height: '100%',\n flexDirection: 'column',\n },\n horizontalWithContent: {\n width: '100%',\n flexDirection: 'row',\n alignItems: 'center',\n gap: 12,\n },\n verticalWithContent: {\n height: '100%',\n flexDirection: 'column',\n alignItems: 'center',\n gap: 12,\n },\n horizontalLine: {\n width: '100%',\n },\n verticalLine: {\n height: '100%',\n },\n lineSegment: {\n height: StyleSheet.hairlineWidth,\n flex: 1,\n },\n lineSegmentVertical: {\n width: StyleSheet.hairlineWidth,\n flex: 1,\n },\n contentText: {\n fontSize: 14,\n },\n});\n\nexport default Divider;\n"],"names":["useSeparator","useRtlLineHeight","useKitsTheme","useThemedFont","jsx","View","StyleSheet","jsxs","Text"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../../src/primitives/Divider/index.native.tsx"],"sourcesContent":["import React from 'react';\nimport {View, Text, StyleSheet} from 'react-native';\nimport type {IDividerComponent} from '@lmb-it/kitsconcerto-types';\nimport {useSeparator} from \"../../factory\";\nimport useRtlLineHeight from \"../../hooks/useRtlLineHeight\";\nimport {useKitsTheme} from '../../contexts/Theme';\nimport useThemedFont from '../../hooks/useThemedFont';\n\nconst Divider: React.FC<IDividerComponent> = (props) => {\n const {nativeProps} = useSeparator<any>(props);\n /*\n * ⛔ ARABIC CLIPS WITHOUT AN EXPLICIT LINE BOX — a raw react-native <Text>\n * with a fontSize and no lineHeight gets the FONT'S natural box, and\n * NotoKufiArabic's is too short for its own ascenders. In an RTL script\n * that reads as a BAD TRANSLATION rather than as clipping: ش/س, غ/ع and\n * ة/ه differ only by marks above the baseline.\n * ⚠️ undefined in LTR, so no English layout moves.\n */\n const rtlLineHeight = useRtlLineHeight(undefined, 14);\n const {\n align = 'center',\n children,\n layout = 'horizontal',\n type: borderType = 'solid',\n unstyled = false,\n ...rest\n } = nativeProps;\n\n const {resolveToken} = useKitsTheme();\n // `color` overrides the line colour (resolved through the theme — token,\n // hex, or named); falls back to the `divider` token when omitted.\n const dividerColor = typeof props.color === 'string'\n ? resolveToken(props.color)\n : resolveToken('divider');\n const contentFont = useThemedFont('body');\n\n const isHorizontal = layout === 'horizontal';\n\n if (unstyled) {\n return (\n <View\n {...rest}\n style={[\n isHorizontal ? styles.horizontal : styles.vertical,\n rest.style,\n ]}\n />\n );\n }\n\n const lineStyle = isHorizontal\n ? [styles.horizontalLine, {borderBottomStyle: borderType, borderBottomColor: dividerColor}]\n : [styles.verticalLine, {borderLeftStyle: borderType, borderLeftColor: dividerColor}];\n\n if (!children) {\n return (\n <View\n {...rest}\n style={[\n isHorizontal ? styles.horizontal : styles.vertical,\n isHorizontal\n ? {borderBottomWidth: StyleSheet.hairlineWidth, borderBottomColor: dividerColor, borderStyle: borderType}\n : {borderLeftWidth: StyleSheet.hairlineWidth, borderLeftColor: dividerColor, borderStyle: borderType},\n rest.style,\n ]}\n />\n );\n }\n\n const alignMap: Record<string, 'flex-start' | 'center' | 'flex-end'> = {\n left: 'flex-start',\n top: 'flex-start',\n center: 'center',\n right: 'flex-end',\n bottom: 'flex-end',\n };\n const justifyContent = alignMap[align] ?? 'center';\n\n return (\n <View\n {...rest}\n style={[\n isHorizontal ? styles.horizontalWithContent : styles.verticalWithContent,\n {justifyContent},\n rest.style,\n ]}>\n <View style={[\n isHorizontal ? styles.lineSegment : styles.lineSegmentVertical,\n {backgroundColor: dividerColor},\n align === 'left' || align === 'top' ? {flex: 0, width: isHorizontal ? 24 : undefined, height: !isHorizontal ? 24 : undefined} : {flex: 1},\n ]} />\n <Text style={[styles.contentText, {color: resolveToken('text-secondary')}, rtlLineHeight != null ? {lineHeight: rtlLineHeight} : null, contentFont ? {fontFamily: contentFont} : null]}>\n {children}\n </Text>\n <View style={[\n isHorizontal ? styles.lineSegment : styles.lineSegmentVertical,\n {backgroundColor: dividerColor},\n align === 'right' || align === 'bottom' ? {flex: 0, width: isHorizontal ? 24 : undefined, height: !isHorizontal ? 24 : undefined} : {flex: 1},\n ]} />\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n horizontal: {\n width: '100%',\n flexDirection: 'row',\n },\n vertical: {\n height: '100%',\n flexDirection: 'column',\n },\n horizontalWithContent: {\n width: '100%',\n flexDirection: 'row',\n alignItems: 'center',\n gap: 12,\n },\n verticalWithContent: {\n height: '100%',\n flexDirection: 'column',\n alignItems: 'center',\n gap: 12,\n },\n horizontalLine: {\n width: '100%',\n },\n verticalLine: {\n height: '100%',\n },\n lineSegment: {\n height: StyleSheet.hairlineWidth,\n flex: 1,\n },\n lineSegmentVertical: {\n width: StyleSheet.hairlineWidth,\n flex: 1,\n },\n contentText: {\n fontSize: 14,\n },\n});\n\nexport default Divider;\n"],"names":["useSeparator","useRtlLineHeight","useKitsTheme","useThemedFont","jsx","View","StyleSheet","jsxs","Text"],"mappings":"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"}
|
|
@@ -57,6 +57,7 @@ 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/resolvers.js';
|
|
60
61
|
import '../../packages/types/src/Theme/alphaColors.js';
|
|
61
62
|
import '../../apps/mobile/src/Factory/helpers/cssVarMap.js';
|
|
62
63
|
import '../../apps/mobile/src/Factory/DimensionsContext.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/primitives/Divider/index.native.tsx"],"sourcesContent":["import React from 'react';\nimport {View, Text, StyleSheet} from 'react-native';\nimport type {IDividerComponent} from '@lmb-it/kitsconcerto-types';\nimport {useSeparator} from \"../../factory\";\nimport useRtlLineHeight from \"../../hooks/useRtlLineHeight\";\nimport {useKitsTheme} from '../../contexts/Theme';\nimport useThemedFont from '../../hooks/useThemedFont';\n\nconst Divider: React.FC<IDividerComponent> = (props) => {\n const {nativeProps} = useSeparator<any>(props);\n /*\n * ⛔ ARABIC CLIPS WITHOUT AN EXPLICIT LINE BOX — a raw react-native <Text>\n * with a fontSize and no lineHeight gets the FONT'S natural box, and\n * NotoKufiArabic's is too short for its own ascenders. In an RTL script\n * that reads as a BAD TRANSLATION rather than as clipping: ش/س, غ/ع and\n * ة/ه differ only by marks above the baseline.\n * ⚠️ undefined in LTR, so no English layout moves.\n */\n const rtlLineHeight = useRtlLineHeight(undefined, 14);\n const {\n align = 'center',\n children,\n layout = 'horizontal',\n type: borderType = 'solid',\n unstyled = false,\n ...rest\n } = nativeProps;\n\n const {resolveToken} = useKitsTheme();\n // `color` overrides the line colour (resolved through the theme — token,\n // hex, or named); falls back to the `divider` token when omitted.\n const dividerColor = typeof props.color === 'string'\n ? resolveToken(props.color)\n : resolveToken('divider');\n const contentFont = useThemedFont('body');\n\n const isHorizontal = layout === 'horizontal';\n\n if (unstyled) {\n return (\n <View\n {...rest}\n style={[\n isHorizontal ? styles.horizontal : styles.vertical,\n rest.style,\n ]}\n />\n );\n }\n\n const lineStyle = isHorizontal\n ? [styles.horizontalLine, {borderBottomStyle: borderType, borderBottomColor: dividerColor}]\n : [styles.verticalLine, {borderLeftStyle: borderType, borderLeftColor: dividerColor}];\n\n if (!children) {\n return (\n <View\n {...rest}\n style={[\n isHorizontal ? styles.horizontal : styles.vertical,\n isHorizontal\n ? {borderBottomWidth: StyleSheet.hairlineWidth, borderBottomColor: dividerColor, borderStyle: borderType}\n : {borderLeftWidth: StyleSheet.hairlineWidth, borderLeftColor: dividerColor, borderStyle: borderType},\n rest.style,\n ]}\n />\n );\n }\n\n const alignMap: Record<string, 'flex-start' | 'center' | 'flex-end'> = {\n left: 'flex-start',\n top: 'flex-start',\n center: 'center',\n right: 'flex-end',\n bottom: 'flex-end',\n };\n const justifyContent = alignMap[align] ?? 'center';\n\n return (\n <View\n {...rest}\n style={[\n isHorizontal ? styles.horizontalWithContent : styles.verticalWithContent,\n {justifyContent},\n rest.style,\n ]}>\n <View style={[\n isHorizontal ? styles.lineSegment : styles.lineSegmentVertical,\n {backgroundColor: dividerColor},\n align === 'left' || align === 'top' ? {flex: 0, width: isHorizontal ? 24 : undefined, height: !isHorizontal ? 24 : undefined} : {flex: 1},\n ]} />\n <Text style={[styles.contentText, {color: resolveToken('text-secondary')}, rtlLineHeight != null ? {lineHeight: rtlLineHeight} : null, contentFont ? {fontFamily: contentFont} : null]}>\n {children}\n </Text>\n <View style={[\n isHorizontal ? styles.lineSegment : styles.lineSegmentVertical,\n {backgroundColor: dividerColor},\n align === 'right' || align === 'bottom' ? {flex: 0, width: isHorizontal ? 24 : undefined, height: !isHorizontal ? 24 : undefined} : {flex: 1},\n ]} />\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n horizontal: {\n width: '100%',\n flexDirection: 'row',\n },\n vertical: {\n height: '100%',\n flexDirection: 'column',\n },\n horizontalWithContent: {\n width: '100%',\n flexDirection: 'row',\n alignItems: 'center',\n gap: 12,\n },\n verticalWithContent: {\n height: '100%',\n flexDirection: 'column',\n alignItems: 'center',\n gap: 12,\n },\n horizontalLine: {\n width: '100%',\n },\n verticalLine: {\n height: '100%',\n },\n lineSegment: {\n height: StyleSheet.hairlineWidth,\n flex: 1,\n },\n lineSegmentVertical: {\n width: StyleSheet.hairlineWidth,\n flex: 1,\n },\n contentText: {\n fontSize: 14,\n },\n});\n\nexport default Divider;\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/primitives/Divider/index.native.tsx"],"sourcesContent":["import React from 'react';\nimport {View, Text, StyleSheet} from 'react-native';\nimport type {IDividerComponent} from '@lmb-it/kitsconcerto-types';\nimport {useSeparator} from \"../../factory\";\nimport useRtlLineHeight from \"../../hooks/useRtlLineHeight\";\nimport {useKitsTheme} from '../../contexts/Theme';\nimport useThemedFont from '../../hooks/useThemedFont';\n\nconst Divider: React.FC<IDividerComponent> = (props) => {\n const {nativeProps} = useSeparator<any>(props);\n /*\n * ⛔ ARABIC CLIPS WITHOUT AN EXPLICIT LINE BOX — a raw react-native <Text>\n * with a fontSize and no lineHeight gets the FONT'S natural box, and\n * NotoKufiArabic's is too short for its own ascenders. In an RTL script\n * that reads as a BAD TRANSLATION rather than as clipping: ش/س, غ/ع and\n * ة/ه differ only by marks above the baseline.\n * ⚠️ undefined in LTR, so no English layout moves.\n */\n const rtlLineHeight = useRtlLineHeight(undefined, 14);\n const {\n align = 'center',\n children,\n layout = 'horizontal',\n type: borderType = 'solid',\n unstyled = false,\n ...rest\n } = nativeProps;\n\n const {resolveToken} = useKitsTheme();\n // `color` overrides the line colour (resolved through the theme — token,\n // hex, or named); falls back to the `divider` token when omitted.\n const dividerColor = typeof props.color === 'string'\n ? resolveToken(props.color)\n : resolveToken('divider');\n const contentFont = useThemedFont('body');\n\n const isHorizontal = layout === 'horizontal';\n\n if (unstyled) {\n return (\n <View\n {...rest}\n style={[\n isHorizontal ? styles.horizontal : styles.vertical,\n rest.style,\n ]}\n />\n );\n }\n\n const lineStyle = isHorizontal\n ? [styles.horizontalLine, {borderBottomStyle: borderType, borderBottomColor: dividerColor}]\n : [styles.verticalLine, {borderLeftStyle: borderType, borderLeftColor: dividerColor}];\n\n if (!children) {\n return (\n <View\n {...rest}\n style={[\n isHorizontal ? styles.horizontal : styles.vertical,\n isHorizontal\n ? {borderBottomWidth: StyleSheet.hairlineWidth, borderBottomColor: dividerColor, borderStyle: borderType}\n : {borderLeftWidth: StyleSheet.hairlineWidth, borderLeftColor: dividerColor, borderStyle: borderType},\n rest.style,\n ]}\n />\n );\n }\n\n const alignMap: Record<string, 'flex-start' | 'center' | 'flex-end'> = {\n left: 'flex-start',\n top: 'flex-start',\n center: 'center',\n right: 'flex-end',\n bottom: 'flex-end',\n };\n const justifyContent = alignMap[align] ?? 'center';\n\n return (\n <View\n {...rest}\n style={[\n isHorizontal ? styles.horizontalWithContent : styles.verticalWithContent,\n {justifyContent},\n rest.style,\n ]}>\n <View style={[\n isHorizontal ? styles.lineSegment : styles.lineSegmentVertical,\n {backgroundColor: dividerColor},\n align === 'left' || align === 'top' ? {flex: 0, width: isHorizontal ? 24 : undefined, height: !isHorizontal ? 24 : undefined} : {flex: 1},\n ]} />\n <Text style={[styles.contentText, {color: resolveToken('text-secondary')}, rtlLineHeight != null ? {lineHeight: rtlLineHeight} : null, contentFont ? {fontFamily: contentFont} : null]}>\n {children}\n </Text>\n <View style={[\n isHorizontal ? styles.lineSegment : styles.lineSegmentVertical,\n {backgroundColor: dividerColor},\n align === 'right' || align === 'bottom' ? {flex: 0, width: isHorizontal ? 24 : undefined, height: !isHorizontal ? 24 : undefined} : {flex: 1},\n ]} />\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n horizontal: {\n width: '100%',\n flexDirection: 'row',\n },\n vertical: {\n height: '100%',\n flexDirection: 'column',\n },\n horizontalWithContent: {\n width: '100%',\n flexDirection: 'row',\n alignItems: 'center',\n gap: 12,\n },\n verticalWithContent: {\n height: '100%',\n flexDirection: 'column',\n alignItems: 'center',\n gap: 12,\n },\n horizontalLine: {\n width: '100%',\n },\n verticalLine: {\n height: '100%',\n },\n lineSegment: {\n height: StyleSheet.hairlineWidth,\n flex: 1,\n },\n lineSegmentVertical: {\n width: StyleSheet.hairlineWidth,\n flex: 1,\n },\n contentText: {\n fontSize: 14,\n },\n});\n\nexport default Divider;\n"],"names":[],"mappings":"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"}
|
|
@@ -61,6 +61,7 @@ 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/resolvers.cjs');
|
|
64
65
|
require('../../packages/types/src/Theme/alphaColors.cjs');
|
|
65
66
|
require('../../apps/mobile/src/Factory/helpers/cssVarMap.cjs');
|
|
66
67
|
var useSeparator = require('../../apps/mobile/src/Factory/useSeparator.cjs');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../../../../src/primitives/Heading/index.native.tsx"],"sourcesContent":["import React from \"react\";\nimport { ResponsiveElement, useSeparator } from \"../../factory\";\nimport type {IHeadingComponent} from \"@lmb-it/kitsconcerto-types\";\nimport { useKitsTheme } from \"../../contexts/Theme\";\nimport useRtlLineHeight from \"../../hooks/useRtlLineHeight\";\n\nconst mapAsToSize: Record<string, IHeadingComponent[\"size\"]> = {\n h1: \"5xl\",\n h2: \"4xl\",\n h3: \"3xl\",\n h4: \"2xl\",\n h5: \"xl\",\n h6: \"lg\",\n};\n\nconst Heading: React.FC<IHeadingComponent> = (props) => {\n const { theme } = useKitsTheme();\n const { cssProps, nativeProps } = useSeparator<any>(props);\n const {\n as = \"h2\",\n size,\n children,\n isTruncated,\n bold,\n underline,\n strikeThrough,\n sub,\n italic,\n highlight,\n color,\n ...rest\n } = nativeProps;\n\n const resolvedSize = size || mapAsToSize[as] || \"md\";\n\n // Match Text/index.native.tsx: apply theme.fonts.heading as the default\n // fontFamily so consumers overriding via `extendTheme({ fonts: { heading\n // : 'NotoKufiArabic-Bold' } })` see the font on every Heading. Per-call\n // `style.fontFamily` (passed through cssProps via useSeparator) wins.\n const fontFamily = typeof theme.fonts.heading === 'string' ? theme.fonts.heading : undefined;\n\n // RTL: headroom so tall Arabic glyphs aren't clipped at the top.\n const rtlLineHeight = useRtlLineHeight(\n resolvedSize as string,\n typeof (cssProps as any)?.fontSize === 'number' ? (cssProps as any).fontSize : undefined,\n );\n\n return (\n <ResponsiveElement\n as=\"Heading\"\n cssProps={cssProps}\n additionalStyles={{\n ...(fontFamily ? { fontFamily } : {}),\n ...(rtlLineHeight != null ? { lineHeight: rtlLineHeight } : {}),\n }}\n nativeProps={{\n ...rest,\n size: resolvedSize,\n isTruncated,\n bold,\n underline,\n strikeThrough,\n sub,\n italic,\n highlight,\n color,\n }}\n >\n {children}\n </ResponsiveElement>\n );\n};\n\nexport default Heading;\n"],"names":["useKitsTheme","useSeparator","useRtlLineHeight","jsx","ResponsiveElement"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../../src/primitives/Heading/index.native.tsx"],"sourcesContent":["import React from \"react\";\nimport { ResponsiveElement, useSeparator } from \"../../factory\";\nimport type {IHeadingComponent} from \"@lmb-it/kitsconcerto-types\";\nimport { useKitsTheme } from \"../../contexts/Theme\";\nimport useRtlLineHeight from \"../../hooks/useRtlLineHeight\";\n\nconst mapAsToSize: Record<string, IHeadingComponent[\"size\"]> = {\n h1: \"5xl\",\n h2: \"4xl\",\n h3: \"3xl\",\n h4: \"2xl\",\n h5: \"xl\",\n h6: \"lg\",\n};\n\nconst Heading: React.FC<IHeadingComponent> = (props) => {\n const { theme } = useKitsTheme();\n const { cssProps, nativeProps } = useSeparator<any>(props);\n const {\n as = \"h2\",\n size,\n children,\n isTruncated,\n bold,\n underline,\n strikeThrough,\n sub,\n italic,\n highlight,\n color,\n ...rest\n } = nativeProps;\n\n const resolvedSize = size || mapAsToSize[as] || \"md\";\n\n // Match Text/index.native.tsx: apply theme.fonts.heading as the default\n // fontFamily so consumers overriding via `extendTheme({ fonts: { heading\n // : 'NotoKufiArabic-Bold' } })` see the font on every Heading. Per-call\n // `style.fontFamily` (passed through cssProps via useSeparator) wins.\n const fontFamily = typeof theme.fonts.heading === 'string' ? theme.fonts.heading : undefined;\n\n // RTL: headroom so tall Arabic glyphs aren't clipped at the top.\n const rtlLineHeight = useRtlLineHeight(\n resolvedSize as string,\n typeof (cssProps as any)?.fontSize === 'number' ? (cssProps as any).fontSize : undefined,\n );\n\n return (\n <ResponsiveElement\n as=\"Heading\"\n cssProps={cssProps}\n additionalStyles={{\n ...(fontFamily ? { fontFamily } : {}),\n ...(rtlLineHeight != null ? { lineHeight: rtlLineHeight } : {}),\n }}\n nativeProps={{\n ...rest,\n size: resolvedSize,\n isTruncated,\n bold,\n underline,\n strikeThrough,\n sub,\n italic,\n highlight,\n color,\n }}\n >\n {children}\n </ResponsiveElement>\n );\n};\n\nexport default Heading;\n"],"names":["useKitsTheme","useSeparator","useRtlLineHeight","jsx","ResponsiveElement"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,MAAM,WAAA,GAAyD;AAAA,EAC3D,EAAA,EAAI,KAAA;AAAA,EACJ,EAAA,EAAI,KAAA;AAAA,EACJ,EAAA,EAAI,KAAA;AAAA,EACJ,EAAA,EAAI,KAAA;AAAA,EACJ,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI;AACR,CAAA;AAEA,MAAM,OAAA,GAAuC,CAAC,KAAA,KAAU;AACpD,EAAA,MAAM,EAAE,KAAA,EAAM,GAAIA,qCAAA,EAAa;AAC/B,EAAA,MAAM,EAAE,QAAA,EAAU,WAAA,EAAY,GAAIC,qBAAkB,KAAK,CAAA;AACzD,EAAA,MAAM;AAAA,IACF,EAAA,GAAK,IAAA;AAAA,IACL,IAAA;AAAA,IACA,QAAA;AAAA,IACA,WAAA;AAAA,IACA,IAAA;AAAA,IACA,SAAA;AAAA,IACA,aAAA;AAAA,IACA,GAAA;AAAA,IACA,MAAA;AAAA,IACA,SAAA;AAAA,IACA,KAAA;AAAA,IACA,GAAG;AAAA,GACP,GAAI,WAAA;AAEJ,EAAA,MAAM,YAAA,GAAe,IAAA,IAAQ,WAAA,CAAY,EAAE,CAAA,IAAK,IAAA;AAMhD,EAAA,MAAM,UAAA,GAAa,OAAO,KAAA,CAAM,KAAA,CAAM,YAAY,QAAA,GAAW,KAAA,CAAM,MAAM,OAAA,GAAU,MAAA;AAGnF,EAAA,MAAM,aAAA,GAAgBC,wBAAA;AAAA,IAClB,YAAA;AAAA,IACA,OAAQ,QAAA,EAAkB,QAAA,KAAa,QAAA,GAAY,SAAiB,QAAA,GAAW;AAAA,GACnF;AAEA,EAAA,uBACIC,cAAA;AAAA,IAACC,yBAAA;AAAA,IAAA;AAAA,MACG,EAAA,EAAG,SAAA;AAAA,MACH,QAAA;AAAA,MACA,gBAAA,EAAkB;AAAA,QACd,GAAI,UAAA,GAAa,EAAE,UAAA,KAAe,EAAC;AAAA,QACnC,GAAI,aAAA,IAAiB,IAAA,GAAO,EAAE,UAAA,EAAY,aAAA,KAAkB;AAAC,OACjE;AAAA,MACA,WAAA,EAAa;AAAA,QACT,GAAG,IAAA;AAAA,QACH,IAAA,EAAM,YAAA;AAAA,QACN,WAAA;AAAA,QACA,IAAA;AAAA,QACA,SAAA;AAAA,QACA,aAAA;AAAA,QACA,GAAA;AAAA,QACA,MAAA;AAAA,QACA,SAAA;AAAA,QACA;AAAA,OACJ;AAAA,MAEC;AAAA;AAAA,GACL;AAER;;;;"}
|