@oxyhq/bloom 0.70.0 → 0.72.0

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 (68) hide show
  1. package/lib/commonjs/fonts/apply-font-faces.js +5 -4
  2. package/lib/commonjs/fonts/apply-font-faces.js.map +1 -1
  3. package/lib/commonjs/fonts/apply-font-faces.web.js +14 -16
  4. package/lib/commonjs/fonts/apply-font-faces.web.js.map +1 -1
  5. package/lib/commonjs/fonts/assets/BlomusModernus-Bold.woff2 +0 -0
  6. package/lib/commonjs/fonts/assets/BlomusModernus-Regular.woff2 +0 -0
  7. package/lib/commonjs/fonts/assets/GeistMono-Variable.woff2 +0 -0
  8. package/lib/commonjs/fonts/assets/InterVariable.woff2 +0 -0
  9. package/lib/commonjs/fonts/font-assets.web.js +3 -2
  10. package/lib/commonjs/fonts/font-assets.web.js.map +1 -1
  11. package/lib/commonjs/fonts/font-urls.web.js +35 -0
  12. package/lib/commonjs/fonts/font-urls.web.js.map +1 -0
  13. package/lib/commonjs/select/index.web.js +77 -4
  14. package/lib/commonjs/select/index.web.js.map +1 -1
  15. package/lib/module/fonts/apply-font-faces.js +5 -4
  16. package/lib/module/fonts/apply-font-faces.js.map +1 -1
  17. package/lib/module/fonts/apply-font-faces.web.js +14 -16
  18. package/lib/module/fonts/apply-font-faces.web.js.map +1 -1
  19. package/lib/module/fonts/assets/BlomusModernus-Bold.woff2 +0 -0
  20. package/lib/module/fonts/assets/BlomusModernus-Regular.woff2 +0 -0
  21. package/lib/module/fonts/assets/GeistMono-Variable.woff2 +0 -0
  22. package/lib/module/fonts/assets/InterVariable.woff2 +0 -0
  23. package/lib/module/fonts/font-assets.web.js +3 -2
  24. package/lib/module/fonts/font-assets.web.js.map +1 -1
  25. package/lib/module/fonts/font-urls.web.js +32 -0
  26. package/lib/module/fonts/font-urls.web.js.map +1 -0
  27. package/lib/module/fonts/index.web.js +3 -3
  28. package/lib/module/select/index.web.js +78 -5
  29. package/lib/module/select/index.web.js.map +1 -1
  30. package/lib/typescript/commonjs/fonts/apply-font-faces.d.ts.map +1 -1
  31. package/lib/typescript/commonjs/fonts/apply-font-faces.web.d.ts +9 -11
  32. package/lib/typescript/commonjs/fonts/apply-font-faces.web.d.ts.map +1 -1
  33. package/lib/typescript/commonjs/fonts/font-assets.web.d.ts.map +1 -1
  34. package/lib/typescript/commonjs/fonts/font-urls.web.d.ts +6 -0
  35. package/lib/typescript/commonjs/fonts/font-urls.web.d.ts.map +1 -0
  36. package/lib/typescript/commonjs/select/index.web.d.ts +1 -1
  37. package/lib/typescript/commonjs/select/index.web.d.ts.map +1 -1
  38. package/lib/typescript/commonjs/select/types.d.ts +6 -0
  39. package/lib/typescript/commonjs/select/types.d.ts.map +1 -1
  40. package/lib/typescript/module/fonts/apply-font-faces.d.ts.map +1 -1
  41. package/lib/typescript/module/fonts/apply-font-faces.web.d.ts +9 -11
  42. package/lib/typescript/module/fonts/apply-font-faces.web.d.ts.map +1 -1
  43. package/lib/typescript/module/fonts/font-assets.web.d.ts.map +1 -1
  44. package/lib/typescript/module/fonts/font-urls.web.d.ts +6 -0
  45. package/lib/typescript/module/fonts/font-urls.web.d.ts.map +1 -0
  46. package/lib/typescript/module/select/index.web.d.ts +1 -1
  47. package/lib/typescript/module/select/index.web.d.ts.map +1 -1
  48. package/lib/typescript/module/select/types.d.ts +6 -0
  49. package/lib/typescript/module/select/types.d.ts.map +1 -1
  50. package/package.json +4 -7
  51. package/src/__tests__/SelectItemLabel.test.tsx +46 -0
  52. package/src/__tests__/apply-font-faces.test.ts +32 -0
  53. package/src/fonts/apply-font-faces.ts +5 -4
  54. package/src/fonts/apply-font-faces.web.ts +14 -16
  55. package/src/fonts/font-assets.web.ts +3 -2
  56. package/src/fonts/font-urls.web.ts +30 -0
  57. package/src/fonts/index.web.ts +3 -3
  58. package/src/select/index.web.tsx +87 -4
  59. package/src/select/types.ts +6 -0
  60. package/lib/commonjs/fonts/font-data.web.js +0 -22
  61. package/lib/commonjs/fonts/font-data.web.js.map +0 -1
  62. package/lib/module/fonts/font-data.web.js +0 -18
  63. package/lib/module/fonts/font-data.web.js.map +0 -1
  64. package/lib/typescript/commonjs/fonts/font-data.web.d.ts +0 -5
  65. package/lib/typescript/commonjs/fonts/font-data.web.d.ts.map +0 -1
  66. package/lib/typescript/module/fonts/font-data.web.d.ts +0 -5
  67. package/lib/typescript/module/fonts/font-data.web.d.ts.map +0 -1
  68. package/src/fonts/font-data.web.ts +0 -15
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- import React, { createContext, useContext, useId, useMemo, useState } from 'react';
3
+ import React, { createContext, useCallback, useContext, useId, useLayoutEffect, useMemo, useRef, useState } from 'react';
4
4
  import { Pressable, StyleSheet, View } from 'react-native';
5
5
  import { useTheme } from "../theme/use-theme.js";
6
6
  import { Text } from "../typography/index.js";
@@ -8,6 +8,7 @@ import { Backdrop } from "../overlay/index.js";
8
8
  import { Portal } from "../portal/index.web.js";
9
9
  import { createOverlayZIndex } from "../styles/z-index.js";
10
10
  import { WEB_POSITION_FIXED } from "../styles/web-view-style.js";
11
+ import { resolveDropdownPlacement } from "../overlay/dropdown-placement.js";
11
12
  import { bloomShadowStyle } from '../design-tokens/shadows';
12
13
  import { useInteractionState } from "../hooks/useInteractionState.js";
13
14
  import { ChevronBottom_Stroke2_Corner0_Rounded as ChevronDownIcon } from "../icons/Chevron.js";
@@ -16,6 +17,8 @@ import { defaultItemValueExtractor, ItemContext, useSelectItemContext } from "./
16
17
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
17
18
  export { useSelectItemContext };
18
19
  const selectZIndex = createOverlayZIndex();
20
+ const VIEWPORT_GUTTER = 8;
21
+ const SELECT_OFFSET = 6;
19
22
 
20
23
  // ---------------------------------------------------------------------------
21
24
  // Context
@@ -42,13 +45,15 @@ export function Select({
42
45
  disabled
43
46
  }) {
44
47
  const [isOpen, setIsOpen] = useState(false);
48
+ const triggerRef = useRef(null);
45
49
  const ctx = useMemo(() => ({
46
50
  value,
47
51
  onValueChange,
48
52
  disabled,
49
53
  isOpen,
50
54
  open: () => setIsOpen(true),
51
- close: () => setIsOpen(false)
55
+ close: () => setIsOpen(false),
56
+ triggerRef
52
57
  }), [value, onValueChange, disabled, isOpen]);
53
58
  return /*#__PURE__*/_jsx(SelectContext.Provider, {
54
59
  value: ctx,
@@ -93,6 +98,7 @@ export function SelectTrigger({
93
98
  pressed: false
94
99
  },
95
100
  props: {
101
+ ref: ctx.triggerRef,
96
102
  onPress: ctx.open,
97
103
  onFocus,
98
104
  onBlur,
@@ -101,6 +107,7 @@ export function SelectTrigger({
101
107
  });
102
108
  }
103
109
  return /*#__PURE__*/_jsx(Pressable, {
110
+ ref: ctx.triggerRef,
104
111
  onPress: ctx.open,
105
112
  onFocus: onFocus,
106
113
  onBlur: onBlur,
@@ -166,6 +173,58 @@ export function SelectContent({
166
173
  }) {
167
174
  const ctx = useSelectContext();
168
175
  const theme = useTheme();
176
+ const [position, setPosition] = useState(null);
177
+ // The mounted dropdown node, as STATE rather than a bare ref: positioning has
178
+ // to measure it, and `Portal` renders null on its first pass (it resolves its
179
+ // host in its own layout effect), so the node lands one render after `isOpen`
180
+ // flips. An effect keyed only on `isOpen` would measure nothing.
181
+ const [dropdownNode, setDropdownNode] = useState(null);
182
+ const attachDropdown = useCallback(node => {
183
+ setDropdownNode(node);
184
+ }, []);
185
+
186
+ // Anchored to the trigger, left edges aligned, and never off-screen: sit below
187
+ // when it fits, flip above when it doesn't, clamp when neither. Before this the
188
+ // dropdown had no `top`/`left` at all, so it rendered at the `Portal` root's
189
+ // origin — the viewport's top-left corner — however far from its trigger.
190
+ useLayoutEffect(() => {
191
+ if (!ctx.isOpen || typeof window === 'undefined') return;
192
+ const triggerNode = ctx.triggerRef.current;
193
+ if (!triggerNode?.getBoundingClientRect || !dropdownNode) return;
194
+ const updatePosition = () => {
195
+ const rect = triggerNode.getBoundingClientRect();
196
+ // Measured BEFORE `minWidth` is applied, so the final surface can only be
197
+ // wider than this — and a wider surface wraps less, so the measured height
198
+ // is an upper bound. Erring that way flips early in a tie, never late.
199
+ const surface = dropdownNode.getBoundingClientRect();
200
+ const width = Math.max(surface.width, rect.width);
201
+ setPosition({
202
+ position: WEB_POSITION_FIXED,
203
+ ...resolveDropdownPlacement({
204
+ anchor: rect,
205
+ size: {
206
+ width,
207
+ height: surface.height
208
+ },
209
+ viewport: {
210
+ width: window.innerWidth,
211
+ height: window.innerHeight
212
+ },
213
+ offset: SELECT_OFFSET,
214
+ gutter: VIEWPORT_GUTTER,
215
+ align: 'start'
216
+ }),
217
+ minWidth: width
218
+ });
219
+ };
220
+ updatePosition();
221
+ window.addEventListener('resize', updatePosition);
222
+ window.addEventListener('scroll', updatePosition, true);
223
+ return () => {
224
+ window.removeEventListener('resize', updatePosition);
225
+ window.removeEventListener('scroll', updatePosition, true);
226
+ };
227
+ }, [ctx.isOpen, ctx.triggerRef, dropdownNode]);
169
228
  if (!ctx.isOpen) return null;
170
229
  return /*#__PURE__*/_jsxs(Portal, {
171
230
  children: [/*#__PURE__*/_jsx(Backdrop, {
@@ -173,13 +232,14 @@ export function SelectContent({
173
232
  onPress: ctx.close,
174
233
  accessibilityLabel: "Close selection"
175
234
  }), /*#__PURE__*/_jsx(View, {
235
+ ref: attachDropdown,
176
236
  accessibilityRole: "list",
177
237
  accessibilityLabel: label,
178
238
  style: [styles.dropdown, {
179
239
  backgroundColor: theme.isDark ? theme.colors.backgroundSecondary : theme.colors.background,
180
240
  borderColor: theme.colors.borderLight,
181
241
  ...bloomShadowStyle('m')
182
- }],
242
+ }, position],
183
243
  children: items.map((item, index) => /*#__PURE__*/_jsx(React.Fragment, {
184
244
  children: renderItem(item, index, ctx.value)
185
245
  }, valueExtractor(item)))
@@ -194,6 +254,7 @@ export function SelectContent({
194
254
  export function SelectItem({
195
255
  ref,
196
256
  value,
257
+ label,
197
258
  children,
198
259
  style
199
260
  }) {
@@ -218,7 +279,12 @@ export function SelectItem({
218
279
  }), [isSelected, hovered, focused]);
219
280
  return /*#__PURE__*/_jsx(Pressable, {
220
281
  ref: ref,
221
- accessibilityRole: "radio",
282
+ accessibilityRole: "radio"
283
+ // The native fork has always applied this; web declared `label` and then
284
+ // dropped it, leaving every option a `role="radio"` with no accessible
285
+ // name for a screen reader to announce.
286
+ ,
287
+ accessibilityLabel: label,
222
288
  accessibilityState: {
223
289
  checked: isSelected
224
290
  },
@@ -322,7 +388,14 @@ const styles = StyleSheet.create({
322
388
  pointerEvents: 'auto'
323
389
  },
324
390
  dropdown: {
325
- position: 'absolute',
391
+ // Fixed from the outset, not only once positioned: the `Portal` root is a
392
+ // block container, so a static child would stretch to the full viewport
393
+ // width and the pre-position measurement would under-read the height (less
394
+ // wrapping at a width the surface never actually has). A fixed box
395
+ // shrink-wraps to the same width it ends up with.
396
+ position: WEB_POSITION_FIXED,
397
+ top: 0,
398
+ left: 0,
326
399
  zIndex: selectZIndex.surface,
327
400
  borderRadius: 8,
328
401
  borderWidth: 1,
@@ -1 +1 @@
1
- {"version":3,"names":["React","createContext","useContext","useId","useMemo","useState","Pressable","StyleSheet","View","useTheme","Text","Backdrop","Portal","createOverlayZIndex","WEB_POSITION_FIXED","bloomShadowStyle","useInteractionState","ChevronBottom_Stroke2_Corner0_Rounded","ChevronDownIcon","Check_Stroke2_Corner0_Rounded","CheckIcon","defaultItemValueExtractor","ItemContext","useSelectItemContext","jsx","_jsx","jsxs","_jsxs","selectZIndex","SelectContext","displayName","useSelectContext","ctx","Error","Select","children","value","onValueChange","disabled","isOpen","setIsOpen","open","close","Provider","SelectTrigger","label","theme","triggerId","state","hovered","onIn","onMouseEnter","onOut","onMouseLeave","focused","onFocus","onBlur","control","id","ref","current","pressed","props","onPress","accessibilityLabel","accessibilityRole","style","styles","trigger","backgroundColor","colors","contrast50","borderColor","primary","SelectValue","extractLabel","placeholder","display","numberOfLines","valueText","color","text","textSecondary","SelectIcon","size","fill","SelectContent","items","renderItem","valueExtractor","backdrop","dropdown","isDark","backgroundSecondary","background","borderLight","map","item","index","Fragment","SelectItem","isSelected","itemCtx","selected","accessibilityState","checked","primaryLight","SelectItemText","itemText","SelectItemIndicator","icon","IconComponent","itemIndicatorPlaceholder","itemIndicatorContainer","SelectSeparator","separator","create","flexDirection","position","alignItems","gap","justifyContent","paddingVertical","paddingHorizontal","borderRadius","maxWidth","borderWidth","borderStyle","fontSize","top","left","right","bottom","zIndex","pointerEvents","surface","overflow","padding","minWidth","minHeight","paddingLeft","paddingRight","width","height","marginVertical"],"sourceRoot":"../../../src","sources":["select/index.web.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","createContext","useCallback","useContext","useId","useLayoutEffect","useMemo","useRef","useState","Pressable","StyleSheet","View","useTheme","Text","Backdrop","Portal","createOverlayZIndex","WEB_POSITION_FIXED","resolveDropdownPlacement","bloomShadowStyle","useInteractionState","ChevronBottom_Stroke2_Corner0_Rounded","ChevronDownIcon","Check_Stroke2_Corner0_Rounded","CheckIcon","defaultItemValueExtractor","ItemContext","useSelectItemContext","jsx","_jsx","jsxs","_jsxs","selectZIndex","VIEWPORT_GUTTER","SELECT_OFFSET","SelectContext","displayName","useSelectContext","ctx","Error","Select","children","value","onValueChange","disabled","isOpen","setIsOpen","triggerRef","open","close","Provider","SelectTrigger","label","theme","triggerId","state","hovered","onIn","onMouseEnter","onOut","onMouseLeave","focused","onFocus","onBlur","control","id","ref","current","pressed","props","onPress","accessibilityLabel","accessibilityRole","style","styles","trigger","backgroundColor","colors","contrast50","borderColor","primary","SelectValue","extractLabel","placeholder","display","numberOfLines","valueText","color","text","textSecondary","SelectIcon","size","fill","SelectContent","items","renderItem","valueExtractor","position","setPosition","dropdownNode","setDropdownNode","attachDropdown","node","window","triggerNode","getBoundingClientRect","updatePosition","rect","surface","width","Math","max","anchor","height","viewport","innerWidth","innerHeight","offset","gutter","align","minWidth","addEventListener","removeEventListener","backdrop","dropdown","isDark","backgroundSecondary","background","borderLight","map","item","index","Fragment","SelectItem","isSelected","itemCtx","selected","accessibilityState","checked","primaryLight","SelectItemText","itemText","SelectItemIndicator","icon","IconComponent","itemIndicatorPlaceholder","itemIndicatorContainer","SelectSeparator","separator","create","flexDirection","alignItems","gap","justifyContent","paddingVertical","paddingHorizontal","borderRadius","maxWidth","borderWidth","borderStyle","fontSize","top","left","right","bottom","zIndex","pointerEvents","overflow","padding","minHeight","paddingLeft","paddingRight","marginVertical"],"sourceRoot":"../../../src","sources":["select/index.web.tsx"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"apply-font-faces.d.ts","sourceRoot":"","sources":["../../../../src/fonts/apply-font-faces.ts"],"names":[],"mappings":"AAQA,wBAAgB,cAAc,IAAI,IAAI,CAErC"}
1
+ {"version":3,"file":"apply-font-faces.d.ts","sourceRoot":"","sources":["../../../../src/fonts/apply-font-faces.ts"],"names":[],"mappings":"AASA,wBAAgB,cAAc,IAAI,IAAI,CAErC"}
@@ -2,18 +2,16 @@
2
2
  * Inject @font-face rules and font CSS variables onto :root.
3
3
  *
4
4
  * Web-only. The native counterpart in `apply-font-faces.ts` is a no-op
5
- * stub — Metro cannot parse `.woff2` imports, so the file split keeps
6
- * the font payload out of the native bundle entirely. Idempotent: safe to
7
- * call multiple times; subsequent calls early-return after the
8
- * `<style id="bloom-fonts">` tag has been mounted. SSR-safe via the
9
- * `typeof document === 'undefined'` guard.
5
+ * stub — native loads its fonts through `useFonts(FONT_ASSETS)`, so the file
6
+ * split keeps the web font payload out of the native bundle entirely.
7
+ * Idempotent: safe to call multiple times; subsequent calls early-return
8
+ * after the `<style id="bloom-fonts">` tag has been mounted. SSR-safe via
9
+ * the `typeof document === 'undefined'` guard.
10
10
  *
11
- * The font URLs come from `./font-data.web`, a generated module that
12
- * embeds the woff2 bytes as base64 data URLs. Inlining (rather than
13
- * relying on bundler asset loaders for `.woff2`) means consumers do not
14
- * have to extend Metro's `assetExts` or add a webpack/Vite asset rule —
15
- * the published JS is self-contained. See `scripts/generate-font-data.mjs`
16
- * for the rationale and trade-offs.
11
+ * The URLs come from `./font-urls.web`, which imports the `.woff2` files so
12
+ * the consuming bundler emits them as separate, cacheable assets. See that
13
+ * module for the per-bundler details and for the one thing a consumer has to
14
+ * provide (Metro needs `woff2` in `assetExts`).
17
15
  */
18
16
  export declare function applyFontFaces(): void;
19
17
  //# sourceMappingURL=apply-font-faces.web.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"apply-font-faces.web.d.ts","sourceRoot":"","sources":["../../../../src/fonts/apply-font-faces.web.ts"],"names":[],"mappings":"AAUA;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAkBrC"}
1
+ {"version":3,"file":"apply-font-faces.web.d.ts","sourceRoot":"","sources":["../../../../src/fonts/apply-font-faces.web.ts"],"names":[],"mappings":"AAUA;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAkBrC"}
@@ -1 +1 @@
1
- {"version":3,"file":"font-assets.web.d.ts","sourceRoot":"","sources":["../../../../src/fonts/font-assets.web.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C,eAAO,MAAM,WAAW,EAAE,YAAiB,CAAC"}
1
+ {"version":3,"file":"font-assets.web.d.ts","sourceRoot":"","sources":["../../../../src/fonts/font-assets.web.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C,eAAO,MAAM,WAAW,EAAE,YAAiB,CAAC"}
@@ -0,0 +1,6 @@
1
+ import blomusModernusBold from './assets/BlomusModernus-Bold.woff2';
2
+ import blomusModernusRegular from './assets/BlomusModernus-Regular.woff2';
3
+ import geistMonoVariable from './assets/GeistMono-Variable.woff2';
4
+ import interVariable from './assets/InterVariable.woff2';
5
+ export { blomusModernusRegular, blomusModernusBold, interVariable, geistMonoVariable };
6
+ //# sourceMappingURL=font-urls.web.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"font-urls.web.d.ts","sourceRoot":"","sources":["../../../../src/fonts/font-urls.web.ts"],"names":[],"mappings":"AAwBA,OAAO,kBAAkB,MAAM,oCAAoC,CAAC;AACpE,OAAO,qBAAqB,MAAM,uCAAuC,CAAC;AAC1E,OAAO,iBAAiB,MAAM,mCAAmC,CAAC;AAClE,OAAO,aAAa,MAAM,8BAA8B,CAAC;AAEzD,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,aAAa,EAAE,iBAAiB,EAAE,CAAC"}
@@ -7,7 +7,7 @@ export declare function SelectTrigger({ children, label }: SelectTriggerProps):
7
7
  export declare function SelectValue({ children: extractLabel, placeholder, style, }: SelectValueProps): import("react/jsx-runtime").JSX.Element;
8
8
  export declare function SelectIcon({ style }: SelectIconProps): import("react/jsx-runtime").JSX.Element;
9
9
  export declare function SelectContent<T>({ items, renderItem, label, valueExtractor, }: SelectContentProps<T>): import("react/jsx-runtime").JSX.Element | null;
10
- export declare function SelectItem({ ref, value, children, style }: SelectItemProps): import("react/jsx-runtime").JSX.Element;
10
+ export declare function SelectItem({ ref, value, label, children, style }: SelectItemProps): import("react/jsx-runtime").JSX.Element;
11
11
  export declare function SelectItemText({ children, style }: SelectItemTextProps): import("react/jsx-runtime").JSX.Element;
12
12
  export declare function SelectItemIndicator({ icon: IconComponent }: SelectItemIndicatorProps): import("react/jsx-runtime").JSX.Element;
13
13
  export declare function SelectSeparator(): import("react/jsx-runtime").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../../../src/select/index.web.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8D,MAAM,OAAO,CAAC;AAgBnF,OAAO,EAA0C,oBAAoB,EAAE,MAAM,UAAU,CAAC;AACxF,OAAO,KAAK,EACV,kBAAkB,EAClB,eAAe,EACf,wBAAwB,EACxB,eAAe,EACf,mBAAmB,EACnB,WAAW,EAEX,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,oBAAoB,EAAE,CAAC;AA6BhC,wBAAgB,MAAM,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,WAAW,2CAgB/E;AAMD,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,kBAAkB,yTAuDpE;AAMD,wBAAgB,WAAW,CAAC,EAC1B,QAAQ,EAAE,YAAY,EACtB,WAAW,EACX,KAAK,GACN,EAAE,gBAAgB,2CAkBlB;AAMD,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,EAAE,eAAe,2CAGpD;AAMD,wBAAgB,aAAa,CAAC,CAAC,EAAE,EAC/B,KAAK,EACL,UAAU,EACV,KAA0B,EAC1B,cAA0C,GAC3C,EAAE,kBAAkB,CAAC,CAAC,CAAC,kDAmCvB;AAMD,wBAAgB,UAAU,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,eAAe,2CAyC1E;AAMD,wBAAgB,cAAc,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,mBAAmB,2CAMtE;AAMD,wBAAgB,mBAAmB,CAAC,EAAE,IAAI,EAAE,aAAyB,EAAE,EAAE,wBAAwB,2CAYhG;AAMD,wBAAgB,eAAe,4CAW9B"}
1
+ {"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../../../src/select/index.web.tsx"],"names":[],"mappings":"AAAA,OAAO,KASN,MAAM,OAAO,CAAC;AAiBf,OAAO,EAA0C,oBAAoB,EAAE,MAAM,UAAU,CAAC;AACxF,OAAO,KAAK,EACV,kBAAkB,EAClB,eAAe,EACf,wBAAwB,EACxB,eAAe,EACf,mBAAmB,EACnB,WAAW,EAEX,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,oBAAoB,EAAE,CAAC;AAiChC,wBAAgB,MAAM,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,WAAW,2CAkB/E;AAMD,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,kBAAkB,yTAyDpE;AAMD,wBAAgB,WAAW,CAAC,EAC1B,QAAQ,EAAE,YAAY,EACtB,WAAW,EACX,KAAK,GACN,EAAE,gBAAgB,2CAkBlB;AAMD,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,EAAE,eAAe,2CAGpD;AAMD,wBAAgB,aAAa,CAAC,CAAC,EAAE,EAC/B,KAAK,EACL,UAAU,EACV,KAA0B,EAC1B,cAA0C,GAC3C,EAAE,kBAAkB,CAAC,CAAC,CAAC,kDAyFvB;AAMD,wBAAgB,UAAU,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,eAAe,2CA6CjF;AAMD,wBAAgB,cAAc,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,mBAAmB,2CAMtE;AAMD,wBAAgB,mBAAmB,CAAC,EAAE,IAAI,EAAE,aAAyB,EAAE,EAAE,wBAAwB,2CAYhG;AAMD,wBAAgB,eAAe,4CAW9B"}
@@ -19,6 +19,12 @@ export type TriggerChildProps = {
19
19
  pressed: boolean;
20
20
  };
21
21
  props: {
22
+ /**
23
+ * Attach this to the element the trigger actually renders. On web the
24
+ * dropdown is positioned against its measured rect; a trigger that drops
25
+ * it falls back to the viewport's top-left corner.
26
+ */
27
+ ref?: React.Ref<unknown>;
22
28
  onPress: () => void;
23
29
  onFocus: () => void;
24
30
  onBlur: () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/select/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/select/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"apply-font-faces.d.ts","sourceRoot":"","sources":["../../../../src/fonts/apply-font-faces.ts"],"names":[],"mappings":"AAQA,wBAAgB,cAAc,IAAI,IAAI,CAErC"}
1
+ {"version":3,"file":"apply-font-faces.d.ts","sourceRoot":"","sources":["../../../../src/fonts/apply-font-faces.ts"],"names":[],"mappings":"AASA,wBAAgB,cAAc,IAAI,IAAI,CAErC"}
@@ -2,18 +2,16 @@
2
2
  * Inject @font-face rules and font CSS variables onto :root.
3
3
  *
4
4
  * Web-only. The native counterpart in `apply-font-faces.ts` is a no-op
5
- * stub — Metro cannot parse `.woff2` imports, so the file split keeps
6
- * the font payload out of the native bundle entirely. Idempotent: safe to
7
- * call multiple times; subsequent calls early-return after the
8
- * `<style id="bloom-fonts">` tag has been mounted. SSR-safe via the
9
- * `typeof document === 'undefined'` guard.
5
+ * stub — native loads its fonts through `useFonts(FONT_ASSETS)`, so the file
6
+ * split keeps the web font payload out of the native bundle entirely.
7
+ * Idempotent: safe to call multiple times; subsequent calls early-return
8
+ * after the `<style id="bloom-fonts">` tag has been mounted. SSR-safe via
9
+ * the `typeof document === 'undefined'` guard.
10
10
  *
11
- * The font URLs come from `./font-data.web`, a generated module that
12
- * embeds the woff2 bytes as base64 data URLs. Inlining (rather than
13
- * relying on bundler asset loaders for `.woff2`) means consumers do not
14
- * have to extend Metro's `assetExts` or add a webpack/Vite asset rule —
15
- * the published JS is self-contained. See `scripts/generate-font-data.mjs`
16
- * for the rationale and trade-offs.
11
+ * The URLs come from `./font-urls.web`, which imports the `.woff2` files so
12
+ * the consuming bundler emits them as separate, cacheable assets. See that
13
+ * module for the per-bundler details and for the one thing a consumer has to
14
+ * provide (Metro needs `woff2` in `assetExts`).
17
15
  */
18
16
  export declare function applyFontFaces(): void;
19
17
  //# sourceMappingURL=apply-font-faces.web.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"apply-font-faces.web.d.ts","sourceRoot":"","sources":["../../../../src/fonts/apply-font-faces.web.ts"],"names":[],"mappings":"AAUA;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAkBrC"}
1
+ {"version":3,"file":"apply-font-faces.web.d.ts","sourceRoot":"","sources":["../../../../src/fonts/apply-font-faces.web.ts"],"names":[],"mappings":"AAUA;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAkBrC"}
@@ -1 +1 @@
1
- {"version":3,"file":"font-assets.web.d.ts","sourceRoot":"","sources":["../../../../src/fonts/font-assets.web.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C,eAAO,MAAM,WAAW,EAAE,YAAiB,CAAC"}
1
+ {"version":3,"file":"font-assets.web.d.ts","sourceRoot":"","sources":["../../../../src/fonts/font-assets.web.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C,eAAO,MAAM,WAAW,EAAE,YAAiB,CAAC"}
@@ -0,0 +1,6 @@
1
+ import blomusModernusBold from './assets/BlomusModernus-Bold.woff2';
2
+ import blomusModernusRegular from './assets/BlomusModernus-Regular.woff2';
3
+ import geistMonoVariable from './assets/GeistMono-Variable.woff2';
4
+ import interVariable from './assets/InterVariable.woff2';
5
+ export { blomusModernusRegular, blomusModernusBold, interVariable, geistMonoVariable };
6
+ //# sourceMappingURL=font-urls.web.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"font-urls.web.d.ts","sourceRoot":"","sources":["../../../../src/fonts/font-urls.web.ts"],"names":[],"mappings":"AAwBA,OAAO,kBAAkB,MAAM,oCAAoC,CAAC;AACpE,OAAO,qBAAqB,MAAM,uCAAuC,CAAC;AAC1E,OAAO,iBAAiB,MAAM,mCAAmC,CAAC;AAClE,OAAO,aAAa,MAAM,8BAA8B,CAAC;AAEzD,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,aAAa,EAAE,iBAAiB,EAAE,CAAC"}
@@ -7,7 +7,7 @@ export declare function SelectTrigger({ children, label }: SelectTriggerProps):
7
7
  export declare function SelectValue({ children: extractLabel, placeholder, style, }: SelectValueProps): import("react/jsx-runtime").JSX.Element;
8
8
  export declare function SelectIcon({ style }: SelectIconProps): import("react/jsx-runtime").JSX.Element;
9
9
  export declare function SelectContent<T>({ items, renderItem, label, valueExtractor, }: SelectContentProps<T>): import("react/jsx-runtime").JSX.Element | null;
10
- export declare function SelectItem({ ref, value, children, style }: SelectItemProps): import("react/jsx-runtime").JSX.Element;
10
+ export declare function SelectItem({ ref, value, label, children, style }: SelectItemProps): import("react/jsx-runtime").JSX.Element;
11
11
  export declare function SelectItemText({ children, style }: SelectItemTextProps): import("react/jsx-runtime").JSX.Element;
12
12
  export declare function SelectItemIndicator({ icon: IconComponent }: SelectItemIndicatorProps): import("react/jsx-runtime").JSX.Element;
13
13
  export declare function SelectSeparator(): import("react/jsx-runtime").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../../../src/select/index.web.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8D,MAAM,OAAO,CAAC;AAgBnF,OAAO,EAA0C,oBAAoB,EAAE,MAAM,UAAU,CAAC;AACxF,OAAO,KAAK,EACV,kBAAkB,EAClB,eAAe,EACf,wBAAwB,EACxB,eAAe,EACf,mBAAmB,EACnB,WAAW,EAEX,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,oBAAoB,EAAE,CAAC;AA6BhC,wBAAgB,MAAM,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,WAAW,2CAgB/E;AAMD,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,kBAAkB,yTAuDpE;AAMD,wBAAgB,WAAW,CAAC,EAC1B,QAAQ,EAAE,YAAY,EACtB,WAAW,EACX,KAAK,GACN,EAAE,gBAAgB,2CAkBlB;AAMD,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,EAAE,eAAe,2CAGpD;AAMD,wBAAgB,aAAa,CAAC,CAAC,EAAE,EAC/B,KAAK,EACL,UAAU,EACV,KAA0B,EAC1B,cAA0C,GAC3C,EAAE,kBAAkB,CAAC,CAAC,CAAC,kDAmCvB;AAMD,wBAAgB,UAAU,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,eAAe,2CAyC1E;AAMD,wBAAgB,cAAc,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,mBAAmB,2CAMtE;AAMD,wBAAgB,mBAAmB,CAAC,EAAE,IAAI,EAAE,aAAyB,EAAE,EAAE,wBAAwB,2CAYhG;AAMD,wBAAgB,eAAe,4CAW9B"}
1
+ {"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../../../src/select/index.web.tsx"],"names":[],"mappings":"AAAA,OAAO,KASN,MAAM,OAAO,CAAC;AAiBf,OAAO,EAA0C,oBAAoB,EAAE,MAAM,UAAU,CAAC;AACxF,OAAO,KAAK,EACV,kBAAkB,EAClB,eAAe,EACf,wBAAwB,EACxB,eAAe,EACf,mBAAmB,EACnB,WAAW,EAEX,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,oBAAoB,EAAE,CAAC;AAiChC,wBAAgB,MAAM,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,WAAW,2CAkB/E;AAMD,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,kBAAkB,yTAyDpE;AAMD,wBAAgB,WAAW,CAAC,EAC1B,QAAQ,EAAE,YAAY,EACtB,WAAW,EACX,KAAK,GACN,EAAE,gBAAgB,2CAkBlB;AAMD,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,EAAE,eAAe,2CAGpD;AAMD,wBAAgB,aAAa,CAAC,CAAC,EAAE,EAC/B,KAAK,EACL,UAAU,EACV,KAA0B,EAC1B,cAA0C,GAC3C,EAAE,kBAAkB,CAAC,CAAC,CAAC,kDAyFvB;AAMD,wBAAgB,UAAU,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,eAAe,2CA6CjF;AAMD,wBAAgB,cAAc,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,mBAAmB,2CAMtE;AAMD,wBAAgB,mBAAmB,CAAC,EAAE,IAAI,EAAE,aAAyB,EAAE,EAAE,wBAAwB,2CAYhG;AAMD,wBAAgB,eAAe,4CAW9B"}
@@ -19,6 +19,12 @@ export type TriggerChildProps = {
19
19
  pressed: boolean;
20
20
  };
21
21
  props: {
22
+ /**
23
+ * Attach this to the element the trigger actually renders. On web the
24
+ * dropdown is positioned against its measured rect; a trigger that drops
25
+ * it falls back to the viewport's top-left corner.
26
+ */
27
+ ref?: React.Ref<unknown>;
22
28
  onPress: () => void;
23
29
  onFocus: () => void;
24
30
  onBlur: () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/select/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/select/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oxyhq/bloom",
3
- "version": "0.70.0",
3
+ "version": "0.72.0",
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",
@@ -1419,19 +1419,16 @@
1419
1419
  "license": "AGPL-3.0-only",
1420
1420
  "scripts": {
1421
1421
  "generate:exports": "node scripts/generate-platform-exports.mjs",
1422
- "generate:font-data": "node scripts/generate-font-data.mjs",
1423
1422
  "generate:theme-css": "bun scripts/generate-theme-css.ts",
1424
- "prebuild": "node scripts/generate-platform-exports.mjs && node scripts/generate-font-data.mjs && bun scripts/generate-theme-css.ts",
1423
+ "prebuild": "node scripts/generate-platform-exports.mjs && bun scripts/generate-theme-css.ts",
1425
1424
  "build": "bob build",
1426
1425
  "postbuild": "node scripts/verify-package.mjs",
1427
1426
  "verify:package": "node scripts/verify-package.mjs",
1428
1427
  "test": "jest",
1429
- "pretest": "node scripts/generate-font-data.mjs",
1430
1428
  "typescript": "tsc --noEmit",
1431
- "pretypescript": "node scripts/generate-font-data.mjs",
1432
1429
  "clean": "rm -rf lib",
1433
1430
  "prepack": "bun run clean && bun run build",
1434
- "prepare": "bun run build || true",
1431
+ "prepare": "[ -n \"$BLOOM_VERIFY_PACKAGE_RUNNING\" ] || bun run build || true",
1435
1432
  "release": "rm -rf lib && bun run build && release-it",
1436
1433
  "storybook": "storybook dev -p 6006 --no-open",
1437
1434
  "storybook:build": "storybook build -o storybook-static"
@@ -1539,7 +1536,7 @@
1539
1536
  "react-native-builder-bob": {
1540
1537
  "source": "src",
1541
1538
  "output": "lib",
1542
- "exclude": "{**/{__tests__,__fixtures__,__mocks__}/**,**/*.stories.{ts,tsx},**/*.{test,spec}.{ts,tsx},**/*.woff2}",
1539
+ "exclude": "{**/{__tests__,__fixtures__,__mocks__}/**,**/*.stories.{ts,tsx},**/*.{test,spec}.{ts,tsx}}",
1543
1540
  "targets": [
1544
1541
  [
1545
1542
  "commonjs",
@@ -0,0 +1,46 @@
1
+ import React from 'react';
2
+ import { render } from '@testing-library/react-native';
3
+
4
+ import { BloomThemeProvider } from '../theme/BloomThemeProvider';
5
+ // Imported by explicit filename: jest has no platform-extension resolution, so
6
+ // `'../select'` would silently exercise the NATIVE fork — which has always
7
+ // applied the label — and the suite would pass no matter what the web fork did.
8
+ import {
9
+ Select as WebSelect,
10
+ SelectItem as WebSelectItem,
11
+ SelectItemText as WebSelectItemText,
12
+ } from '../select/index.web';
13
+ import {
14
+ Select as NativeSelect,
15
+ SelectItem as NativeSelectItem,
16
+ SelectItemText as NativeSelectItemText,
17
+ } from '../select/index';
18
+
19
+ /**
20
+ * `SelectItem` renders `accessibilityRole="radio"`. A radio with no accessible
21
+ * name is announced as nothing at all, and the web fork declared `label` in its
22
+ * props type and then dropped it on the floor — invisible to `tsc`, since an
23
+ * unused destructured prop is not an error.
24
+ *
25
+ * Both forks are asserted from one file so the platforms cannot drift again.
26
+ */
27
+ describe.each([
28
+ ['web', WebSelect, WebSelectItem, WebSelectItemText] as const,
29
+ ['native', NativeSelect, NativeSelectItem, NativeSelectItemText] as const,
30
+ ])('SelectItem (%s fork)', (_platform, Select, SelectItem, SelectItemText) => {
31
+ it('exposes its label as the accessible name', () => {
32
+ const { getByLabelText } = render(
33
+ <BloomThemeProvider mode="light" colorPreset="teal">
34
+ <Select value="a">
35
+ <SelectItem value="a" label="Option A">
36
+ <SelectItemText>Option A</SelectItemText>
37
+ </SelectItem>
38
+ </Select>
39
+ </BloomThemeProvider>,
40
+ );
41
+
42
+ const item = getByLabelText('Option A');
43
+ expect(item).toBeTruthy();
44
+ expect(item.props.accessibilityRole).toBe('radio');
45
+ });
46
+ });
@@ -54,4 +54,36 @@ describe('applyFontFaces (web)', () => {
54
54
  expect(cssText).toMatch(/font-family: 'Inter'/);
55
55
  expect(cssText).toMatch(/font-family: 'Geist Mono'/);
56
56
  });
57
+
58
+ // The whole point of `font-urls.web.ts` is that the browser fetches and
59
+ // caches the four families on their own. Re-inlining them as `data:` URLs
60
+ // would still render correctly in every test above, so this is the only
61
+ // assertion that would notice.
62
+ it('points every src at a bundler-emitted URL, never an inlined data: URL', () => {
63
+ applyFontFaces();
64
+ const cssText = document.getElementById('bloom-fonts')?.textContent ?? '';
65
+ const sources = [...cssText.matchAll(/src: url\("([^"]*)"\)/g)].map((m) => m[1]);
66
+ expect(sources).toHaveLength(4);
67
+ for (const source of sources) {
68
+ expect(source).not.toMatch(/^data:/);
69
+ expect(source).toBeTruthy();
70
+ }
71
+ });
72
+ });
73
+
74
+ describe('applyFontFaces (native stub)', () => {
75
+ beforeEach(() => {
76
+ document.head.innerHTML = '';
77
+ });
78
+
79
+ // Native loads `.ttf` through `useFonts`, so the default export must stay
80
+ // inert. If it ever forwarded to the web implementation, Metro would follow
81
+ // `font-urls.web.ts` and bundle a second, unusable copy of all four fonts
82
+ // into every iOS and Android build.
83
+ it('injects nothing', async () => {
84
+ const native = await import('../fonts/apply-font-faces');
85
+ native.applyFontFaces();
86
+ expect(document.getElementById('bloom-fonts')).toBeNull();
87
+ expect(document.head.innerHTML).toBe('');
88
+ });
57
89
  });
@@ -2,10 +2,11 @@
2
2
  // is selected by bundlers via the package.json conditions. RN consumers
3
3
  // never need font-face injection — useFonts handles loading on native.
4
4
  //
5
- // The web variant does NOT pull in any `.woff2` files via asset imports —
6
- // it imports base64 data URLs from `font-data.web.ts`. This stub stays
7
- // here so the file split (`*.ts` vs `*.web.ts`) makes the platform
8
- // intent explicit and so the runtime API surface matches across platforms.
5
+ // The split is load-bearing, not decorative: the web variant reaches
6
+ // `font-urls.web.ts`, whose module-level `.woff2` imports would otherwise
7
+ // drag a second, unusable copy of every font into the native bundle
8
+ // (Metro resolves an asset import on native to a registry id, not a URL).
9
+ // Keeping this stub empty is what guarantees native pays nothing for them.
9
10
  export function applyFontFaces(): void {
10
11
  // intentionally empty
11
12
  }