@oxyhq/bloom 0.1.14 → 0.1.15

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 (199) hide show
  1. package/lib/commonjs/accordion/Accordion.js +230 -0
  2. package/lib/commonjs/accordion/Accordion.js.map +1 -0
  3. package/lib/commonjs/accordion/index.js +31 -0
  4. package/lib/commonjs/accordion/index.js.map +1 -0
  5. package/lib/commonjs/accordion/types.js +6 -0
  6. package/lib/commonjs/accordion/types.js.map +1 -0
  7. package/lib/commonjs/badge/Badge.js +173 -0
  8. package/lib/commonjs/badge/Badge.js.map +1 -0
  9. package/lib/commonjs/badge/index.js +13 -0
  10. package/lib/commonjs/badge/index.js.map +1 -0
  11. package/lib/commonjs/badge/types.js +6 -0
  12. package/lib/commonjs/badge/types.js.map +1 -0
  13. package/lib/commonjs/bottom-sheet/index.js +32 -14
  14. package/lib/commonjs/bottom-sheet/index.js.map +1 -1
  15. package/lib/commonjs/card/Card.js +165 -0
  16. package/lib/commonjs/card/Card.js.map +1 -0
  17. package/lib/commonjs/card/index.js +43 -0
  18. package/lib/commonjs/card/index.js.map +1 -0
  19. package/lib/commonjs/card/types.js +6 -0
  20. package/lib/commonjs/card/types.js.map +1 -0
  21. package/lib/commonjs/checkbox/Checkbox.js +177 -0
  22. package/lib/commonjs/checkbox/Checkbox.js.map +1 -0
  23. package/lib/commonjs/checkbox/index.js +13 -0
  24. package/lib/commonjs/checkbox/index.js.map +1 -0
  25. package/lib/commonjs/checkbox/types.js +6 -0
  26. package/lib/commonjs/checkbox/types.js.map +1 -0
  27. package/lib/commonjs/chip/Chip.js +180 -0
  28. package/lib/commonjs/chip/Chip.js.map +1 -0
  29. package/lib/commonjs/chip/index.js +13 -0
  30. package/lib/commonjs/chip/index.js.map +1 -0
  31. package/lib/commonjs/chip/types.js +6 -0
  32. package/lib/commonjs/chip/types.js.map +1 -0
  33. package/lib/commonjs/index.js +56 -2
  34. package/lib/commonjs/index.js.map +1 -1
  35. package/lib/commonjs/tabs/Tabs.js +202 -0
  36. package/lib/commonjs/tabs/Tabs.js.map +1 -0
  37. package/lib/commonjs/tabs/index.js +25 -0
  38. package/lib/commonjs/tabs/index.js.map +1 -0
  39. package/lib/commonjs/tabs/types.js +6 -0
  40. package/lib/commonjs/tabs/types.js.map +1 -0
  41. package/lib/module/accordion/Accordion.js +225 -0
  42. package/lib/module/accordion/Accordion.js.map +1 -0
  43. package/lib/module/accordion/index.js +4 -0
  44. package/lib/module/accordion/index.js.map +1 -0
  45. package/lib/module/accordion/types.js +4 -0
  46. package/lib/module/accordion/types.js.map +1 -0
  47. package/lib/module/badge/Badge.js +168 -0
  48. package/lib/module/badge/Badge.js.map +1 -0
  49. package/lib/module/badge/index.js +4 -0
  50. package/lib/module/badge/index.js.map +1 -0
  51. package/lib/module/badge/types.js +4 -0
  52. package/lib/module/badge/types.js.map +1 -0
  53. package/lib/module/bottom-sheet/index.js +32 -14
  54. package/lib/module/bottom-sheet/index.js.map +1 -1
  55. package/lib/module/card/Card.js +160 -0
  56. package/lib/module/card/Card.js.map +1 -0
  57. package/lib/module/card/index.js +4 -0
  58. package/lib/module/card/index.js.map +1 -0
  59. package/lib/module/card/types.js +4 -0
  60. package/lib/module/card/types.js.map +1 -0
  61. package/lib/module/checkbox/Checkbox.js +172 -0
  62. package/lib/module/checkbox/Checkbox.js.map +1 -0
  63. package/lib/module/checkbox/index.js +4 -0
  64. package/lib/module/checkbox/index.js.map +1 -0
  65. package/lib/module/checkbox/types.js +4 -0
  66. package/lib/module/checkbox/types.js.map +1 -0
  67. package/lib/module/chip/Chip.js +175 -0
  68. package/lib/module/chip/Chip.js.map +1 -0
  69. package/lib/module/chip/index.js +4 -0
  70. package/lib/module/chip/index.js.map +1 -0
  71. package/lib/module/chip/types.js +4 -0
  72. package/lib/module/chip/types.js.map +1 -0
  73. package/lib/module/index.js +8 -0
  74. package/lib/module/index.js.map +1 -1
  75. package/lib/module/tabs/Tabs.js +197 -0
  76. package/lib/module/tabs/Tabs.js.map +1 -0
  77. package/lib/module/tabs/index.js +4 -0
  78. package/lib/module/tabs/index.js.map +1 -0
  79. package/lib/module/tabs/types.js +4 -0
  80. package/lib/module/tabs/types.js.map +1 -0
  81. package/lib/typescript/commonjs/__tests__/BloomThemeProvider.test.d.ts +2 -0
  82. package/lib/typescript/commonjs/__tests__/BloomThemeProvider.test.d.ts.map +1 -0
  83. package/lib/typescript/commonjs/__tests__/BottomSheet.test.d.ts +2 -0
  84. package/lib/typescript/commonjs/__tests__/BottomSheet.test.d.ts.map +1 -0
  85. package/lib/typescript/commonjs/__tests__/Button.test.d.ts +2 -0
  86. package/lib/typescript/commonjs/__tests__/Button.test.d.ts.map +1 -0
  87. package/lib/typescript/commonjs/__tests__/theme.test.d.ts +2 -0
  88. package/lib/typescript/commonjs/__tests__/theme.test.d.ts.map +1 -0
  89. package/lib/typescript/commonjs/accordion/Accordion.d.ts +7 -0
  90. package/lib/typescript/commonjs/accordion/Accordion.d.ts.map +1 -0
  91. package/lib/typescript/commonjs/accordion/index.d.ts +3 -0
  92. package/lib/typescript/commonjs/accordion/index.d.ts.map +1 -0
  93. package/lib/typescript/commonjs/accordion/types.d.ts +38 -0
  94. package/lib/typescript/commonjs/accordion/types.d.ts.map +1 -0
  95. package/lib/typescript/commonjs/badge/Badge.d.ts +4 -0
  96. package/lib/typescript/commonjs/badge/Badge.d.ts.map +1 -0
  97. package/lib/typescript/commonjs/badge/index.d.ts +3 -0
  98. package/lib/typescript/commonjs/badge/index.d.ts.map +1 -0
  99. package/lib/typescript/commonjs/badge/types.d.ts +29 -0
  100. package/lib/typescript/commonjs/badge/types.d.ts.map +1 -0
  101. package/lib/typescript/commonjs/bottom-sheet/index.d.ts.map +1 -1
  102. package/lib/typescript/commonjs/card/Card.d.ts +9 -0
  103. package/lib/typescript/commonjs/card/Card.d.ts.map +1 -0
  104. package/lib/typescript/commonjs/card/index.d.ts +3 -0
  105. package/lib/typescript/commonjs/card/index.d.ts.map +1 -0
  106. package/lib/typescript/commonjs/card/types.d.ts +34 -0
  107. package/lib/typescript/commonjs/card/types.d.ts.map +1 -0
  108. package/lib/typescript/commonjs/checkbox/Checkbox.d.ts +4 -0
  109. package/lib/typescript/commonjs/checkbox/Checkbox.d.ts.map +1 -0
  110. package/lib/typescript/commonjs/checkbox/index.d.ts +3 -0
  111. package/lib/typescript/commonjs/checkbox/index.d.ts.map +1 -0
  112. package/lib/typescript/commonjs/checkbox/types.d.ts +25 -0
  113. package/lib/typescript/commonjs/checkbox/types.d.ts.map +1 -0
  114. package/lib/typescript/commonjs/chip/Chip.d.ts +4 -0
  115. package/lib/typescript/commonjs/chip/Chip.d.ts.map +1 -0
  116. package/lib/typescript/commonjs/chip/index.d.ts +3 -0
  117. package/lib/typescript/commonjs/chip/index.d.ts.map +1 -0
  118. package/lib/typescript/commonjs/chip/types.d.ts +31 -0
  119. package/lib/typescript/commonjs/chip/types.d.ts.map +1 -0
  120. package/lib/typescript/commonjs/index.d.ts +6 -0
  121. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  122. package/lib/typescript/commonjs/tabs/Tabs.d.ts +6 -0
  123. package/lib/typescript/commonjs/tabs/Tabs.d.ts.map +1 -0
  124. package/lib/typescript/commonjs/tabs/index.d.ts +3 -0
  125. package/lib/typescript/commonjs/tabs/index.d.ts.map +1 -0
  126. package/lib/typescript/commonjs/tabs/types.d.ts +34 -0
  127. package/lib/typescript/commonjs/tabs/types.d.ts.map +1 -0
  128. package/lib/typescript/module/__tests__/BloomThemeProvider.test.d.ts +2 -0
  129. package/lib/typescript/module/__tests__/BloomThemeProvider.test.d.ts.map +1 -0
  130. package/lib/typescript/module/__tests__/BottomSheet.test.d.ts +2 -0
  131. package/lib/typescript/module/__tests__/BottomSheet.test.d.ts.map +1 -0
  132. package/lib/typescript/module/__tests__/Button.test.d.ts +2 -0
  133. package/lib/typescript/module/__tests__/Button.test.d.ts.map +1 -0
  134. package/lib/typescript/module/__tests__/theme.test.d.ts +2 -0
  135. package/lib/typescript/module/__tests__/theme.test.d.ts.map +1 -0
  136. package/lib/typescript/module/accordion/Accordion.d.ts +7 -0
  137. package/lib/typescript/module/accordion/Accordion.d.ts.map +1 -0
  138. package/lib/typescript/module/accordion/index.d.ts +3 -0
  139. package/lib/typescript/module/accordion/index.d.ts.map +1 -0
  140. package/lib/typescript/module/accordion/types.d.ts +38 -0
  141. package/lib/typescript/module/accordion/types.d.ts.map +1 -0
  142. package/lib/typescript/module/badge/Badge.d.ts +4 -0
  143. package/lib/typescript/module/badge/Badge.d.ts.map +1 -0
  144. package/lib/typescript/module/badge/index.d.ts +3 -0
  145. package/lib/typescript/module/badge/index.d.ts.map +1 -0
  146. package/lib/typescript/module/badge/types.d.ts +29 -0
  147. package/lib/typescript/module/badge/types.d.ts.map +1 -0
  148. package/lib/typescript/module/bottom-sheet/index.d.ts.map +1 -1
  149. package/lib/typescript/module/card/Card.d.ts +9 -0
  150. package/lib/typescript/module/card/Card.d.ts.map +1 -0
  151. package/lib/typescript/module/card/index.d.ts +3 -0
  152. package/lib/typescript/module/card/index.d.ts.map +1 -0
  153. package/lib/typescript/module/card/types.d.ts +34 -0
  154. package/lib/typescript/module/card/types.d.ts.map +1 -0
  155. package/lib/typescript/module/checkbox/Checkbox.d.ts +4 -0
  156. package/lib/typescript/module/checkbox/Checkbox.d.ts.map +1 -0
  157. package/lib/typescript/module/checkbox/index.d.ts +3 -0
  158. package/lib/typescript/module/checkbox/index.d.ts.map +1 -0
  159. package/lib/typescript/module/checkbox/types.d.ts +25 -0
  160. package/lib/typescript/module/checkbox/types.d.ts.map +1 -0
  161. package/lib/typescript/module/chip/Chip.d.ts +4 -0
  162. package/lib/typescript/module/chip/Chip.d.ts.map +1 -0
  163. package/lib/typescript/module/chip/index.d.ts +3 -0
  164. package/lib/typescript/module/chip/index.d.ts.map +1 -0
  165. package/lib/typescript/module/chip/types.d.ts +31 -0
  166. package/lib/typescript/module/chip/types.d.ts.map +1 -0
  167. package/lib/typescript/module/index.d.ts +6 -0
  168. package/lib/typescript/module/index.d.ts.map +1 -1
  169. package/lib/typescript/module/tabs/Tabs.d.ts +6 -0
  170. package/lib/typescript/module/tabs/Tabs.d.ts.map +1 -0
  171. package/lib/typescript/module/tabs/index.d.ts +3 -0
  172. package/lib/typescript/module/tabs/index.d.ts.map +1 -0
  173. package/lib/typescript/module/tabs/types.d.ts +34 -0
  174. package/lib/typescript/module/tabs/types.d.ts.map +1 -0
  175. package/package.json +79 -1
  176. package/src/__tests__/BloomThemeProvider.test.tsx +160 -0
  177. package/src/__tests__/BottomSheet.test.tsx +109 -0
  178. package/src/__tests__/Button.test.tsx +98 -0
  179. package/src/__tests__/theme.test.ts +148 -0
  180. package/src/accordion/Accordion.tsx +261 -0
  181. package/src/accordion/index.ts +8 -0
  182. package/src/accordion/types.ts +42 -0
  183. package/src/badge/Badge.tsx +151 -0
  184. package/src/badge/index.ts +8 -0
  185. package/src/badge/types.ts +30 -0
  186. package/src/bottom-sheet/index.tsx +30 -11
  187. package/src/card/Card.tsx +197 -0
  188. package/src/card/index.ts +10 -0
  189. package/src/card/types.ts +40 -0
  190. package/src/checkbox/Checkbox.tsx +166 -0
  191. package/src/checkbox/index.ts +2 -0
  192. package/src/checkbox/types.ts +26 -0
  193. package/src/chip/Chip.tsx +156 -0
  194. package/src/chip/index.ts +2 -0
  195. package/src/chip/types.ts +32 -0
  196. package/src/index.ts +8 -0
  197. package/src/tabs/Tabs.tsx +218 -0
  198. package/src/tabs/index.ts +2 -0
  199. package/src/tabs/types.ts +37 -0
@@ -0,0 +1,230 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.AccordionTrigger = exports.AccordionItem = exports.AccordionContent = exports.Accordion = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _useTheme = require("../theme/use-theme.js");
10
+ var _tokens = require("../styles/tokens.js");
11
+ var _jsxRuntime = require("react/jsx-runtime");
12
+ 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); }
13
+ // ---- Context ----
14
+
15
+ const AccordionContext = /*#__PURE__*/(0, _react.createContext)({
16
+ expandedValues: new Set(),
17
+ toggle: () => {},
18
+ type: 'single'
19
+ });
20
+ const AccordionItemContext = /*#__PURE__*/(0, _react.createContext)({
21
+ value: '',
22
+ isExpanded: false,
23
+ disabled: false
24
+ });
25
+
26
+ // ---- Accordion Root ----
27
+
28
+ const AccordionComponent = ({
29
+ value,
30
+ onValueChange,
31
+ type = 'single',
32
+ children,
33
+ style,
34
+ testID
35
+ }) => {
36
+ const expandedValues = (0, _react.useMemo)(() => {
37
+ if (value == null) return new Set();
38
+ if (Array.isArray(value)) return new Set(value);
39
+ return new Set([value]);
40
+ }, [value]);
41
+ const toggle = (0, _react.useCallback)(itemValue => {
42
+ if (type === 'single') {
43
+ const next = expandedValues.has(itemValue) ? undefined : itemValue;
44
+ onValueChange(next);
45
+ } else {
46
+ const next = new Set(expandedValues);
47
+ if (next.has(itemValue)) {
48
+ next.delete(itemValue);
49
+ } else {
50
+ next.add(itemValue);
51
+ }
52
+ onValueChange(Array.from(next));
53
+ }
54
+ }, [type, expandedValues, onValueChange]);
55
+ const contextValue = (0, _react.useMemo)(() => ({
56
+ expandedValues,
57
+ toggle,
58
+ type
59
+ }), [expandedValues, toggle, type]);
60
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(AccordionContext.Provider, {
61
+ value: contextValue,
62
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
63
+ style: style,
64
+ testID: testID,
65
+ children: children
66
+ })
67
+ });
68
+ };
69
+
70
+ // ---- Accordion Item ----
71
+
72
+ const AccordionItemComponent = ({
73
+ value,
74
+ children,
75
+ disabled = false,
76
+ style
77
+ }) => {
78
+ const {
79
+ expandedValues
80
+ } = (0, _react.useContext)(AccordionContext);
81
+ const isExpanded = expandedValues.has(value);
82
+ const theme = (0, _useTheme.useTheme)();
83
+ const itemContext = (0, _react.useMemo)(() => ({
84
+ value,
85
+ isExpanded,
86
+ disabled
87
+ }), [value, isExpanded, disabled]);
88
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(AccordionItemContext.Provider, {
89
+ value: itemContext,
90
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
91
+ style: [{
92
+ borderBottomWidth: 1,
93
+ borderBottomColor: theme.colors.borderLight
94
+ }, style],
95
+ children: children
96
+ })
97
+ });
98
+ };
99
+
100
+ // ---- Accordion Trigger ----
101
+
102
+ const AccordionTriggerComponent = ({
103
+ children,
104
+ icon,
105
+ style,
106
+ textStyle
107
+ }) => {
108
+ const theme = (0, _useTheme.useTheme)();
109
+ const {
110
+ toggle
111
+ } = (0, _react.useContext)(AccordionContext);
112
+ const {
113
+ value,
114
+ isExpanded,
115
+ disabled
116
+ } = (0, _react.useContext)(AccordionItemContext);
117
+ const rotateAnim = (0, _react.useRef)(new _reactNative.Animated.Value(isExpanded ? 1 : 0)).current;
118
+ (0, _react.useEffect)(() => {
119
+ _reactNative.Animated.spring(rotateAnim, {
120
+ toValue: isExpanded ? 1 : 0,
121
+ useNativeDriver: true,
122
+ ..._tokens.animation.spring.snappy
123
+ }).start();
124
+ }, [isExpanded, rotateAnim]);
125
+ const handlePress = (0, _react.useCallback)(() => {
126
+ if (!disabled) {
127
+ toggle(value);
128
+ }
129
+ }, [value, disabled, toggle]);
130
+ const rotation = rotateAnim.interpolate({
131
+ inputRange: [0, 1],
132
+ outputRange: ['0deg', '180deg']
133
+ });
134
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Pressable, {
135
+ style: ({
136
+ pressed
137
+ }) => [{
138
+ flexDirection: 'row',
139
+ alignItems: 'center',
140
+ paddingVertical: _tokens.space.md,
141
+ paddingHorizontal: _tokens.space.xs,
142
+ gap: _tokens.space.sm,
143
+ opacity: disabled ? 0.4 : pressed ? 0.7 : 1
144
+ }, style],
145
+ onPress: handlePress,
146
+ disabled: disabled,
147
+ accessibilityRole: "button",
148
+ accessibilityState: {
149
+ expanded: isExpanded,
150
+ disabled
151
+ },
152
+ children: [icon, /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
153
+ style: {
154
+ flex: 1
155
+ },
156
+ children: typeof children === 'string' ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
157
+ style: [{
158
+ fontSize: 15,
159
+ fontWeight: '600',
160
+ color: theme.colors.text
161
+ }, textStyle],
162
+ children: children
163
+ }) : children
164
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Animated.View, {
165
+ style: {
166
+ transform: [{
167
+ rotate: rotation
168
+ }]
169
+ },
170
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
171
+ style: {
172
+ fontSize: 16,
173
+ color: theme.colors.textSecondary,
174
+ lineHeight: 18
175
+ },
176
+ children: '\u25BE'
177
+ })
178
+ })]
179
+ });
180
+ };
181
+
182
+ // ---- Accordion Content ----
183
+
184
+ const AccordionContentComponent = ({
185
+ children,
186
+ style
187
+ }) => {
188
+ const {
189
+ isExpanded
190
+ } = (0, _react.useContext)(AccordionItemContext);
191
+ const heightAnim = (0, _react.useRef)(new _reactNative.Animated.Value(isExpanded ? 1 : 0)).current;
192
+ (0, _react.useEffect)(() => {
193
+ _reactNative.Animated.spring(heightAnim, {
194
+ toValue: isExpanded ? 1 : 0,
195
+ useNativeDriver: false,
196
+ ..._tokens.animation.spring.gentle
197
+ }).start();
198
+ }, [isExpanded, heightAnim]);
199
+ const opacity = heightAnim.interpolate({
200
+ inputRange: [0, 1],
201
+ outputRange: [0, 1]
202
+ });
203
+ const maxHeight = heightAnim.interpolate({
204
+ inputRange: [0, 1],
205
+ outputRange: [0, 500] // reasonable max; content will use its natural height
206
+ });
207
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Animated.View, {
208
+ style: [{
209
+ overflow: 'hidden',
210
+ opacity,
211
+ maxHeight
212
+ }, style],
213
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
214
+ style: {
215
+ paddingBottom: _tokens.space.md,
216
+ paddingHorizontal: _tokens.space.xs
217
+ },
218
+ children: children
219
+ })
220
+ });
221
+ };
222
+ const Accordion = exports.Accordion = /*#__PURE__*/(0, _react.memo)(AccordionComponent);
223
+ Accordion.displayName = 'Accordion';
224
+ const AccordionItem = exports.AccordionItem = /*#__PURE__*/(0, _react.memo)(AccordionItemComponent);
225
+ AccordionItem.displayName = 'AccordionItem';
226
+ const AccordionTrigger = exports.AccordionTrigger = /*#__PURE__*/(0, _react.memo)(AccordionTriggerComponent);
227
+ AccordionTrigger.displayName = 'AccordionTrigger';
228
+ const AccordionContent = exports.AccordionContent = /*#__PURE__*/(0, _react.memo)(AccordionContentComponent);
229
+ AccordionContent.displayName = 'AccordionContent';
230
+ //# sourceMappingURL=Accordion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_useTheme","_tokens","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","AccordionContext","createContext","expandedValues","Set","toggle","type","AccordionItemContext","value","isExpanded","disabled","AccordionComponent","onValueChange","children","style","testID","useMemo","Array","isArray","useCallback","itemValue","next","undefined","delete","add","from","contextValue","jsx","Provider","View","AccordionItemComponent","useContext","theme","useTheme","itemContext","borderBottomWidth","borderBottomColor","colors","borderLight","AccordionTriggerComponent","icon","textStyle","rotateAnim","useRef","Animated","Value","current","useEffect","spring","toValue","useNativeDriver","animation","snappy","start","handlePress","rotation","interpolate","inputRange","outputRange","jsxs","Pressable","pressed","flexDirection","alignItems","paddingVertical","space","md","paddingHorizontal","xs","gap","sm","opacity","onPress","accessibilityRole","accessibilityState","expanded","flex","Text","fontSize","fontWeight","color","text","transform","rotate","textSecondary","lineHeight","AccordionContentComponent","heightAnim","gentle","maxHeight","overflow","paddingBottom","Accordion","exports","memo","displayName","AccordionItem","AccordionTrigger","AccordionContent"],"sourceRoot":"../../../src","sources":["accordion/Accordion.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "Accordion", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _Accordion.Accordion;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "AccordionContent", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _Accordion.AccordionContent;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "AccordionItem", {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _Accordion.AccordionItem;
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "AccordionTrigger", {
25
+ enumerable: true,
26
+ get: function () {
27
+ return _Accordion.AccordionTrigger;
28
+ }
29
+ });
30
+ var _Accordion = require("./Accordion.js");
31
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_Accordion","require"],"sourceRoot":"../../../src","sources":["accordion/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["accordion/types.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,173 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Badge = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _useTheme = require("../theme/use-theme.js");
10
+ var _jsxRuntime = require("react/jsx-runtime");
11
+ 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); }
12
+ const SIZE_CONFIG = {
13
+ small: {
14
+ minWidth: 16,
15
+ height: 16,
16
+ fontSize: 10,
17
+ paddingHorizontal: 4,
18
+ dotSize: 6
19
+ },
20
+ medium: {
21
+ minWidth: 20,
22
+ height: 20,
23
+ fontSize: 12,
24
+ paddingHorizontal: 6,
25
+ dotSize: 8
26
+ },
27
+ large: {
28
+ minWidth: 24,
29
+ height: 24,
30
+ fontSize: 14,
31
+ paddingHorizontal: 8,
32
+ dotSize: 10
33
+ }
34
+ };
35
+ const PLACEMENT_CONFIG = {
36
+ 'top-right': {
37
+ top: -4,
38
+ right: -4
39
+ },
40
+ 'top-left': {
41
+ top: -4,
42
+ left: -4
43
+ },
44
+ 'bottom-right': {
45
+ bottom: -4,
46
+ right: -4
47
+ },
48
+ 'bottom-left': {
49
+ bottom: -4,
50
+ left: -4
51
+ }
52
+ };
53
+ function useColorPair(color, variant, theme) {
54
+ const colorMap = {
55
+ default: theme.colors.textSecondary,
56
+ primary: theme.colors.primary,
57
+ success: theme.colors.success,
58
+ warning: theme.colors.warning,
59
+ error: theme.colors.error,
60
+ info: theme.colors.info
61
+ };
62
+ const base = colorMap[color];
63
+ switch (variant) {
64
+ case 'solid':
65
+ return {
66
+ bg: base,
67
+ fg: '#fff'
68
+ };
69
+ case 'subtle':
70
+ return {
71
+ bg: base + '20',
72
+ fg: base
73
+ };
74
+ case 'outlined':
75
+ return {
76
+ bg: 'transparent',
77
+ fg: base
78
+ };
79
+ }
80
+ }
81
+ const BadgeComponent = ({
82
+ content,
83
+ variant = 'solid',
84
+ color = 'error',
85
+ size = 'medium',
86
+ dot = false,
87
+ max,
88
+ invisible = false,
89
+ placement = 'top-right',
90
+ children,
91
+ style,
92
+ textStyle,
93
+ testID
94
+ }) => {
95
+ const theme = (0, _useTheme.useTheme)();
96
+ const colors = useColorPair(color, variant, theme);
97
+ const sizeConfig = SIZE_CONFIG[size];
98
+ const displayContent = (0, _react.useMemo)(() => {
99
+ if (dot) return null;
100
+ if (content == null) return null;
101
+ if (typeof content === 'number' && max != null && content > max) {
102
+ return `${max}+`;
103
+ }
104
+ return String(content);
105
+ }, [content, dot, max]);
106
+ const badgeStyle = (0, _react.useMemo)(() => {
107
+ if (dot) {
108
+ return {
109
+ width: sizeConfig.dotSize,
110
+ height: sizeConfig.dotSize,
111
+ borderRadius: sizeConfig.dotSize / 2,
112
+ backgroundColor: colors.bg
113
+ };
114
+ }
115
+ const base = {
116
+ minWidth: sizeConfig.height,
117
+ height: sizeConfig.height,
118
+ borderRadius: sizeConfig.height / 2,
119
+ paddingHorizontal: sizeConfig.paddingHorizontal,
120
+ backgroundColor: colors.bg,
121
+ alignItems: 'center',
122
+ justifyContent: 'center'
123
+ };
124
+ if (variant === 'outlined') {
125
+ base.borderWidth = 1;
126
+ base.borderColor = colors.fg;
127
+ }
128
+ return base;
129
+ }, [dot, sizeConfig, colors, variant]);
130
+ const badgeTextStyle = (0, _react.useMemo)(() => ({
131
+ fontSize: sizeConfig.fontSize,
132
+ fontWeight: '600',
133
+ color: colors.fg,
134
+ textAlign: 'center',
135
+ lineHeight: sizeConfig.height
136
+ }), [sizeConfig, colors]);
137
+
138
+ // Standalone badge (no children)
139
+ if (!children) {
140
+ if (invisible) return null;
141
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
142
+ style: [badgeStyle, style],
143
+ testID: testID,
144
+ children: displayContent != null && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
145
+ style: [badgeTextStyle, textStyle],
146
+ children: displayContent
147
+ })
148
+ });
149
+ }
150
+
151
+ // Positioned badge wrapping children
152
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
153
+ style: {
154
+ position: 'relative',
155
+ alignSelf: 'flex-start'
156
+ },
157
+ testID: testID,
158
+ children: [children, !invisible && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
159
+ style: [{
160
+ position: 'absolute',
161
+ zIndex: 1,
162
+ ...PLACEMENT_CONFIG[placement]
163
+ }, badgeStyle, style],
164
+ children: displayContent != null && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
165
+ style: [badgeTextStyle, textStyle],
166
+ children: displayContent
167
+ })
168
+ })]
169
+ });
170
+ };
171
+ const Badge = exports.Badge = /*#__PURE__*/(0, _react.memo)(BadgeComponent);
172
+ Badge.displayName = 'Badge';
173
+ //# sourceMappingURL=Badge.js.map
@@ -0,0 +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","SIZE_CONFIG","small","minWidth","height","fontSize","paddingHorizontal","dotSize","medium","large","PLACEMENT_CONFIG","top","right","left","bottom","useColorPair","color","variant","theme","colorMap","colors","textSecondary","primary","success","warning","error","info","base","bg","fg","BadgeComponent","content","size","dot","max","invisible","placement","children","style","textStyle","testID","useTheme","sizeConfig","displayContent","useMemo","String","badgeStyle","width","borderRadius","backgroundColor","alignItems","justifyContent","borderWidth","borderColor","badgeTextStyle","fontWeight","textAlign","lineHeight","jsx","View","Text","jsxs","position","alignSelf","zIndex","Badge","exports","memo","displayName"],"sourceRoot":"../../../src","sources":["badge/Badge.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "Badge", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _Badge.Badge;
10
+ }
11
+ });
12
+ var _Badge = require("./Badge.js");
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_Badge","require"],"sourceRoot":"../../../src","sources":["badge/index.ts"],"mappings":";;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["badge/types.ts"],"mappings":"","ignoreList":[]}
@@ -23,10 +23,20 @@ if (_reactNative.Platform.OS !== 'web') {
23
23
  // react-native-keyboard-controller not available
24
24
  }
25
25
  }
26
- const {
27
- width: SCREEN_WIDTH,
28
- height: SCREEN_HEIGHT
29
- } = _reactNative.Dimensions.get('window');
26
+
27
+ /** Hook that returns current screen dimensions and updates on rotation/resize. */
28
+ function useScreenDimensions() {
29
+ const [dimensions, setDimensions] = (0, _react.useState)(() => _reactNative.Dimensions.get('window'));
30
+ (0, _react.useEffect)(() => {
31
+ const subscription = _reactNative.Dimensions.addEventListener('change', ({
32
+ window
33
+ }) => {
34
+ setDimensions(window);
35
+ });
36
+ return () => subscription.remove();
37
+ }, []);
38
+ return dimensions;
39
+ }
30
40
  const SPRING_CONFIG = {
31
41
  damping: 25,
32
42
  stiffness: 300,
@@ -45,15 +55,24 @@ const BottomSheet = exports.BottomSheet = /*#__PURE__*/(0, _react.forwardRef)((p
45
55
  detached = false
46
56
  } = props;
47
57
  const insets = (0, _reactNativeSafeAreaContext.useSafeAreaInsets)();
58
+ const theme = (0, _useTheme.useTheme)();
48
59
  const {
49
60
  colors
50
- } = (0, _useTheme.useTheme)();
61
+ } = theme;
62
+ const {
63
+ height: screenHeight
64
+ } = useScreenDimensions();
51
65
  const [visible, setVisible] = (0, _react.useState)(false);
52
66
  const [rendered, setRendered] = (0, _react.useState)(false); // keep mounted for exit animation
53
67
  const closeTimeoutRef = (0, _react.useRef)(null);
54
68
  const hasClosedRef = (0, _react.useRef)(false);
55
69
  const scrollViewRef = (0, _react.useRef)(null);
56
- const translateY = (0, _reactNativeReanimated.useSharedValue)(SCREEN_HEIGHT);
70
+ const screenHeightSV = (0, _reactNativeReanimated.useSharedValue)(screenHeight);
71
+ // Keep shared value in sync when screen dimensions change (rotation/resize)
72
+ (0, _react.useEffect)(() => {
73
+ screenHeightSV.value = screenHeight;
74
+ }, [screenHeight, screenHeightSV]);
75
+ const translateY = (0, _reactNativeReanimated.useSharedValue)(screenHeight);
57
76
  const opacity = (0, _reactNativeReanimated.useSharedValue)(0);
58
77
  const scrollOffsetY = (0, _reactNativeReanimated.useSharedValue)(0);
59
78
  const isScrollAtTop = (0, _reactNativeReanimated.useSharedValue)(true);
@@ -108,7 +127,7 @@ const BottomSheet = exports.BottomSheet = /*#__PURE__*/(0, _react.forwardRef)((p
108
127
  (0, _reactNativeReanimated.runOnJS)(finishClose)();
109
128
  }
110
129
  });
111
- translateY.value = (0, _reactNativeReanimated.withSpring)(SCREEN_HEIGHT, {
130
+ translateY.value = (0, _reactNativeReanimated.withSpring)(screenHeight, {
112
131
  ...SPRING_CONFIG,
113
132
  stiffness: 250
114
133
  });
@@ -200,11 +219,11 @@ const BottomSheet = exports.BottomSheet = /*#__PURE__*/(0, _react.forwardRef)((p
200
219
  const velocity = event.velocityY;
201
220
  const distance = translateY.value;
202
221
  // Require a deeper pull to close (more like native bottom sheets)
203
- const closeThreshold = Math.max(140, SCREEN_HEIGHT * 0.25);
222
+ const closeThreshold = Math.max(140, screenHeightSV.value * 0.25);
204
223
  const fastSwipeThreshold = 900;
205
224
  const shouldClose = velocity > fastSwipeThreshold || distance > closeThreshold && velocity > -300;
206
225
  if (shouldClose) {
207
- translateY.value = (0, _reactNativeReanimated.withSpring)(SCREEN_HEIGHT, {
226
+ translateY.value = (0, _reactNativeReanimated.withSpring)(screenHeightSV.value, {
208
227
  ...SPRING_CONFIG,
209
228
  velocity: velocity
210
229
  });
@@ -231,7 +250,7 @@ const BottomSheet = exports.BottomSheet = /*#__PURE__*/(0, _react.forwardRef)((p
231
250
  opacity: opacity.value
232
251
  }));
233
252
  const sheetStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => {
234
- const scale = (0, _reactNativeReanimated.interpolate)(translateY.value, [0, SCREEN_HEIGHT], [1, 0.95]);
253
+ const scale = (0, _reactNativeReanimated.interpolate)(translateY.value, [0, screenHeightSV.value], [1, 0.95]);
235
254
  return {
236
255
  transform: [{
237
256
  translateY: translateY.value - keyboardHeight.value
@@ -241,7 +260,7 @@ const BottomSheet = exports.BottomSheet = /*#__PURE__*/(0, _react.forwardRef)((p
241
260
  };
242
261
  });
243
262
  const sheetHeightStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => ({
244
- maxHeight: SCREEN_HEIGHT - keyboardHeight.value - insets.top - (detached ? insets.bottom + 16 : 0)
263
+ maxHeight: screenHeightSV.value - keyboardHeight.value - insets.top - (detached ? insets.bottom + 16 : 0)
245
264
  }), [insets.top, insets.bottom, detached]);
246
265
  const sheetMarginStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => {
247
266
  // Only add margin when detached, otherwise extend behind safe area
@@ -268,11 +287,10 @@ const BottomSheet = exports.BottomSheet = /*#__PURE__*/(0, _react.forwardRef)((p
268
287
  }
269
288
  });
270
289
  const dynamicStyles = (0, _react.useMemo)(() => {
271
- const isDark = colors.background === '#000000';
272
290
  return _reactNative.StyleSheet.create({
273
291
  handle: {
274
292
  ...styles.handle,
275
- backgroundColor: isDark ? '#444' : '#C7C7CC'
293
+ backgroundColor: theme.isDark ? '#444' : '#C7C7CC'
276
294
  },
277
295
  sheet: {
278
296
  ...styles.sheet,
@@ -285,7 +303,7 @@ const BottomSheet = exports.BottomSheet = /*#__PURE__*/(0, _react.forwardRef)((p
285
303
  // The sheet extends behind safe area, and screens add padding as needed
286
304
  }
287
305
  });
288
- }, [colors.background, detached]);
306
+ }, [colors.background, theme.isDark, detached]);
289
307
  if (!rendered) return null;
290
308
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Modal, {
291
309
  visible: rendered,