orn-ui 0.1.1 → 0.2.1

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 (240) hide show
  1. package/README.md +20 -2
  2. package/lib/commonjs/atoms/PressableScale.js +9 -10
  3. package/lib/commonjs/atoms/PressableScale.js.map +1 -1
  4. package/lib/commonjs/atoms/Skeleton.js +96 -0
  5. package/lib/commonjs/atoms/Skeleton.js.map +1 -0
  6. package/lib/commonjs/atoms/Transition.js +171 -0
  7. package/lib/commonjs/atoms/Transition.js.map +1 -0
  8. package/lib/commonjs/atoms/index.js +20 -0
  9. package/lib/commonjs/atoms/index.js.map +1 -1
  10. package/lib/commonjs/molecules/OptionCard.js +55 -22
  11. package/lib/commonjs/molecules/OptionCard.js.map +1 -1
  12. package/lib/commonjs/molecules/{ThemeToggle.js → SegmentedControl.js} +36 -36
  13. package/lib/commonjs/molecules/SegmentedControl.js.map +1 -0
  14. package/lib/commonjs/molecules/Stepper.js +124 -47
  15. package/lib/commonjs/molecules/Stepper.js.map +1 -1
  16. package/lib/commonjs/molecules/Steps.js +36 -6
  17. package/lib/commonjs/molecules/Steps.js.map +1 -1
  18. package/lib/commonjs/molecules/index.js +9 -3
  19. package/lib/commonjs/molecules/index.js.map +1 -1
  20. package/lib/commonjs/organisms/AlertProvider.js +26 -0
  21. package/lib/commonjs/organisms/AlertProvider.js.map +1 -1
  22. package/lib/commonjs/organisms/BottomSheet.js +118 -39
  23. package/lib/commonjs/organisms/BottomSheet.js.map +1 -1
  24. package/lib/commonjs/organisms/DateField.js +46 -15
  25. package/lib/commonjs/organisms/DateField.js.map +1 -1
  26. package/lib/commonjs/organisms/DatePicker.js +129 -50
  27. package/lib/commonjs/organisms/DatePicker.js.map +1 -1
  28. package/lib/commonjs/organisms/List.js +66 -44
  29. package/lib/commonjs/organisms/List.js.map +1 -1
  30. package/lib/commonjs/organisms/Modal.js +42 -87
  31. package/lib/commonjs/organisms/Modal.js.map +1 -1
  32. package/lib/commonjs/organisms/NavigationBar.js +210 -0
  33. package/lib/commonjs/organisms/NavigationBar.js.map +1 -0
  34. package/lib/commonjs/organisms/Screen.js +9 -2
  35. package/lib/commonjs/organisms/Screen.js.map +1 -1
  36. package/lib/commonjs/organisms/SearchList.js +95 -27
  37. package/lib/commonjs/organisms/SearchList.js.map +1 -1
  38. package/lib/commonjs/organisms/Select.js +222 -50
  39. package/lib/commonjs/organisms/Select.js.map +1 -1
  40. package/lib/commonjs/organisms/ThemeToggle.js +52 -0
  41. package/lib/commonjs/organisms/ThemeToggle.js.map +1 -0
  42. package/lib/commonjs/organisms/Toast.js +8 -22
  43. package/lib/commonjs/organisms/Toast.js.map +1 -1
  44. package/lib/commonjs/organisms/ToastProvider.js +24 -0
  45. package/lib/commonjs/organisms/ToastProvider.js.map +1 -1
  46. package/lib/commonjs/organisms/Wizard.js +23 -2
  47. package/lib/commonjs/organisms/Wizard.js.map +1 -1
  48. package/lib/commonjs/organisms/imperativeBridge.js +28 -0
  49. package/lib/commonjs/organisms/imperativeBridge.js.map +1 -0
  50. package/lib/commonjs/organisms/index.js +50 -0
  51. package/lib/commonjs/organisms/index.js.map +1 -1
  52. package/lib/commonjs/theme/colors.js +207 -0
  53. package/lib/commonjs/theme/colors.js.map +1 -0
  54. package/lib/commonjs/theme/createTheme.js +25 -2
  55. package/lib/commonjs/theme/createTheme.js.map +1 -1
  56. package/lib/commonjs/theme/index.js +25 -0
  57. package/lib/commonjs/theme/index.js.map +1 -1
  58. package/lib/commonjs/theme/labels.js +5 -1
  59. package/lib/commonjs/theme/labels.js.map +1 -1
  60. package/lib/commonjs/theme/palettes.js +5 -2
  61. package/lib/commonjs/theme/palettes.js.map +1 -1
  62. package/lib/module/atoms/PressableScale.js +9 -10
  63. package/lib/module/atoms/PressableScale.js.map +1 -1
  64. package/lib/module/atoms/Skeleton.js +91 -0
  65. package/lib/module/atoms/Skeleton.js.map +1 -0
  66. package/lib/module/atoms/Transition.js +165 -0
  67. package/lib/module/atoms/Transition.js.map +1 -0
  68. package/lib/module/atoms/index.js +2 -0
  69. package/lib/module/atoms/index.js.map +1 -1
  70. package/lib/module/molecules/OptionCard.js +56 -23
  71. package/lib/module/molecules/OptionCard.js.map +1 -1
  72. package/lib/module/molecules/{ThemeToggle.js → SegmentedControl.js} +36 -36
  73. package/lib/module/molecules/SegmentedControl.js.map +1 -0
  74. package/lib/module/molecules/Stepper.js +125 -49
  75. package/lib/module/molecules/Stepper.js.map +1 -1
  76. package/lib/module/molecules/Steps.js +37 -7
  77. package/lib/module/molecules/Steps.js.map +1 -1
  78. package/lib/module/molecules/index.js +2 -2
  79. package/lib/module/molecules/index.js.map +1 -1
  80. package/lib/module/organisms/AlertProvider.js +24 -1
  81. package/lib/module/organisms/AlertProvider.js.map +1 -1
  82. package/lib/module/organisms/BottomSheet.js +120 -41
  83. package/lib/module/organisms/BottomSheet.js.map +1 -1
  84. package/lib/module/organisms/DateField.js +49 -18
  85. package/lib/module/organisms/DateField.js.map +1 -1
  86. package/lib/module/organisms/DatePicker.js +131 -52
  87. package/lib/module/organisms/DatePicker.js.map +1 -1
  88. package/lib/module/organisms/List.js +68 -46
  89. package/lib/module/organisms/List.js.map +1 -1
  90. package/lib/module/organisms/Modal.js +44 -89
  91. package/lib/module/organisms/Modal.js.map +1 -1
  92. package/lib/module/organisms/NavigationBar.js +205 -0
  93. package/lib/module/organisms/NavigationBar.js.map +1 -0
  94. package/lib/module/organisms/Screen.js +9 -2
  95. package/lib/module/organisms/Screen.js.map +1 -1
  96. package/lib/module/organisms/SearchList.js +96 -28
  97. package/lib/module/organisms/SearchList.js.map +1 -1
  98. package/lib/module/organisms/Select.js +224 -52
  99. package/lib/module/organisms/Select.js.map +1 -1
  100. package/lib/module/organisms/ThemeToggle.js +47 -0
  101. package/lib/module/organisms/ThemeToggle.js.map +1 -0
  102. package/lib/module/organisms/Toast.js +10 -24
  103. package/lib/module/organisms/Toast.js.map +1 -1
  104. package/lib/module/organisms/ToastProvider.js +21 -0
  105. package/lib/module/organisms/ToastProvider.js.map +1 -1
  106. package/lib/module/organisms/Wizard.js +24 -3
  107. package/lib/module/organisms/Wizard.js.map +1 -1
  108. package/lib/module/organisms/imperativeBridge.js +24 -0
  109. package/lib/module/organisms/imperativeBridge.js.map +1 -0
  110. package/lib/module/organisms/index.js +4 -2
  111. package/lib/module/organisms/index.js.map +1 -1
  112. package/lib/module/theme/colors.js +194 -0
  113. package/lib/module/theme/colors.js.map +1 -0
  114. package/lib/module/theme/createTheme.js +25 -2
  115. package/lib/module/theme/createTheme.js.map +1 -1
  116. package/lib/module/theme/index.js +1 -0
  117. package/lib/module/theme/index.js.map +1 -1
  118. package/lib/module/theme/labels.js +5 -1
  119. package/lib/module/theme/labels.js.map +1 -1
  120. package/lib/module/theme/palettes.js +5 -2
  121. package/lib/module/theme/palettes.js.map +1 -1
  122. package/lib/typescript/atoms/PressableScale.d.ts +3 -2
  123. package/lib/typescript/atoms/PressableScale.d.ts.map +1 -1
  124. package/lib/typescript/atoms/Skeleton.d.ts +29 -0
  125. package/lib/typescript/atoms/Skeleton.d.ts.map +1 -0
  126. package/lib/typescript/atoms/Transition.d.ts +51 -0
  127. package/lib/typescript/atoms/Transition.d.ts.map +1 -0
  128. package/lib/typescript/atoms/index.d.ts +4 -0
  129. package/lib/typescript/atoms/index.d.ts.map +1 -1
  130. package/lib/typescript/molecules/OptionCard.d.ts +11 -6
  131. package/lib/typescript/molecules/OptionCard.d.ts.map +1 -1
  132. package/lib/typescript/molecules/SegmentedControl.d.ts +24 -0
  133. package/lib/typescript/molecules/SegmentedControl.d.ts.map +1 -0
  134. package/lib/typescript/molecules/Stepper.d.ts +35 -3
  135. package/lib/typescript/molecules/Stepper.d.ts.map +1 -1
  136. package/lib/typescript/molecules/Steps.d.ts.map +1 -1
  137. package/lib/typescript/molecules/index.d.ts +4 -4
  138. package/lib/typescript/molecules/index.d.ts.map +1 -1
  139. package/lib/typescript/organisms/AlertProvider.d.ts +9 -0
  140. package/lib/typescript/organisms/AlertProvider.d.ts.map +1 -1
  141. package/lib/typescript/organisms/BottomSheet.d.ts +26 -4
  142. package/lib/typescript/organisms/BottomSheet.d.ts.map +1 -1
  143. package/lib/typescript/organisms/DateField.d.ts +23 -5
  144. package/lib/typescript/organisms/DateField.d.ts.map +1 -1
  145. package/lib/typescript/organisms/DatePicker.d.ts +5 -1
  146. package/lib/typescript/organisms/DatePicker.d.ts.map +1 -1
  147. package/lib/typescript/organisms/List.d.ts +9 -2
  148. package/lib/typescript/organisms/List.d.ts.map +1 -1
  149. package/lib/typescript/organisms/Modal.d.ts +3 -5
  150. package/lib/typescript/organisms/Modal.d.ts.map +1 -1
  151. package/lib/typescript/organisms/NavigationBar.d.ts +32 -0
  152. package/lib/typescript/organisms/NavigationBar.d.ts.map +1 -0
  153. package/lib/typescript/organisms/Screen.d.ts +2 -1
  154. package/lib/typescript/organisms/Screen.d.ts.map +1 -1
  155. package/lib/typescript/organisms/SearchList.d.ts +21 -5
  156. package/lib/typescript/organisms/SearchList.d.ts.map +1 -1
  157. package/lib/typescript/organisms/Select.d.ts +19 -4
  158. package/lib/typescript/organisms/Select.d.ts.map +1 -1
  159. package/lib/typescript/{molecules → organisms}/ThemeToggle.d.ts +4 -4
  160. package/lib/typescript/organisms/ThemeToggle.d.ts.map +1 -0
  161. package/lib/typescript/organisms/Toast.d.ts.map +1 -1
  162. package/lib/typescript/organisms/ToastProvider.d.ts +8 -0
  163. package/lib/typescript/organisms/ToastProvider.d.ts.map +1 -1
  164. package/lib/typescript/organisms/Wizard.d.ts +7 -1
  165. package/lib/typescript/organisms/Wizard.d.ts.map +1 -1
  166. package/lib/typescript/organisms/imperativeBridge.d.ts +12 -0
  167. package/lib/typescript/organisms/imperativeBridge.d.ts.map +1 -0
  168. package/lib/typescript/organisms/index.d.ts +7 -3
  169. package/lib/typescript/organisms/index.d.ts.map +1 -1
  170. package/lib/typescript/theme/colors.d.ts +44 -0
  171. package/lib/typescript/theme/colors.d.ts.map +1 -0
  172. package/lib/typescript/theme/createTheme.d.ts +3 -0
  173. package/lib/typescript/theme/createTheme.d.ts.map +1 -1
  174. package/lib/typescript/theme/index.d.ts +3 -1
  175. package/lib/typescript/theme/index.d.ts.map +1 -1
  176. package/lib/typescript/theme/labels.d.ts +6 -0
  177. package/lib/typescript/theme/labels.d.ts.map +1 -1
  178. package/lib/typescript/theme/palettes.d.ts.map +1 -1
  179. package/lib/typescript/theme/types.d.ts +9 -0
  180. package/lib/typescript/theme/types.d.ts.map +1 -1
  181. package/package.json +67 -6
  182. package/registry/alert-provider.json +9 -2
  183. package/registry/bottom-sheet.json +6 -2
  184. package/registry/core.json +9 -5
  185. package/registry/date-field.json +2 -1
  186. package/registry/date-picker.json +1 -1
  187. package/registry/index.json +99 -30
  188. package/registry/list.json +2 -1
  189. package/registry/manifest.json +44 -6
  190. package/registry/modal.json +3 -2
  191. package/registry/navigation-bar.json +18 -0
  192. package/registry/option-card.json +3 -2
  193. package/registry/pressable-scale.json +1 -1
  194. package/registry/screen.json +1 -1
  195. package/registry/search-list.json +2 -1
  196. package/registry/segmented-control.json +18 -0
  197. package/registry/select.json +1 -1
  198. package/registry/skeleton.json +18 -0
  199. package/registry/stepper.json +3 -2
  200. package/registry/steps.json +1 -1
  201. package/registry/theme-toggle.json +5 -4
  202. package/registry/toast-provider.json +11 -3
  203. package/registry/toast.json +3 -2
  204. package/registry/transition.json +19 -0
  205. package/registry/wizard.json +3 -2
  206. package/src/atoms/PressableScale.tsx +16 -6
  207. package/src/atoms/Skeleton.tsx +114 -0
  208. package/src/atoms/Transition.tsx +189 -0
  209. package/src/atoms/index.ts +4 -0
  210. package/src/molecules/OptionCard.tsx +62 -25
  211. package/src/molecules/SegmentedControl.tsx +84 -0
  212. package/src/molecules/Stepper.tsx +147 -32
  213. package/src/molecules/Steps.tsx +27 -8
  214. package/src/molecules/index.ts +4 -4
  215. package/src/organisms/AlertProvider.tsx +26 -1
  216. package/src/organisms/BottomSheet.tsx +214 -62
  217. package/src/organisms/DateField.tsx +79 -19
  218. package/src/organisms/DatePicker.tsx +198 -80
  219. package/src/organisms/List.tsx +73 -41
  220. package/src/organisms/Modal.tsx +49 -61
  221. package/src/organisms/NavigationBar.tsx +226 -0
  222. package/src/organisms/Screen.tsx +11 -3
  223. package/src/organisms/SearchList.tsx +131 -35
  224. package/src/organisms/Select.tsx +223 -45
  225. package/src/organisms/ThemeToggle.tsx +30 -0
  226. package/src/organisms/Toast.tsx +8 -21
  227. package/src/organisms/ToastProvider.tsx +24 -0
  228. package/src/organisms/Wizard.tsx +37 -3
  229. package/src/organisms/imperativeBridge.ts +28 -0
  230. package/src/organisms/index.ts +7 -3
  231. package/src/theme/colors.ts +175 -0
  232. package/src/theme/createTheme.ts +38 -4
  233. package/src/theme/index.ts +3 -1
  234. package/src/theme/labels.ts +13 -0
  235. package/src/theme/palettes.ts +5 -2
  236. package/src/theme/types.ts +10 -0
  237. package/lib/commonjs/molecules/ThemeToggle.js.map +0 -1
  238. package/lib/module/molecules/ThemeToggle.js.map +0 -1
  239. package/lib/typescript/molecules/ThemeToggle.d.ts.map +0 -1
  240. package/src/molecules/ThemeToggle.tsx +0 -67
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+
3
+ import React, { memo, useMemo } from 'react';
4
+ import { useThemeMode } from '../theme/UIProvider';
5
+ import { SegmentedControl } from '../molecules/SegmentedControl';
6
+ import { jsx as _jsx } from "react/jsx-runtime";
7
+ const MODES = ['system', 'light', 'dark'];
8
+ const DEFAULT_LABELS = {
9
+ system: 'Auto',
10
+ light: 'Light',
11
+ dark: 'Dark'
12
+ };
13
+
14
+ /**
15
+ * ThemeToggle
16
+ * Conecta un SegmentedControl con UIProvider.setMode. Sin persistencia — el
17
+ * consumidor la resuelve vía onModeChange en <UIProvider>.
18
+ */
19
+ export const ThemeToggle = /*#__PURE__*/memo(({
20
+ style,
21
+ labels: labelOverrides,
22
+ testID
23
+ }) => {
24
+ const {
25
+ mode,
26
+ setMode
27
+ } = useThemeMode();
28
+ const options = useMemo(() => {
29
+ const labels = {
30
+ ...DEFAULT_LABELS,
31
+ ...labelOverrides
32
+ };
33
+ return MODES.map(value => ({
34
+ value,
35
+ label: labels[value]
36
+ }));
37
+ }, [labelOverrides]);
38
+ return /*#__PURE__*/_jsx(SegmentedControl, {
39
+ options: options,
40
+ value: mode,
41
+ onChange: setMode,
42
+ style: style,
43
+ testID: testID
44
+ });
45
+ });
46
+ ThemeToggle.displayName = 'ThemeToggle';
47
+ //# sourceMappingURL=ThemeToggle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","memo","useMemo","useThemeMode","SegmentedControl","jsx","_jsx","MODES","DEFAULT_LABELS","system","light","dark","ThemeToggle","style","labels","labelOverrides","testID","mode","setMode","options","map","value","label","onChange","displayName"],"sourceRoot":"../../../src","sources":["organisms/ThemeToggle.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,IAAI,EAAEC,OAAO,QAAQ,OAAO;AAE5C,SAASC,YAAY,QAAwB,qBAAqB;AAClE,SAASC,gBAAgB,QAAQ,+BAA+B;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAQjE,MAAMC,KAAkB,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC;AACtD,MAAMC,cAAyC,GAAG;EAAEC,MAAM,EAAE,MAAM;EAAEC,KAAK,EAAE,OAAO;EAAEC,IAAI,EAAE;AAAO,CAAC;;AAElG;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,WAAW,gBAAGX,IAAI,CAAC,CAAC;EAAEY,KAAK;EAAEC,MAAM,EAAEC,cAAc;EAAEC;AAAyB,CAAC,KAAK;EAC/F,MAAM;IAAEC,IAAI;IAAEC;EAAQ,CAAC,GAAGf,YAAY,CAAC,CAAC;EAExC,MAAMgB,OAAO,GAAGjB,OAAO,CAAC,MAAM;IAC5B,MAAMY,MAAM,GAAG;MAAE,GAAGN,cAAc;MAAE,GAAGO;IAAe,CAAC;IACvD,OAAOR,KAAK,CAACa,GAAG,CAAEC,KAAK,KAAM;MAAEA,KAAK;MAAEC,KAAK,EAAER,MAAM,CAACO,KAAK;IAAE,CAAC,CAAC,CAAC;EAChE,CAAC,EAAE,CAACN,cAAc,CAAC,CAAC;EAEpB,oBAAOT,IAAA,CAACF,gBAAgB;IAACe,OAAO,EAAEA,OAAQ;IAACE,KAAK,EAAEJ,IAAK;IAACM,QAAQ,EAAEL,OAAQ;IAACL,KAAK,EAAEA,KAAM;IAACG,MAAM,EAAEA;EAAO,CAAE,CAAC;AAC7G,CAAC,CAAC;AACFJ,WAAW,CAACY,WAAW,GAAG,aAAa","ignoreList":[]}
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
2
 
3
- import React, { memo, useEffect, useRef } from 'react';
4
- import { Animated, Pressable, Text, View } from 'react-native';
3
+ import React, { memo } from 'react';
4
+ import { Pressable, Text, View } from 'react-native';
5
5
  import { createStyles } from '../theme/createStyles';
6
6
  import { useAllowFontScaling, useColors } from '../theme/UIProvider';
7
+ import { Transition } from '../atoms/Transition';
7
8
  import { Icon } from '../icons/Icon';
8
9
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
10
  const ICON_BY_VARIANT = {
@@ -133,29 +134,14 @@ Toast.displayName = 'Toast';
133
134
  export const AnimatedToast = /*#__PURE__*/memo(({
134
135
  children,
135
136
  onHeight
136
- }) => {
137
- const progress = useRef(new Animated.Value(0)).current;
138
- useEffect(() => {
139
- Animated.spring(progress, {
140
- toValue: 1,
141
- useNativeDriver: true,
142
- speed: 14,
143
- bounciness: 4
144
- }).start();
145
- }, [progress]);
146
- return /*#__PURE__*/_jsx(Animated.View, {
137
+ }) => /*#__PURE__*/_jsx(Transition, {
138
+ preset: ['fade', 'slide-down'],
139
+ distance: 16,
140
+ spring: true,
141
+ children: /*#__PURE__*/_jsx(View, {
147
142
  onLayout: e => onHeight?.(e.nativeEvent.layout.height),
148
- style: {
149
- opacity: progress,
150
- transform: [{
151
- translateY: progress.interpolate({
152
- inputRange: [0, 1],
153
- outputRange: [-16, 0]
154
- })
155
- }]
156
- },
157
143
  children: children
158
- });
159
- });
144
+ })
145
+ }));
160
146
  AnimatedToast.displayName = 'AnimatedToast';
161
147
  //# sourceMappingURL=Toast.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","memo","useEffect","useRef","Animated","Pressable","Text","View","createStyles","useAllowFontScaling","useColors","Icon","jsx","_jsx","jsxs","_jsxs","ICON_BY_VARIANT","success","error","warning","info","useStyles","theme","container","flexDirection","alignItems","gap","tokens","spacing","md","backgroundColor","colors","surface","borderRadius","radius","lg","borderWidth","borderColor","border","paddingVertical","paddingHorizontal","shadow","accent","position","left","top","bottom","width","borderTopLeftRadius","borderBottomLeftRadius","text","flex","title","fontSize","fontWeight","semibold","color","message","sm","textLight","lineHeight","Toast","variant","onPress","onDismiss","hideCloseButton","style","testID","styles","allowFontScaling","barColor","secondary","iconColor","successText","errorText","warningText","secondaryText","body","accessibilityRole","children","name","size","accessibilityLabel","hitSlop","displayName","AnimatedToast","onHeight","progress","Value","current","spring","toValue","useNativeDriver","speed","bounciness","start","onLayout","e","nativeEvent","layout","height","opacity","transform","translateY","interpolate","inputRange","outputRange"],"sourceRoot":"../../../src","sources":["organisms/Toast.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","memo","Pressable","Text","View","createStyles","useAllowFontScaling","useColors","Transition","Icon","jsx","_jsx","jsxs","_jsxs","ICON_BY_VARIANT","success","error","warning","info","useStyles","theme","container","flexDirection","alignItems","gap","tokens","spacing","md","backgroundColor","colors","surface","borderRadius","radius","lg","borderWidth","borderColor","border","paddingVertical","paddingHorizontal","shadow","accent","position","left","top","bottom","width","borderTopLeftRadius","borderBottomLeftRadius","text","flex","title","fontSize","fontWeight","semibold","color","message","sm","textLight","lineHeight","Toast","variant","onPress","onDismiss","hideCloseButton","style","testID","styles","allowFontScaling","barColor","secondary","iconColor","successText","errorText","warningText","secondaryText","body","accessibilityRole","children","name","size","accessibilityLabel","hitSlop","displayName","AnimatedToast","onHeight","preset","distance","spring","onLayout","e","nativeEvent","layout","height"],"sourceRoot":"../../../src","sources":["organisms/Toast.tsx"],"mappings":"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","ignoreList":[]}
@@ -5,8 +5,25 @@ import { View } from 'react-native';
5
5
  import { AnimatedToast, Toast } from './Toast';
6
6
  import { useInsets } from '../theme/UIProvider';
7
7
  import { createStyles } from '../theme/createStyles';
8
+ import { createImperativeBridge } from './imperativeBridge';
8
9
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
10
  const ToastContext = /*#__PURE__*/createContext(undefined);
11
+ const bridge = createImperativeBridge('ToastProvider');
12
+
13
+ /**
14
+ * Muestra un toast desde fuera del árbol de React —un servicio, un
15
+ * interceptor— sin pasar por el hook. Devuelve el id, o '' si no hay
16
+ * <ToastProvider> montado.
17
+ */
18
+ export function showToast(options) {
19
+ return bridge.get()?.show(options) ?? '';
20
+ }
21
+ export function hideToast(id) {
22
+ bridge.get()?.hide(id);
23
+ }
24
+ export function hideAllToasts() {
25
+ bridge.get()?.hideAll();
26
+ }
10
27
  const useStyles = createStyles(theme => ({
11
28
  host: {
12
29
  position: 'absolute',
@@ -87,6 +104,10 @@ export function ToastProvider({
87
104
  hide,
88
105
  hideAll
89
106
  }), [show, hide, hideAll]);
107
+ useEffect(() => {
108
+ bridge.set(value);
109
+ return () => bridge.set(null);
110
+ }, [value]);
90
111
  const hostPosition = position === 'top' ? {
91
112
  top: insets.top + 8
92
113
  } : {
@@ -1 +1 @@
1
- {"version":3,"names":["React","createContext","useCallback","useContext","useEffect","useMemo","useRef","useState","View","AnimatedToast","Toast","useInsets","createStyles","jsx","_jsx","jsxs","_jsxs","ToastContext","undefined","useStyles","theme","host","position","left","right","paddingHorizontal","tokens","spacing","lg","gap","sm","ToastProvider","children","maxVisible","defaultDuration","toasts","setToasts","timers","Map","counter","insets","styles","clearTimer","id","t","current","get","clearTimeout","delete","hide","prev","filter","hideAll","forEach","clear","show","options","duration","next","overflow","length","slice","set","setTimeout","pending","value","hostPosition","top","bottom","flexDirection","Provider","style","pointerEvents","testID","map","title","message","variant","hideCloseButton","onDismiss","onPress","useToast","ctx","Error"],"sourceRoot":"../../../src","sources":["organisms/ToastProvider.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","createContext","useCallback","useContext","useEffect","useMemo","useRef","useState","View","AnimatedToast","Toast","useInsets","createStyles","createImperativeBridge","jsx","_jsx","jsxs","_jsxs","ToastContext","undefined","bridge","showToast","options","get","show","hideToast","id","hide","hideAllToasts","hideAll","useStyles","theme","host","position","left","right","paddingHorizontal","tokens","spacing","lg","gap","sm","ToastProvider","children","maxVisible","defaultDuration","toasts","setToasts","timers","Map","counter","insets","styles","clearTimer","t","current","clearTimeout","delete","prev","filter","forEach","clear","duration","next","overflow","length","slice","set","setTimeout","pending","value","hostPosition","top","bottom","flexDirection","Provider","style","pointerEvents","testID","map","title","message","variant","hideCloseButton","onDismiss","onPress","useToast","ctx","Error"],"sourceRoot":"../../../src","sources":["organisms/ToastProvider.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,10 +1,11 @@
1
1
  "use strict";
2
2
 
3
- import React, { useCallback, useMemo, useState } from 'react';
3
+ import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
4
4
  import { ScrollView, View } from 'react-native';
5
5
  import { createStyles } from '../theme/createStyles';
6
6
  import { Steps } from '../molecules/Steps';
7
7
  import { Button } from '../atoms/Button';
8
+ import { Transition } from '../atoms/Transition';
8
9
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
10
  const useStyles = createStyles(theme => ({
10
11
  container: {
@@ -46,6 +47,7 @@ export function Wizard({
46
47
  nextLabel = 'Next',
47
48
  finishLabel = 'Finish',
48
49
  scrollableContent = true,
50
+ animated = true,
49
51
  style
50
52
  }) {
51
53
  const styles = useStyles();
@@ -64,6 +66,15 @@ export function Wizard({
64
66
  label,
65
67
  description
66
68
  })), [steps]);
69
+
70
+ // El ref todavía guarda el paso anterior durante el render que trae el nuevo.
71
+ const previous = useRef(current);
72
+ const forward = current >= previous.current;
73
+ const entered = useRef(false);
74
+ useEffect(() => {
75
+ previous.current = current;
76
+ entered.current = true;
77
+ }, [current]);
67
78
  const activeStep = steps[current];
68
79
  const isFirst = current === 0;
69
80
  const isLast = current === steps.length - 1;
@@ -71,6 +82,15 @@ export function Wizard({
71
82
  const handleNext = () => {
72
83
  if (isLast) onFinish?.();else goTo(current + 1);
73
84
  };
85
+
86
+ // El paso saliente no se anima: mantener los dos montados a la vez duplicaría
87
+ // los formularios y su estado.
88
+ const renderContent = () => animated ? /*#__PURE__*/_jsx(Transition, {
89
+ testID: "wizard-step",
90
+ preset: ['fade', forward ? 'slide-left' : 'slide-right'],
91
+ appear: entered.current,
92
+ children: activeStep?.content
93
+ }, current) : activeStep?.content;
74
94
  return /*#__PURE__*/_jsxs(View, {
75
95
  style: [styles.container, style],
76
96
  children: [/*#__PURE__*/_jsx(Steps, {
@@ -83,15 +103,16 @@ export function Wizard({
83
103
  ,
84
104
  onStepPress: allowStepNavigation ? index => index < current && goTo(index) : undefined
85
105
  }), scrollableContent ? /*#__PURE__*/_jsx(ScrollView, {
106
+ testID: "wizard-content",
86
107
  style: styles.content,
87
108
  contentContainerStyle: styles.contentInner,
88
109
  keyboardShouldPersistTaps: "handled",
89
110
  automaticallyAdjustKeyboardInsets: true,
90
111
  showsVerticalScrollIndicator: false,
91
- children: activeStep?.content
112
+ children: renderContent()
92
113
  }) : /*#__PURE__*/_jsx(View, {
93
114
  style: styles.content,
94
- children: activeStep?.content
115
+ children: renderContent()
95
116
  }), /*#__PURE__*/_jsxs(View, {
96
117
  style: styles.footer,
97
118
  children: [!isFirst && /*#__PURE__*/_jsx(Button, {
@@ -1 +1 @@
1
- {"version":3,"names":["React","useCallback","useMemo","useState","ScrollView","View","createStyles","Steps","Button","jsx","_jsx","jsxs","_jsxs","useStyles","theme","container","flex","gap","tokens","spacing","xl","content","contentInner","flexGrow","paddingBottom","sm","footer","flexDirection","md","footerButton","Wizard","steps","current","controlledCurrent","onStepChange","onFinish","orientation","completedIndicator","allowStepNavigation","backLabel","nextLabel","finishLabel","scrollableContent","style","styles","uncontrolled","setUncontrolled","isControlled","undefined","goTo","index","clamped","Math","max","min","length","stepItems","map","label","description","activeStep","isFirst","isLast","canGoNext","handleNext","children","onStepPress","contentContainerStyle","keyboardShouldPersistTaps","automaticallyAdjustKeyboardInsets","showsVerticalScrollIndicator","title","variant","onPress","disabled"],"sourceRoot":"../../../src","sources":["organisms/Wizard.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useCallback","useEffect","useMemo","useRef","useState","ScrollView","View","createStyles","Steps","Button","Transition","jsx","_jsx","jsxs","_jsxs","useStyles","theme","container","flex","gap","tokens","spacing","xl","content","contentInner","flexGrow","paddingBottom","sm","footer","flexDirection","md","footerButton","Wizard","steps","current","controlledCurrent","onStepChange","onFinish","orientation","completedIndicator","allowStepNavigation","backLabel","nextLabel","finishLabel","scrollableContent","animated","style","styles","uncontrolled","setUncontrolled","isControlled","undefined","goTo","index","clamped","Math","max","min","length","stepItems","map","label","description","previous","forward","entered","activeStep","isFirst","isLast","canGoNext","handleNext","renderContent","testID","preset","appear","children","onStepPress","contentContainerStyle","keyboardShouldPersistTaps","automaticallyAdjustKeyboardInsets","showsVerticalScrollIndicator","title","variant","onPress","disabled"],"sourceRoot":"../../../src","sources":["organisms/Wizard.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Puente entre el proveedor montado y el código que no es un componente
5
+ * (servicios, capa de API, interceptores). El proveedor se registra al montar y
6
+ * se borra al desmontar, así que fuera del árbol nunca queda una referencia
7
+ * viva a un contexto muerto.
8
+ */
9
+
10
+ export function createImperativeBridge(providerName) {
11
+ let current = null;
12
+ return {
13
+ set: value => {
14
+ current = value;
15
+ },
16
+ get: () => {
17
+ if (!current && __DEV__) {
18
+ console.warn(`orn-ui: se llamó a la API imperativa sin un <${providerName}> montado. La llamada se ignoró.`);
19
+ }
20
+ return current;
21
+ }
22
+ };
23
+ }
24
+ //# sourceMappingURL=imperativeBridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createImperativeBridge","providerName","current","set","value","get","__DEV__","console","warn"],"sourceRoot":"../../../src","sources":["organisms/imperativeBridge.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;;AAMA,OAAO,SAASA,sBAAsBA,CAAIC,YAAoB,EAAuB;EACnF,IAAIC,OAAiB,GAAG,IAAI;EAE5B,OAAO;IACLC,GAAG,EAAGC,KAAK,IAAK;MACdF,OAAO,GAAGE,KAAK;IACjB,CAAC;IACDC,GAAG,EAAEA,CAAA,KAAM;MACT,IAAI,CAACH,OAAO,IAAII,OAAO,EAAE;QACvBC,OAAO,CAACC,IAAI,CACV,gDAAgDP,YAAY,kCAC9D,CAAC;MACH;MACA,OAAOC,OAAO;IAChB;EACF,CAAC;AACH","ignoreList":[]}
@@ -4,13 +4,15 @@ export { Modal } from './Modal';
4
4
  export { BottomSheet } from './BottomSheet';
5
5
  export { Select } from './Select';
6
6
  export { Alert } from './Alert';
7
- export { AlertProvider, useAlert } from './AlertProvider';
7
+ export { AlertProvider, useAlert, showAlert, showConfirm, hideAlert } from './AlertProvider';
8
8
  export { Screen } from './Screen';
9
9
  export { List } from './List';
10
10
  export { SearchList } from './SearchList';
11
11
  export { Toast } from './Toast';
12
- export { ToastProvider, useToast } from './ToastProvider';
12
+ export { ToastProvider, useToast, showToast, hideToast, hideAllToasts } from './ToastProvider';
13
13
  export { DatePicker, buildMonthGrid, DEFAULT_MONTH_NAMES, DEFAULT_WEEKDAY_NAMES } from './DatePicker';
14
14
  export { DateField } from './DateField';
15
15
  export { Wizard } from './Wizard';
16
+ export { ThemeToggle } from './ThemeToggle';
17
+ export { NavigationBar } from './NavigationBar';
16
18
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Modal","BottomSheet","Select","Alert","AlertProvider","useAlert","Screen","List","SearchList","Toast","ToastProvider","useToast","DatePicker","buildMonthGrid","DEFAULT_MONTH_NAMES","DEFAULT_WEEKDAY_NAMES","DateField","Wizard"],"sourceRoot":"../../../src","sources":["organisms/index.ts"],"mappings":";;AAAA,SAASA,KAAK,QAAQ,SAAS;AAE/B,SAASC,WAAW,QAAQ,eAAe;AAE3C,SAASC,MAAM,QAAQ,UAAU;AAEjC,SAASC,KAAK,QAAQ,SAAS;AAE/B,SAASC,aAAa,EAAEC,QAAQ,QAAQ,iBAAiB;AAEzD,SAASC,MAAM,QAAQ,UAAU;AAEjC,SAASC,IAAI,QAAQ,QAAQ;AAE7B,SAASC,UAAU,QAAQ,cAAc;AAEzC,SAASC,KAAK,QAAQ,SAAS;AAE/B,SAASC,aAAa,EAAEC,QAAQ,QAAQ,iBAAiB;AAEzD,SAASC,UAAU,EAAEC,cAAc,EAAEC,mBAAmB,EAAEC,qBAAqB,QAAQ,cAAc;AAErG,SAASC,SAAS,QAAQ,aAAa;AAEvC,SAASC,MAAM,QAAQ,UAAU","ignoreList":[]}
1
+ {"version":3,"names":["Modal","BottomSheet","Select","Alert","AlertProvider","useAlert","showAlert","showConfirm","hideAlert","Screen","List","SearchList","Toast","ToastProvider","useToast","showToast","hideToast","hideAllToasts","DatePicker","buildMonthGrid","DEFAULT_MONTH_NAMES","DEFAULT_WEEKDAY_NAMES","DateField","Wizard","ThemeToggle","NavigationBar"],"sourceRoot":"../../../src","sources":["organisms/index.ts"],"mappings":";;AAAA,SAASA,KAAK,QAAQ,SAAS;AAE/B,SAASC,WAAW,QAAQ,eAAe;AAE3C,SAASC,MAAM,QAAQ,UAAU;AAEjC,SAASC,KAAK,QAAQ,SAAS;AAE/B,SAASC,aAAa,EAAEC,QAAQ,EAAEC,SAAS,EAAEC,WAAW,EAAEC,SAAS,QAAQ,iBAAiB;AAE5F,SAASC,MAAM,QAAQ,UAAU;AAEjC,SAASC,IAAI,QAAQ,QAAQ;AAE7B,SAASC,UAAU,QAAQ,cAAc;AAEzC,SAASC,KAAK,QAAQ,SAAS;AAE/B,SAASC,aAAa,EAAEC,QAAQ,EAAEC,SAAS,EAAEC,SAAS,EAAEC,aAAa,QAAQ,iBAAiB;AAE9F,SAASC,UAAU,EAAEC,cAAc,EAAEC,mBAAmB,EAAEC,qBAAqB,QAAQ,cAAc;AAErG,SAASC,SAAS,QAAQ,aAAa;AAEvC,SAASC,MAAM,QAAQ,UAAU;AAEjC,SAASC,WAAW,QAAQ,eAAe;AAE3C,SAASC,aAAa,QAAQ,iBAAiB","ignoreList":[]}
@@ -0,0 +1,194 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Utilidades de color sin dependencias, usadas para derivar una familia de
5
+ * roles (relleno / encima / tenue / legible) a partir de un solo hex de marca.
6
+ */
7
+
8
+ /** Contraste mínimo AA para texto normal. */
9
+ export const AA_CONTRAST = 4.5;
10
+
11
+ /** Roles que necesita un acento del theme, en un esquema concreto. */
12
+
13
+ const HEX = /^#?([0-9a-f]{3}|[0-9a-f]{6})$/i;
14
+ export function hexToRgb(hex) {
15
+ const match = HEX.exec(hex.trim());
16
+ if (!match) {
17
+ throw new Error(`orn-ui: se esperaba un color hex como "#7c3aed", se recibió "${hex}".`);
18
+ }
19
+ const digits = match[1];
20
+ const full = digits.length === 3 ? digits.replace(/./g, c => c + c) : digits;
21
+ return {
22
+ r: parseInt(full.slice(0, 2), 16),
23
+ g: parseInt(full.slice(2, 4), 16),
24
+ b: parseInt(full.slice(4, 6), 16)
25
+ };
26
+ }
27
+ const toHexPair = value => Math.round(clamp(value, 0, 255)).toString(16).padStart(2, '0');
28
+ export function rgbToHex({
29
+ r,
30
+ g,
31
+ b
32
+ }) {
33
+ return `#${toHexPair(r)}${toHexPair(g)}${toHexPair(b)}`;
34
+ }
35
+ function clamp(value, min, max) {
36
+ return Math.min(max, Math.max(min, value));
37
+ }
38
+ export function rgbToHsl({
39
+ r,
40
+ g,
41
+ b
42
+ }) {
43
+ const rn = r / 255;
44
+ const gn = g / 255;
45
+ const bn = b / 255;
46
+ const max = Math.max(rn, gn, bn);
47
+ const min = Math.min(rn, gn, bn);
48
+ const delta = max - min;
49
+ const l = (max + min) / 2;
50
+ if (delta === 0) return {
51
+ h: 0,
52
+ s: 0,
53
+ l
54
+ };
55
+ const s = delta / (1 - Math.abs(2 * l - 1));
56
+ let h;
57
+ if (max === rn) h = (gn - bn) / delta % 6;else if (max === gn) h = (bn - rn) / delta + 2;else h = (rn - gn) / delta + 4;
58
+ h *= 60;
59
+ return {
60
+ h: h < 0 ? h + 360 : h,
61
+ s,
62
+ l
63
+ };
64
+ }
65
+ export function hslToRgb({
66
+ h,
67
+ s,
68
+ l
69
+ }) {
70
+ const c = (1 - Math.abs(2 * l - 1)) * s;
71
+ const hp = (h % 360 + 360) % 360 / 60;
72
+ const x = c * (1 - Math.abs(hp % 2 - 1));
73
+ const [r1, g1, b1] = hp < 1 ? [c, x, 0] : hp < 2 ? [x, c, 0] : hp < 3 ? [0, c, x] : hp < 4 ? [0, x, c] : hp < 5 ? [x, 0, c] : [c, 0, x];
74
+ const m = l - c / 2;
75
+ return {
76
+ r: (r1 + m) * 255,
77
+ g: (g1 + m) * 255,
78
+ b: (b1 + m) * 255
79
+ };
80
+ }
81
+ export function toHsl(hex) {
82
+ return rgbToHsl(hexToRgb(hex));
83
+ }
84
+ export function toHex(hsl) {
85
+ return rgbToHex(hslToRgb({
86
+ ...hsl,
87
+ s: clamp(hsl.s, 0, 1),
88
+ l: clamp(hsl.l, 0, 1)
89
+ }));
90
+ }
91
+ function channelLuminance(value) {
92
+ const c = value / 255;
93
+ return c <= 0.03928 ? c / 12.92 : ((c + 0.055) / 1.055) ** 2.4;
94
+ }
95
+
96
+ /** Luminancia relativa WCAG de un hex. */
97
+ export function luminance(hex) {
98
+ const {
99
+ r,
100
+ g,
101
+ b
102
+ } = hexToRgb(hex);
103
+ return 0.2126 * channelLuminance(r) + 0.7152 * channelLuminance(g) + 0.0722 * channelLuminance(b);
104
+ }
105
+
106
+ /** Ratio de contraste WCAG entre dos hex: 1 (igual) a 21 (blanco sobre negro). */
107
+ export function contrast(a, b) {
108
+ const la = luminance(a);
109
+ const lb = luminance(b);
110
+ return (Math.max(la, lb) + 0.05) / (Math.min(la, lb) + 0.05);
111
+ }
112
+
113
+ /**
114
+ * Blanco si alcanza el contraste AA —es lo que se espera encima de un relleno
115
+ * de color— y si no, el extremo que más contraste dé.
116
+ */
117
+ function bestOnColor(background, light, dark) {
118
+ if (contrast(background, light) >= AA_CONTRAST) return light;
119
+ return contrast(background, dark) >= contrast(background, light) ? dark : light;
120
+ }
121
+
122
+ /**
123
+ * Mueve la luminosidad del tono hasta alcanzar el contraste pedido contra
124
+ * `against`. Si ni el extremo llega —un amarillo puro sobre blanco, por
125
+ * ejemplo— devuelve el más contrastado que encontró en el camino.
126
+ */
127
+ function reachContrast(hsl, against, target, direction) {
128
+ const step = direction === 'darker' ? -0.02 : 0.02;
129
+ let best = toHex(hsl);
130
+ let bestRatio = contrast(best, against);
131
+ for (let l = hsl.l; l >= 0 && l <= 1; l += step) {
132
+ const candidate = toHex({
133
+ ...hsl,
134
+ l
135
+ });
136
+ const ratio = contrast(candidate, against);
137
+ if (ratio > bestRatio) {
138
+ best = candidate;
139
+ bestRatio = ratio;
140
+ }
141
+ if (ratio >= target) return candidate;
142
+ }
143
+ return best;
144
+ }
145
+
146
+ /**
147
+ * Deriva los cuatro roles de un acento a partir de un hex, para un esquema.
148
+ * `surface` es el fondo sobre el que tiene que leerse el rol `text`, así que
149
+ * cada esquema pasa el suyo.
150
+ */
151
+ export function deriveAccent(hex, scheme, surface) {
152
+ const hsl = toHsl(hex);
153
+ if (scheme === 'light') {
154
+ const base = toHex(hsl);
155
+ return {
156
+ base,
157
+ on: bestOnColor(base, '#ffffff', '#1a1a1a'),
158
+ soft: toHex({
159
+ h: hsl.h,
160
+ s: Math.min(hsl.s, 0.85),
161
+ l: 0.94
162
+ }),
163
+ text: reachContrast({
164
+ ...hsl,
165
+ l: Math.min(hsl.l, 0.38)
166
+ }, surface, AA_CONTRAST, 'darker')
167
+ };
168
+ }
169
+
170
+ // En oscuro el acento sube de luminosidad y lo que va encima baja: un
171
+ // #004cef sobre #1e1e1e no se distingue del fondo.
172
+ const base = toHex({
173
+ ...hsl,
174
+ l: 0.72
175
+ });
176
+ return {
177
+ base,
178
+ on: bestOnColor(base, '#ffffff', toHex({
179
+ ...hsl,
180
+ s: Math.min(hsl.s, 0.9),
181
+ l: 0.16
182
+ })),
183
+ soft: toHex({
184
+ h: hsl.h,
185
+ s: Math.min(hsl.s, 0.35),
186
+ l: 0.18
187
+ }),
188
+ text: reachContrast({
189
+ ...hsl,
190
+ l: Math.max(hsl.l, 0.74)
191
+ }, surface, AA_CONTRAST, 'lighter')
192
+ };
193
+ }
194
+ //# sourceMappingURL=colors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["AA_CONTRAST","HEX","hexToRgb","hex","match","exec","trim","Error","digits","full","length","replace","c","r","parseInt","slice","g","b","toHexPair","value","Math","round","clamp","toString","padStart","rgbToHex","min","max","rgbToHsl","rn","gn","bn","delta","l","h","s","abs","hslToRgb","hp","x","r1","g1","b1","m","toHsl","toHex","hsl","channelLuminance","luminance","contrast","a","la","lb","bestOnColor","background","light","dark","reachContrast","against","target","direction","step","best","bestRatio","candidate","ratio","deriveAccent","scheme","surface","base","on","soft","text"],"sourceRoot":"../../../src","sources":["theme/colors.ts"],"mappings":"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","ignoreList":[]}
@@ -2,6 +2,7 @@
2
2
 
3
3
  import { lightPalette, darkPalette } from './palettes';
4
4
  import { tokens as defaultTokens } from './tokens';
5
+ import { deriveAccent } from './colors';
5
6
  function mergeDeep(base, patch) {
6
7
  if (!patch) return base;
7
8
  const out = {
@@ -18,21 +19,43 @@ function mergeDeep(base, patch) {
18
19
  }
19
20
  return out;
20
21
  }
22
+ const capitalize = name => name.charAt(0).toUpperCase() + name.slice(1);
23
+
24
+ /** Expande cada hex de `brand` a los cuatro roles del acento en un esquema. */
25
+ function brandColors(brand, scheme, palette) {
26
+ if (!brand) return {};
27
+ const accents = typeof brand === 'string' ? {
28
+ primary: brand
29
+ } : brand;
30
+ const out = {};
31
+ for (const [name, hex] of Object.entries(accents)) {
32
+ if (!hex) continue;
33
+ const roles = deriveAccent(hex, scheme, palette.surface);
34
+ out[name] = roles.base;
35
+ out[`on${capitalize(name)}`] = roles.on;
36
+ out[`${name}Soft`] = roles.soft;
37
+ out[`${name}Text`] = roles.text;
38
+ }
39
+ return out;
40
+ }
21
41
 
22
42
  /**
23
43
  * Construye el par de themes light/dark que consume <UIProvider theme={...}>.
24
44
  * Nunca muta los defaults: cada llamada produce objetos nuevos, seguros de
25
45
  * compartir entre providers distintos (tests, multi-brand en el mismo árbol).
46
+ *
47
+ * `brand` se aplica antes que `colors`, así que un rol escrito a mano siempre
48
+ * gana sobre el derivado.
26
49
  */
27
50
  export function createTheme(overrides) {
28
51
  const tokens = mergeDeep(defaultTokens, overrides?.tokens);
29
52
  const light = {
30
- colors: mergeDeep(lightPalette, overrides?.colors?.light),
53
+ colors: mergeDeep(mergeDeep(lightPalette, brandColors(overrides?.brand, 'light', lightPalette)), overrides?.colors?.light),
31
54
  tokens,
32
55
  scheme: 'light'
33
56
  };
34
57
  const dark = {
35
- colors: mergeDeep(darkPalette, overrides?.colors?.dark),
58
+ colors: mergeDeep(mergeDeep(darkPalette, brandColors(overrides?.brand, 'dark', darkPalette)), overrides?.colors?.dark),
36
59
  tokens,
37
60
  scheme: 'dark'
38
61
  };