@lmb-it/kitsconcerto-native 0.1.289 → 0.1.290

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.
Files changed (254) hide show
  1. package/apps/mobile/src/Core/Dropdown/index.cjs +1 -0
  2. package/apps/mobile/src/Core/Dropdown/index.cjs.map +1 -1
  3. package/apps/mobile/src/Core/Dropdown/index.js +1 -0
  4. package/apps/mobile/src/Core/Dropdown/index.js.map +1 -1
  5. package/apps/mobile/src/Core/Trees/components/CoreToolbar.cjs +1 -0
  6. package/apps/mobile/src/Core/Trees/components/CoreToolbar.cjs.map +1 -1
  7. package/apps/mobile/src/Core/Trees/components/CoreToolbar.js +1 -0
  8. package/apps/mobile/src/Core/Trees/components/CoreToolbar.js.map +1 -1
  9. package/apps/mobile/src/Factory/ResponsiveElement.cjs +1 -0
  10. package/apps/mobile/src/Factory/ResponsiveElement.cjs.map +1 -1
  11. package/apps/mobile/src/Factory/ResponsiveElement.js +1 -0
  12. package/apps/mobile/src/Factory/ResponsiveElement.js.map +1 -1
  13. package/apps/mobile/src/Factory/helpers/cssVarMap.cjs +1 -0
  14. package/apps/mobile/src/Factory/helpers/cssVarMap.cjs.map +1 -1
  15. package/apps/mobile/src/Factory/helpers/cssVarMap.js +1 -0
  16. package/apps/mobile/src/Factory/helpers/cssVarMap.js.map +1 -1
  17. package/apps/mobile/src/Factory/helpers/style.cjs +1 -0
  18. package/apps/mobile/src/Factory/helpers/style.cjs.map +1 -1
  19. package/apps/mobile/src/Factory/helpers/style.js +1 -0
  20. package/apps/mobile/src/Factory/helpers/style.js.map +1 -1
  21. package/apps/mobile/src/Factory/useSeparator.cjs +1 -0
  22. package/apps/mobile/src/Factory/useSeparator.cjs.map +1 -1
  23. package/apps/mobile/src/Factory/useSeparator.js +1 -0
  24. package/apps/mobile/src/Factory/useSeparator.js.map +1 -1
  25. package/components/Accordion/accordion.cjs +1 -0
  26. package/components/Accordion/accordion.cjs.map +1 -1
  27. package/components/Accordion/accordion.js +1 -0
  28. package/components/Accordion/accordion.js.map +1 -1
  29. package/components/Badge/index.cjs +1 -0
  30. package/components/Badge/index.cjs.map +1 -1
  31. package/components/Badge/index.js +1 -0
  32. package/components/Badge/index.js.map +1 -1
  33. package/components/BottomTabBar/index.cjs +1 -0
  34. package/components/BottomTabBar/index.cjs.map +1 -1
  35. package/components/BottomTabBar/index.js +1 -0
  36. package/components/BottomTabBar/index.js.map +1 -1
  37. package/components/Button/Button.cjs +1 -0
  38. package/components/Button/Button.cjs.map +1 -1
  39. package/components/Button/Button.js +1 -0
  40. package/components/Button/Button.js.map +1 -1
  41. package/components/MessageComposer/index.cjs +1 -0
  42. package/components/MessageComposer/index.cjs.map +1 -1
  43. package/components/MessageComposer/index.js +1 -0
  44. package/components/MessageComposer/index.js.map +1 -1
  45. package/components/SegmentedControl/index.cjs +1 -0
  46. package/components/SegmentedControl/index.cjs.map +1 -1
  47. package/components/SegmentedControl/index.js +1 -0
  48. package/components/SegmentedControl/index.js.map +1 -1
  49. package/components/SkeletonText/index.cjs +1 -0
  50. package/components/SkeletonText/index.cjs.map +1 -1
  51. package/components/SkeletonText/index.js +1 -0
  52. package/components/SkeletonText/index.js.map +1 -1
  53. package/components/Tabs/index.cjs +3 -2
  54. package/components/Tabs/index.cjs.map +1 -1
  55. package/components/Tabs/index.js +3 -2
  56. package/components/Tabs/index.js.map +1 -1
  57. package/contexts/Locale/index.cjs +1 -0
  58. package/contexts/Locale/index.cjs.map +1 -1
  59. package/contexts/Locale/index.js +1 -0
  60. package/contexts/Locale/index.js.map +1 -1
  61. package/contexts/Main/index.cjs +1 -0
  62. package/contexts/Main/index.cjs.map +1 -1
  63. package/contexts/Main/index.js +1 -0
  64. package/contexts/Main/index.js.map +1 -1
  65. package/contexts/Theme/index.cjs +1 -0
  66. package/contexts/Theme/index.cjs.map +1 -1
  67. package/contexts/Theme/index.js +1 -0
  68. package/contexts/Theme/index.js.map +1 -1
  69. package/data/DataView/Pagination/index.cjs +1 -0
  70. package/data/DataView/Pagination/index.cjs.map +1 -1
  71. package/data/DataView/Pagination/index.js +1 -0
  72. package/data/DataView/Pagination/index.js.map +1 -1
  73. package/data/TreeView/index.cjs +1 -0
  74. package/data/TreeView/index.cjs.map +1 -1
  75. package/data/TreeView/index.js +1 -0
  76. package/data/TreeView/index.js.map +1 -1
  77. package/form/controls/Checkbox/checkbox.cjs +1 -0
  78. package/form/controls/Checkbox/checkbox.cjs.map +1 -1
  79. package/form/controls/Checkbox/checkbox.js +1 -0
  80. package/form/controls/Checkbox/checkbox.js.map +1 -1
  81. package/form/controls/RadioButton/radiobutton.cjs +1 -0
  82. package/form/controls/RadioButton/radiobutton.cjs.map +1 -1
  83. package/form/controls/RadioButton/radiobutton.js +1 -0
  84. package/form/controls/RadioButton/radiobutton.js.map +1 -1
  85. package/form/controls/SelectButton/index.cjs +1 -0
  86. package/form/controls/SelectButton/index.cjs.map +1 -1
  87. package/form/controls/SelectButton/index.js +1 -0
  88. package/form/controls/SelectButton/index.js.map +1 -1
  89. package/form/controls/TriStateCheckbox/index.cjs +1 -0
  90. package/form/controls/TriStateCheckbox/index.cjs.map +1 -1
  91. package/form/controls/TriStateCheckbox/index.js +1 -0
  92. package/form/controls/TriStateCheckbox/index.js.map +1 -1
  93. package/form/file-pickers/MainUploader/index.cjs +1 -0
  94. package/form/file-pickers/MainUploader/index.cjs.map +1 -1
  95. package/form/file-pickers/MainUploader/index.js +1 -0
  96. package/form/file-pickers/MainUploader/index.js.map +1 -1
  97. package/form/helpers/ErrorMessage/errormessage.cjs +1 -0
  98. package/form/helpers/ErrorMessage/errormessage.cjs.map +1 -1
  99. package/form/helpers/ErrorMessage/errormessage.js +1 -0
  100. package/form/helpers/ErrorMessage/errormessage.js.map +1 -1
  101. package/form/helpers/FormContainer/index.cjs +1 -0
  102. package/form/helpers/FormContainer/index.cjs.map +1 -1
  103. package/form/helpers/FormContainer/index.js +1 -0
  104. package/form/helpers/FormContainer/index.js.map +1 -1
  105. package/form/helpers/Label/label.cjs +1 -0
  106. package/form/helpers/Label/label.cjs.map +1 -1
  107. package/form/helpers/Label/label.js +1 -0
  108. package/form/helpers/Label/label.js.map +1 -1
  109. package/form/inputs/InputMask/index.cjs +1 -0
  110. package/form/inputs/InputMask/index.cjs.map +1 -1
  111. package/form/inputs/InputMask/index.js +1 -0
  112. package/form/inputs/InputMask/index.js.map +1 -1
  113. package/form/inputs/InputNumber/index.cjs +1 -0
  114. package/form/inputs/InputNumber/index.cjs.map +1 -1
  115. package/form/inputs/InputNumber/index.js +1 -0
  116. package/form/inputs/InputNumber/index.js.map +1 -1
  117. package/form/inputs/InputPassword/index.cjs +1 -0
  118. package/form/inputs/InputPassword/index.cjs.map +1 -1
  119. package/form/inputs/InputPassword/index.js +1 -0
  120. package/form/inputs/InputPassword/index.js.map +1 -1
  121. package/form/inputs/InputSwitch/index.cjs +1 -0
  122. package/form/inputs/InputSwitch/index.cjs.map +1 -1
  123. package/form/inputs/InputSwitch/index.js +1 -0
  124. package/form/inputs/InputSwitch/index.js.map +1 -1
  125. package/form/inputs/InputText/index.cjs +1 -0
  126. package/form/inputs/InputText/index.cjs.map +1 -1
  127. package/form/inputs/InputText/index.js +1 -0
  128. package/form/inputs/InputText/index.js.map +1 -1
  129. package/form/inputs/InputTextarea/index.cjs +1 -0
  130. package/form/inputs/InputTextarea/index.cjs.map +1 -1
  131. package/form/inputs/InputTextarea/index.js +1 -0
  132. package/form/inputs/InputTextarea/index.js.map +1 -1
  133. package/form/inputs/PhoneInput/index.cjs +1 -0
  134. package/form/inputs/PhoneInput/index.cjs.map +1 -1
  135. package/form/inputs/PhoneInput/index.js +1 -0
  136. package/form/inputs/PhoneInput/index.js.map +1 -1
  137. package/form/inputs/RadiusPicker/components/NumericRadiusInput.cjs +1 -0
  138. package/form/inputs/RadiusPicker/components/NumericRadiusInput.cjs.map +1 -1
  139. package/form/inputs/RadiusPicker/components/NumericRadiusInput.js +1 -0
  140. package/form/inputs/RadiusPicker/components/NumericRadiusInput.js.map +1 -1
  141. package/form/selects/AutoComplete/index.cjs +1 -0
  142. package/form/selects/AutoComplete/index.cjs.map +1 -1
  143. package/form/selects/AutoComplete/index.js +1 -0
  144. package/form/selects/AutoComplete/index.js.map +1 -1
  145. package/form/selects/Dropdown/index.cjs +1 -0
  146. package/form/selects/Dropdown/index.cjs.map +1 -1
  147. package/form/selects/Dropdown/index.js +1 -0
  148. package/form/selects/Dropdown/index.js.map +1 -1
  149. package/form/selects/ListBox/index.cjs +1 -0
  150. package/form/selects/ListBox/index.cjs.map +1 -1
  151. package/form/selects/ListBox/index.js +1 -0
  152. package/form/selects/ListBox/index.js.map +1 -1
  153. package/form/selects/MultiSelect/index.cjs +1 -0
  154. package/form/selects/MultiSelect/index.cjs.map +1 -1
  155. package/form/selects/MultiSelect/index.js +1 -0
  156. package/form/selects/MultiSelect/index.js.map +1 -1
  157. package/form/selects/TreeSelect/index.cjs +1 -0
  158. package/form/selects/TreeSelect/index.cjs.map +1 -1
  159. package/form/selects/TreeSelect/index.js +1 -0
  160. package/form/selects/TreeSelect/index.js.map +1 -1
  161. package/form/selects/helpers/SelectPopupOverlay.cjs +1 -0
  162. package/form/selects/helpers/SelectPopupOverlay.cjs.map +1 -1
  163. package/form/selects/helpers/SelectPopupOverlay.js +1 -0
  164. package/form/selects/helpers/SelectPopupOverlay.js.map +1 -1
  165. package/form-renderer/components/layout/FieldWrapper.cjs +1 -0
  166. package/form-renderer/components/layout/FieldWrapper.cjs.map +1 -1
  167. package/form-renderer/components/layout/FieldWrapper.js +1 -0
  168. package/form-renderer/components/layout/FieldWrapper.js.map +1 -1
  169. package/hooks/shadowPresets.cjs +1 -0
  170. package/hooks/shadowPresets.cjs.map +1 -1
  171. package/hooks/shadowPresets.js +1 -0
  172. package/hooks/shadowPresets.js.map +1 -1
  173. package/hooks/useFocusStyles.cjs +1 -0
  174. package/hooks/useFocusStyles.cjs.map +1 -1
  175. package/hooks/useFocusStyles.js +1 -0
  176. package/hooks/useFocusStyles.js.map +1 -1
  177. package/index.cjs +2 -0
  178. package/index.cjs.map +1 -1
  179. package/index.d.ts +35 -3
  180. package/index.js +1 -0
  181. package/index.js.map +1 -1
  182. package/layout/Center/index.cjs +1 -0
  183. package/layout/Center/index.cjs.map +1 -1
  184. package/layout/Center/index.js +1 -0
  185. package/layout/Center/index.js.map +1 -1
  186. package/layout/Container/container.cjs +1 -0
  187. package/layout/Container/container.cjs.map +1 -1
  188. package/layout/Container/container.js +1 -0
  189. package/layout/Container/container.js.map +1 -1
  190. package/layout/Flex/index.cjs +1 -0
  191. package/layout/Flex/index.cjs.map +1 -1
  192. package/layout/Flex/index.js +1 -0
  193. package/layout/Flex/index.js.map +1 -1
  194. package/layout/HStack/index.cjs +1 -0
  195. package/layout/HStack/index.cjs.map +1 -1
  196. package/layout/HStack/index.js +1 -0
  197. package/layout/HStack/index.js.map +1 -1
  198. package/layout/List/index.cjs +1 -0
  199. package/layout/List/index.cjs.map +1 -1
  200. package/layout/List/index.js +1 -0
  201. package/layout/List/index.js.map +1 -1
  202. package/layout/ListItem/index.cjs +1 -0
  203. package/layout/ListItem/index.cjs.map +1 -1
  204. package/layout/ListItem/index.js +1 -0
  205. package/layout/ListItem/index.js.map +1 -1
  206. package/layout/ScrollView/index.cjs +1 -0
  207. package/layout/ScrollView/index.cjs.map +1 -1
  208. package/layout/ScrollView/index.js +1 -0
  209. package/layout/ScrollView/index.js.map +1 -1
  210. package/layout/VStack/index.cjs +1 -0
  211. package/layout/VStack/index.cjs.map +1 -1
  212. package/layout/VStack/index.js +1 -0
  213. package/layout/VStack/index.js.map +1 -1
  214. package/package.json +1 -1
  215. package/packages/types/src/Theme/resolvers.cjs +2 -55
  216. package/packages/types/src/Theme/resolvers.cjs.map +1 -1
  217. package/packages/types/src/Theme/resolvers.js +2 -55
  218. package/packages/types/src/Theme/resolvers.js.map +1 -1
  219. package/packages/types/src/Theme/semanticTokenNames.cjs +64 -0
  220. package/packages/types/src/Theme/semanticTokenNames.cjs.map +1 -0
  221. package/packages/types/src/Theme/semanticTokenNames.js +62 -0
  222. package/packages/types/src/Theme/semanticTokenNames.js.map +1 -0
  223. package/primitives/Box/index.cjs +1 -0
  224. package/primitives/Box/index.cjs.map +1 -1
  225. package/primitives/Box/index.js +1 -0
  226. package/primitives/Box/index.js.map +1 -1
  227. package/primitives/Card/index.cjs +1 -0
  228. package/primitives/Card/index.cjs.map +1 -1
  229. package/primitives/Card/index.js +1 -0
  230. package/primitives/Card/index.js.map +1 -1
  231. package/primitives/Divider/index.cjs +1 -0
  232. package/primitives/Divider/index.cjs.map +1 -1
  233. package/primitives/Divider/index.js +1 -0
  234. package/primitives/Divider/index.js.map +1 -1
  235. package/primitives/Heading/index.cjs +1 -0
  236. package/primitives/Heading/index.cjs.map +1 -1
  237. package/primitives/Heading/index.js +1 -0
  238. package/primitives/Heading/index.js.map +1 -1
  239. package/primitives/Image/index.cjs +1 -0
  240. package/primitives/Image/index.cjs.map +1 -1
  241. package/primitives/Image/index.js +1 -0
  242. package/primitives/Image/index.js.map +1 -1
  243. package/primitives/Skeleton/index.cjs +1 -0
  244. package/primitives/Skeleton/index.cjs.map +1 -1
  245. package/primitives/Skeleton/index.js +1 -0
  246. package/primitives/Skeleton/index.js.map +1 -1
  247. package/primitives/Svg/index.cjs +1 -0
  248. package/primitives/Svg/index.cjs.map +1 -1
  249. package/primitives/Svg/index.js +1 -0
  250. package/primitives/Svg/index.js.map +1 -1
  251. package/primitives/Text/index.cjs +1 -0
  252. package/primitives/Text/index.cjs.map +1 -1
  253. package/primitives/Text/index.js +1 -0
  254. package/primitives/Text/index.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/MessageComposer/index.native.tsx"],"sourcesContent":["import React from \"react\";\nimport {View, Text, TextInput, TouchableOpacity} from \"react-native\";\nimport {resolveThemeTokenForNative} from \"@lmb-it/kitsconcertomobile\";\nimport useRtlLineHeight from \"../../hooks/useRtlLineHeight\";\nimport type {IMessageComposerProps} from \"@lmb-it/kitsconcerto-types\";\nimport {Icon} from \"../../primitives\";\nimport {useComponentDefaults} from \"../../hooks\";\n\n/**\n * MessageComposer (native) — attach + multiline input + send, mirroring the\n * app's chat input bar (RN TextInput + TouchableOpacity, library Icon).\n */\nexport function MessageComposer(rawProps: IMessageComposerProps) {\n const props = useComponentDefaults<IMessageComposerProps>(\"MessageComposer\", rawProps).mergedProps;\n const {value, onChangeText, onSend, onAttach, placeholder = \"Message…\", sendDisabled, accentColor = \"brand\", locked, lockedLabel, attachDisabled, attachHint, onSelectionChange, selection, inputRef, testID} = props;\n\n const accent = resolveThemeTokenForNative(accentColor);\n const surface = resolveThemeTokenForNative(\"surface-card\");\n const border = resolveThemeTokenForNative(\"surface-border\");\n const fieldBg = resolveThemeTokenForNative(\"gray.100\");\n const textColor = resolveThemeTokenForNative(\"text\");\n const muted = resolveThemeTokenForNative(\"text-secondary\");\n const disabledBg = resolveThemeTokenForNative(\"gray.300\");\n\n /*\n * ⛔ ARABIC CLIPS WITHOUT AN EXPLICIT LINE BOX. These render RAW\n * react-native <Text> with a fontSize and no lineHeight, so React Native\n * uses the FONT'S natural box — and NotoKufiArabic's is too short for its\n * own ascenders. In an RTL script that does not read as clipping, it reads\n * as a BAD TRANSLATION: ش/س, غ/ع and ة/ه differ only by marks above the\n * baseline. Both are undefined in LTR, so no English layout moves.\n *\n * ⚠️ THE INPUT ITSELF IS DELIBERATELY NOT TOUCHED. The TextInput below is\n * fontSize 14 with no lineHeight for the same reason, but it also carries\n * a hand-tuned single-line height floor and a comment about a two-frame\n * re-measure. Giving it a taller line box without being able to TYPE\n * Arabic into it and watch the field settle would be guessing at the one\n * control a person uses most. Recorded, not changed.\n */\n const rtlLockedLine = useRtlLineHeight(undefined, 13);\n const rtlHintLine = useRtlLineHeight(undefined, 11);\n\n if (locked) {\n return (\n <View\n testID={testID}\n style={{\n flexDirection: \"row\",\n alignItems: \"center\",\n paddingHorizontal: 12,\n paddingVertical: 10,\n backgroundColor: surface,\n borderTopWidth: 1,\n borderTopColor: border,\n }}\n >\n <View\n style={{\n flexGrow: 1,\n flexDirection: \"row\",\n alignItems: \"center\",\n gap: 10,\n backgroundColor: fieldBg,\n borderWidth: 1,\n borderColor: border,\n borderRadius: 999,\n paddingHorizontal: 16,\n paddingVertical: 11,\n }}\n >\n <Icon name=\"lock\" size={17} color={muted} />\n {lockedLabel != null && <Text style={{fontSize: 13, color: muted, ...(rtlLockedLine != null ? {lineHeight: rtlLockedLine} : {})}}>{lockedLabel}</Text>}\n </View>\n </View>\n );\n }\n\n const canSend = sendDisabled != null ? !sendDisabled : value.trim().length > 0;\n\n // Shared field + send (referenced by the default row AND the attach-disabled\n // branch — single source, so the input is never duplicated).\n //\n // onSelectionChange is adapted from RN's NativeSyntheticEvent shape to the\n // platform-agnostic {start, end} contract declared on IMessageComposerProps,\n // so consumers (e.g. @mention pickers) read the same shape on native and web.\n const field = (\n <TextInput\n ref={inputRef as React.Ref<TextInput>}\n style={{\n flex: 1,\n backgroundColor: fieldBg,\n borderRadius: 20,\n paddingHorizontal: 14,\n paddingVertical: 8,\n fontSize: 14,\n color: textColor,\n // Pin a single-line floor (= the 36px send button) so a\n // multiline RN TextInput doesn't measure a taller default on\n // frame 1 then settle on frame 2 — that re-measure re-flexes\n // the chat thread above it (a small shift-then-settle on open).\n // Still grows up to maxHeight when typing multiple lines.\n minHeight: 36,\n maxHeight: 120,\n }}\n placeholder={placeholder}\n placeholderTextColor={muted}\n value={value}\n onChangeText={onChangeText}\n selection={selection as {start: number; end?: number} | undefined}\n onSelectionChange={\n onSelectionChange\n ? e => onSelectionChange({start: e.nativeEvent.selection.start, end: e.nativeEvent.selection.end})\n : undefined\n }\n multiline\n />\n );\n\n const sendBtn = (\n <TouchableOpacity\n onPress={() => canSend && onSend?.()}\n disabled={!canSend}\n accessibilityRole=\"button\"\n accessibilityLabel=\"Send\"\n style={{\n width: 36,\n height: 36,\n borderRadius: 18,\n alignItems: \"center\",\n justifyContent: \"center\",\n backgroundColor: canSend ? accent : disabledBg,\n }}\n >\n <Icon name=\"send\" size={18} color=\"#FFFFFF\" />\n </TouchableOpacity>\n );\n\n if (attachDisabled) {\n return (\n <View\n testID={testID}\n style={{\n paddingVertical: 10,\n backgroundColor: surface,\n borderTopWidth: 1,\n borderTopColor: border,\n }}\n >\n {attachHint != null && (\n <View style={{flexDirection: \"row\", alignItems: \"center\", gap: 6, paddingHorizontal: 12, paddingBottom: 8}}>\n <Icon name=\"info\" size={12} color={muted} />\n <Text style={{fontSize: 11, color: muted, ...(rtlHintLine != null ? {lineHeight: rtlHintLine} : {})}}>{attachHint}</Text>\n </View>\n )}\n <View style={{flexDirection: \"row\", alignItems: \"flex-end\", gap: 8, paddingHorizontal: 12}}>\n {onAttach != null && (\n <View style={{width: 36, height: 36, alignItems: \"center\", justifyContent: \"center\", opacity: 0.5}}>\n <Icon name=\"paperclip\" size={20} color={muted} />\n </View>\n )}\n {field}\n {sendBtn}\n </View>\n </View>\n );\n }\n\n return (\n <View\n testID={testID}\n style={{\n flexDirection: \"row\",\n alignItems: \"flex-end\",\n gap: 8,\n paddingHorizontal: 12,\n paddingVertical: 10,\n backgroundColor: surface,\n borderTopWidth: 1,\n borderTopColor: border,\n }}\n >\n {onAttach != null && (\n <TouchableOpacity\n onPress={onAttach}\n accessibilityRole=\"button\"\n accessibilityLabel=\"Attach\"\n style={{width: 36, height: 36, alignItems: \"center\", justifyContent: \"center\"}}\n >\n <Icon name=\"paperclip\" size={20} color={muted} />\n </TouchableOpacity>\n )}\n {field}\n {sendBtn}\n </View>\n );\n}\n\nexport default MessageComposer;\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/MessageComposer/index.native.tsx"],"sourcesContent":["import React from \"react\";\nimport {View, Text, TextInput, TouchableOpacity} from \"react-native\";\nimport {resolveThemeTokenForNative} from \"@lmb-it/kitsconcertomobile\";\nimport useRtlLineHeight from \"../../hooks/useRtlLineHeight\";\nimport type {IMessageComposerProps} from \"@lmb-it/kitsconcerto-types\";\nimport {Icon} from \"../../primitives\";\nimport {useComponentDefaults} from \"../../hooks\";\n\n/**\n * MessageComposer (native) — attach + multiline input + send, mirroring the\n * app's chat input bar (RN TextInput + TouchableOpacity, library Icon).\n */\nexport function MessageComposer(rawProps: IMessageComposerProps) {\n const props = useComponentDefaults<IMessageComposerProps>(\"MessageComposer\", rawProps).mergedProps;\n const {value, onChangeText, onSend, onAttach, placeholder = \"Message…\", sendDisabled, accentColor = \"brand\", locked, lockedLabel, attachDisabled, attachHint, onSelectionChange, selection, inputRef, testID} = props;\n\n const accent = resolveThemeTokenForNative(accentColor);\n const surface = resolveThemeTokenForNative(\"surface-card\");\n const border = resolveThemeTokenForNative(\"surface-border\");\n const fieldBg = resolveThemeTokenForNative(\"gray.100\");\n const textColor = resolveThemeTokenForNative(\"text\");\n const muted = resolveThemeTokenForNative(\"text-secondary\");\n const disabledBg = resolveThemeTokenForNative(\"gray.300\");\n\n /*\n * ⛔ ARABIC CLIPS WITHOUT AN EXPLICIT LINE BOX. These render RAW\n * react-native <Text> with a fontSize and no lineHeight, so React Native\n * uses the FONT'S natural box — and NotoKufiArabic's is too short for its\n * own ascenders. In an RTL script that does not read as clipping, it reads\n * as a BAD TRANSLATION: ش/س, غ/ع and ة/ه differ only by marks above the\n * baseline. Both are undefined in LTR, so no English layout moves.\n *\n * ⚠️ THE INPUT ITSELF IS DELIBERATELY NOT TOUCHED. The TextInput below is\n * fontSize 14 with no lineHeight for the same reason, but it also carries\n * a hand-tuned single-line height floor and a comment about a two-frame\n * re-measure. Giving it a taller line box without being able to TYPE\n * Arabic into it and watch the field settle would be guessing at the one\n * control a person uses most. Recorded, not changed.\n */\n const rtlLockedLine = useRtlLineHeight(undefined, 13);\n const rtlHintLine = useRtlLineHeight(undefined, 11);\n\n if (locked) {\n return (\n <View\n testID={testID}\n style={{\n flexDirection: \"row\",\n alignItems: \"center\",\n paddingHorizontal: 12,\n paddingVertical: 10,\n backgroundColor: surface,\n borderTopWidth: 1,\n borderTopColor: border,\n }}\n >\n <View\n style={{\n flexGrow: 1,\n flexDirection: \"row\",\n alignItems: \"center\",\n gap: 10,\n backgroundColor: fieldBg,\n borderWidth: 1,\n borderColor: border,\n borderRadius: 999,\n paddingHorizontal: 16,\n paddingVertical: 11,\n }}\n >\n <Icon name=\"lock\" size={17} color={muted} />\n {lockedLabel != null && <Text style={{fontSize: 13, color: muted, ...(rtlLockedLine != null ? {lineHeight: rtlLockedLine} : {})}}>{lockedLabel}</Text>}\n </View>\n </View>\n );\n }\n\n const canSend = sendDisabled != null ? !sendDisabled : value.trim().length > 0;\n\n // Shared field + send (referenced by the default row AND the attach-disabled\n // branch — single source, so the input is never duplicated).\n //\n // onSelectionChange is adapted from RN's NativeSyntheticEvent shape to the\n // platform-agnostic {start, end} contract declared on IMessageComposerProps,\n // so consumers (e.g. @mention pickers) read the same shape on native and web.\n const field = (\n <TextInput\n ref={inputRef as React.Ref<TextInput>}\n style={{\n flex: 1,\n backgroundColor: fieldBg,\n borderRadius: 20,\n paddingHorizontal: 14,\n paddingVertical: 8,\n fontSize: 14,\n color: textColor,\n // Pin a single-line floor (= the 36px send button) so a\n // multiline RN TextInput doesn't measure a taller default on\n // frame 1 then settle on frame 2 — that re-measure re-flexes\n // the chat thread above it (a small shift-then-settle on open).\n // Still grows up to maxHeight when typing multiple lines.\n minHeight: 36,\n maxHeight: 120,\n }}\n placeholder={placeholder}\n placeholderTextColor={muted}\n value={value}\n onChangeText={onChangeText}\n selection={selection as {start: number; end?: number} | undefined}\n onSelectionChange={\n onSelectionChange\n ? e => onSelectionChange({start: e.nativeEvent.selection.start, end: e.nativeEvent.selection.end})\n : undefined\n }\n multiline\n />\n );\n\n const sendBtn = (\n <TouchableOpacity\n onPress={() => canSend && onSend?.()}\n disabled={!canSend}\n accessibilityRole=\"button\"\n accessibilityLabel=\"Send\"\n style={{\n width: 36,\n height: 36,\n borderRadius: 18,\n alignItems: \"center\",\n justifyContent: \"center\",\n backgroundColor: canSend ? accent : disabledBg,\n }}\n >\n <Icon name=\"send\" size={18} color=\"#FFFFFF\" />\n </TouchableOpacity>\n );\n\n if (attachDisabled) {\n return (\n <View\n testID={testID}\n style={{\n paddingVertical: 10,\n backgroundColor: surface,\n borderTopWidth: 1,\n borderTopColor: border,\n }}\n >\n {attachHint != null && (\n <View style={{flexDirection: \"row\", alignItems: \"center\", gap: 6, paddingHorizontal: 12, paddingBottom: 8}}>\n <Icon name=\"info\" size={12} color={muted} />\n <Text style={{fontSize: 11, color: muted, ...(rtlHintLine != null ? {lineHeight: rtlHintLine} : {})}}>{attachHint}</Text>\n </View>\n )}\n <View style={{flexDirection: \"row\", alignItems: \"flex-end\", gap: 8, paddingHorizontal: 12}}>\n {onAttach != null && (\n <View style={{width: 36, height: 36, alignItems: \"center\", justifyContent: \"center\", opacity: 0.5}}>\n <Icon name=\"paperclip\" size={20} color={muted} />\n </View>\n )}\n {field}\n {sendBtn}\n </View>\n </View>\n );\n }\n\n return (\n <View\n testID={testID}\n style={{\n flexDirection: \"row\",\n alignItems: \"flex-end\",\n gap: 8,\n paddingHorizontal: 12,\n paddingVertical: 10,\n backgroundColor: surface,\n borderTopWidth: 1,\n borderTopColor: border,\n }}\n >\n {onAttach != null && (\n <TouchableOpacity\n onPress={onAttach}\n accessibilityRole=\"button\"\n accessibilityLabel=\"Attach\"\n style={{width: 36, height: 36, alignItems: \"center\", justifyContent: \"center\"}}\n >\n <Icon name=\"paperclip\" size={20} color={muted} />\n </TouchableOpacity>\n )}\n {field}\n {sendBtn}\n </View>\n );\n}\n\nexport default MessageComposer;\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/components/SegmentedControl/index.tsx"],"sourcesContent":["import React, {useMemo} from \"react\";\nimport type {ISegmentedControlProps} from \"@lmb-it/kitsconcerto-types\";\nimport {ResponsiveElement, useSeparator} from \"../../factory\";\nimport {useComponentDefaults} from \"../../hooks\";\nimport {useKitsTheme} from \"../../contexts/Theme\";\n\nconst SIZE_MAP = {\n sm: {height: 30, fontSize: 11, px: 8, py: 4, descSize: 9.5, gap: 2},\n md: {height: 36, fontSize: 12.5, px: 12, py: 6, descSize: 10.5, gap: 4},\n lg: {height: 44, fontSize: 14, px: 16, py: 10, descSize: 11, gap: 4},\n} as const;\n\nexport function SegmentedControl<V extends string | number = string>(rawProps: ISegmentedControlProps<V>) {\n const {mergedProps: props, themeStyle} = useComponentDefaults<ISegmentedControlProps<V>>(\n \"SegmentedControl\",\n rawProps as any,\n );\n\n const {\n options,\n value,\n onChange,\n size = \"md\",\n fullWidth = true,\n disabled,\n id,\n testID,\n ...rest\n } = props;\n\n const {cssProps, nativeProps} = useSeparator<HTMLDivElement>(rest as any);\n const {resolveToken} = useKitsTheme();\n const sizeConfig = SIZE_MAP[size] ?? SIZE_MAP.md;\n\n const trackBg = resolveToken(\"surface-ground\");\n const borderColor = resolveToken(\"surface-border\");\n const inactiveText = resolveToken(\"text-secondary\");\n\n const containerCss = useMemo(\n () => ({\n ...themeStyle,\n ...cssProps,\n display: \"inline-flex\" as const,\n flexDirection: \"row\" as const,\n alignItems: \"stretch\" as const,\n gap: 2,\n padding: 2,\n backgroundColor: trackBg,\n border: `1px solid ${borderColor}`,\n borderRadius: 8,\n ...(fullWidth ? {width: \"100%\"} : {}),\n ...(disabled ? {opacity: \"0.55\", pointerEvents: \"none\" as const} : {}),\n }),\n [themeStyle, cssProps, trackBg, borderColor, fullWidth, disabled],\n );\n\n return (\n <ResponsiveElement\n as=\"Box\"\n //@ts-ignore\n cssProps={containerCss}\n nativeProps={{...nativeProps, id, \"data-testid\": testID, role: \"tablist\"}}\n additionalStyles={{}}\n >\n {options.map(opt => {\n const selected = opt.value === value;\n const isDisabled = disabled || opt.disabled;\n const accent = opt.color ? resolveToken(opt.color) : resolveToken(\"primary\");\n\n const buttonCss = {\n flex: fullWidth ? 1 : undefined,\n minHeight: sizeConfig.height,\n paddingLeft: sizeConfig.px,\n paddingRight: sizeConfig.px,\n paddingTop: sizeConfig.py,\n paddingBottom: sizeConfig.py,\n borderRadius: 6,\n border: \"none\",\n cursor: isDisabled ? \"not-allowed\" : \"pointer\",\n background: selected ? accent : \"transparent\",\n color: selected ? \"#FFFFFF\" : inactiveText,\n fontFamily: \"inherit\",\n fontWeight: \"700\",\n fontSize: sizeConfig.fontSize,\n lineHeight: \"1.1\",\n transition: \"background-color 0.15s, color 0.15s, box-shadow 0.15s\",\n boxShadow: selected ? \"0 1px 2px rgba(0,0,0,0.06)\" : \"none\",\n outline: \"none\",\n display: \"flex\",\n flexDirection: \"column\" as const,\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: sizeConfig.gap,\n textAlign: \"center\" as const,\n };\n\n return (\n <button\n key={String(opt.value)}\n type=\"button\"\n role=\"tab\"\n aria-selected={selected}\n disabled={isDisabled}\n onClick={() => !isDisabled && onChange(opt.value)}\n style={buttonCss as any}\n >\n <span style={{lineHeight: \"1.1\"}}>{opt.label}</span>\n {opt.description && (\n <span\n style={{\n fontSize: sizeConfig.descSize,\n fontWeight: 600,\n opacity: selected ? 0.85 : 0.7,\n }}\n >\n {opt.description}\n </span>\n )}\n </button>\n );\n })}\n </ResponsiveElement>\n );\n}\n\nexport default SegmentedControl;\n"],"names":["useComponentDefaults","useSeparator","useKitsTheme","useMemo","jsx","ResponsiveElement","jsxs"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../../src/components/SegmentedControl/index.tsx"],"sourcesContent":["import React, {useMemo} from \"react\";\nimport type {ISegmentedControlProps} from \"@lmb-it/kitsconcerto-types\";\nimport {ResponsiveElement, useSeparator} from \"../../factory\";\nimport {useComponentDefaults} from \"../../hooks\";\nimport {useKitsTheme} from \"../../contexts/Theme\";\n\nconst SIZE_MAP = {\n sm: {height: 30, fontSize: 11, px: 8, py: 4, descSize: 9.5, gap: 2},\n md: {height: 36, fontSize: 12.5, px: 12, py: 6, descSize: 10.5, gap: 4},\n lg: {height: 44, fontSize: 14, px: 16, py: 10, descSize: 11, gap: 4},\n} as const;\n\nexport function SegmentedControl<V extends string | number = string>(rawProps: ISegmentedControlProps<V>) {\n const {mergedProps: props, themeStyle} = useComponentDefaults<ISegmentedControlProps<V>>(\n \"SegmentedControl\",\n rawProps as any,\n );\n\n const {\n options,\n value,\n onChange,\n size = \"md\",\n fullWidth = true,\n disabled,\n id,\n testID,\n ...rest\n } = props;\n\n const {cssProps, nativeProps} = useSeparator<HTMLDivElement>(rest as any);\n const {resolveToken} = useKitsTheme();\n const sizeConfig = SIZE_MAP[size] ?? SIZE_MAP.md;\n\n const trackBg = resolveToken(\"surface-ground\");\n const borderColor = resolveToken(\"surface-border\");\n const inactiveText = resolveToken(\"text-secondary\");\n\n const containerCss = useMemo(\n () => ({\n ...themeStyle,\n ...cssProps,\n display: \"inline-flex\" as const,\n flexDirection: \"row\" as const,\n alignItems: \"stretch\" as const,\n gap: 2,\n padding: 2,\n backgroundColor: trackBg,\n border: `1px solid ${borderColor}`,\n borderRadius: 8,\n ...(fullWidth ? {width: \"100%\"} : {}),\n ...(disabled ? {opacity: \"0.55\", pointerEvents: \"none\" as const} : {}),\n }),\n [themeStyle, cssProps, trackBg, borderColor, fullWidth, disabled],\n );\n\n return (\n <ResponsiveElement\n as=\"Box\"\n //@ts-ignore\n cssProps={containerCss}\n nativeProps={{...nativeProps, id, \"data-testid\": testID, role: \"tablist\"}}\n additionalStyles={{}}\n >\n {options.map(opt => {\n const selected = opt.value === value;\n const isDisabled = disabled || opt.disabled;\n const accent = opt.color ? resolveToken(opt.color) : resolveToken(\"primary\");\n\n const buttonCss = {\n flex: fullWidth ? 1 : undefined,\n minHeight: sizeConfig.height,\n paddingLeft: sizeConfig.px,\n paddingRight: sizeConfig.px,\n paddingTop: sizeConfig.py,\n paddingBottom: sizeConfig.py,\n borderRadius: 6,\n border: \"none\",\n cursor: isDisabled ? \"not-allowed\" : \"pointer\",\n background: selected ? accent : \"transparent\",\n color: selected ? \"#FFFFFF\" : inactiveText,\n fontFamily: \"inherit\",\n fontWeight: \"700\",\n fontSize: sizeConfig.fontSize,\n lineHeight: \"1.1\",\n transition: \"background-color 0.15s, color 0.15s, box-shadow 0.15s\",\n boxShadow: selected ? \"0 1px 2px rgba(0,0,0,0.06)\" : \"none\",\n outline: \"none\",\n display: \"flex\",\n flexDirection: \"column\" as const,\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: sizeConfig.gap,\n textAlign: \"center\" as const,\n };\n\n return (\n <button\n key={String(opt.value)}\n type=\"button\"\n role=\"tab\"\n aria-selected={selected}\n disabled={isDisabled}\n onClick={() => !isDisabled && onChange(opt.value)}\n style={buttonCss as any}\n >\n <span style={{lineHeight: \"1.1\"}}>{opt.label}</span>\n {opt.description && (\n <span\n style={{\n fontSize: sizeConfig.descSize,\n fontWeight: 600,\n opacity: selected ? 0.85 : 0.7,\n }}\n >\n {opt.description}\n </span>\n )}\n </button>\n );\n })}\n </ResponsiveElement>\n );\n}\n\nexport default SegmentedControl;\n"],"names":["useComponentDefaults","useSeparator","useKitsTheme","useMemo","jsx","ResponsiveElement","jsxs"],"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 useSeparator from '../../apps/mobile/src/Factory/useSeparator.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/SegmentedControl/index.tsx"],"sourcesContent":["import React, {useMemo} from \"react\";\nimport type {ISegmentedControlProps} from \"@lmb-it/kitsconcerto-types\";\nimport {ResponsiveElement, useSeparator} from \"../../factory\";\nimport {useComponentDefaults} from \"../../hooks\";\nimport {useKitsTheme} from \"../../contexts/Theme\";\n\nconst SIZE_MAP = {\n sm: {height: 30, fontSize: 11, px: 8, py: 4, descSize: 9.5, gap: 2},\n md: {height: 36, fontSize: 12.5, px: 12, py: 6, descSize: 10.5, gap: 4},\n lg: {height: 44, fontSize: 14, px: 16, py: 10, descSize: 11, gap: 4},\n} as const;\n\nexport function SegmentedControl<V extends string | number = string>(rawProps: ISegmentedControlProps<V>) {\n const {mergedProps: props, themeStyle} = useComponentDefaults<ISegmentedControlProps<V>>(\n \"SegmentedControl\",\n rawProps as any,\n );\n\n const {\n options,\n value,\n onChange,\n size = \"md\",\n fullWidth = true,\n disabled,\n id,\n testID,\n ...rest\n } = props;\n\n const {cssProps, nativeProps} = useSeparator<HTMLDivElement>(rest as any);\n const {resolveToken} = useKitsTheme();\n const sizeConfig = SIZE_MAP[size] ?? SIZE_MAP.md;\n\n const trackBg = resolveToken(\"surface-ground\");\n const borderColor = resolveToken(\"surface-border\");\n const inactiveText = resolveToken(\"text-secondary\");\n\n const containerCss = useMemo(\n () => ({\n ...themeStyle,\n ...cssProps,\n display: \"inline-flex\" as const,\n flexDirection: \"row\" as const,\n alignItems: \"stretch\" as const,\n gap: 2,\n padding: 2,\n backgroundColor: trackBg,\n border: `1px solid ${borderColor}`,\n borderRadius: 8,\n ...(fullWidth ? {width: \"100%\"} : {}),\n ...(disabled ? {opacity: \"0.55\", pointerEvents: \"none\" as const} : {}),\n }),\n [themeStyle, cssProps, trackBg, borderColor, fullWidth, disabled],\n );\n\n return (\n <ResponsiveElement\n as=\"Box\"\n //@ts-ignore\n cssProps={containerCss}\n nativeProps={{...nativeProps, id, \"data-testid\": testID, role: \"tablist\"}}\n additionalStyles={{}}\n >\n {options.map(opt => {\n const selected = opt.value === value;\n const isDisabled = disabled || opt.disabled;\n const accent = opt.color ? resolveToken(opt.color) : resolveToken(\"primary\");\n\n const buttonCss = {\n flex: fullWidth ? 1 : undefined,\n minHeight: sizeConfig.height,\n paddingLeft: sizeConfig.px,\n paddingRight: sizeConfig.px,\n paddingTop: sizeConfig.py,\n paddingBottom: sizeConfig.py,\n borderRadius: 6,\n border: \"none\",\n cursor: isDisabled ? \"not-allowed\" : \"pointer\",\n background: selected ? accent : \"transparent\",\n color: selected ? \"#FFFFFF\" : inactiveText,\n fontFamily: \"inherit\",\n fontWeight: \"700\",\n fontSize: sizeConfig.fontSize,\n lineHeight: \"1.1\",\n transition: \"background-color 0.15s, color 0.15s, box-shadow 0.15s\",\n boxShadow: selected ? \"0 1px 2px rgba(0,0,0,0.06)\" : \"none\",\n outline: \"none\",\n display: \"flex\",\n flexDirection: \"column\" as const,\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: sizeConfig.gap,\n textAlign: \"center\" as const,\n };\n\n return (\n <button\n key={String(opt.value)}\n type=\"button\"\n role=\"tab\"\n aria-selected={selected}\n disabled={isDisabled}\n onClick={() => !isDisabled && onChange(opt.value)}\n style={buttonCss as any}\n >\n <span style={{lineHeight: \"1.1\"}}>{opt.label}</span>\n {opt.description && (\n <span\n style={{\n fontSize: sizeConfig.descSize,\n fontWeight: 600,\n opacity: selected ? 0.85 : 0.7,\n }}\n >\n {opt.description}\n </span>\n )}\n </button>\n );\n })}\n </ResponsiveElement>\n );\n}\n\nexport default SegmentedControl;\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/SegmentedControl/index.tsx"],"sourcesContent":["import React, {useMemo} from \"react\";\nimport type {ISegmentedControlProps} from \"@lmb-it/kitsconcerto-types\";\nimport {ResponsiveElement, useSeparator} from \"../../factory\";\nimport {useComponentDefaults} from \"../../hooks\";\nimport {useKitsTheme} from \"../../contexts/Theme\";\n\nconst SIZE_MAP = {\n sm: {height: 30, fontSize: 11, px: 8, py: 4, descSize: 9.5, gap: 2},\n md: {height: 36, fontSize: 12.5, px: 12, py: 6, descSize: 10.5, gap: 4},\n lg: {height: 44, fontSize: 14, px: 16, py: 10, descSize: 11, gap: 4},\n} as const;\n\nexport function SegmentedControl<V extends string | number = string>(rawProps: ISegmentedControlProps<V>) {\n const {mergedProps: props, themeStyle} = useComponentDefaults<ISegmentedControlProps<V>>(\n \"SegmentedControl\",\n rawProps as any,\n );\n\n const {\n options,\n value,\n onChange,\n size = \"md\",\n fullWidth = true,\n disabled,\n id,\n testID,\n ...rest\n } = props;\n\n const {cssProps, nativeProps} = useSeparator<HTMLDivElement>(rest as any);\n const {resolveToken} = useKitsTheme();\n const sizeConfig = SIZE_MAP[size] ?? SIZE_MAP.md;\n\n const trackBg = resolveToken(\"surface-ground\");\n const borderColor = resolveToken(\"surface-border\");\n const inactiveText = resolveToken(\"text-secondary\");\n\n const containerCss = useMemo(\n () => ({\n ...themeStyle,\n ...cssProps,\n display: \"inline-flex\" as const,\n flexDirection: \"row\" as const,\n alignItems: \"stretch\" as const,\n gap: 2,\n padding: 2,\n backgroundColor: trackBg,\n border: `1px solid ${borderColor}`,\n borderRadius: 8,\n ...(fullWidth ? {width: \"100%\"} : {}),\n ...(disabled ? {opacity: \"0.55\", pointerEvents: \"none\" as const} : {}),\n }),\n [themeStyle, cssProps, trackBg, borderColor, fullWidth, disabled],\n );\n\n return (\n <ResponsiveElement\n as=\"Box\"\n //@ts-ignore\n cssProps={containerCss}\n nativeProps={{...nativeProps, id, \"data-testid\": testID, role: \"tablist\"}}\n additionalStyles={{}}\n >\n {options.map(opt => {\n const selected = opt.value === value;\n const isDisabled = disabled || opt.disabled;\n const accent = opt.color ? resolveToken(opt.color) : resolveToken(\"primary\");\n\n const buttonCss = {\n flex: fullWidth ? 1 : undefined,\n minHeight: sizeConfig.height,\n paddingLeft: sizeConfig.px,\n paddingRight: sizeConfig.px,\n paddingTop: sizeConfig.py,\n paddingBottom: sizeConfig.py,\n borderRadius: 6,\n border: \"none\",\n cursor: isDisabled ? \"not-allowed\" : \"pointer\",\n background: selected ? accent : \"transparent\",\n color: selected ? \"#FFFFFF\" : inactiveText,\n fontFamily: \"inherit\",\n fontWeight: \"700\",\n fontSize: sizeConfig.fontSize,\n lineHeight: \"1.1\",\n transition: \"background-color 0.15s, color 0.15s, box-shadow 0.15s\",\n boxShadow: selected ? \"0 1px 2px rgba(0,0,0,0.06)\" : \"none\",\n outline: \"none\",\n display: \"flex\",\n flexDirection: \"column\" as const,\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: sizeConfig.gap,\n textAlign: \"center\" as const,\n };\n\n return (\n <button\n key={String(opt.value)}\n type=\"button\"\n role=\"tab\"\n aria-selected={selected}\n disabled={isDisabled}\n onClick={() => !isDisabled && onChange(opt.value)}\n style={buttonCss as any}\n >\n <span style={{lineHeight: \"1.1\"}}>{opt.label}</span>\n {opt.description && (\n <span\n style={{\n fontSize: sizeConfig.descSize,\n fontWeight: 600,\n opacity: selected ? 0.85 : 0.7,\n }}\n >\n {opt.description}\n </span>\n )}\n </button>\n );\n })}\n </ResponsiveElement>\n );\n}\n\nexport default SegmentedControl;\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
  require('../../apps/mobile/src/Factory/DimensionsContext.cjs');
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../../src/components/SkeletonText/index.native.tsx"],"sourcesContent":["import React from 'react';\nimport {SkeletonText as GSkeletonText} from '@lmb-it/kitsconcertomobile';\nimport type {ISkeletonText} from \"@lmb-it/kitsconcerto-types\";\n\nconst Skeleton: React.FC<ISkeletonText> = ({\n lines = 3,\n gap = 1,\n startColor,\n isLoaded,\n speed,\n animation,\n ...props\n }) => {\n\n return (\n <GSkeletonText\n _lines={lines}\n gap={gap}\n startColor={startColor ?? 'bg-background-200'}\n speed={speed}\n isLoaded={isLoaded}\n className=\"h-3\"\n />\n );\n};\n\nexport default Skeleton;\n"],"names":["jsx","GSkeletonText"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,MAAM,WAAoC,CAAC;AAAA,EACI,KAAA,GAAQ,CAAA;AAAA,EACR,GAAA,GAAM,CAAA;AAAA,EACN,UAAA;AAAA,EACA,QAAA;AAAA,EACA,KAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAG;AACP,CAAA,KAAM;AAE7C,EAAA,uBACIA,cAAA;AAAA,IAACC,kBAAA;AAAA,IAAA;AAAA,MACG,MAAA,EAAQ,KAAA;AAAA,MACR,GAAA;AAAA,MACA,YAAY,UAAA,IAAc,mBAAA;AAAA,MAC1B,KAAA;AAAA,MACA,QAAA;AAAA,MACA,SAAA,EAAU;AAAA;AAAA,GACd;AAER;;;;"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../../src/components/SkeletonText/index.native.tsx"],"sourcesContent":["import React from 'react';\nimport {SkeletonText as GSkeletonText} from '@lmb-it/kitsconcertomobile';\nimport type {ISkeletonText} from \"@lmb-it/kitsconcerto-types\";\n\nconst Skeleton: React.FC<ISkeletonText> = ({\n lines = 3,\n gap = 1,\n startColor,\n isLoaded,\n speed,\n animation,\n ...props\n }) => {\n\n return (\n <GSkeletonText\n _lines={lines}\n gap={gap}\n startColor={startColor ?? 'bg-background-200'}\n speed={speed}\n isLoaded={isLoaded}\n className=\"h-3\"\n />\n );\n};\n\nexport default Skeleton;\n"],"names":["jsx","GSkeletonText"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,MAAM,WAAoC,CAAC;AAAA,EACI,KAAA,GAAQ,CAAA;AAAA,EACR,GAAA,GAAM,CAAA;AAAA,EACN,UAAA;AAAA,EACA,QAAA;AAAA,EACA,KAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAG;AACP,CAAA,KAAM;AAE7C,EAAA,uBACIA,cAAA;AAAA,IAACC,kBAAA;AAAA,IAAA;AAAA,MACG,MAAA,EAAQ,KAAA;AAAA,MACR,GAAA;AAAA,MACA,YAAY,UAAA,IAAc,mBAAA;AAAA,MAC1B,KAAA;AAAA,MACA,QAAA;AAAA,MACA,SAAA,EAAU;AAAA;AAAA,GACd;AAER;;;;"}
@@ -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/components/SkeletonText/index.native.tsx"],"sourcesContent":["import React from 'react';\nimport {SkeletonText as GSkeletonText} from '@lmb-it/kitsconcertomobile';\nimport type {ISkeletonText} from \"@lmb-it/kitsconcerto-types\";\n\nconst Skeleton: React.FC<ISkeletonText> = ({\n lines = 3,\n gap = 1,\n startColor,\n isLoaded,\n speed,\n animation,\n ...props\n }) => {\n\n return (\n <GSkeletonText\n _lines={lines}\n gap={gap}\n startColor={startColor ?? 'bg-background-200'}\n speed={speed}\n isLoaded={isLoaded}\n className=\"h-3\"\n />\n );\n};\n\nexport default Skeleton;\n"],"names":["GSkeletonText"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,MAAM,WAAoC,CAAC;AAAA,EACI,KAAA,GAAQ,CAAA;AAAA,EACR,GAAA,GAAM,CAAA;AAAA,EACN,UAAA;AAAA,EACA,QAAA;AAAA,EACA,KAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAG;AACP,CAAA,KAAM;AAE7C,EAAA,uBACI,GAAA;AAAA,IAACA,YAAA;AAAA,IAAA;AAAA,MACG,MAAA,EAAQ,KAAA;AAAA,MACR,GAAA;AAAA,MACA,YAAY,UAAA,IAAc,mBAAA;AAAA,MAC1B,KAAA;AAAA,MACA,QAAA;AAAA,MACA,SAAA,EAAU;AAAA;AAAA,GACd;AAER;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/SkeletonText/index.native.tsx"],"sourcesContent":["import React from 'react';\nimport {SkeletonText as GSkeletonText} from '@lmb-it/kitsconcertomobile';\nimport type {ISkeletonText} from \"@lmb-it/kitsconcerto-types\";\n\nconst Skeleton: React.FC<ISkeletonText> = ({\n lines = 3,\n gap = 1,\n startColor,\n isLoaded,\n speed,\n animation,\n ...props\n }) => {\n\n return (\n <GSkeletonText\n _lines={lines}\n gap={gap}\n startColor={startColor ?? 'bg-background-200'}\n speed={speed}\n isLoaded={isLoaded}\n className=\"h-3\"\n />\n );\n};\n\nexport default Skeleton;\n"],"names":["GSkeletonText"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,MAAM,WAAoC,CAAC;AAAA,EACI,KAAA,GAAQ,CAAA;AAAA,EACR,GAAA,GAAM,CAAA;AAAA,EACN,UAAA;AAAA,EACA,QAAA;AAAA,EACA,KAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAG;AACP,CAAA,KAAM;AAE7C,EAAA,uBACI,GAAA;AAAA,IAACA,YAAA;AAAA,IAAA;AAAA,MACG,MAAA,EAAQ,KAAA;AAAA,MACR,GAAA;AAAA,MACA,YAAY,UAAA,IAAc,mBAAA;AAAA,MAC1B,KAAA;AAAA,MACA,QAAA;AAAA,MACA,SAAA,EAAU;AAAA;AAAA,GACd;AAER;;;;"}
@@ -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('i18next');
@@ -109,9 +110,9 @@ function Tabs(rawProps) {
109
110
  countVariant = "suffix",
110
111
  activeBadgeBackground = "surface-card",
111
112
  activeBadgeTextColor = "text-primary",
112
- inactiveBadgeBackground = "gray.200",
113
+ inactiveBadgeBackground = "surface-card",
113
114
  inactiveBadgeTextColor = "text-secondary",
114
- inactiveBackground = "gray.100",
115
+ inactiveBackground = "surface-muted",
115
116
  inactiveTextColor = "text-secondary",
116
117
  sizeHeights
117
118
  } = props;
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../../src/components/Tabs/index.native.tsx"],"sourcesContent":["import React from \"react\";\nimport {ScrollView, TouchableOpacity, View} from \"react-native\";\nimport {resolveThemeTokenForNative} from \"@lmb-it/kitsconcertomobile\";\nimport type {ITabsProps, ITabItem} from \"@lmb-it/kitsconcerto-types\";\nimport {Text, Icon} from \"../../primitives\";\nimport {useComponentDefaults} from \"../../hooks\";\n\n// Mirrors the app's FilterChips (App/src/components/shared/FilterChips).\nconst SIZE = {\n sm: {h: 28, px: 12, fs: 12},\n md: {h: 32, px: 14, fs: 13},\n lg: {h: 40, px: 18, fs: 15},\n} as const;\n\n/**\n * Tabs (native) — horizontally-scrollable selectable filter row.\n *\n * Built like the app's working `FilterChips`: a RN horizontal `ScrollView` of\n * `TouchableOpacity` pills + the library `Text`. Active = filled `activeColor`;\n * inactive = neutral tint. Colours resolve via the standalone token resolver.\n */\nexport function Tabs<K extends string = string>(rawProps: ITabsProps<K>) {\n const props = useComponentDefaults<ITabsProps<K>>(\"Tabs\", rawProps).mergedProps;\n const {\n items, value, onChange, size = \"md\", activeColor = \"brand\", scrollable = true, gap = 8, testID,\n countVariant = \"suffix\",\n activeBadgeBackground = \"surface-card\",\n activeBadgeTextColor = \"text-primary\",\n inactiveBadgeBackground = \"gray.200\",\n inactiveBadgeTextColor = \"text-secondary\",\n inactiveBackground = \"gray.100\",\n inactiveTextColor = \"text-secondary\",\n sizeHeights,\n } = props;\n\n const cfg = SIZE[size] ?? SIZE.md;\n const heights = {sm: SIZE.sm.h, md: SIZE.md.h, lg: SIZE.lg.h, ...sizeHeights};\n const height = heights[size] ?? heights.md;\n const activeBg = resolveThemeTokenForNative(activeColor);\n const inactiveBg = resolveThemeTokenForNative(inactiveBackground);\n const inactiveText = resolveThemeTokenForNative(inactiveTextColor);\n const badge = countVariant === \"badge\";\n const activeBadgeBg = resolveThemeTokenForNative(activeBadgeBackground);\n const activeBadgeFg = resolveThemeTokenForNative(activeBadgeTextColor);\n const inactiveBadgeBg = resolveThemeTokenForNative(inactiveBadgeBackground);\n const inactiveBadgeFg = resolveThemeTokenForNative(inactiveBadgeTextColor);\n const badgeH = cfg.fs + 7;\n\n const renderChip = (item: ITabItem<K>) => {\n const active = item.key === value;\n const label = !badge && item.count != null ? `${item.label} ${item.count}` : item.label;\n const fg = active ? \"#FFFFFF\" : inactiveText;\n return (\n <TouchableOpacity\n key={item.key}\n activeOpacity={0.75}\n disabled={item.disabled}\n onPress={() => onChange(item.key)}\n accessibilityRole=\"button\"\n accessibilityState={{selected: active}}\n style={{\n height,\n borderRadius: 999,\n paddingHorizontal: cfg.px,\n flexDirection: \"row\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: 6,\n backgroundColor: active ? activeBg : inactiveBg,\n opacity: item.disabled ? 0.5 : 1,\n }}\n >\n {item.icon != null && <Icon name={item.icon as never} size={cfg.fs + 1} color={fg} />}\n <Text fontSize={cfg.fs} fontWeight=\"600\" color={fg}>\n {label}\n </Text>\n {badge && item.count != null && (\n <View\n style={{\n height: badgeH,\n minWidth: badgeH,\n borderRadius: 999,\n paddingHorizontal: 6,\n alignItems: \"center\",\n justifyContent: \"center\",\n backgroundColor: active ? activeBadgeBg : inactiveBadgeBg,\n }}\n >\n <Text fontSize={cfg.fs - 2} fontWeight=\"600\" color={active ? activeBadgeFg : inactiveBadgeFg}>\n {item.count}\n </Text>\n </View>\n )}\n </TouchableOpacity>\n );\n };\n\n if (!scrollable) {\n return (\n <View style={{flexDirection: \"row\", flexWrap: \"wrap\", alignItems: \"center\", gap}} testID={testID}>\n {items.map(renderChip)}\n </View>\n );\n }\n\n return (\n <ScrollView\n horizontal\n showsHorizontalScrollIndicator={false}\n keyboardShouldPersistTaps=\"handled\"\n contentContainerStyle={{flexDirection: \"row\", alignItems: \"center\", gap, paddingVertical: 4}}\n testID={testID}\n >\n {items.map(renderChip)}\n </ScrollView>\n );\n}\n\nexport default Tabs;\n"],"names":["useComponentDefaults","resolveThemeTokenForNative","jsxs","TouchableOpacity","jsx","Icon","Text","View","ScrollView"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../../src/components/Tabs/index.native.tsx"],"sourcesContent":["import React from \"react\";\nimport {ScrollView, TouchableOpacity, View} from \"react-native\";\nimport {resolveThemeTokenForNative} from \"@lmb-it/kitsconcertomobile\";\nimport type {ITabsProps, ITabItem} from \"@lmb-it/kitsconcerto-types\";\nimport {Text, Icon} from \"../../primitives\";\nimport {useComponentDefaults} from \"../../hooks\";\n\n// Mirrors the app's FilterChips (App/src/components/shared/FilterChips).\nconst SIZE = {\n sm: {h: 28, px: 12, fs: 12},\n md: {h: 32, px: 14, fs: 13},\n lg: {h: 40, px: 18, fs: 15},\n} as const;\n\n/**\n * Tabs (native) — horizontally-scrollable selectable filter row.\n *\n * Built like the app's working `FilterChips`: a RN horizontal `ScrollView` of\n * `TouchableOpacity` pills + the library `Text`. Active = filled `activeColor`;\n * inactive = neutral tint. Colours resolve via the standalone token resolver.\n */\nexport function Tabs<K extends string = string>(rawProps: ITabsProps<K>) {\n const props = useComponentDefaults<ITabsProps<K>>(\"Tabs\", rawProps).mergedProps;\n const {\n items, value, onChange, size = \"md\", activeColor = \"brand\", scrollable = true, gap = 8, testID,\n countVariant = \"suffix\",\n activeBadgeBackground = \"surface-card\",\n activeBadgeTextColor = \"text-primary\",\n inactiveBadgeBackground = \"surface-card\",\n inactiveBadgeTextColor = \"text-secondary\",\n inactiveBackground = \"surface-muted\",\n inactiveTextColor = \"text-secondary\",\n sizeHeights,\n } = props;\n\n const cfg = SIZE[size] ?? SIZE.md;\n const heights = {sm: SIZE.sm.h, md: SIZE.md.h, lg: SIZE.lg.h, ...sizeHeights};\n const height = heights[size] ?? heights.md;\n const activeBg = resolveThemeTokenForNative(activeColor);\n const inactiveBg = resolveThemeTokenForNative(inactiveBackground);\n const inactiveText = resolveThemeTokenForNative(inactiveTextColor);\n const badge = countVariant === \"badge\";\n const activeBadgeBg = resolveThemeTokenForNative(activeBadgeBackground);\n const activeBadgeFg = resolveThemeTokenForNative(activeBadgeTextColor);\n const inactiveBadgeBg = resolveThemeTokenForNative(inactiveBadgeBackground);\n const inactiveBadgeFg = resolveThemeTokenForNative(inactiveBadgeTextColor);\n const badgeH = cfg.fs + 7;\n\n const renderChip = (item: ITabItem<K>) => {\n const active = item.key === value;\n const label = !badge && item.count != null ? `${item.label} ${item.count}` : item.label;\n const fg = active ? \"#FFFFFF\" : inactiveText;\n return (\n <TouchableOpacity\n key={item.key}\n activeOpacity={0.75}\n disabled={item.disabled}\n onPress={() => onChange(item.key)}\n accessibilityRole=\"button\"\n accessibilityState={{selected: active}}\n style={{\n height,\n borderRadius: 999,\n paddingHorizontal: cfg.px,\n flexDirection: \"row\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: 6,\n backgroundColor: active ? activeBg : inactiveBg,\n opacity: item.disabled ? 0.5 : 1,\n }}\n >\n {item.icon != null && <Icon name={item.icon as never} size={cfg.fs + 1} color={fg} />}\n <Text fontSize={cfg.fs} fontWeight=\"600\" color={fg}>\n {label}\n </Text>\n {badge && item.count != null && (\n <View\n style={{\n height: badgeH,\n minWidth: badgeH,\n borderRadius: 999,\n paddingHorizontal: 6,\n alignItems: \"center\",\n justifyContent: \"center\",\n backgroundColor: active ? activeBadgeBg : inactiveBadgeBg,\n }}\n >\n <Text fontSize={cfg.fs - 2} fontWeight=\"600\" color={active ? activeBadgeFg : inactiveBadgeFg}>\n {item.count}\n </Text>\n </View>\n )}\n </TouchableOpacity>\n );\n };\n\n if (!scrollable) {\n return (\n <View style={{flexDirection: \"row\", flexWrap: \"wrap\", alignItems: \"center\", gap}} testID={testID}>\n {items.map(renderChip)}\n </View>\n );\n }\n\n return (\n <ScrollView\n horizontal\n showsHorizontalScrollIndicator={false}\n keyboardShouldPersistTaps=\"handled\"\n contentContainerStyle={{flexDirection: \"row\", alignItems: \"center\", gap, paddingVertical: 4}}\n testID={testID}\n >\n {items.map(renderChip)}\n </ScrollView>\n );\n}\n\nexport default Tabs;\n"],"names":["useComponentDefaults","resolveThemeTokenForNative","jsxs","TouchableOpacity","jsx","Icon","Text","View","ScrollView"],"mappings":"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"}
@@ -59,6 +59,7 @@ import 'yup';
59
59
  import '../../packages/types/src/Css/map/index.js';
60
60
  import '../../packages/types/src/Theme/shadows.js';
61
61
  import '../../packages/types/src/Theme/defaultTheme.js';
62
+ import '../../packages/types/src/Theme/resolvers.js';
62
63
  import '../../packages/types/src/Theme/alphaColors.js';
63
64
  import '../../apps/mobile/src/Factory/helpers/cssVarMap.js';
64
65
  import 'i18next';
@@ -107,9 +108,9 @@ function Tabs(rawProps) {
107
108
  countVariant = "suffix",
108
109
  activeBadgeBackground = "surface-card",
109
110
  activeBadgeTextColor = "text-primary",
110
- inactiveBadgeBackground = "gray.200",
111
+ inactiveBadgeBackground = "surface-card",
111
112
  inactiveBadgeTextColor = "text-secondary",
112
- inactiveBackground = "gray.100",
113
+ inactiveBackground = "surface-muted",
113
114
  inactiveTextColor = "text-secondary",
114
115
  sizeHeights
115
116
  } = props;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/Tabs/index.native.tsx"],"sourcesContent":["import React from \"react\";\nimport {ScrollView, TouchableOpacity, View} from \"react-native\";\nimport {resolveThemeTokenForNative} from \"@lmb-it/kitsconcertomobile\";\nimport type {ITabsProps, ITabItem} from \"@lmb-it/kitsconcerto-types\";\nimport {Text, Icon} from \"../../primitives\";\nimport {useComponentDefaults} from \"../../hooks\";\n\n// Mirrors the app's FilterChips (App/src/components/shared/FilterChips).\nconst SIZE = {\n sm: {h: 28, px: 12, fs: 12},\n md: {h: 32, px: 14, fs: 13},\n lg: {h: 40, px: 18, fs: 15},\n} as const;\n\n/**\n * Tabs (native) — horizontally-scrollable selectable filter row.\n *\n * Built like the app's working `FilterChips`: a RN horizontal `ScrollView` of\n * `TouchableOpacity` pills + the library `Text`. Active = filled `activeColor`;\n * inactive = neutral tint. Colours resolve via the standalone token resolver.\n */\nexport function Tabs<K extends string = string>(rawProps: ITabsProps<K>) {\n const props = useComponentDefaults<ITabsProps<K>>(\"Tabs\", rawProps).mergedProps;\n const {\n items, value, onChange, size = \"md\", activeColor = \"brand\", scrollable = true, gap = 8, testID,\n countVariant = \"suffix\",\n activeBadgeBackground = \"surface-card\",\n activeBadgeTextColor = \"text-primary\",\n inactiveBadgeBackground = \"gray.200\",\n inactiveBadgeTextColor = \"text-secondary\",\n inactiveBackground = \"gray.100\",\n inactiveTextColor = \"text-secondary\",\n sizeHeights,\n } = props;\n\n const cfg = SIZE[size] ?? SIZE.md;\n const heights = {sm: SIZE.sm.h, md: SIZE.md.h, lg: SIZE.lg.h, ...sizeHeights};\n const height = heights[size] ?? heights.md;\n const activeBg = resolveThemeTokenForNative(activeColor);\n const inactiveBg = resolveThemeTokenForNative(inactiveBackground);\n const inactiveText = resolveThemeTokenForNative(inactiveTextColor);\n const badge = countVariant === \"badge\";\n const activeBadgeBg = resolveThemeTokenForNative(activeBadgeBackground);\n const activeBadgeFg = resolveThemeTokenForNative(activeBadgeTextColor);\n const inactiveBadgeBg = resolveThemeTokenForNative(inactiveBadgeBackground);\n const inactiveBadgeFg = resolveThemeTokenForNative(inactiveBadgeTextColor);\n const badgeH = cfg.fs + 7;\n\n const renderChip = (item: ITabItem<K>) => {\n const active = item.key === value;\n const label = !badge && item.count != null ? `${item.label} ${item.count}` : item.label;\n const fg = active ? \"#FFFFFF\" : inactiveText;\n return (\n <TouchableOpacity\n key={item.key}\n activeOpacity={0.75}\n disabled={item.disabled}\n onPress={() => onChange(item.key)}\n accessibilityRole=\"button\"\n accessibilityState={{selected: active}}\n style={{\n height,\n borderRadius: 999,\n paddingHorizontal: cfg.px,\n flexDirection: \"row\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: 6,\n backgroundColor: active ? activeBg : inactiveBg,\n opacity: item.disabled ? 0.5 : 1,\n }}\n >\n {item.icon != null && <Icon name={item.icon as never} size={cfg.fs + 1} color={fg} />}\n <Text fontSize={cfg.fs} fontWeight=\"600\" color={fg}>\n {label}\n </Text>\n {badge && item.count != null && (\n <View\n style={{\n height: badgeH,\n minWidth: badgeH,\n borderRadius: 999,\n paddingHorizontal: 6,\n alignItems: \"center\",\n justifyContent: \"center\",\n backgroundColor: active ? activeBadgeBg : inactiveBadgeBg,\n }}\n >\n <Text fontSize={cfg.fs - 2} fontWeight=\"600\" color={active ? activeBadgeFg : inactiveBadgeFg}>\n {item.count}\n </Text>\n </View>\n )}\n </TouchableOpacity>\n );\n };\n\n if (!scrollable) {\n return (\n <View style={{flexDirection: \"row\", flexWrap: \"wrap\", alignItems: \"center\", gap}} testID={testID}>\n {items.map(renderChip)}\n </View>\n );\n }\n\n return (\n <ScrollView\n horizontal\n showsHorizontalScrollIndicator={false}\n keyboardShouldPersistTaps=\"handled\"\n contentContainerStyle={{flexDirection: \"row\", alignItems: \"center\", gap, paddingVertical: 4}}\n testID={testID}\n >\n {items.map(renderChip)}\n </ScrollView>\n );\n}\n\nexport default Tabs;\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/Tabs/index.native.tsx"],"sourcesContent":["import React from \"react\";\nimport {ScrollView, TouchableOpacity, View} from \"react-native\";\nimport {resolveThemeTokenForNative} from \"@lmb-it/kitsconcertomobile\";\nimport type {ITabsProps, ITabItem} from \"@lmb-it/kitsconcerto-types\";\nimport {Text, Icon} from \"../../primitives\";\nimport {useComponentDefaults} from \"../../hooks\";\n\n// Mirrors the app's FilterChips (App/src/components/shared/FilterChips).\nconst SIZE = {\n sm: {h: 28, px: 12, fs: 12},\n md: {h: 32, px: 14, fs: 13},\n lg: {h: 40, px: 18, fs: 15},\n} as const;\n\n/**\n * Tabs (native) — horizontally-scrollable selectable filter row.\n *\n * Built like the app's working `FilterChips`: a RN horizontal `ScrollView` of\n * `TouchableOpacity` pills + the library `Text`. Active = filled `activeColor`;\n * inactive = neutral tint. Colours resolve via the standalone token resolver.\n */\nexport function Tabs<K extends string = string>(rawProps: ITabsProps<K>) {\n const props = useComponentDefaults<ITabsProps<K>>(\"Tabs\", rawProps).mergedProps;\n const {\n items, value, onChange, size = \"md\", activeColor = \"brand\", scrollable = true, gap = 8, testID,\n countVariant = \"suffix\",\n activeBadgeBackground = \"surface-card\",\n activeBadgeTextColor = \"text-primary\",\n inactiveBadgeBackground = \"surface-card\",\n inactiveBadgeTextColor = \"text-secondary\",\n inactiveBackground = \"surface-muted\",\n inactiveTextColor = \"text-secondary\",\n sizeHeights,\n } = props;\n\n const cfg = SIZE[size] ?? SIZE.md;\n const heights = {sm: SIZE.sm.h, md: SIZE.md.h, lg: SIZE.lg.h, ...sizeHeights};\n const height = heights[size] ?? heights.md;\n const activeBg = resolveThemeTokenForNative(activeColor);\n const inactiveBg = resolveThemeTokenForNative(inactiveBackground);\n const inactiveText = resolveThemeTokenForNative(inactiveTextColor);\n const badge = countVariant === \"badge\";\n const activeBadgeBg = resolveThemeTokenForNative(activeBadgeBackground);\n const activeBadgeFg = resolveThemeTokenForNative(activeBadgeTextColor);\n const inactiveBadgeBg = resolveThemeTokenForNative(inactiveBadgeBackground);\n const inactiveBadgeFg = resolveThemeTokenForNative(inactiveBadgeTextColor);\n const badgeH = cfg.fs + 7;\n\n const renderChip = (item: ITabItem<K>) => {\n const active = item.key === value;\n const label = !badge && item.count != null ? `${item.label} ${item.count}` : item.label;\n const fg = active ? \"#FFFFFF\" : inactiveText;\n return (\n <TouchableOpacity\n key={item.key}\n activeOpacity={0.75}\n disabled={item.disabled}\n onPress={() => onChange(item.key)}\n accessibilityRole=\"button\"\n accessibilityState={{selected: active}}\n style={{\n height,\n borderRadius: 999,\n paddingHorizontal: cfg.px,\n flexDirection: \"row\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: 6,\n backgroundColor: active ? activeBg : inactiveBg,\n opacity: item.disabled ? 0.5 : 1,\n }}\n >\n {item.icon != null && <Icon name={item.icon as never} size={cfg.fs + 1} color={fg} />}\n <Text fontSize={cfg.fs} fontWeight=\"600\" color={fg}>\n {label}\n </Text>\n {badge && item.count != null && (\n <View\n style={{\n height: badgeH,\n minWidth: badgeH,\n borderRadius: 999,\n paddingHorizontal: 6,\n alignItems: \"center\",\n justifyContent: \"center\",\n backgroundColor: active ? activeBadgeBg : inactiveBadgeBg,\n }}\n >\n <Text fontSize={cfg.fs - 2} fontWeight=\"600\" color={active ? activeBadgeFg : inactiveBadgeFg}>\n {item.count}\n </Text>\n </View>\n )}\n </TouchableOpacity>\n );\n };\n\n if (!scrollable) {\n return (\n <View style={{flexDirection: \"row\", flexWrap: \"wrap\", alignItems: \"center\", gap}} testID={testID}>\n {items.map(renderChip)}\n </View>\n );\n }\n\n return (\n <ScrollView\n horizontal\n showsHorizontalScrollIndicator={false}\n keyboardShouldPersistTaps=\"handled\"\n contentContainerStyle={{flexDirection: \"row\", alignItems: \"center\", gap, paddingVertical: 4}}\n testID={testID}\n >\n {items.map(renderChip)}\n </ScrollView>\n );\n}\n\nexport default Tabs;\n"],"names":[],"mappings":"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"}
@@ -62,6 +62,7 @@ require('yup');
62
62
  require('../../packages/types/src/Css/map/index.cjs');
63
63
  require('../../packages/types/src/Theme/shadows.cjs');
64
64
  require('../../packages/types/src/Theme/defaultTheme.cjs');
65
+ require('../../packages/types/src/Theme/resolvers.cjs');
65
66
  require('../../packages/types/src/Theme/alphaColors.cjs');
66
67
  require('../../apps/mobile/src/Factory/helpers/cssVarMap.cjs');
67
68
  require('../../apps/mobile/src/Factory/DimensionsContext.cjs');
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../../src/contexts/Locale/index.native.tsx"],"sourcesContent":["import React, {createContext, type FC, type PropsWithChildren, useCallback, useEffect, useRef, useState} from \"react\";\nimport AsyncStorage from \"@react-native-async-storage/async-storage\";\nimport {initMobileI18n} from \"@lmb-it/kitsconcertomobile\"; // ← our new initializer\nimport localeFiles from \"../../locale\"; // built-in languages\nimport type {ILocaleContextProps, ILocaleContextValues,} from \"@lmb-it/kitsconcerto-types\";\nimport i18n from \"i18next\";\n\nexport const LocaleContext = createContext<ILocaleContextValues>(\n {} as ILocaleContextValues\n);\n\nconst STORAGE_KEY = \"currentLanguage\";\n\nconst LocaleContextProvider: FC<PropsWithChildren<ILocaleContextProps>> = ({\n children,\n languages,\n defaultLanguage = \"en\",\n onChangeLanguage\n }) => {\n\n const defaultLocal = useRef<string>(\"\");\n const [language, setLanguage] = useState(defaultLanguage);\n const [isRTL, setIsRTL] = useState(defaultLanguage === \"ar\");\n const [isReady, setIsReady] = useState(false);\n\n // Build extra translations from props to match the expected format\n\n\n const translationsList = () => {\n const l: any = {};\n\n Object.keys(localeFiles).forEach(key => {\n l[key] = {translation: localeFiles[key]};\n })\n\n if (languages) {\n languages.forEach(({lang, translations}) => {\n if (lang in l) {\n l[lang] = {\n translation: {\n ...l[lang].translation,\n ...translations\n }\n };\n } else {\n l[lang] = {\n translation: {\n ...translations\n }\n };\n }\n\n })\n }\n return l;\n }\n\n // Initialize i18next on mount\n useEffect(() => {\n if (defaultLocal.current == defaultLanguage) return;\n const init = async () => {\n\n await initMobileI18n(translationsList()); // ← initialize i18n (merges base + user)\n\n // restore saved language\n const stored = await AsyncStorage.getItem(STORAGE_KEY);\n const lang = stored || defaultLanguage;\n\n await i18n.changeLanguage(lang);\n setLanguage(lang);\n setIsRTL(lang === \"ar\");\n\n defaultLocal.current = defaultLanguage;\n setIsReady(true);\n };\n\n void init();\n }, [defaultLanguage]);\n\n\n const isKeyExists = (key: string)=>{\n return i18n.exists(key)\n }\n // Change language (writes to AsyncStorage + updates context + updates i18next)\n const changeLanguage = useCallback(\n async (newLang: string) => {\n setLanguage(newLang);\n setIsRTL(newLang === \"ar\");\n\n await i18n.changeLanguage(newLang);\n\n await AsyncStorage.setItem(STORAGE_KEY, newLang);\n\n onChangeLanguage?.(newLang);\n },\n [onChangeLanguage]\n );\n\n // t() now comes directly from i18next\n const t = useCallback(\n (key: string, ...params: (string | number)[]) =>\n i18n.t(key, {replace: params}),\n []\n );\n\n return (\n <LocaleContext.Provider\n value={{\n t,\n changeLanguage,\n currentLanguage: language,\n isRTL,\n isKeyExists\n }}\n >\n {isReady ? children : null}\n </LocaleContext.Provider>\n );\n};\n\nexport default LocaleContextProvider;\n"],"names":["createContext","useRef","useState","localeFiles","useEffect","initMobileI18n","useCallback","jsx"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../../src/contexts/Locale/index.native.tsx"],"sourcesContent":["import React, {createContext, type FC, type PropsWithChildren, useCallback, useEffect, useRef, useState} from \"react\";\nimport AsyncStorage from \"@react-native-async-storage/async-storage\";\nimport {initMobileI18n} from \"@lmb-it/kitsconcertomobile\"; // ← our new initializer\nimport localeFiles from \"../../locale\"; // built-in languages\nimport type {ILocaleContextProps, ILocaleContextValues,} from \"@lmb-it/kitsconcerto-types\";\nimport i18n from \"i18next\";\n\nexport const LocaleContext = createContext<ILocaleContextValues>(\n {} as ILocaleContextValues\n);\n\nconst STORAGE_KEY = \"currentLanguage\";\n\nconst LocaleContextProvider: FC<PropsWithChildren<ILocaleContextProps>> = ({\n children,\n languages,\n defaultLanguage = \"en\",\n onChangeLanguage\n }) => {\n\n const defaultLocal = useRef<string>(\"\");\n const [language, setLanguage] = useState(defaultLanguage);\n const [isRTL, setIsRTL] = useState(defaultLanguage === \"ar\");\n const [isReady, setIsReady] = useState(false);\n\n // Build extra translations from props to match the expected format\n\n\n const translationsList = () => {\n const l: any = {};\n\n Object.keys(localeFiles).forEach(key => {\n l[key] = {translation: localeFiles[key]};\n })\n\n if (languages) {\n languages.forEach(({lang, translations}) => {\n if (lang in l) {\n l[lang] = {\n translation: {\n ...l[lang].translation,\n ...translations\n }\n };\n } else {\n l[lang] = {\n translation: {\n ...translations\n }\n };\n }\n\n })\n }\n return l;\n }\n\n // Initialize i18next on mount\n useEffect(() => {\n if (defaultLocal.current == defaultLanguage) return;\n const init = async () => {\n\n await initMobileI18n(translationsList()); // ← initialize i18n (merges base + user)\n\n // restore saved language\n const stored = await AsyncStorage.getItem(STORAGE_KEY);\n const lang = stored || defaultLanguage;\n\n await i18n.changeLanguage(lang);\n setLanguage(lang);\n setIsRTL(lang === \"ar\");\n\n defaultLocal.current = defaultLanguage;\n setIsReady(true);\n };\n\n void init();\n }, [defaultLanguage]);\n\n\n const isKeyExists = (key: string)=>{\n return i18n.exists(key)\n }\n // Change language (writes to AsyncStorage + updates context + updates i18next)\n const changeLanguage = useCallback(\n async (newLang: string) => {\n setLanguage(newLang);\n setIsRTL(newLang === \"ar\");\n\n await i18n.changeLanguage(newLang);\n\n await AsyncStorage.setItem(STORAGE_KEY, newLang);\n\n onChangeLanguage?.(newLang);\n },\n [onChangeLanguage]\n );\n\n // t() now comes directly from i18next\n const t = useCallback(\n (key: string, ...params: (string | number)[]) =>\n i18n.t(key, {replace: params}),\n []\n );\n\n return (\n <LocaleContext.Provider\n value={{\n t,\n changeLanguage,\n currentLanguage: language,\n isRTL,\n isKeyExists\n }}\n >\n {isReady ? children : null}\n </LocaleContext.Provider>\n );\n};\n\nexport default LocaleContextProvider;\n"],"names":["createContext","useRef","useState","localeFiles","useEffect","initMobileI18n","useCallback","jsx"],"mappings":"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"}
@@ -58,6 +58,7 @@ import 'yup';
58
58
  import '../../packages/types/src/Css/map/index.js';
59
59
  import '../../packages/types/src/Theme/shadows.js';
60
60
  import '../../packages/types/src/Theme/defaultTheme.js';
61
+ import '../../packages/types/src/Theme/resolvers.js';
61
62
  import '../../packages/types/src/Theme/alphaColors.js';
62
63
  import '../../apps/mobile/src/Factory/helpers/cssVarMap.js';
63
64
  import '../../apps/mobile/src/Factory/DimensionsContext.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/contexts/Locale/index.native.tsx"],"sourcesContent":["import React, {createContext, type FC, type PropsWithChildren, useCallback, useEffect, useRef, useState} from \"react\";\nimport AsyncStorage from \"@react-native-async-storage/async-storage\";\nimport {initMobileI18n} from \"@lmb-it/kitsconcertomobile\"; // ← our new initializer\nimport localeFiles from \"../../locale\"; // built-in languages\nimport type {ILocaleContextProps, ILocaleContextValues,} from \"@lmb-it/kitsconcerto-types\";\nimport i18n from \"i18next\";\n\nexport const LocaleContext = createContext<ILocaleContextValues>(\n {} as ILocaleContextValues\n);\n\nconst STORAGE_KEY = \"currentLanguage\";\n\nconst LocaleContextProvider: FC<PropsWithChildren<ILocaleContextProps>> = ({\n children,\n languages,\n defaultLanguage = \"en\",\n onChangeLanguage\n }) => {\n\n const defaultLocal = useRef<string>(\"\");\n const [language, setLanguage] = useState(defaultLanguage);\n const [isRTL, setIsRTL] = useState(defaultLanguage === \"ar\");\n const [isReady, setIsReady] = useState(false);\n\n // Build extra translations from props to match the expected format\n\n\n const translationsList = () => {\n const l: any = {};\n\n Object.keys(localeFiles).forEach(key => {\n l[key] = {translation: localeFiles[key]};\n })\n\n if (languages) {\n languages.forEach(({lang, translations}) => {\n if (lang in l) {\n l[lang] = {\n translation: {\n ...l[lang].translation,\n ...translations\n }\n };\n } else {\n l[lang] = {\n translation: {\n ...translations\n }\n };\n }\n\n })\n }\n return l;\n }\n\n // Initialize i18next on mount\n useEffect(() => {\n if (defaultLocal.current == defaultLanguage) return;\n const init = async () => {\n\n await initMobileI18n(translationsList()); // ← initialize i18n (merges base + user)\n\n // restore saved language\n const stored = await AsyncStorage.getItem(STORAGE_KEY);\n const lang = stored || defaultLanguage;\n\n await i18n.changeLanguage(lang);\n setLanguage(lang);\n setIsRTL(lang === \"ar\");\n\n defaultLocal.current = defaultLanguage;\n setIsReady(true);\n };\n\n void init();\n }, [defaultLanguage]);\n\n\n const isKeyExists = (key: string)=>{\n return i18n.exists(key)\n }\n // Change language (writes to AsyncStorage + updates context + updates i18next)\n const changeLanguage = useCallback(\n async (newLang: string) => {\n setLanguage(newLang);\n setIsRTL(newLang === \"ar\");\n\n await i18n.changeLanguage(newLang);\n\n await AsyncStorage.setItem(STORAGE_KEY, newLang);\n\n onChangeLanguage?.(newLang);\n },\n [onChangeLanguage]\n );\n\n // t() now comes directly from i18next\n const t = useCallback(\n (key: string, ...params: (string | number)[]) =>\n i18n.t(key, {replace: params}),\n []\n );\n\n return (\n <LocaleContext.Provider\n value={{\n t,\n changeLanguage,\n currentLanguage: language,\n isRTL,\n isKeyExists\n }}\n >\n {isReady ? children : null}\n </LocaleContext.Provider>\n );\n};\n\nexport default LocaleContextProvider;\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/contexts/Locale/index.native.tsx"],"sourcesContent":["import React, {createContext, type FC, type PropsWithChildren, useCallback, useEffect, useRef, useState} from \"react\";\nimport AsyncStorage from \"@react-native-async-storage/async-storage\";\nimport {initMobileI18n} from \"@lmb-it/kitsconcertomobile\"; // ← our new initializer\nimport localeFiles from \"../../locale\"; // built-in languages\nimport type {ILocaleContextProps, ILocaleContextValues,} from \"@lmb-it/kitsconcerto-types\";\nimport i18n from \"i18next\";\n\nexport const LocaleContext = createContext<ILocaleContextValues>(\n {} as ILocaleContextValues\n);\n\nconst STORAGE_KEY = \"currentLanguage\";\n\nconst LocaleContextProvider: FC<PropsWithChildren<ILocaleContextProps>> = ({\n children,\n languages,\n defaultLanguage = \"en\",\n onChangeLanguage\n }) => {\n\n const defaultLocal = useRef<string>(\"\");\n const [language, setLanguage] = useState(defaultLanguage);\n const [isRTL, setIsRTL] = useState(defaultLanguage === \"ar\");\n const [isReady, setIsReady] = useState(false);\n\n // Build extra translations from props to match the expected format\n\n\n const translationsList = () => {\n const l: any = {};\n\n Object.keys(localeFiles).forEach(key => {\n l[key] = {translation: localeFiles[key]};\n })\n\n if (languages) {\n languages.forEach(({lang, translations}) => {\n if (lang in l) {\n l[lang] = {\n translation: {\n ...l[lang].translation,\n ...translations\n }\n };\n } else {\n l[lang] = {\n translation: {\n ...translations\n }\n };\n }\n\n })\n }\n return l;\n }\n\n // Initialize i18next on mount\n useEffect(() => {\n if (defaultLocal.current == defaultLanguage) return;\n const init = async () => {\n\n await initMobileI18n(translationsList()); // ← initialize i18n (merges base + user)\n\n // restore saved language\n const stored = await AsyncStorage.getItem(STORAGE_KEY);\n const lang = stored || defaultLanguage;\n\n await i18n.changeLanguage(lang);\n setLanguage(lang);\n setIsRTL(lang === \"ar\");\n\n defaultLocal.current = defaultLanguage;\n setIsReady(true);\n };\n\n void init();\n }, [defaultLanguage]);\n\n\n const isKeyExists = (key: string)=>{\n return i18n.exists(key)\n }\n // Change language (writes to AsyncStorage + updates context + updates i18next)\n const changeLanguage = useCallback(\n async (newLang: string) => {\n setLanguage(newLang);\n setIsRTL(newLang === \"ar\");\n\n await i18n.changeLanguage(newLang);\n\n await AsyncStorage.setItem(STORAGE_KEY, newLang);\n\n onChangeLanguage?.(newLang);\n },\n [onChangeLanguage]\n );\n\n // t() now comes directly from i18next\n const t = useCallback(\n (key: string, ...params: (string | number)[]) =>\n i18n.t(key, {replace: params}),\n []\n );\n\n return (\n <LocaleContext.Provider\n value={{\n t,\n changeLanguage,\n currentLanguage: language,\n isRTL,\n isKeyExists\n }}\n >\n {isReady ? children : null}\n </LocaleContext.Provider>\n );\n};\n\nexport default LocaleContextProvider;\n"],"names":[],"mappings":"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"}
@@ -62,6 +62,7 @@ require('yup');
62
62
  require('../../packages/types/src/Css/map/index.cjs');
63
63
  require('../../packages/types/src/Theme/shadows.cjs');
64
64
  require('../../packages/types/src/Theme/defaultTheme.cjs');
65
+ require('../../packages/types/src/Theme/resolvers.cjs');
65
66
  require('../../packages/types/src/Theme/alphaColors.cjs');
66
67
  require('../../apps/mobile/src/Factory/helpers/cssVarMap.cjs');
67
68
  var DimensionsContext = require('../../apps/mobile/src/Factory/DimensionsContext.cjs');
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../../src/contexts/Main/index.native.tsx"],"sourcesContent":["import React, {createContext, type PropsWithChildren, type ReactNode, useRef} from 'react';\nimport type {IMainContextProps, IMainContextValues} from '@lmb-it/kitsconcerto-types';\nimport DialogProvider from '../DialogContext';\nimport PermissionsProvider from '../PermissionsContext';\nimport LocaleContextProvider from '../Locale';\nimport ThemeContext, {KitsThemeProvider} from '../Theme';\n// import {IHeaderRef} from '../Components/Organisms/Layout/Header';\n// import {AuthLayout} from '../Components';\n// import AdminLayout from '../Components/Organisms/Layout/AdminLayout';\nimport {useWindowDimensions} from 'react-native';\nimport {GluestackUIProvider, DimensionsProvider} from '@lmb-it/kitsconcertomobile';\n\nexport const MainContext = createContext<IMainContextValues>({} as IMainContextValues);\n\nexport default function MainContextProvider({\n children,\n theme,\n kitsTheme,\n onLogOut,\n nonAuthRoutes,\n menuItems,\n permissions,\n logo,\n languages,\n defaultLanguage = 'en',\n authedRoutes,\n onChangeLanguage\n }: PropsWithChildren<IMainContextProps>) {\n const {width, height} = useWindowDimensions();\n\n const mq = {\n isSmall: width < 768,\n isTablet: width >= 768 && width < 1024,\n isDesktop: width >= 1024,\n isLandscape: width > height,\n isPortrait: height >= width\n };\n type IHeaderRef = any;\n const headerRef = useRef<IHeaderRef>(null);\n const appendToHeader = (element: ReactNode) => {\n if (headerRef.current?.appendToHeader) headerRef.current.appendToHeader(element);\n };\n\n\n const authLayout = !children && nonAuthRoutes?.length && !authedRoutes?.length;\n const adminLayout = !children && authedRoutes?.length && !nonAuthRoutes?.length;\n\n return (\n <MainContext.Provider value={{logo, onLogOut, appendToHeader, menuItems, mq}}>\n <GluestackUIProvider mode={theme}>\n <DimensionsProvider>\n <KitsThemeProvider theme={kitsTheme}>\n <ThemeContext theme={theme}>\n <LocaleContextProvider\n defaultLanguage={defaultLanguage}\n languages={languages}\n onChangeLanguage={onChangeLanguage}\n >\n <DialogProvider>\n <PermissionsProvider roles={permissions}>\n {!authLayout && !adminLayout && children}\n {/*{authLayout && <AuthLayout routes={nonAuthRoutes} />}*/}\n {/*{adminLayout && <AdminLayout routes={authedRoutes} headerRef={headerRef} />}*/}\n </PermissionsProvider>\n </DialogProvider>\n </LocaleContextProvider>\n </ThemeContext>\n </KitsThemeProvider>\n </DimensionsProvider>\n </GluestackUIProvider>\n </MainContext.Provider>\n );\n}\n"],"names":["createContext","useWindowDimensions","useRef","jsx","GluestackUIProvider","DimensionsProvider","KitsThemeProvider","ThemeContext","LocaleContextProvider","DialogProvider","PermissionsProvider"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYO,MAAM,WAAA,GAAcA,mBAAA,CAAkC,EAAwB;AAErF,SAAwB,mBAAA,CAAoB;AAAA,EACI,QAAA;AAAA,EACA,KAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA;AAAA,EACA,aAAA;AAAA,EACA,SAAA;AAAA,EACA,WAAA;AAAA,EACA,IAAA;AAAA,EACA,SAAA;AAAA,EACA,eAAA,GAAkB,IAAA;AAAA,EAClB,YAAA;AAAA,EACA;AACJ,CAAA,EAAyC;AACjF,EAAA,MAAM,EAAC,KAAA,EAAO,MAAA,EAAM,GAAIC,+BAAA,EAAoB;AAE5C,EAAA,MAAM,EAAA,GAAK;AAAA,IACP,SAAS,KAAA,GAAQ,GAAA;AAAA,IACjB,QAAA,EAAU,KAAA,IAAS,GAAA,IAAO,KAAA,GAAQ,IAAA;AAAA,IAClC,WAAW,KAAA,IAAS,IAAA;AAAA,IACpB,aAAa,KAAA,GAAQ,MAAA;AAAA,IACrB,YAAY,MAAA,IAAU;AAAA,GAC1B;AAEA,EAAA,MAAM,SAAA,GAAYC,aAAmB,IAAI,CAAA;AACzC,EAAA,MAAM,cAAA,GAAiB,CAAC,OAAA,KAAuB;AAC3C,IAAA,IAAI,UAAU,OAAA,EAAS,cAAA,EAAgB,SAAA,CAAU,OAAA,CAAQ,eAAe,OAAO,CAAA;AAAA,EACnF,CAAA;AAGA,EAAA,MAAM,aAAa,CAAC,QAAA,IAAY,aAAA,EAAe,MAAA,IAAU,CAAC,YAAA,EAAc,MAAA;AACxE,EAAA,MAAM,cAAc,CAAC,QAAA,IAAY,YAAA,EAAc,MAAA,IAAU,CAAC,aAAA,EAAe,MAAA;AAEzE,EAAA,uBACIC,cAAA,CAAC,WAAA,CAAY,QAAA,EAAZ,EAAqB,KAAA,EAAO,EAAC,IAAA,EAAM,QAAA,EAAU,cAAA,EAAgB,SAAA,EAAW,EAAA,EAAE,EACvE,yCAACC,yBAAA,EAAA,EAAoB,IAAA,EAAM,KAAA,EACvB,QAAA,kBAAAD,cAAA,CAACE,oCAAA,EAAA,EACG,QAAA,kBAAAF,cAAA,CAACG,8CAAkB,KAAA,EAAO,SAAA,EACtB,QAAA,kBAAAH,cAAA,CAACI,oBAAA,EAAA,EAAa,KAAA,EACV,QAAA,kBAAAJ,cAAA;AAAA,IAACK,sBAAA;AAAA,IAAA;AAAA,MACG,eAAA;AAAA,MACA,SAAA;AAAA,MACA,gBAAA;AAAA,MAEA,QAAA,kBAAAL,cAAA,CAACM,qBAAA,EAAA,EACG,QAAA,kBAAAN,cAAA,CAACO,0BAAA,EAAA,EAAoB,KAAA,EAAO,WAAA,EACvB,QAAA,EAAA,CAAC,UAAA,IAAc,CAAC,WAAA,IAAe,QAAA,EAGpC,CAAA,EACJ;AAAA;AAAA,GACJ,EACJ,CAAA,EACJ,CAAA,EACJ,CAAA,EACJ,CAAA,EACJ,CAAA;AAER;;;;;"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../../src/contexts/Main/index.native.tsx"],"sourcesContent":["import React, {createContext, type PropsWithChildren, type ReactNode, useRef} from 'react';\nimport type {IMainContextProps, IMainContextValues} from '@lmb-it/kitsconcerto-types';\nimport DialogProvider from '../DialogContext';\nimport PermissionsProvider from '../PermissionsContext';\nimport LocaleContextProvider from '../Locale';\nimport ThemeContext, {KitsThemeProvider} from '../Theme';\n// import {IHeaderRef} from '../Components/Organisms/Layout/Header';\n// import {AuthLayout} from '../Components';\n// import AdminLayout from '../Components/Organisms/Layout/AdminLayout';\nimport {useWindowDimensions} from 'react-native';\nimport {GluestackUIProvider, DimensionsProvider} from '@lmb-it/kitsconcertomobile';\n\nexport const MainContext = createContext<IMainContextValues>({} as IMainContextValues);\n\nexport default function MainContextProvider({\n children,\n theme,\n kitsTheme,\n onLogOut,\n nonAuthRoutes,\n menuItems,\n permissions,\n logo,\n languages,\n defaultLanguage = 'en',\n authedRoutes,\n onChangeLanguage\n }: PropsWithChildren<IMainContextProps>) {\n const {width, height} = useWindowDimensions();\n\n const mq = {\n isSmall: width < 768,\n isTablet: width >= 768 && width < 1024,\n isDesktop: width >= 1024,\n isLandscape: width > height,\n isPortrait: height >= width\n };\n type IHeaderRef = any;\n const headerRef = useRef<IHeaderRef>(null);\n const appendToHeader = (element: ReactNode) => {\n if (headerRef.current?.appendToHeader) headerRef.current.appendToHeader(element);\n };\n\n\n const authLayout = !children && nonAuthRoutes?.length && !authedRoutes?.length;\n const adminLayout = !children && authedRoutes?.length && !nonAuthRoutes?.length;\n\n return (\n <MainContext.Provider value={{logo, onLogOut, appendToHeader, menuItems, mq}}>\n <GluestackUIProvider mode={theme}>\n <DimensionsProvider>\n <KitsThemeProvider theme={kitsTheme}>\n <ThemeContext theme={theme}>\n <LocaleContextProvider\n defaultLanguage={defaultLanguage}\n languages={languages}\n onChangeLanguage={onChangeLanguage}\n >\n <DialogProvider>\n <PermissionsProvider roles={permissions}>\n {!authLayout && !adminLayout && children}\n {/*{authLayout && <AuthLayout routes={nonAuthRoutes} />}*/}\n {/*{adminLayout && <AdminLayout routes={authedRoutes} headerRef={headerRef} />}*/}\n </PermissionsProvider>\n </DialogProvider>\n </LocaleContextProvider>\n </ThemeContext>\n </KitsThemeProvider>\n </DimensionsProvider>\n </GluestackUIProvider>\n </MainContext.Provider>\n );\n}\n"],"names":["createContext","useWindowDimensions","useRef","jsx","GluestackUIProvider","DimensionsProvider","KitsThemeProvider","ThemeContext","LocaleContextProvider","DialogProvider","PermissionsProvider"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYO,MAAM,WAAA,GAAcA,mBAAA,CAAkC,EAAwB;AAErF,SAAwB,mBAAA,CAAoB;AAAA,EACI,QAAA;AAAA,EACA,KAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA;AAAA,EACA,aAAA;AAAA,EACA,SAAA;AAAA,EACA,WAAA;AAAA,EACA,IAAA;AAAA,EACA,SAAA;AAAA,EACA,eAAA,GAAkB,IAAA;AAAA,EAClB,YAAA;AAAA,EACA;AACJ,CAAA,EAAyC;AACjF,EAAA,MAAM,EAAC,KAAA,EAAO,MAAA,EAAM,GAAIC,+BAAA,EAAoB;AAE5C,EAAA,MAAM,EAAA,GAAK;AAAA,IACP,SAAS,KAAA,GAAQ,GAAA;AAAA,IACjB,QAAA,EAAU,KAAA,IAAS,GAAA,IAAO,KAAA,GAAQ,IAAA;AAAA,IAClC,WAAW,KAAA,IAAS,IAAA;AAAA,IACpB,aAAa,KAAA,GAAQ,MAAA;AAAA,IACrB,YAAY,MAAA,IAAU;AAAA,GAC1B;AAEA,EAAA,MAAM,SAAA,GAAYC,aAAmB,IAAI,CAAA;AACzC,EAAA,MAAM,cAAA,GAAiB,CAAC,OAAA,KAAuB;AAC3C,IAAA,IAAI,UAAU,OAAA,EAAS,cAAA,EAAgB,SAAA,CAAU,OAAA,CAAQ,eAAe,OAAO,CAAA;AAAA,EACnF,CAAA;AAGA,EAAA,MAAM,aAAa,CAAC,QAAA,IAAY,aAAA,EAAe,MAAA,IAAU,CAAC,YAAA,EAAc,MAAA;AACxE,EAAA,MAAM,cAAc,CAAC,QAAA,IAAY,YAAA,EAAc,MAAA,IAAU,CAAC,aAAA,EAAe,MAAA;AAEzE,EAAA,uBACIC,cAAA,CAAC,WAAA,CAAY,QAAA,EAAZ,EAAqB,KAAA,EAAO,EAAC,IAAA,EAAM,QAAA,EAAU,cAAA,EAAgB,SAAA,EAAW,EAAA,EAAE,EACvE,yCAACC,yBAAA,EAAA,EAAoB,IAAA,EAAM,KAAA,EACvB,QAAA,kBAAAD,cAAA,CAACE,oCAAA,EAAA,EACG,QAAA,kBAAAF,cAAA,CAACG,8CAAkB,KAAA,EAAO,SAAA,EACtB,QAAA,kBAAAH,cAAA,CAACI,oBAAA,EAAA,EAAa,KAAA,EACV,QAAA,kBAAAJ,cAAA;AAAA,IAACK,sBAAA;AAAA,IAAA;AAAA,MACG,eAAA;AAAA,MACA,SAAA;AAAA,MACA,gBAAA;AAAA,MAEA,QAAA,kBAAAL,cAAA,CAACM,qBAAA,EAAA,EACG,QAAA,kBAAAN,cAAA,CAACO,0BAAA,EAAA,EAAoB,KAAA,EAAO,WAAA,EACvB,QAAA,EAAA,CAAC,UAAA,IAAc,CAAC,WAAA,IAAe,QAAA,EAGpC,CAAA,EACJ;AAAA;AAAA,GACJ,EACJ,CAAA,EACJ,CAAA,EACJ,CAAA,EACJ,CAAA,EACJ,CAAA;AAER;;;;;"}
@@ -58,6 +58,7 @@ import 'yup';
58
58
  import '../../packages/types/src/Css/map/index.js';
59
59
  import '../../packages/types/src/Theme/shadows.js';
60
60
  import '../../packages/types/src/Theme/defaultTheme.js';
61
+ import '../../packages/types/src/Theme/resolvers.js';
61
62
  import '../../packages/types/src/Theme/alphaColors.js';
62
63
  import '../../apps/mobile/src/Factory/helpers/cssVarMap.js';
63
64
  import { DimensionsProvider } from '../../apps/mobile/src/Factory/DimensionsContext.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/contexts/Main/index.native.tsx"],"sourcesContent":["import React, {createContext, type PropsWithChildren, type ReactNode, useRef} from 'react';\nimport type {IMainContextProps, IMainContextValues} from '@lmb-it/kitsconcerto-types';\nimport DialogProvider from '../DialogContext';\nimport PermissionsProvider from '../PermissionsContext';\nimport LocaleContextProvider from '../Locale';\nimport ThemeContext, {KitsThemeProvider} from '../Theme';\n// import {IHeaderRef} from '../Components/Organisms/Layout/Header';\n// import {AuthLayout} from '../Components';\n// import AdminLayout from '../Components/Organisms/Layout/AdminLayout';\nimport {useWindowDimensions} from 'react-native';\nimport {GluestackUIProvider, DimensionsProvider} from '@lmb-it/kitsconcertomobile';\n\nexport const MainContext = createContext<IMainContextValues>({} as IMainContextValues);\n\nexport default function MainContextProvider({\n children,\n theme,\n kitsTheme,\n onLogOut,\n nonAuthRoutes,\n menuItems,\n permissions,\n logo,\n languages,\n defaultLanguage = 'en',\n authedRoutes,\n onChangeLanguage\n }: PropsWithChildren<IMainContextProps>) {\n const {width, height} = useWindowDimensions();\n\n const mq = {\n isSmall: width < 768,\n isTablet: width >= 768 && width < 1024,\n isDesktop: width >= 1024,\n isLandscape: width > height,\n isPortrait: height >= width\n };\n type IHeaderRef = any;\n const headerRef = useRef<IHeaderRef>(null);\n const appendToHeader = (element: ReactNode) => {\n if (headerRef.current?.appendToHeader) headerRef.current.appendToHeader(element);\n };\n\n\n const authLayout = !children && nonAuthRoutes?.length && !authedRoutes?.length;\n const adminLayout = !children && authedRoutes?.length && !nonAuthRoutes?.length;\n\n return (\n <MainContext.Provider value={{logo, onLogOut, appendToHeader, menuItems, mq}}>\n <GluestackUIProvider mode={theme}>\n <DimensionsProvider>\n <KitsThemeProvider theme={kitsTheme}>\n <ThemeContext theme={theme}>\n <LocaleContextProvider\n defaultLanguage={defaultLanguage}\n languages={languages}\n onChangeLanguage={onChangeLanguage}\n >\n <DialogProvider>\n <PermissionsProvider roles={permissions}>\n {!authLayout && !adminLayout && children}\n {/*{authLayout && <AuthLayout routes={nonAuthRoutes} />}*/}\n {/*{adminLayout && <AdminLayout routes={authedRoutes} headerRef={headerRef} />}*/}\n </PermissionsProvider>\n </DialogProvider>\n </LocaleContextProvider>\n </ThemeContext>\n </KitsThemeProvider>\n </DimensionsProvider>\n </GluestackUIProvider>\n </MainContext.Provider>\n );\n}\n"],"names":["ThemeContext","DialogProvider"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYO,MAAM,WAAA,GAAc,aAAA,CAAkC,EAAwB;AAErF,SAAwB,mBAAA,CAAoB;AAAA,EACI,QAAA;AAAA,EACA,KAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA;AAAA,EACA,aAAA;AAAA,EACA,SAAA;AAAA,EACA,WAAA;AAAA,EACA,IAAA;AAAA,EACA,SAAA;AAAA,EACA,eAAA,GAAkB,IAAA;AAAA,EAClB,YAAA;AAAA,EACA;AACJ,CAAA,EAAyC;AACjF,EAAA,MAAM,EAAC,KAAA,EAAO,MAAA,EAAM,GAAI,mBAAA,EAAoB;AAE5C,EAAA,MAAM,EAAA,GAAK;AAAA,IACP,SAAS,KAAA,GAAQ,GAAA;AAAA,IACjB,QAAA,EAAU,KAAA,IAAS,GAAA,IAAO,KAAA,GAAQ,IAAA;AAAA,IAClC,WAAW,KAAA,IAAS,IAAA;AAAA,IACpB,aAAa,KAAA,GAAQ,MAAA;AAAA,IACrB,YAAY,MAAA,IAAU;AAAA,GAC1B;AAEA,EAAA,MAAM,SAAA,GAAY,OAAmB,IAAI,CAAA;AACzC,EAAA,MAAM,cAAA,GAAiB,CAAC,OAAA,KAAuB;AAC3C,IAAA,IAAI,UAAU,OAAA,EAAS,cAAA,EAAgB,SAAA,CAAU,OAAA,CAAQ,eAAe,OAAO,CAAA;AAAA,EACnF,CAAA;AAGA,EAAA,MAAM,aAAa,CAAC,QAAA,IAAY,aAAA,EAAe,MAAA,IAAU,CAAC,YAAA,EAAc,MAAA;AACxE,EAAA,MAAM,cAAc,CAAC,QAAA,IAAY,YAAA,EAAc,MAAA,IAAU,CAAC,aAAA,EAAe,MAAA;AAEzE,EAAA,uBACI,GAAA,CAAC,WAAA,CAAY,QAAA,EAAZ,EAAqB,KAAA,EAAO,EAAC,IAAA,EAAM,QAAA,EAAU,cAAA,EAAgB,SAAA,EAAW,EAAA,EAAE,EACvE,8BAAC,mBAAA,EAAA,EAAoB,IAAA,EAAM,KAAA,EACvB,QAAA,kBAAA,GAAA,CAAC,kBAAA,EAAA,EACG,QAAA,kBAAA,GAAA,CAAC,qBAAkB,KAAA,EAAO,SAAA,EACtB,QAAA,kBAAA,GAAA,CAACA,oBAAA,EAAA,EAAa,KAAA,EACV,QAAA,kBAAA,GAAA;AAAA,IAAC,qBAAA;AAAA,IAAA;AAAA,MACG,eAAA;AAAA,MACA,SAAA;AAAA,MACA,gBAAA;AAAA,MAEA,QAAA,kBAAA,GAAA,CAACC,aAAA,EAAA,EACG,QAAA,kBAAA,GAAA,CAAC,mBAAA,EAAA,EAAoB,KAAA,EAAO,WAAA,EACvB,QAAA,EAAA,CAAC,UAAA,IAAc,CAAC,WAAA,IAAe,QAAA,EAGpC,CAAA,EACJ;AAAA;AAAA,GACJ,EACJ,CAAA,EACJ,CAAA,EACJ,CAAA,EACJ,CAAA,EACJ,CAAA;AAER;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/contexts/Main/index.native.tsx"],"sourcesContent":["import React, {createContext, type PropsWithChildren, type ReactNode, useRef} from 'react';\nimport type {IMainContextProps, IMainContextValues} from '@lmb-it/kitsconcerto-types';\nimport DialogProvider from '../DialogContext';\nimport PermissionsProvider from '../PermissionsContext';\nimport LocaleContextProvider from '../Locale';\nimport ThemeContext, {KitsThemeProvider} from '../Theme';\n// import {IHeaderRef} from '../Components/Organisms/Layout/Header';\n// import {AuthLayout} from '../Components';\n// import AdminLayout from '../Components/Organisms/Layout/AdminLayout';\nimport {useWindowDimensions} from 'react-native';\nimport {GluestackUIProvider, DimensionsProvider} from '@lmb-it/kitsconcertomobile';\n\nexport const MainContext = createContext<IMainContextValues>({} as IMainContextValues);\n\nexport default function MainContextProvider({\n children,\n theme,\n kitsTheme,\n onLogOut,\n nonAuthRoutes,\n menuItems,\n permissions,\n logo,\n languages,\n defaultLanguage = 'en',\n authedRoutes,\n onChangeLanguage\n }: PropsWithChildren<IMainContextProps>) {\n const {width, height} = useWindowDimensions();\n\n const mq = {\n isSmall: width < 768,\n isTablet: width >= 768 && width < 1024,\n isDesktop: width >= 1024,\n isLandscape: width > height,\n isPortrait: height >= width\n };\n type IHeaderRef = any;\n const headerRef = useRef<IHeaderRef>(null);\n const appendToHeader = (element: ReactNode) => {\n if (headerRef.current?.appendToHeader) headerRef.current.appendToHeader(element);\n };\n\n\n const authLayout = !children && nonAuthRoutes?.length && !authedRoutes?.length;\n const adminLayout = !children && authedRoutes?.length && !nonAuthRoutes?.length;\n\n return (\n <MainContext.Provider value={{logo, onLogOut, appendToHeader, menuItems, mq}}>\n <GluestackUIProvider mode={theme}>\n <DimensionsProvider>\n <KitsThemeProvider theme={kitsTheme}>\n <ThemeContext theme={theme}>\n <LocaleContextProvider\n defaultLanguage={defaultLanguage}\n languages={languages}\n onChangeLanguage={onChangeLanguage}\n >\n <DialogProvider>\n <PermissionsProvider roles={permissions}>\n {!authLayout && !adminLayout && children}\n {/*{authLayout && <AuthLayout routes={nonAuthRoutes} />}*/}\n {/*{adminLayout && <AdminLayout routes={authedRoutes} headerRef={headerRef} />}*/}\n </PermissionsProvider>\n </DialogProvider>\n </LocaleContextProvider>\n </ThemeContext>\n </KitsThemeProvider>\n </DimensionsProvider>\n </GluestackUIProvider>\n </MainContext.Provider>\n );\n}\n"],"names":["ThemeContext","DialogProvider"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYO,MAAM,WAAA,GAAc,aAAA,CAAkC,EAAwB;AAErF,SAAwB,mBAAA,CAAoB;AAAA,EACI,QAAA;AAAA,EACA,KAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA;AAAA,EACA,aAAA;AAAA,EACA,SAAA;AAAA,EACA,WAAA;AAAA,EACA,IAAA;AAAA,EACA,SAAA;AAAA,EACA,eAAA,GAAkB,IAAA;AAAA,EAClB,YAAA;AAAA,EACA;AACJ,CAAA,EAAyC;AACjF,EAAA,MAAM,EAAC,KAAA,EAAO,MAAA,EAAM,GAAI,mBAAA,EAAoB;AAE5C,EAAA,MAAM,EAAA,GAAK;AAAA,IACP,SAAS,KAAA,GAAQ,GAAA;AAAA,IACjB,QAAA,EAAU,KAAA,IAAS,GAAA,IAAO,KAAA,GAAQ,IAAA;AAAA,IAClC,WAAW,KAAA,IAAS,IAAA;AAAA,IACpB,aAAa,KAAA,GAAQ,MAAA;AAAA,IACrB,YAAY,MAAA,IAAU;AAAA,GAC1B;AAEA,EAAA,MAAM,SAAA,GAAY,OAAmB,IAAI,CAAA;AACzC,EAAA,MAAM,cAAA,GAAiB,CAAC,OAAA,KAAuB;AAC3C,IAAA,IAAI,UAAU,OAAA,EAAS,cAAA,EAAgB,SAAA,CAAU,OAAA,CAAQ,eAAe,OAAO,CAAA;AAAA,EACnF,CAAA;AAGA,EAAA,MAAM,aAAa,CAAC,QAAA,IAAY,aAAA,EAAe,MAAA,IAAU,CAAC,YAAA,EAAc,MAAA;AACxE,EAAA,MAAM,cAAc,CAAC,QAAA,IAAY,YAAA,EAAc,MAAA,IAAU,CAAC,aAAA,EAAe,MAAA;AAEzE,EAAA,uBACI,GAAA,CAAC,WAAA,CAAY,QAAA,EAAZ,EAAqB,KAAA,EAAO,EAAC,IAAA,EAAM,QAAA,EAAU,cAAA,EAAgB,SAAA,EAAW,EAAA,EAAE,EACvE,8BAAC,mBAAA,EAAA,EAAoB,IAAA,EAAM,KAAA,EACvB,QAAA,kBAAA,GAAA,CAAC,kBAAA,EAAA,EACG,QAAA,kBAAA,GAAA,CAAC,qBAAkB,KAAA,EAAO,SAAA,EACtB,QAAA,kBAAA,GAAA,CAACA,oBAAA,EAAA,EAAa,KAAA,EACV,QAAA,kBAAA,GAAA;AAAA,IAAC,qBAAA;AAAA,IAAA;AAAA,MACG,eAAA;AAAA,MACA,SAAA;AAAA,MACA,gBAAA;AAAA,MAEA,QAAA,kBAAA,GAAA,CAACC,aAAA,EAAA,EACG,QAAA,kBAAA,GAAA,CAAC,mBAAA,EAAA,EAAoB,KAAA,EAAO,WAAA,EACvB,QAAA,EAAA,CAAC,UAAA,IAAc,CAAC,WAAA,IAAe,QAAA,EAGpC,CAAA,EACJ;AAAA;AAAA,GACJ,EACJ,CAAA,EACJ,CAAA,EACJ,CAAA,EACJ,CAAA,EACJ,CAAA;AAER;;;;"}
@@ -14,6 +14,7 @@ require('yup');
14
14
  require('../../packages/types/src/Css/map/index.cjs');
15
15
  require('../../packages/types/src/Theme/shadows.cjs');
16
16
  require('../../packages/types/src/Theme/defaultTheme.cjs');
17
+ require('../../packages/types/src/Theme/resolvers.cjs');
17
18
  require('../../packages/types/src/Theme/alphaColors.cjs');
18
19
 
19
20
  const ThemeContext = React.createContext({});
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../../src/contexts/Theme/index.native.tsx"],"sourcesContent":["import React, {createContext, type FC, type PropsWithChildren, useContext, useEffect, useState} from 'react';\nimport type {IThemeContextProps, IThemeContextValues} from '@lmb-it/kitsconcerto-types';\nimport {useColorScheme} from 'react-native';\n\nconst ThemeContext = createContext<IThemeContextValues>({} as IThemeContextValues);\n\nconst ThemeContextProvider: FC<PropsWithChildren<IThemeContextProps>> = ({children,theme }) => {\n const systemScheme = useColorScheme();\n const [selectedTheme, setTheme] = useState<'light' | 'dark'>(systemScheme ?? 'light');\n const [colorMode, setColorMode] = useState<any>();\n\n\n useEffect(() => {\n theme && setTheme(theme)\n }, [theme]);\n const switchTheme = (themeFile?: string) => {\n const newTheme = selectedTheme === 'dark' ? 'light' : 'dark';\n setTheme(newTheme);\n if (setColorMode) setColorMode(newTheme);\n };\n\n return (\n <ThemeContext.Provider value={{switchTheme, theme:selectedTheme}}>\n {children}\n </ThemeContext.Provider>\n );\n};\n\nexport default ThemeContextProvider;\nexport const useTheme = () => useContext(ThemeContext);\n\nexport {KitsThemeProvider, useKitsTheme, useNativeColorMap} from './KitsThemeProvider.native';\nexport {extendTheme, deepMerge} from './utils';\n"],"names":["createContext","useColorScheme","useState","useEffect","jsx","useContext"],"mappings":";;;;;;;;;;;;;;;;;;AAIA,MAAM,YAAA,GAAeA,mBAAA,CAAmC,EAAyB,CAAA;AAEjF,MAAM,oBAAA,GAAkE,CAAC,EAAC,QAAA,EAAS,OAAM,KAAM;AAC3F,EAAA,MAAM,eAAeC,0BAAA,EAAe;AACpC,EAAA,MAAM,CAAC,aAAA,EAAe,QAAQ,CAAA,GAAIC,cAAA,CAA2B,gBAAgB,OAAO,CAAA;AACpF,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAIA,cAAA,EAAc;AAGhD,EAAAC,eAAA,CAAU,MAAM;AACZ,IAAA,KAAA,IAAS,SAAS,KAAK,CAAA;AAAA,EAC3B,CAAA,EAAG,CAAC,KAAK,CAAC,CAAA;AACV,EAAA,MAAM,WAAA,GAAc,CAAC,SAAA,KAAuB;AACxC,IAAA,MAAM,QAAA,GAAW,aAAA,KAAkB,MAAA,GAAS,OAAA,GAAU,MAAA;AACtD,IAAA,QAAA,CAAS,QAAQ,CAAA;AACjB,IAAA,IAAI,YAAA,eAA2B,QAAQ,CAAA;AAAA,EAC3C,CAAA;AAEA,EAAA,uBACIC,cAAA,CAAC,YAAA,CAAa,QAAA,EAAb,EAAsB,KAAA,EAAO,EAAC,WAAA,EAAa,KAAA,EAAM,aAAA,EAAa,EAC1D,QAAA,EACL,CAAA;AAER;AAGO,MAAM,QAAA,GAAW,MAAMC,gBAAA,CAAW,YAAY;;;;;;;;"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../../src/contexts/Theme/index.native.tsx"],"sourcesContent":["import React, {createContext, type FC, type PropsWithChildren, useContext, useEffect, useState} from 'react';\nimport type {IThemeContextProps, IThemeContextValues} from '@lmb-it/kitsconcerto-types';\nimport {useColorScheme} from 'react-native';\n\nconst ThemeContext = createContext<IThemeContextValues>({} as IThemeContextValues);\n\nconst ThemeContextProvider: FC<PropsWithChildren<IThemeContextProps>> = ({children,theme }) => {\n const systemScheme = useColorScheme();\n const [selectedTheme, setTheme] = useState<'light' | 'dark'>(systemScheme ?? 'light');\n const [colorMode, setColorMode] = useState<any>();\n\n\n useEffect(() => {\n theme && setTheme(theme)\n }, [theme]);\n const switchTheme = (themeFile?: string) => {\n const newTheme = selectedTheme === 'dark' ? 'light' : 'dark';\n setTheme(newTheme);\n if (setColorMode) setColorMode(newTheme);\n };\n\n return (\n <ThemeContext.Provider value={{switchTheme, theme:selectedTheme}}>\n {children}\n </ThemeContext.Provider>\n );\n};\n\nexport default ThemeContextProvider;\nexport const useTheme = () => useContext(ThemeContext);\n\nexport {KitsThemeProvider, useKitsTheme, useNativeColorMap} from './KitsThemeProvider.native';\nexport {extendTheme, deepMerge} from './utils';\n"],"names":["createContext","useColorScheme","useState","useEffect","jsx","useContext"],"mappings":";;;;;;;;;;;;;;;;;;;AAIA,MAAM,YAAA,GAAeA,mBAAA,CAAmC,EAAyB,CAAA;AAEjF,MAAM,oBAAA,GAAkE,CAAC,EAAC,QAAA,EAAS,OAAM,KAAM;AAC3F,EAAA,MAAM,eAAeC,0BAAA,EAAe;AACpC,EAAA,MAAM,CAAC,aAAA,EAAe,QAAQ,CAAA,GAAIC,cAAA,CAA2B,gBAAgB,OAAO,CAAA;AACpF,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAIA,cAAA,EAAc;AAGhD,EAAAC,eAAA,CAAU,MAAM;AACZ,IAAA,KAAA,IAAS,SAAS,KAAK,CAAA;AAAA,EAC3B,CAAA,EAAG,CAAC,KAAK,CAAC,CAAA;AACV,EAAA,MAAM,WAAA,GAAc,CAAC,SAAA,KAAuB;AACxC,IAAA,MAAM,QAAA,GAAW,aAAA,KAAkB,MAAA,GAAS,OAAA,GAAU,MAAA;AACtD,IAAA,QAAA,CAAS,QAAQ,CAAA;AACjB,IAAA,IAAI,YAAA,eAA2B,QAAQ,CAAA;AAAA,EAC3C,CAAA;AAEA,EAAA,uBACIC,cAAA,CAAC,YAAA,CAAa,QAAA,EAAb,EAAsB,KAAA,EAAO,EAAC,WAAA,EAAa,KAAA,EAAM,aAAA,EAAa,EAC1D,QAAA,EACL,CAAA;AAER;AAGO,MAAM,QAAA,GAAW,MAAMC,gBAAA,CAAW,YAAY;;;;;;;;"}
@@ -10,6 +10,7 @@ import 'yup';
10
10
  import '../../packages/types/src/Css/map/index.js';
11
11
  import '../../packages/types/src/Theme/shadows.js';
12
12
  import '../../packages/types/src/Theme/defaultTheme.js';
13
+ import '../../packages/types/src/Theme/resolvers.js';
13
14
  import '../../packages/types/src/Theme/alphaColors.js';
14
15
 
15
16
  const ThemeContext = createContext({});
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/contexts/Theme/index.native.tsx"],"sourcesContent":["import React, {createContext, type FC, type PropsWithChildren, useContext, useEffect, useState} from 'react';\nimport type {IThemeContextProps, IThemeContextValues} from '@lmb-it/kitsconcerto-types';\nimport {useColorScheme} from 'react-native';\n\nconst ThemeContext = createContext<IThemeContextValues>({} as IThemeContextValues);\n\nconst ThemeContextProvider: FC<PropsWithChildren<IThemeContextProps>> = ({children,theme }) => {\n const systemScheme = useColorScheme();\n const [selectedTheme, setTheme] = useState<'light' | 'dark'>(systemScheme ?? 'light');\n const [colorMode, setColorMode] = useState<any>();\n\n\n useEffect(() => {\n theme && setTheme(theme)\n }, [theme]);\n const switchTheme = (themeFile?: string) => {\n const newTheme = selectedTheme === 'dark' ? 'light' : 'dark';\n setTheme(newTheme);\n if (setColorMode) setColorMode(newTheme);\n };\n\n return (\n <ThemeContext.Provider value={{switchTheme, theme:selectedTheme}}>\n {children}\n </ThemeContext.Provider>\n );\n};\n\nexport default ThemeContextProvider;\nexport const useTheme = () => useContext(ThemeContext);\n\nexport {KitsThemeProvider, useKitsTheme, useNativeColorMap} from './KitsThemeProvider.native';\nexport {extendTheme, deepMerge} from './utils';\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAIA,MAAM,YAAA,GAAe,aAAA,CAAmC,EAAyB,CAAA;AAEjF,MAAM,oBAAA,GAAkE,CAAC,EAAC,QAAA,EAAS,OAAM,KAAM;AAC3F,EAAA,MAAM,eAAe,cAAA,EAAe;AACpC,EAAA,MAAM,CAAC,aAAA,EAAe,QAAQ,CAAA,GAAI,QAAA,CAA2B,gBAAgB,OAAO,CAAA;AACpF,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAI,QAAA,EAAc;AAGhD,EAAA,SAAA,CAAU,MAAM;AACZ,IAAA,KAAA,IAAS,SAAS,KAAK,CAAA;AAAA,EAC3B,CAAA,EAAG,CAAC,KAAK,CAAC,CAAA;AACV,EAAA,MAAM,WAAA,GAAc,CAAC,SAAA,KAAuB;AACxC,IAAA,MAAM,QAAA,GAAW,aAAA,KAAkB,MAAA,GAAS,OAAA,GAAU,MAAA;AACtD,IAAA,QAAA,CAAS,QAAQ,CAAA;AACjB,IAAA,IAAI,YAAA,eAA2B,QAAQ,CAAA;AAAA,EAC3C,CAAA;AAEA,EAAA,uBACI,GAAA,CAAC,YAAA,CAAa,QAAA,EAAb,EAAsB,KAAA,EAAO,EAAC,WAAA,EAAa,KAAA,EAAM,aAAA,EAAa,EAC1D,QAAA,EACL,CAAA;AAER;AAGO,MAAM,QAAA,GAAW,MAAM,UAAA,CAAW,YAAY;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/contexts/Theme/index.native.tsx"],"sourcesContent":["import React, {createContext, type FC, type PropsWithChildren, useContext, useEffect, useState} from 'react';\nimport type {IThemeContextProps, IThemeContextValues} from '@lmb-it/kitsconcerto-types';\nimport {useColorScheme} from 'react-native';\n\nconst ThemeContext = createContext<IThemeContextValues>({} as IThemeContextValues);\n\nconst ThemeContextProvider: FC<PropsWithChildren<IThemeContextProps>> = ({children,theme }) => {\n const systemScheme = useColorScheme();\n const [selectedTheme, setTheme] = useState<'light' | 'dark'>(systemScheme ?? 'light');\n const [colorMode, setColorMode] = useState<any>();\n\n\n useEffect(() => {\n theme && setTheme(theme)\n }, [theme]);\n const switchTheme = (themeFile?: string) => {\n const newTheme = selectedTheme === 'dark' ? 'light' : 'dark';\n setTheme(newTheme);\n if (setColorMode) setColorMode(newTheme);\n };\n\n return (\n <ThemeContext.Provider value={{switchTheme, theme:selectedTheme}}>\n {children}\n </ThemeContext.Provider>\n );\n};\n\nexport default ThemeContextProvider;\nexport const useTheme = () => useContext(ThemeContext);\n\nexport {KitsThemeProvider, useKitsTheme, useNativeColorMap} from './KitsThemeProvider.native';\nexport {extendTheme, deepMerge} from './utils';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AAIA,MAAM,YAAA,GAAe,aAAA,CAAmC,EAAyB,CAAA;AAEjF,MAAM,oBAAA,GAAkE,CAAC,EAAC,QAAA,EAAS,OAAM,KAAM;AAC3F,EAAA,MAAM,eAAe,cAAA,EAAe;AACpC,EAAA,MAAM,CAAC,aAAA,EAAe,QAAQ,CAAA,GAAI,QAAA,CAA2B,gBAAgB,OAAO,CAAA;AACpF,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAI,QAAA,EAAc;AAGhD,EAAA,SAAA,CAAU,MAAM;AACZ,IAAA,KAAA,IAAS,SAAS,KAAK,CAAA;AAAA,EAC3B,CAAA,EAAG,CAAC,KAAK,CAAC,CAAA;AACV,EAAA,MAAM,WAAA,GAAc,CAAC,SAAA,KAAuB;AACxC,IAAA,MAAM,QAAA,GAAW,aAAA,KAAkB,MAAA,GAAS,OAAA,GAAU,MAAA;AACtD,IAAA,QAAA,CAAS,QAAQ,CAAA;AACjB,IAAA,IAAI,YAAA,eAA2B,QAAQ,CAAA;AAAA,EAC3C,CAAA;AAEA,EAAA,uBACI,GAAA,CAAC,YAAA,CAAa,QAAA,EAAb,EAAsB,KAAA,EAAO,EAAC,WAAA,EAAa,KAAA,EAAM,aAAA,EAAa,EAC1D,QAAA,EACL,CAAA;AAER;AAGO,MAAM,QAAA,GAAW,MAAM,UAAA,CAAW,YAAY;;;;"}