@oxyhq/bloom 0.3.0 → 0.3.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.
@@ -6,34 +6,36 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.ErrorBoundary = void 0;
7
7
  var _react = _interopRequireWildcard(require("react"));
8
8
  var _reactNative = require("react-native");
9
- var _useTheme = require("../theme/use-theme.js");
10
9
  var _jsxRuntime = require("react/jsx-runtime");
11
10
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
11
+ /**
12
+ * Default fallback UI used when an ErrorBoundary catches a render error.
13
+ *
14
+ * This component is the LAST line of defense — by the time it renders, the
15
+ * rest of the React tree has already crashed. It therefore MUST NOT depend
16
+ * on any other context provider (theme, navigation, router, etc.) because
17
+ * those providers may be unmounted, broken, or never have been part of
18
+ * the tree above the boundary.
19
+ *
20
+ * Use only literal styles and built-in React Native primitives. No hooks
21
+ * that read context, no upstream theming, no animation libraries.
22
+ */
12
23
  function DefaultFallback({
13
24
  title,
14
25
  message,
15
26
  retryLabel,
16
27
  onRetry
17
28
  }) {
18
- const theme = (0, _useTheme.useTheme)();
19
29
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
20
- style: [styles.container, {
21
- backgroundColor: theme.colors.background
22
- }],
30
+ style: styles.container,
23
31
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
24
- style: [styles.title, {
25
- color: theme.colors.text
26
- }],
32
+ style: styles.title,
27
33
  children: title
28
34
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
29
- style: [styles.message, {
30
- color: theme.colors.textSecondary
31
- }],
35
+ style: styles.message,
32
36
  children: message
33
37
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
34
- style: [styles.retryButton, {
35
- backgroundColor: theme.colors.primary
36
- }],
38
+ style: styles.retryButton,
37
39
  onPress: onRetry,
38
40
  activeOpacity: 0.7,
39
41
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
@@ -79,33 +81,40 @@ class ErrorBoundary extends _react.Component {
79
81
  return this.props.children;
80
82
  }
81
83
  }
84
+
85
+ // Literal colors only — must never depend on a theme provider. The neutral
86
+ // palette is chosen to be readable on both light and dark device defaults.
82
87
  exports.ErrorBoundary = ErrorBoundary;
83
88
  const styles = _reactNative.StyleSheet.create({
84
89
  container: {
85
90
  flex: 1,
86
91
  alignItems: 'center',
87
92
  justifyContent: 'center',
88
- padding: 20
93
+ padding: 20,
94
+ backgroundColor: '#FFFFFF'
89
95
  },
90
96
  title: {
91
97
  fontSize: 24,
92
98
  fontWeight: 'bold',
93
99
  marginBottom: 12,
94
- textAlign: 'center'
100
+ textAlign: 'center',
101
+ color: '#111111'
95
102
  },
96
103
  message: {
97
104
  fontSize: 16,
98
105
  textAlign: 'center',
99
106
  marginBottom: 24,
100
107
  lineHeight: 22,
101
- paddingHorizontal: 16
108
+ paddingHorizontal: 16,
109
+ color: '#555555'
102
110
  },
103
111
  retryButton: {
104
112
  paddingHorizontal: 24,
105
113
  paddingVertical: 12,
106
114
  borderRadius: 12,
107
115
  minWidth: 120,
108
- alignItems: 'center'
116
+ alignItems: 'center',
117
+ backgroundColor: '#0066FF'
109
118
  },
110
119
  retryText: {
111
120
  color: '#FFFFFF',
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_useTheme","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","DefaultFallback","title","message","retryLabel","onRetry","theme","useTheme","jsxs","View","style","styles","container","backgroundColor","colors","background","children","jsx","Text","color","text","textSecondary","TouchableOpacity","retryButton","primary","onPress","activeOpacity","retryText","ErrorBoundary","Component","displayName","state","hasError","error","getDerivedStateFromError","componentDidCatch","errorInfo","props","onError","handleRetry","setState","render","fallback","exports","StyleSheet","create","flex","alignItems","justifyContent","padding","fontSize","fontWeight","marginBottom","textAlign","lineHeight","paddingHorizontal","paddingVertical","borderRadius","minWidth"],"sourceRoot":"../../../src","sources":["error-boundary/ErrorBoundary.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","DefaultFallback","title","message","retryLabel","onRetry","jsxs","View","style","styles","container","children","jsx","Text","TouchableOpacity","retryButton","onPress","activeOpacity","retryText","ErrorBoundary","Component","displayName","state","hasError","error","getDerivedStateFromError","componentDidCatch","errorInfo","props","onError","handleRetry","setState","render","fallback","exports","StyleSheet","create","flex","alignItems","justifyContent","padding","backgroundColor","fontSize","fontWeight","marginBottom","textAlign","color","lineHeight","paddingHorizontal","paddingVertical","borderRadius","minWidth"],"sourceRoot":"../../../src","sources":["error-boundary/ErrorBoundary.tsx"],"mappings":"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","ignoreList":[]}
@@ -11,6 +11,8 @@ var _InterVariable = _interopRequireDefault(require("../../assets/fonts/InterVar
11
11
  var _GeistMonoVariable = _interopRequireDefault(require("../../assets/fonts/GeistMono-Variable.woff2"));
12
12
  var _tokens = require("./tokens.js");
13
13
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
14
+ /// <reference path="../assets.d.ts" />
15
+
14
16
  const STYLE_ID = 'bloom-fonts';
15
17
 
16
18
  /**
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_BlomusModernusRegular","_interopRequireDefault","_BlomusModernusBold","_InterVariable","_GeistMonoVariable","_tokens","e","__esModule","default","STYLE_ID","applyFontFaces","Platform","OS","document","getElementById","style","createElement","id","textContent","blomusReg","blomusBold","interVar","geistMono","fontFamilies","display","sans","mono","head","appendChild"],"sourceRoot":"../../../src","sources":["fonts/apply-font-faces.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,sBAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,mBAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,cAAA,GAAAF,sBAAA,CAAAF,OAAA;AACA,IAAAK,kBAAA,GAAAH,sBAAA,CAAAF,OAAA;AACA,IAAAM,OAAA,GAAAN,OAAA;AAAwC,SAAAE,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAExC,MAAMG,QAAQ,GAAG,aAAa;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,cAAcA,CAAA,EAAS;EACrC,IAAIC,qBAAQ,CAACC,EAAE,KAAK,KAAK,IAAI,OAAOC,QAAQ,KAAK,WAAW,EAAE;EAC9D,IAAIA,QAAQ,CAACC,cAAc,CAACL,QAAQ,CAAC,EAAE;EAEvC,MAAMM,KAAK,GAAGF,QAAQ,CAACG,aAAa,CAAC,OAAO,CAAC;EAC7CD,KAAK,CAACE,EAAE,GAAGR,QAAQ;EACnBM,KAAK,CAACG,WAAW,GAAG;AACtB,2DAA2DC,8BAAS;AACpE,2DAA2DC,2BAAU;AACrE,kDAAkDC,sBAAQ;AAC1D,uDAAuDC,0BAAS;AAChE;AACA,8BAA8BC,oBAAY,CAACC,OAAO;AAClD,2BAA2BD,oBAAY,CAACE,IAAI;AAC5C,2BAA2BF,oBAAY,CAACG,IAAI;AAC5C;AACA,GAAG;EACDb,QAAQ,CAACc,IAAI,CAACC,WAAW,CAACb,KAAK,CAAC;AAClC","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_BlomusModernusRegular","_interopRequireDefault","_BlomusModernusBold","_InterVariable","_GeistMonoVariable","_tokens","e","__esModule","default","STYLE_ID","applyFontFaces","Platform","OS","document","getElementById","style","createElement","id","textContent","blomusReg","blomusBold","interVar","geistMono","fontFamilies","display","sans","mono","head","appendChild"],"sourceRoot":"../../../src","sources":["fonts/apply-font-faces.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,sBAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,mBAAA,GAAAD,sBAAA,CAAAF,OAAA;AACA,IAAAI,cAAA,GAAAF,sBAAA,CAAAF,OAAA;AACA,IAAAK,kBAAA,GAAAH,sBAAA,CAAAF,OAAA;AACA,IAAAM,OAAA,GAAAN,OAAA;AAAwC,SAAAE,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AANxC;;AAQA,MAAMG,QAAQ,GAAG,aAAa;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,cAAcA,CAAA,EAAS;EACrC,IAAIC,qBAAQ,CAACC,EAAE,KAAK,KAAK,IAAI,OAAOC,QAAQ,KAAK,WAAW,EAAE;EAC9D,IAAIA,QAAQ,CAACC,cAAc,CAACL,QAAQ,CAAC,EAAE;EAEvC,MAAMM,KAAK,GAAGF,QAAQ,CAACG,aAAa,CAAC,OAAO,CAAC;EAC7CD,KAAK,CAACE,EAAE,GAAGR,QAAQ;EACnBM,KAAK,CAACG,WAAW,GAAG;AACtB,2DAA2DC,8BAAS;AACpE,2DAA2DC,2BAAU;AACrE,kDAAkDC,sBAAQ;AAC1D,uDAAuDC,0BAAS;AAChE;AACA,8BAA8BC,oBAAY,CAACC,OAAO;AAClD,2BAA2BD,oBAAY,CAACE,IAAI;AAC5C,2BAA2BF,oBAAY,CAACG,IAAI;AAC5C;AACA,GAAG;EACDb,QAAQ,CAACc,IAAI,CAACC,WAAW,CAACb,KAAK,CAAC;AAClC","ignoreList":[]}
@@ -2,33 +2,35 @@
2
2
 
3
3
  import React, { Component } from 'react';
4
4
  import { View, Text, TouchableOpacity, StyleSheet } from 'react-native';
5
- import { useTheme } from "../theme/use-theme.js";
6
5
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
6
+ /**
7
+ * Default fallback UI used when an ErrorBoundary catches a render error.
8
+ *
9
+ * This component is the LAST line of defense — by the time it renders, the
10
+ * rest of the React tree has already crashed. It therefore MUST NOT depend
11
+ * on any other context provider (theme, navigation, router, etc.) because
12
+ * those providers may be unmounted, broken, or never have been part of
13
+ * the tree above the boundary.
14
+ *
15
+ * Use only literal styles and built-in React Native primitives. No hooks
16
+ * that read context, no upstream theming, no animation libraries.
17
+ */
7
18
  function DefaultFallback({
8
19
  title,
9
20
  message,
10
21
  retryLabel,
11
22
  onRetry
12
23
  }) {
13
- const theme = useTheme();
14
24
  return /*#__PURE__*/_jsxs(View, {
15
- style: [styles.container, {
16
- backgroundColor: theme.colors.background
17
- }],
25
+ style: styles.container,
18
26
  children: [/*#__PURE__*/_jsx(Text, {
19
- style: [styles.title, {
20
- color: theme.colors.text
21
- }],
27
+ style: styles.title,
22
28
  children: title
23
29
  }), /*#__PURE__*/_jsx(Text, {
24
- style: [styles.message, {
25
- color: theme.colors.textSecondary
26
- }],
30
+ style: styles.message,
27
31
  children: message
28
32
  }), /*#__PURE__*/_jsx(TouchableOpacity, {
29
- style: [styles.retryButton, {
30
- backgroundColor: theme.colors.primary
31
- }],
33
+ style: styles.retryButton,
32
34
  onPress: onRetry,
33
35
  activeOpacity: 0.7,
34
36
  children: /*#__PURE__*/_jsx(Text, {
@@ -74,32 +76,39 @@ export class ErrorBoundary extends Component {
74
76
  return this.props.children;
75
77
  }
76
78
  }
79
+
80
+ // Literal colors only — must never depend on a theme provider. The neutral
81
+ // palette is chosen to be readable on both light and dark device defaults.
77
82
  const styles = StyleSheet.create({
78
83
  container: {
79
84
  flex: 1,
80
85
  alignItems: 'center',
81
86
  justifyContent: 'center',
82
- padding: 20
87
+ padding: 20,
88
+ backgroundColor: '#FFFFFF'
83
89
  },
84
90
  title: {
85
91
  fontSize: 24,
86
92
  fontWeight: 'bold',
87
93
  marginBottom: 12,
88
- textAlign: 'center'
94
+ textAlign: 'center',
95
+ color: '#111111'
89
96
  },
90
97
  message: {
91
98
  fontSize: 16,
92
99
  textAlign: 'center',
93
100
  marginBottom: 24,
94
101
  lineHeight: 22,
95
- paddingHorizontal: 16
102
+ paddingHorizontal: 16,
103
+ color: '#555555'
96
104
  },
97
105
  retryButton: {
98
106
  paddingHorizontal: 24,
99
107
  paddingVertical: 12,
100
108
  borderRadius: 12,
101
109
  minWidth: 120,
102
- alignItems: 'center'
110
+ alignItems: 'center',
111
+ backgroundColor: '#0066FF'
103
112
  },
104
113
  retryText: {
105
114
  color: '#FFFFFF',
@@ -1 +1 @@
1
- {"version":3,"names":["React","Component","View","Text","TouchableOpacity","StyleSheet","useTheme","jsx","_jsx","jsxs","_jsxs","DefaultFallback","title","message","retryLabel","onRetry","theme","style","styles","container","backgroundColor","colors","background","children","color","text","textSecondary","retryButton","primary","onPress","activeOpacity","retryText","ErrorBoundary","displayName","state","hasError","error","getDerivedStateFromError","componentDidCatch","errorInfo","props","onError","handleRetry","setState","render","fallback","create","flex","alignItems","justifyContent","padding","fontSize","fontWeight","marginBottom","textAlign","lineHeight","paddingHorizontal","paddingVertical","borderRadius","minWidth"],"sourceRoot":"../../../src","sources":["error-boundary/ErrorBoundary.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","Component","View","Text","TouchableOpacity","StyleSheet","jsx","_jsx","jsxs","_jsxs","DefaultFallback","title","message","retryLabel","onRetry","style","styles","container","children","retryButton","onPress","activeOpacity","retryText","ErrorBoundary","displayName","state","hasError","error","getDerivedStateFromError","componentDidCatch","errorInfo","props","onError","handleRetry","setState","render","fallback","create","flex","alignItems","justifyContent","padding","backgroundColor","fontSize","fontWeight","marginBottom","textAlign","color","lineHeight","paddingHorizontal","paddingVertical","borderRadius","minWidth"],"sourceRoot":"../../../src","sources":["error-boundary/ErrorBoundary.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,SAAS,QAAwC,OAAO;AACxE,SAASC,IAAI,EAAEC,IAAI,EAAEC,gBAAgB,EAAEC,UAAU,QAAQ,cAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AASxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,eAAeA,CAAC;EACvBC,KAAK;EACLC,OAAO;EACPC,UAAU;EACVC;AAMF,CAAC,EAAE;EACD,oBACEL,KAAA,CAACP,IAAI;IAACa,KAAK,EAAEC,MAAM,CAACC,SAAU;IAAAC,QAAA,gBAC5BX,IAAA,CAACJ,IAAI;MAACY,KAAK,EAAEC,MAAM,CAACL,KAAM;MAAAO,QAAA,EAAEP;IAAK,CAAO,CAAC,eACzCJ,IAAA,CAACJ,IAAI;MAACY,KAAK,EAAEC,MAAM,CAACJ,OAAQ;MAAAM,QAAA,EAAEN;IAAO,CAAO,CAAC,eAC7CL,IAAA,CAACH,gBAAgB;MACfW,KAAK,EAAEC,MAAM,CAACG,WAAY;MAC1BC,OAAO,EAAEN,OAAQ;MACjBO,aAAa,EAAE,GAAI;MAAAH,QAAA,eAEnBX,IAAA,CAACJ,IAAI;QAACY,KAAK,EAAEC,MAAM,CAACM,SAAU;QAAAJ,QAAA,EAAEL;MAAU,CAAO;IAAC,CAClC,CAAC;EAAA,CACf,CAAC;AAEX;AAEA,OAAO,MAAMU,aAAa,SAAStB,SAAS,CAAyC;EACnF,OAAOuB,WAAW,GAAG,eAAe;EAEpCC,KAAK,GAAuB;IAC1BC,QAAQ,EAAE,KAAK;IACfC,KAAK,EAAE;EACT,CAAC;EAED,OAAOC,wBAAwBA,CAACD,KAAY,EAAsB;IAChE,OAAO;MAAED,QAAQ,EAAE,IAAI;MAAEC;IAAM,CAAC;EAClC;EAEAE,iBAAiBA,CAACF,KAAY,EAAEG,SAAoB,EAAQ;IAC1D,IAAI,CAACC,KAAK,CAACC,OAAO,GAAGL,KAAK,EAAEG,SAAS,CAAC;EACxC;EAEQG,WAAW,GAAGA,CAAA,KAAY;IAChC,IAAI,CAACC,QAAQ,CAAC;MAAER,QAAQ,EAAE,KAAK;MAAEC,KAAK,EAAE;IAAK,CAAC,CAAC;EACjD,CAAC;EAEDQ,MAAMA,CAAA,EAAc;IAClB,IAAI,IAAI,CAACV,KAAK,CAACC,QAAQ,EAAE;MACvB,IAAI,IAAI,CAACK,KAAK,CAACK,QAAQ,EAAE;QACvB,OAAO,IAAI,CAACL,KAAK,CAACK,QAAQ;MAC5B;MAEA,oBACE7B,IAAA,CAACG,eAAe;QACdC,KAAK,EAAE,IAAI,CAACoB,KAAK,CAACpB,KAAK,IAAI,sBAAuB;QAClDC,OAAO,EAAE,IAAI,CAACmB,KAAK,CAACnB,OAAO,IAAI,8BAA+B;QAC9DC,UAAU,EAAE,IAAI,CAACkB,KAAK,CAAClB,UAAU,IAAI,WAAY;QACjDC,OAAO,EAAE,IAAI,CAACmB;MAAY,CAC3B,CAAC;IAEN;IAEA,OAAO,IAAI,CAACF,KAAK,CAACb,QAAQ;EAC5B;AACF;;AAEA;AACA;AACA,MAAMF,MAAM,GAAGX,UAAU,CAACgC,MAAM,CAAC;EAC/BpB,SAAS,EAAE;IACTqB,IAAI,EAAE,CAAC;IACPC,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE,QAAQ;IACxBC,OAAO,EAAE,EAAE;IACXC,eAAe,EAAE;EACnB,CAAC;EACD/B,KAAK,EAAE;IACLgC,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE,MAAM;IAClBC,YAAY,EAAE,EAAE;IAChBC,SAAS,EAAE,QAAQ;IACnBC,KAAK,EAAE;EACT,CAAC;EACDnC,OAAO,EAAE;IACP+B,QAAQ,EAAE,EAAE;IACZG,SAAS,EAAE,QAAQ;IACnBD,YAAY,EAAE,EAAE;IAChBG,UAAU,EAAE,EAAE;IACdC,iBAAiB,EAAE,EAAE;IACrBF,KAAK,EAAE;EACT,CAAC;EACD5B,WAAW,EAAE;IACX8B,iBAAiB,EAAE,EAAE;IACrBC,eAAe,EAAE,EAAE;IACnBC,YAAY,EAAE,EAAE;IAChBC,QAAQ,EAAE,GAAG;IACbb,UAAU,EAAE,QAAQ;IACpBG,eAAe,EAAE;EACnB,CAAC;EACDpB,SAAS,EAAE;IACTyB,KAAK,EAAE,SAAS;IAChBJ,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE;EACd;AACF,CAAC,CAAC","ignoreList":[]}
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
 
3
+ /// <reference path="../assets.d.ts" />
3
4
  import { Platform } from 'react-native';
4
5
  import blomusReg from '../../assets/fonts/BlomusModernus-Regular.woff2';
5
6
  import blomusBold from '../../assets/fonts/BlomusModernus-Bold.woff2';
@@ -1 +1 @@
1
- {"version":3,"names":["Platform","blomusReg","blomusBold","interVar","geistMono","fontFamilies","STYLE_ID","applyFontFaces","OS","document","getElementById","style","createElement","id","textContent","display","sans","mono","head","appendChild"],"sourceRoot":"../../../src","sources":["fonts/apply-font-faces.ts"],"mappings":";;AAAA,SAASA,QAAQ,QAAQ,cAAc;AACvC,OAAOC,SAAS,MAAM,iDAAiD;AACvE,OAAOC,UAAU,MAAM,8CAA8C;AACrE,OAAOC,QAAQ,MAAM,wCAAwC;AAC7D,OAAOC,SAAS,MAAM,6CAA6C;AACnE,SAASC,YAAY,QAAQ,aAAU;AAEvC,MAAMC,QAAQ,GAAG,aAAa;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,cAAcA,CAAA,EAAS;EACrC,IAAIP,QAAQ,CAACQ,EAAE,KAAK,KAAK,IAAI,OAAOC,QAAQ,KAAK,WAAW,EAAE;EAC9D,IAAIA,QAAQ,CAACC,cAAc,CAACJ,QAAQ,CAAC,EAAE;EAEvC,MAAMK,KAAK,GAAGF,QAAQ,CAACG,aAAa,CAAC,OAAO,CAAC;EAC7CD,KAAK,CAACE,EAAE,GAAGP,QAAQ;EACnBK,KAAK,CAACG,WAAW,GAAG;AACtB,2DAA2Db,SAAS;AACpE,2DAA2DC,UAAU;AACrE,kDAAkDC,QAAQ;AAC1D,uDAAuDC,SAAS;AAChE;AACA,8BAA8BC,YAAY,CAACU,OAAO;AAClD,2BAA2BV,YAAY,CAACW,IAAI;AAC5C,2BAA2BX,YAAY,CAACY,IAAI;AAC5C;AACA,GAAG;EACDR,QAAQ,CAACS,IAAI,CAACC,WAAW,CAACR,KAAK,CAAC;AAClC","ignoreList":[]}
1
+ {"version":3,"names":["Platform","blomusReg","blomusBold","interVar","geistMono","fontFamilies","STYLE_ID","applyFontFaces","OS","document","getElementById","style","createElement","id","textContent","display","sans","mono","head","appendChild"],"sourceRoot":"../../../src","sources":["fonts/apply-font-faces.ts"],"mappings":";;AAAA;AACA,SAASA,QAAQ,QAAQ,cAAc;AACvC,OAAOC,SAAS,MAAM,iDAAiD;AACvE,OAAOC,UAAU,MAAM,8CAA8C;AACrE,OAAOC,QAAQ,MAAM,wCAAwC;AAC7D,OAAOC,SAAS,MAAM,6CAA6C;AACnE,SAASC,YAAY,QAAQ,aAAU;AAEvC,MAAMC,QAAQ,GAAG,aAAa;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,cAAcA,CAAA,EAAS;EACrC,IAAIP,QAAQ,CAACQ,EAAE,KAAK,KAAK,IAAI,OAAOC,QAAQ,KAAK,WAAW,EAAE;EAC9D,IAAIA,QAAQ,CAACC,cAAc,CAACJ,QAAQ,CAAC,EAAE;EAEvC,MAAMK,KAAK,GAAGF,QAAQ,CAACG,aAAa,CAAC,OAAO,CAAC;EAC7CD,KAAK,CAACE,EAAE,GAAGP,QAAQ;EACnBK,KAAK,CAACG,WAAW,GAAG;AACtB,2DAA2Db,SAAS;AACpE,2DAA2DC,UAAU;AACrE,kDAAkDC,QAAQ;AAC1D,uDAAuDC,SAAS;AAChE;AACA,8BAA8BC,YAAY,CAACU,OAAO;AAClD,2BAA2BV,YAAY,CAACW,IAAI;AAC5C,2BAA2BX,YAAY,CAACY,IAAI;AAC5C;AACA,GAAG;EACDR,QAAQ,CAACS,IAAI,CAACC,WAAW,CAACR,KAAK,CAAC;AAClC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"ErrorBoundary.d.ts","sourceRoot":"","sources":["../../../../src/error-boundary/ErrorBoundary.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,SAAS,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAIzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB;AA8BD,qBAAa,aAAc,SAAQ,SAAS,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;IAClF,MAAM,CAAC,WAAW,SAAmB;IAErC,KAAK,EAAE,kBAAkB,CAGvB;IAEF,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,KAAK,GAAG,kBAAkB;IAIjE,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI;IAI3D,OAAO,CAAC,WAAW,CAEjB;IAEF,MAAM,IAAI,SAAS;CAkBpB"}
1
+ {"version":3,"file":"ErrorBoundary.d.ts","sourceRoot":"","sources":["../../../../src/error-boundary/ErrorBoundary.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,SAAS,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAGzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB;AAwCD,qBAAa,aAAc,SAAQ,SAAS,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;IAClF,MAAM,CAAC,WAAW,SAAmB;IAErC,KAAK,EAAE,kBAAkB,CAGvB;IAEF,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,KAAK,GAAG,kBAAkB;IAIjE,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI;IAI3D,OAAO,CAAC,WAAW,CAEjB;IAEF,MAAM,IAAI,SAAS;CAkBpB"}
@@ -1 +1 @@
1
- {"version":3,"file":"apply-font-faces.d.ts","sourceRoot":"","sources":["../../../../src/fonts/apply-font-faces.ts"],"names":[],"mappings":"AASA;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAkBrC"}
1
+ {"version":3,"file":"apply-font-faces.d.ts","sourceRoot":"","sources":["../../../../src/fonts/apply-font-faces.ts"],"names":[],"mappings":"AAUA;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAkBrC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ErrorBoundary.d.ts","sourceRoot":"","sources":["../../../../src/error-boundary/ErrorBoundary.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,SAAS,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAIzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB;AA8BD,qBAAa,aAAc,SAAQ,SAAS,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;IAClF,MAAM,CAAC,WAAW,SAAmB;IAErC,KAAK,EAAE,kBAAkB,CAGvB;IAEF,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,KAAK,GAAG,kBAAkB;IAIjE,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI;IAI3D,OAAO,CAAC,WAAW,CAEjB;IAEF,MAAM,IAAI,SAAS;CAkBpB"}
1
+ {"version":3,"file":"ErrorBoundary.d.ts","sourceRoot":"","sources":["../../../../src/error-boundary/ErrorBoundary.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,SAAS,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAGzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB;AAwCD,qBAAa,aAAc,SAAQ,SAAS,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;IAClF,MAAM,CAAC,WAAW,SAAmB;IAErC,KAAK,EAAE,kBAAkB,CAGvB;IAEF,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,KAAK,GAAG,kBAAkB;IAIjE,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI;IAI3D,OAAO,CAAC,WAAW,CAEjB;IAEF,MAAM,IAAI,SAAS;CAkBpB"}
@@ -1 +1 @@
1
- {"version":3,"file":"apply-font-faces.d.ts","sourceRoot":"","sources":["../../../../src/fonts/apply-font-faces.ts"],"names":[],"mappings":"AASA;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAkBrC"}
1
+ {"version":3,"file":"apply-font-faces.d.ts","sourceRoot":"","sources":["../../../../src/fonts/apply-font-faces.ts"],"names":[],"mappings":"AAUA;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAkBrC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oxyhq/bloom",
3
- "version": "0.3.0",
3
+ "version": "0.3.1",
4
4
  "description": "Bloom UI — Oxy ecosystem component library for React Native + Expo + Web",
5
5
  "main": "lib/commonjs/index.js",
6
6
  "module": "lib/module/index.js",
@@ -1,7 +1,6 @@
1
1
  import React, { Component, type ErrorInfo, type ReactNode } from 'react';
2
2
  import { View, Text, TouchableOpacity, StyleSheet } from 'react-native';
3
3
 
4
- import { useTheme } from '../theme/use-theme';
5
4
  import type { ErrorBoundaryProps } from './types';
6
5
 
7
6
  interface ErrorBoundaryState {
@@ -9,6 +8,18 @@ interface ErrorBoundaryState {
9
8
  error: Error | null;
10
9
  }
11
10
 
11
+ /**
12
+ * Default fallback UI used when an ErrorBoundary catches a render error.
13
+ *
14
+ * This component is the LAST line of defense — by the time it renders, the
15
+ * rest of the React tree has already crashed. It therefore MUST NOT depend
16
+ * on any other context provider (theme, navigation, router, etc.) because
17
+ * those providers may be unmounted, broken, or never have been part of
18
+ * the tree above the boundary.
19
+ *
20
+ * Use only literal styles and built-in React Native primitives. No hooks
21
+ * that read context, no upstream theming, no animation libraries.
22
+ */
12
23
  function DefaultFallback({
13
24
  title,
14
25
  message,
@@ -20,14 +31,12 @@ function DefaultFallback({
20
31
  retryLabel: string;
21
32
  onRetry: () => void;
22
33
  }) {
23
- const theme = useTheme();
24
-
25
34
  return (
26
- <View style={[styles.container, { backgroundColor: theme.colors.background }]}>
27
- <Text style={[styles.title, { color: theme.colors.text }]}>{title}</Text>
28
- <Text style={[styles.message, { color: theme.colors.textSecondary }]}>{message}</Text>
35
+ <View style={styles.container}>
36
+ <Text style={styles.title}>{title}</Text>
37
+ <Text style={styles.message}>{message}</Text>
29
38
  <TouchableOpacity
30
- style={[styles.retryButton, { backgroundColor: theme.colors.primary }]}
39
+ style={styles.retryButton}
31
40
  onPress={onRetry}
32
41
  activeOpacity={0.7}
33
42
  >
@@ -77,18 +86,22 @@ export class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundarySt
77
86
  }
78
87
  }
79
88
 
89
+ // Literal colors only — must never depend on a theme provider. The neutral
90
+ // palette is chosen to be readable on both light and dark device defaults.
80
91
  const styles = StyleSheet.create({
81
92
  container: {
82
93
  flex: 1,
83
94
  alignItems: 'center',
84
95
  justifyContent: 'center',
85
96
  padding: 20,
97
+ backgroundColor: '#FFFFFF',
86
98
  },
87
99
  title: {
88
100
  fontSize: 24,
89
101
  fontWeight: 'bold',
90
102
  marginBottom: 12,
91
103
  textAlign: 'center',
104
+ color: '#111111',
92
105
  },
93
106
  message: {
94
107
  fontSize: 16,
@@ -96,6 +109,7 @@ const styles = StyleSheet.create({
96
109
  marginBottom: 24,
97
110
  lineHeight: 22,
98
111
  paddingHorizontal: 16,
112
+ color: '#555555',
99
113
  },
100
114
  retryButton: {
101
115
  paddingHorizontal: 24,
@@ -103,6 +117,7 @@ const styles = StyleSheet.create({
103
117
  borderRadius: 12,
104
118
  minWidth: 120,
105
119
  alignItems: 'center',
120
+ backgroundColor: '#0066FF',
106
121
  },
107
122
  retryText: {
108
123
  color: '#FFFFFF',
@@ -1,3 +1,4 @@
1
+ /// <reference path="../assets.d.ts" />
1
2
  import { Platform } from 'react-native';
2
3
  import blomusReg from '../../assets/fonts/BlomusModernus-Regular.woff2';
3
4
  import blomusBold from '../../assets/fonts/BlomusModernus-Bold.woff2';