@compsych-ui-components/react-native 4.0.4 → 4.0.14

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 (172) hide show
  1. package/package.json +22 -14
  2. package/src/components/ActionSheet/index.d.ts +16 -0
  3. package/src/components/ActionSheet/index.js +256 -0
  4. package/src/components/ActionSheet/index.js.map +1 -0
  5. package/src/components/Alert/index.d.ts +24 -0
  6. package/src/components/Alert/index.js +304 -0
  7. package/src/components/Alert/index.js.map +1 -0
  8. package/src/components/Avatar/index.d.ts +22 -0
  9. package/src/components/Avatar/index.js +253 -0
  10. package/src/components/Avatar/index.js.map +1 -0
  11. package/src/components/Badge/index.d.ts +12 -0
  12. package/src/components/Badge/index.js +206 -0
  13. package/src/components/Badge/index.js.map +1 -0
  14. package/src/components/BodyText/index.d.ts +9 -0
  15. package/src/components/BodyText/index.js +58 -0
  16. package/src/components/BodyText/index.js.map +1 -0
  17. package/src/components/Breadcrumb/index.d.ts +24 -0
  18. package/src/components/Breadcrumb/index.js +194 -0
  19. package/src/components/Breadcrumb/index.js.map +1 -0
  20. package/src/components/Button/index.d.ts +16 -0
  21. package/src/components/Button/index.js +260 -0
  22. package/src/components/Button/index.js.map +1 -0
  23. package/src/components/Checkbox/index.d.ts +16 -0
  24. package/src/components/Checkbox/index.js +196 -0
  25. package/src/components/Checkbox/index.js.map +1 -0
  26. package/src/components/Chip/index.d.ts +18 -0
  27. package/src/components/Chip/index.js +280 -0
  28. package/src/components/Chip/index.js.map +1 -0
  29. package/src/components/Divider/index.d.ts +11 -0
  30. package/src/components/Divider/index.js +59 -0
  31. package/src/components/Divider/index.js.map +1 -0
  32. package/src/components/EmptyState/index.d.ts +25 -0
  33. package/src/components/EmptyState/index.js +376 -0
  34. package/src/components/EmptyState/index.js.map +1 -0
  35. package/src/components/HeaderText/index.d.ts +9 -0
  36. package/src/components/HeaderText/index.js +62 -0
  37. package/src/components/HeaderText/index.js.map +1 -0
  38. package/src/components/Input/index.d.ts +13 -0
  39. package/src/components/Input/index.js +231 -0
  40. package/src/components/Input/index.js.map +1 -0
  41. package/src/components/List/index.d.ts +19 -0
  42. package/src/components/List/index.js +170 -0
  43. package/src/components/List/index.js.map +1 -0
  44. package/src/components/Pagination/index.d.ts +15 -0
  45. package/src/components/Pagination/index.js +322 -0
  46. package/src/components/Pagination/index.js.map +1 -0
  47. package/src/components/PlanCard/index.d.ts +27 -0
  48. package/src/components/PlanCard/index.js +364 -0
  49. package/src/components/PlanCard/index.js.map +1 -0
  50. package/src/components/ProgressTracker/index.d.ts +26 -0
  51. package/src/components/ProgressTracker/index.js +180 -0
  52. package/src/components/ProgressTracker/index.js.map +1 -0
  53. package/src/components/PromotionCard/index.d.ts +23 -0
  54. package/src/components/PromotionCard/index.js +496 -0
  55. package/src/components/PromotionCard/index.js.map +1 -0
  56. package/src/components/RadioButton/index.d.ts +15 -0
  57. package/src/components/RadioButton/index.js +188 -0
  58. package/src/components/RadioButton/index.js.map +1 -0
  59. package/src/components/ScreenContainer/index.d.ts +15 -0
  60. package/src/components/ScreenContainer/index.js +43 -0
  61. package/src/components/ScreenContainer/index.js.map +1 -0
  62. package/src/components/SegmentedControl/index.d.ts +16 -0
  63. package/src/components/SegmentedControl/index.js +115 -0
  64. package/src/components/SegmentedControl/index.js.map +1 -0
  65. package/src/components/SelectionCard/index.d.ts +16 -0
  66. package/src/components/SelectionCard/index.js +222 -0
  67. package/src/components/SelectionCard/index.js.map +1 -0
  68. package/src/components/ServiceCard/index.d.ts +22 -0
  69. package/src/components/ServiceCard/index.js +385 -0
  70. package/src/components/ServiceCard/index.js.map +1 -0
  71. package/src/components/Slider/index.d.ts +24 -0
  72. package/src/components/Slider/index.js +320 -0
  73. package/src/components/Slider/index.js.map +1 -0
  74. package/src/components/Snackbar/index.d.ts +13 -0
  75. package/src/components/Snackbar/index.js +229 -0
  76. package/src/components/Snackbar/index.js.map +1 -0
  77. package/src/components/Switch/index.d.ts +14 -0
  78. package/src/components/Switch/index.js +221 -0
  79. package/src/components/Switch/index.js.map +1 -0
  80. package/src/components/Tooltip/index.d.ts +21 -0
  81. package/src/components/Tooltip/index.js +206 -0
  82. package/src/components/Tooltip/index.js.map +1 -0
  83. package/src/icons/AtomIcon.d.ts +2 -0
  84. package/src/icons/AtomIcon.js +85 -0
  85. package/src/icons/AtomIcon.js.map +1 -0
  86. package/src/icons/BinocularsIcon.d.ts +2 -0
  87. package/src/icons/BinocularsIcon.js +103 -0
  88. package/src/icons/BinocularsIcon.js.map +1 -0
  89. package/src/icons/FileChartColumnIncreasingIcon.d.ts +2 -0
  90. package/src/icons/FileChartColumnIncreasingIcon.js +97 -0
  91. package/src/icons/FileChartColumnIncreasingIcon.js.map +1 -0
  92. package/src/icons/FlagIcon.d.ts +2 -0
  93. package/src/icons/FlagIcon.js +71 -0
  94. package/src/icons/FlagIcon.js.map +1 -0
  95. package/src/icons/GlobeIcon.d.ts +2 -0
  96. package/src/icons/GlobeIcon.js +71 -0
  97. package/src/icons/GlobeIcon.js.map +1 -0
  98. package/src/icons/GraduationCapIcon.d.ts +2 -0
  99. package/src/icons/GraduationCapIcon.js +85 -0
  100. package/src/icons/GraduationCapIcon.js.map +1 -0
  101. package/src/icons/HandHeartIcon.d.ts +2 -0
  102. package/src/icons/HandHeartIcon.js +91 -0
  103. package/src/icons/HandHeartIcon.js.map +1 -0
  104. package/src/icons/HandshakeIcon.d.ts +2 -0
  105. package/src/icons/HandshakeIcon.js +97 -0
  106. package/src/icons/HandshakeIcon.js.map +1 -0
  107. package/src/icons/HazeIcon.d.ts +2 -0
  108. package/src/icons/HazeIcon.js +115 -0
  109. package/src/icons/HazeIcon.js.map +1 -0
  110. package/src/icons/HeartHandshakeIcon.d.ts +2 -0
  111. package/src/icons/HeartHandshakeIcon.js +71 -0
  112. package/src/icons/HeartHandshakeIcon.js.map +1 -0
  113. package/src/icons/HourglassIcon.d.ts +2 -0
  114. package/src/icons/HourglassIcon.js +91 -0
  115. package/src/icons/HourglassIcon.js.map +1 -0
  116. package/src/icons/IdCardIcon.d.ts +2 -0
  117. package/src/icons/IdCardIcon.js +97 -0
  118. package/src/icons/IdCardIcon.js.map +1 -0
  119. package/src/icons/MessageCirclePlusIcon.d.ts +2 -0
  120. package/src/icons/MessageCirclePlusIcon.js +85 -0
  121. package/src/icons/MessageCirclePlusIcon.js.map +1 -0
  122. package/src/icons/MountainSnowIcon.d.ts +2 -0
  123. package/src/icons/MountainSnowIcon.js +79 -0
  124. package/src/icons/MountainSnowIcon.js.map +1 -0
  125. package/src/icons/SnowflakeIcon.d.ts +2 -0
  126. package/src/icons/SnowflakeIcon.js +139 -0
  127. package/src/icons/SnowflakeIcon.js.map +1 -0
  128. package/src/icons/StethoscopeIcon.d.ts +2 -0
  129. package/src/icons/StethoscopeIcon.js +97 -0
  130. package/src/icons/StethoscopeIcon.js.map +1 -0
  131. package/src/icons/UserRoundIcon.d.ts +2 -0
  132. package/src/icons/UserRoundIcon.js +79 -0
  133. package/src/icons/UserRoundIcon.js.map +1 -0
  134. package/src/icons/WheatIcon.d.ts +2 -0
  135. package/src/icons/WheatIcon.js +115 -0
  136. package/src/icons/WheatIcon.js.map +1 -0
  137. package/src/icons/index.d.ts +22 -0
  138. package/src/icons/index.js +109 -0
  139. package/src/icons/index.js.map +1 -0
  140. package/src/icons/types.d.ts +16 -0
  141. package/src/icons/types.js +52 -0
  142. package/src/icons/types.js.map +1 -0
  143. package/src/index.d.ts +60 -2
  144. package/src/index.js +197 -5
  145. package/src/index.js.map +1 -1
  146. package/src/theme/ThemeContext.d.ts +258 -0
  147. package/src/theme/ThemeContext.js +15 -0
  148. package/src/theme/ThemeContext.js.map +1 -0
  149. package/src/theme/ThemeProvider.d.ts +27 -0
  150. package/src/theme/ThemeProvider.js +66 -0
  151. package/src/theme/ThemeProvider.js.map +1 -0
  152. package/src/theme/defaultTheme.d.ts +13 -0
  153. package/src/theme/defaultTheme.js +14 -0
  154. package/src/theme/defaultTheme.js.map +1 -0
  155. package/src/theme/index.d.ts +5 -0
  156. package/src/theme/index.js +26 -0
  157. package/src/theme/index.js.map +1 -0
  158. package/src/theme/mergeTheme.d.ts +7 -0
  159. package/src/theme/mergeTheme.js +40 -0
  160. package/src/theme/mergeTheme.js.map +1 -0
  161. package/src/theme/types.d.ts +25 -0
  162. package/src/theme/types.js +6 -0
  163. package/src/theme/types.js.map +1 -0
  164. package/src/theme/useTheme.d.ts +10 -0
  165. package/src/theme/useTheme.js +17 -0
  166. package/src/theme/useTheme.js.map +1 -0
  167. package/src/tokens.d.ts +253 -0
  168. package/src/tokens.js +265 -0
  169. package/src/tokens.js.map +1 -0
  170. package/src/lib/button.d.ts +0 -7
  171. package/src/lib/button.js +0 -58
  172. package/src/lib/button.js.map +0 -1
@@ -0,0 +1,258 @@
1
+ /**
2
+ * Provides the active resolved theme to all components.
3
+ * Default value is the GuidanceNow theme so components render correctly
4
+ * even when no ThemeProvider is present in the tree.
5
+ */
6
+ export declare const ThemeContext: import("react").Context<{
7
+ colorRoles: {
8
+ accent: {
9
+ primary: {
10
+ sysPrimary: string;
11
+ sysOnPrimary: string;
12
+ sysPrimaryContainer: string;
13
+ };
14
+ };
15
+ addOn: {
16
+ primaryFixed: {
17
+ sysOnPrimaryFixed: string;
18
+ sysOnPrimaryFixedVariant: string;
19
+ sysPrimaryFixedDim: string;
20
+ };
21
+ };
22
+ custom: {
23
+ info: {
24
+ sysInfo: string;
25
+ sysInfoContainer: string;
26
+ sysOnInfo: string;
27
+ sysOnInfoContainer: string;
28
+ };
29
+ success: {
30
+ sysSuccess: string;
31
+ sysSuccessContainer: string;
32
+ sysOnSuccess: string;
33
+ sysOnSuccessContainer: string;
34
+ };
35
+ warning: {
36
+ sysWarning: string;
37
+ sysWarningContainer: string;
38
+ sysOnWarning: string;
39
+ sysOnWarningContainer: string;
40
+ };
41
+ };
42
+ error: {
43
+ sysError: string;
44
+ sysErrorContainer: string;
45
+ sysOnError: string;
46
+ sysOnErrorContainer: string;
47
+ };
48
+ outline: {
49
+ sysOutline: string;
50
+ sysOutlineFixed: string;
51
+ sysOutlineVariant: string;
52
+ };
53
+ surface: {
54
+ surface: {
55
+ sysSurface: string;
56
+ sysOnSurface: string;
57
+ sysOnSurfaceVariant: string;
58
+ };
59
+ surfaceContainer: {
60
+ sysSurfaceContainerLowest: string;
61
+ sysSurfaceContainerLow: string;
62
+ sysSurfaceContainer: string;
63
+ sysSurfaceContainerHighest: string;
64
+ };
65
+ inverse: {
66
+ sysInverseSurface: string;
67
+ sysInverseOnSurface: string;
68
+ };
69
+ };
70
+ transparent: {
71
+ neutral: {
72
+ sysBlack10: string;
73
+ sysWhite10: string;
74
+ sysWhite20: string;
75
+ sysWhite80: string;
76
+ };
77
+ primary: {
78
+ sysPrimary08: string;
79
+ };
80
+ };
81
+ };
82
+ iconography: {
83
+ sysSizeXs: number;
84
+ sysSizeSm: number;
85
+ sysSizeMd: number;
86
+ sysSizeLg: number;
87
+ sysSizeXl: number;
88
+ };
89
+ dimensions: {
90
+ borderRadius: {
91
+ sysRadiusXs: number;
92
+ sysRadiusSm: number;
93
+ sysRadiusMd: number;
94
+ sysRadiusLg: number;
95
+ sysRadiusXl: number;
96
+ sysRadiusXxl: number;
97
+ sysRadiusFull: number;
98
+ };
99
+ borderWidth: {
100
+ sysStrokeThin: number;
101
+ sysStrokeMedium: number;
102
+ sysStrokeThick: number;
103
+ sysStrokeBold: number;
104
+ };
105
+ spacing: {
106
+ padding: {
107
+ sysPadding2: number;
108
+ sysPadding4: number;
109
+ sysPadding6: number;
110
+ sysPadding8: number;
111
+ sysPadding12: number;
112
+ sysPadding16: number;
113
+ sysPadding20: number;
114
+ sysPadding24: number;
115
+ sysPadding32: number;
116
+ sysPadding40: number;
117
+ sysPadding48: number;
118
+ };
119
+ };
120
+ };
121
+ typeScale: {
122
+ displayLarge: {
123
+ sysFontSize: number;
124
+ sysLineHeight: number;
125
+ sysTracking: number;
126
+ sysLetterSpacing: number;
127
+ sysFontWeight: string;
128
+ sysFontWeightEmphasized: string;
129
+ sysFontFamily: string;
130
+ };
131
+ displayMedium: {
132
+ sysFontSize: number;
133
+ sysLineHeight: number;
134
+ sysTracking: number;
135
+ sysLetterSpacing: number;
136
+ sysFontWeight: string;
137
+ sysFontWeightEmphasized: string;
138
+ sysFontFamily: string;
139
+ };
140
+ displaySmall: {
141
+ sysFontSize: number;
142
+ sysLineHeight: number;
143
+ sysTracking: number;
144
+ sysLetterSpacing: number;
145
+ sysFontWeight: string;
146
+ sysFontWeightEmphasized: string;
147
+ sysFontFamily: string;
148
+ };
149
+ headlineLarge: {
150
+ sysFontSize: number;
151
+ sysLineHeight: number;
152
+ sysTracking: number;
153
+ sysLetterSpacing: number;
154
+ sysFontWeight: string;
155
+ sysFontWeightEmphasized: string;
156
+ sysFontFamily: string;
157
+ };
158
+ headlineMedium: {
159
+ sysFontSize: number;
160
+ sysLineHeight: number;
161
+ sysTracking: number;
162
+ sysLetterSpacing: number;
163
+ sysFontWeight: string;
164
+ sysFontWeightEmphasized: string;
165
+ sysFontFamily: string;
166
+ };
167
+ headlineSmall: {
168
+ sysFontSize: number;
169
+ sysLineHeight: number;
170
+ sysTracking: number;
171
+ sysLetterSpacing: number;
172
+ sysFontWeight: string;
173
+ sysFontWeightEmphasized: string;
174
+ sysFontFamily: string;
175
+ };
176
+ titleLarge: {
177
+ sysFontSize: number;
178
+ sysLineHeight: number;
179
+ sysTracking: number;
180
+ sysLetterSpacing: number;
181
+ sysFontWeight: string;
182
+ sysFontWeightEmphasized: string;
183
+ sysFontFamily: string;
184
+ };
185
+ titleMedium: {
186
+ sysFontSize: number;
187
+ sysLineHeight: number;
188
+ sysTracking: number;
189
+ sysLetterSpacing: number;
190
+ sysFontWeight: string;
191
+ sysFontWeightEmphasized: string;
192
+ sysFontFamily: string;
193
+ };
194
+ titleSmall: {
195
+ sysFontSize: number;
196
+ sysLineHeight: number;
197
+ sysTracking: number;
198
+ sysLetterSpacing: number;
199
+ sysFontWeight: string;
200
+ sysFontWeightEmphasized: string;
201
+ sysFontFamily: string;
202
+ };
203
+ bodyLarge: {
204
+ sysFontSize: number;
205
+ sysLineHeight: number;
206
+ sysTracking: number;
207
+ sysLetterSpacing: number;
208
+ sysFontWeight: string;
209
+ sysFontWeightEmphasized: string;
210
+ sysFontFamily: string;
211
+ };
212
+ bodyMedium: {
213
+ sysFontSize: number;
214
+ sysLineHeight: number;
215
+ sysTracking: number;
216
+ sysLetterSpacing: number;
217
+ sysFontWeight: string;
218
+ sysFontWeightEmphasized: string;
219
+ sysFontFamily: string;
220
+ };
221
+ bodySmall: {
222
+ sysFontSize: number;
223
+ sysLineHeight: number;
224
+ sysTracking: number;
225
+ sysLetterSpacing: number;
226
+ sysFontWeight: string;
227
+ sysFontWeightEmphasized: string;
228
+ sysFontFamily: string;
229
+ };
230
+ labelLarge: {
231
+ sysFontSize: number;
232
+ sysLineHeight: number;
233
+ sysTracking: number;
234
+ sysLetterSpacing: number;
235
+ sysFontWeight: string;
236
+ sysFontWeightEmphasized: string;
237
+ sysFontFamily: string;
238
+ };
239
+ labelMedium: {
240
+ sysFontSize: number;
241
+ sysLineHeight: number;
242
+ sysTracking: number;
243
+ sysLetterSpacing: number;
244
+ sysFontWeight: string;
245
+ sysFontWeightEmphasized: string;
246
+ sysFontFamily: string;
247
+ };
248
+ labelSmall: {
249
+ sysFontSize: number;
250
+ sysLineHeight: number;
251
+ sysTracking: number;
252
+ sysLetterSpacing: number;
253
+ sysFontWeight: string;
254
+ sysFontWeightEmphasized: string;
255
+ sysFontFamily: string;
256
+ };
257
+ };
258
+ }>;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "ThemeContext", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return ThemeContext;
9
+ }
10
+ });
11
+ const _react = require("react");
12
+ const _tokens = require("../tokens");
13
+ const ThemeContext = (0, _react.createContext)(_tokens.sys);
14
+
15
+ //# sourceMappingURL=ThemeContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../packages/react-native/src/theme/ThemeContext.ts"],"sourcesContent":["import { createContext } from 'react';\r\n\r\nimport { sys } from '../tokens';\r\nimport type { Theme } from './types';\r\n\r\n/**\r\n * Provides the active resolved theme to all components.\r\n * Default value is the GuidanceNow theme so components render correctly\r\n * even when no ThemeProvider is present in the tree.\r\n */\r\nexport const ThemeContext = createContext<Theme>(sys as unknown as Theme);\r\n"],"names":["ThemeContext","createContext","sys"],"mappings":";;;;+BAUaA;;;eAAAA;;;uBAViB;wBAEV;AAQb,MAAMA,eAAeC,IAAAA,oBAAa,EAAQC,WAAG"}
@@ -0,0 +1,27 @@
1
+ import React from 'react';
2
+ import type { ThemeOverride } from './types';
3
+ export interface ThemeProviderProps {
4
+ /**
5
+ * Optional partial theme override. Keys present here replace the
6
+ * corresponding GuidanceNow default values; all other tokens keep their
7
+ * defaults. Pass `undefined` (or omit this prop) to use the GuidanceNow
8
+ * theme unchanged.
9
+ */
10
+ theme?: ThemeOverride;
11
+ children: React.ReactNode;
12
+ }
13
+ /**
14
+ * Wraps your application (or a subtree) and provides a resolved theme to all
15
+ * `@compsych/mobile-ui` components beneath it.
16
+ *
17
+ * @example — default GuidanceNow theme
18
+ * <ThemeProvider>
19
+ * <App />
20
+ * </ThemeProvider>
21
+ *
22
+ * @example — custom brand override
23
+ * <ThemeProvider theme={{ colorRoles: { accent: { primary: { sysPrimary: '#c00000' } } } }}>
24
+ * <App />
25
+ * </ThemeProvider>
26
+ */
27
+ export declare function ThemeProvider({ theme, children }: ThemeProviderProps): React.JSX.Element;
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "ThemeProvider", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return ThemeProvider;
9
+ }
10
+ });
11
+ const _jsxruntime = require("react/jsx-runtime");
12
+ const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
13
+ const _ThemeContext = require("./ThemeContext");
14
+ const _mergeTheme = require("./mergeTheme");
15
+ function _getRequireWildcardCache(nodeInterop) {
16
+ if (typeof WeakMap !== "function") return null;
17
+ var cacheBabelInterop = new WeakMap();
18
+ var cacheNodeInterop = new WeakMap();
19
+ return (_getRequireWildcardCache = function(nodeInterop) {
20
+ return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
21
+ })(nodeInterop);
22
+ }
23
+ function _interop_require_wildcard(obj, nodeInterop) {
24
+ if (!nodeInterop && obj && obj.__esModule) {
25
+ return obj;
26
+ }
27
+ if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
28
+ return {
29
+ default: obj
30
+ };
31
+ }
32
+ var cache = _getRequireWildcardCache(nodeInterop);
33
+ if (cache && cache.has(obj)) {
34
+ return cache.get(obj);
35
+ }
36
+ var newObj = {
37
+ __proto__: null
38
+ };
39
+ var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
40
+ for(var key in obj){
41
+ if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
42
+ var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
43
+ if (desc && (desc.get || desc.set)) {
44
+ Object.defineProperty(newObj, key, desc);
45
+ } else {
46
+ newObj[key] = obj[key];
47
+ }
48
+ }
49
+ }
50
+ newObj.default = obj;
51
+ if (cache) {
52
+ cache.set(obj, newObj);
53
+ }
54
+ return newObj;
55
+ }
56
+ function ThemeProvider({ theme, children }) {
57
+ const resolvedTheme = (0, _react.useMemo)(()=>(0, _mergeTheme.mergeTheme)(theme), [
58
+ theme
59
+ ]);
60
+ return /*#__PURE__*/ (0, _jsxruntime.jsx)(_ThemeContext.ThemeContext.Provider, {
61
+ value: resolvedTheme,
62
+ children: children
63
+ });
64
+ }
65
+
66
+ //# sourceMappingURL=ThemeProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../packages/react-native/src/theme/ThemeProvider.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\r\n\r\nimport { ThemeContext } from './ThemeContext';\r\nimport { mergeTheme } from './mergeTheme';\r\nimport type { ThemeOverride } from './types';\r\n\r\nexport interface ThemeProviderProps {\r\n /**\r\n * Optional partial theme override. Keys present here replace the\r\n * corresponding GuidanceNow default values; all other tokens keep their\r\n * defaults. Pass `undefined` (or omit this prop) to use the GuidanceNow\r\n * theme unchanged.\r\n */\r\n theme?: ThemeOverride;\r\n children: React.ReactNode;\r\n}\r\n\r\n/**\r\n * Wraps your application (or a subtree) and provides a resolved theme to all\r\n * `@compsych/mobile-ui` components beneath it.\r\n *\r\n * @example — default GuidanceNow theme\r\n * <ThemeProvider>\r\n * <App />\r\n * </ThemeProvider>\r\n *\r\n * @example — custom brand override\r\n * <ThemeProvider theme={{ colorRoles: { accent: { primary: { sysPrimary: '#c00000' } } } }}>\r\n * <App />\r\n * </ThemeProvider>\r\n */\r\nexport function ThemeProvider({ theme, children }: ThemeProviderProps) {\r\n const resolvedTheme = useMemo(() => mergeTheme(theme), [theme]);\r\n\r\n return (\r\n <ThemeContext.Provider value={resolvedTheme}>\r\n {children}\r\n </ThemeContext.Provider>\r\n );\r\n}\r\n"],"names":["ThemeProvider","theme","children","resolvedTheme","useMemo","mergeTheme","ThemeContext","Provider","value"],"mappings":";;;;+BA+BgBA;;;eAAAA;;;;+DA/Be;8BAEF;4BACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BpB,SAASA,cAAc,EAAEC,KAAK,EAAEC,QAAQ,EAAsB;IACnE,MAAMC,gBAAgBC,IAAAA,cAAO,EAAC,IAAMC,IAAAA,sBAAU,EAACJ,QAAQ;QAACA;KAAM;IAE9D,qBACE,qBAACK,0BAAY,CAACC,QAAQ;QAACC,OAAOL;kBAC3BD;;AAGP"}
@@ -0,0 +1,13 @@
1
+ import type { Theme } from './types';
2
+ /**
3
+ * The GuidanceNow default theme — the full resolved token tree typed as `Theme`
4
+ * (widened, mutable types) so consumers can read individual values without a
5
+ * ThemeProvider in scope.
6
+ *
7
+ * @example
8
+ * import { defaultTheme } from '@compsych/mobile-ui';
9
+ *
10
+ * const primaryColor = defaultTheme.colorRoles.accent.primary.sysPrimary;
11
+ * const bodyFont = defaultTheme.typeScale.body.md.fontFamily;
12
+ */
13
+ export declare const defaultTheme: Theme;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "defaultTheme", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return defaultTheme;
9
+ }
10
+ });
11
+ const _tokens = require("../tokens");
12
+ const defaultTheme = _tokens.sys;
13
+
14
+ //# sourceMappingURL=defaultTheme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../packages/react-native/src/theme/defaultTheme.ts"],"sourcesContent":["import { sys } from '../tokens';\r\nimport type { Theme } from './types';\r\n\r\n/**\r\n * The GuidanceNow default theme — the full resolved token tree typed as `Theme`\r\n * (widened, mutable types) so consumers can read individual values without a\r\n * ThemeProvider in scope.\r\n *\r\n * @example\r\n * import { defaultTheme } from '@compsych/mobile-ui';\r\n *\r\n * const primaryColor = defaultTheme.colorRoles.accent.primary.sysPrimary;\r\n * const bodyFont = defaultTheme.typeScale.body.md.fontFamily;\r\n */\r\nexport const defaultTheme: Theme = sys as unknown as Theme;\r\n"],"names":["defaultTheme","sys"],"mappings":";;;;+BAcaA;;;eAAAA;;;wBAdO;AAcb,MAAMA,eAAsBC,WAAG"}
@@ -0,0 +1,5 @@
1
+ export { ThemeProvider } from './ThemeProvider';
2
+ export type { ThemeProviderProps } from './ThemeProvider';
3
+ export { useTheme } from './useTheme';
4
+ export type { Theme, ThemeOverride } from './types';
5
+ export { defaultTheme } from './defaultTheme';
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: Object.getOwnPropertyDescriptor(all, name).get
9
+ });
10
+ }
11
+ _export(exports, {
12
+ get ThemeProvider () {
13
+ return _ThemeProvider.ThemeProvider;
14
+ },
15
+ get defaultTheme () {
16
+ return _defaultTheme.defaultTheme;
17
+ },
18
+ get useTheme () {
19
+ return _useTheme.useTheme;
20
+ }
21
+ });
22
+ const _ThemeProvider = require("./ThemeProvider");
23
+ const _useTheme = require("./useTheme");
24
+ const _defaultTheme = require("./defaultTheme");
25
+
26
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../packages/react-native/src/theme/index.ts"],"sourcesContent":["export { ThemeProvider } from './ThemeProvider';\r\nexport type { ThemeProviderProps } from './ThemeProvider';\r\n\r\nexport { useTheme } from './useTheme';\r\n\r\nexport type { Theme, ThemeOverride } from './types';\r\n\r\nexport { defaultTheme } from './defaultTheme';\r\n"],"names":["ThemeProvider","defaultTheme","useTheme"],"mappings":";;;;;;;;;;;QAASA;eAAAA,4BAAa;;QAObC;eAAAA,0BAAY;;QAJZC;eAAAA,kBAAQ;;;+BAHa;0BAGL;8BAII"}
@@ -0,0 +1,7 @@
1
+ import type { Theme, ThemeOverride } from './types';
2
+ /**
3
+ * Deep-merges a partial ThemeOverride on top of the GuidanceNow defaults.
4
+ * Any key omitted from the override keeps its default value, so missing or
5
+ * invalid overrides can never break the UI.
6
+ */
7
+ export declare function mergeTheme(override?: ThemeOverride): Theme;
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "mergeTheme", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return mergeTheme;
9
+ }
10
+ });
11
+ const _tokens = require("../tokens");
12
+ function isPlainObject(value) {
13
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
14
+ }
15
+ function deepMerge(base, override) {
16
+ const result = {
17
+ ...base
18
+ };
19
+ for (const key of Object.keys(override)){
20
+ const overrideVal = override[key];
21
+ const baseVal = base[key];
22
+ if (overrideVal === undefined || overrideVal === null) {
23
+ continue;
24
+ }
25
+ if (isPlainObject(baseVal) && isPlainObject(overrideVal)) {
26
+ result[key] = deepMerge(baseVal, overrideVal);
27
+ } else {
28
+ result[key] = overrideVal;
29
+ }
30
+ }
31
+ return result;
32
+ }
33
+ function mergeTheme(override) {
34
+ if (!override) {
35
+ return _tokens.sys;
36
+ }
37
+ return deepMerge(_tokens.sys, override);
38
+ }
39
+
40
+ //# sourceMappingURL=mergeTheme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../packages/react-native/src/theme/mergeTheme.ts"],"sourcesContent":["import { sys } from '../tokens';\r\nimport type { Theme, ThemeOverride } from './types';\r\n\r\nfunction isPlainObject(value: unknown): value is Record<string, unknown> {\r\n return typeof value === 'object' && value !== null && !Array.isArray(value);\r\n}\r\n\r\nfunction deepMerge(\r\n base: Record<string, unknown>,\r\n override: Record<string, unknown>,\r\n): Record<string, unknown> {\r\n const result: Record<string, unknown> = { ...base };\r\n\r\n for (const key of Object.keys(override)) {\r\n const overrideVal = override[key];\r\n const baseVal = base[key];\r\n\r\n if (overrideVal === undefined || overrideVal === null) {\r\n // Ignore nullish overrides — preserve the default\r\n continue;\r\n }\r\n\r\n if (isPlainObject(baseVal) && isPlainObject(overrideVal)) {\r\n result[key] = deepMerge(baseVal, overrideVal);\r\n } else {\r\n result[key] = overrideVal;\r\n }\r\n }\r\n\r\n return result;\r\n}\r\n\r\n/**\r\n * Deep-merges a partial ThemeOverride on top of the GuidanceNow defaults.\r\n * Any key omitted from the override keeps its default value, so missing or\r\n * invalid overrides can never break the UI.\r\n */\r\nexport function mergeTheme(override?: ThemeOverride): Theme {\r\n if (!override) {\r\n return sys as unknown as Theme;\r\n }\r\n\r\n return deepMerge(\r\n sys as unknown as Record<string, unknown>,\r\n override as Record<string, unknown>,\r\n ) as Theme;\r\n}\r\n"],"names":["mergeTheme","isPlainObject","value","Array","isArray","deepMerge","base","override","result","key","Object","keys","overrideVal","baseVal","undefined","sys"],"mappings":";;;;+BAqCgBA;;;eAAAA;;;wBArCI;AAGpB,SAASC,cAAcC,KAAc;IACnC,OAAO,OAAOA,UAAU,YAAYA,UAAU,QAAQ,CAACC,MAAMC,OAAO,CAACF;AACvE;AAEA,SAASG,UACPC,IAA6B,EAC7BC,QAAiC;IAEjC,MAAMC,SAAkC;QAAE,GAAGF,IAAI;IAAC;IAElD,KAAK,MAAMG,OAAOC,OAAOC,IAAI,CAACJ,UAAW;QACvC,MAAMK,cAAcL,QAAQ,CAACE,IAAI;QACjC,MAAMI,UAAUP,IAAI,CAACG,IAAI;QAEzB,IAAIG,gBAAgBE,aAAaF,gBAAgB,MAAM;YAErD;QACF;QAEA,IAAIX,cAAcY,YAAYZ,cAAcW,cAAc;YACxDJ,MAAM,CAACC,IAAI,GAAGJ,UAAUQ,SAASD;QACnC,OAAO;YACLJ,MAAM,CAACC,IAAI,GAAGG;QAChB;IACF;IAEA,OAAOJ;AACT;AAOO,SAASR,WAAWO,QAAwB;IACjD,IAAI,CAACA,UAAU;QACb,OAAOQ,WAAG;IACZ;IAEA,OAAOV,UACLU,WAAG,EACHR;AAEJ"}
@@ -0,0 +1,25 @@
1
+ import { sys } from '../tokens';
2
+ type DeepWritable<T> = {
3
+ -readonly [P in keyof T]: DeepWritable<T[P]>;
4
+ };
5
+ type WidenLiterals<T> = T extends string ? string : T extends number ? number : T extends boolean ? boolean : T extends object ? {
6
+ [K in keyof T]: WidenLiterals<T[K]>;
7
+ } : T;
8
+ /** The full resolved theme object consumed by every component via useTheme(). */
9
+ export type Theme = WidenLiterals<DeepWritable<typeof sys>>;
10
+ type DeepPartial<T> = T extends object ? {
11
+ [P in keyof T]?: DeepPartial<T[P]>;
12
+ } : T;
13
+ /**
14
+ * A partial theme override — any subset of the token tree.
15
+ * Missing keys fall back to the GuidanceNow defaults.
16
+ *
17
+ * @example
18
+ * const brandTheme: ThemeOverride = {
19
+ * colorRoles: {
20
+ * accent: { primary: { sysPrimary: '#c00000' } },
21
+ * },
22
+ * };
23
+ */
24
+ export type ThemeOverride = DeepPartial<Theme>;
25
+ export {};
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../packages/react-native/src/theme/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,10 @@
1
+ import type { Theme } from './types';
2
+ /**
3
+ * Returns the active resolved theme. Components use this hook to read token
4
+ * values at render time so they automatically reflect any ThemeProvider
5
+ * override in the tree.
6
+ *
7
+ * Falls back to the GuidanceNow default theme when called outside a
8
+ * ThemeProvider.
9
+ */
10
+ export declare function useTheme(): Theme;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "useTheme", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return useTheme;
9
+ }
10
+ });
11
+ const _react = require("react");
12
+ const _ThemeContext = require("./ThemeContext");
13
+ function useTheme() {
14
+ return (0, _react.useContext)(_ThemeContext.ThemeContext);
15
+ }
16
+
17
+ //# sourceMappingURL=useTheme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../packages/react-native/src/theme/useTheme.ts"],"sourcesContent":["import { useContext } from 'react';\r\n\r\nimport { ThemeContext } from './ThemeContext';\r\nimport type { Theme } from './types';\r\n\r\n/**\r\n * Returns the active resolved theme. Components use this hook to read token\r\n * values at render time so they automatically reflect any ThemeProvider\r\n * override in the tree.\r\n *\r\n * Falls back to the GuidanceNow default theme when called outside a\r\n * ThemeProvider.\r\n */\r\nexport function useTheme(): Theme {\r\n return useContext(ThemeContext);\r\n}\r\n"],"names":["useTheme","useContext","ThemeContext"],"mappings":";;;;+BAagBA;;;eAAAA;;;uBAbW;8BAEE;AAWtB,SAASA;IACd,OAAOC,IAAAA,iBAAU,EAACC,0BAAY;AAChC"}