@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.
- package/lib/commonjs/fonts/apply-font-faces.js +5 -4
- package/lib/commonjs/fonts/apply-font-faces.js.map +1 -1
- package/lib/commonjs/fonts/apply-font-faces.web.js +14 -16
- package/lib/commonjs/fonts/apply-font-faces.web.js.map +1 -1
- package/lib/commonjs/fonts/assets/BlomusModernus-Bold.woff2 +0 -0
- package/lib/commonjs/fonts/assets/BlomusModernus-Regular.woff2 +0 -0
- package/lib/commonjs/fonts/assets/GeistMono-Variable.woff2 +0 -0
- package/lib/commonjs/fonts/assets/InterVariable.woff2 +0 -0
- package/lib/commonjs/fonts/font-assets.web.js +3 -2
- package/lib/commonjs/fonts/font-assets.web.js.map +1 -1
- package/lib/commonjs/fonts/font-urls.web.js +35 -0
- package/lib/commonjs/fonts/font-urls.web.js.map +1 -0
- package/lib/commonjs/select/index.web.js +77 -4
- package/lib/commonjs/select/index.web.js.map +1 -1
- package/lib/module/fonts/apply-font-faces.js +5 -4
- package/lib/module/fonts/apply-font-faces.js.map +1 -1
- package/lib/module/fonts/apply-font-faces.web.js +14 -16
- package/lib/module/fonts/apply-font-faces.web.js.map +1 -1
- package/lib/module/fonts/assets/BlomusModernus-Bold.woff2 +0 -0
- package/lib/module/fonts/assets/BlomusModernus-Regular.woff2 +0 -0
- package/lib/module/fonts/assets/GeistMono-Variable.woff2 +0 -0
- package/lib/module/fonts/assets/InterVariable.woff2 +0 -0
- package/lib/module/fonts/font-assets.web.js +3 -2
- package/lib/module/fonts/font-assets.web.js.map +1 -1
- package/lib/module/fonts/font-urls.web.js +32 -0
- package/lib/module/fonts/font-urls.web.js.map +1 -0
- package/lib/module/fonts/index.web.js +3 -3
- package/lib/module/select/index.web.js +78 -5
- package/lib/module/select/index.web.js.map +1 -1
- package/lib/typescript/commonjs/fonts/apply-font-faces.d.ts.map +1 -1
- package/lib/typescript/commonjs/fonts/apply-font-faces.web.d.ts +9 -11
- package/lib/typescript/commonjs/fonts/apply-font-faces.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/fonts/font-assets.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/fonts/font-urls.web.d.ts +6 -0
- package/lib/typescript/commonjs/fonts/font-urls.web.d.ts.map +1 -0
- package/lib/typescript/commonjs/select/index.web.d.ts +1 -1
- package/lib/typescript/commonjs/select/index.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/select/types.d.ts +6 -0
- package/lib/typescript/commonjs/select/types.d.ts.map +1 -1
- package/lib/typescript/module/fonts/apply-font-faces.d.ts.map +1 -1
- package/lib/typescript/module/fonts/apply-font-faces.web.d.ts +9 -11
- package/lib/typescript/module/fonts/apply-font-faces.web.d.ts.map +1 -1
- package/lib/typescript/module/fonts/font-assets.web.d.ts.map +1 -1
- package/lib/typescript/module/fonts/font-urls.web.d.ts +6 -0
- package/lib/typescript/module/fonts/font-urls.web.d.ts.map +1 -0
- package/lib/typescript/module/select/index.web.d.ts +1 -1
- package/lib/typescript/module/select/index.web.d.ts.map +1 -1
- package/lib/typescript/module/select/types.d.ts +6 -0
- package/lib/typescript/module/select/types.d.ts.map +1 -1
- package/package.json +4 -7
- package/src/__tests__/SelectItemLabel.test.tsx +46 -0
- package/src/__tests__/apply-font-faces.test.ts +32 -0
- package/src/fonts/apply-font-faces.ts +5 -4
- package/src/fonts/apply-font-faces.web.ts +14 -16
- package/src/fonts/font-assets.web.ts +3 -2
- package/src/fonts/font-urls.web.ts +30 -0
- package/src/fonts/index.web.ts +3 -3
- package/src/select/index.web.tsx +87 -4
- package/src/select/types.ts +6 -0
- package/lib/commonjs/fonts/font-data.web.js +0 -22
- package/lib/commonjs/fonts/font-data.web.js.map +0 -1
- package/lib/module/fonts/font-data.web.js +0 -18
- package/lib/module/fonts/font-data.web.js.map +0 -1
- package/lib/typescript/commonjs/fonts/font-data.web.d.ts +0 -5
- package/lib/typescript/commonjs/fonts/font-data.web.d.ts.map +0 -1
- package/lib/typescript/module/fonts/font-data.web.d.ts +0 -5
- package/lib/typescript/module/fonts/font-data.web.d.ts.map +0 -1
- package/src/fonts/font-data.web.ts +0 -15
|
@@ -8,10 +8,11 @@ exports.applyFontFaces = applyFontFaces;
|
|
|
8
8
|
// is selected by bundlers via the package.json conditions. RN consumers
|
|
9
9
|
// never need font-face injection — useFonts handles loading on native.
|
|
10
10
|
//
|
|
11
|
-
// The
|
|
12
|
-
//
|
|
13
|
-
//
|
|
14
|
-
//
|
|
11
|
+
// The split is load-bearing, not decorative: the web variant reaches
|
|
12
|
+
// `font-urls.web.ts`, whose module-level `.woff2` imports would otherwise
|
|
13
|
+
// drag a second, unusable copy of every font into the native bundle
|
|
14
|
+
// (Metro resolves an asset import on native to a registry id, not a URL).
|
|
15
|
+
// Keeping this stub empty is what guarantees native pays nothing for them.
|
|
15
16
|
function applyFontFaces() {
|
|
16
17
|
// intentionally empty
|
|
17
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["applyFontFaces"],"sourceRoot":"../../../src","sources":["fonts/apply-font-faces.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,cAAcA,CAAA,EAAS;EACrC;AAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["applyFontFaces"],"sourceRoot":"../../../src","sources":["fonts/apply-font-faces.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,cAAcA,CAAA,EAAS;EACrC;AAAA","ignoreList":[]}
|
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.applyFontFaces = applyFontFaces;
|
|
7
|
-
var
|
|
7
|
+
var _fontUrlsWeb = require("./font-urls.web.js");
|
|
8
8
|
var _tokens = require("./tokens.js");
|
|
9
9
|
const STYLE_ID = 'bloom-fonts';
|
|
10
10
|
|
|
@@ -12,18 +12,16 @@ const STYLE_ID = 'bloom-fonts';
|
|
|
12
12
|
* Inject @font-face rules and font CSS variables onto :root.
|
|
13
13
|
*
|
|
14
14
|
* Web-only. The native counterpart in `apply-font-faces.ts` is a no-op
|
|
15
|
-
* stub —
|
|
16
|
-
* the font payload out of the native bundle entirely.
|
|
17
|
-
* call multiple times; subsequent calls early-return
|
|
18
|
-
* `<style id="bloom-fonts">` tag has been mounted. SSR-safe via
|
|
19
|
-
* `typeof document === 'undefined'` guard.
|
|
15
|
+
* stub — native loads its fonts through `useFonts(FONT_ASSETS)`, so the file
|
|
16
|
+
* split keeps the web font payload out of the native bundle entirely.
|
|
17
|
+
* Idempotent: safe to call multiple times; subsequent calls early-return
|
|
18
|
+
* after the `<style id="bloom-fonts">` tag has been mounted. SSR-safe via
|
|
19
|
+
* the `typeof document === 'undefined'` guard.
|
|
20
20
|
*
|
|
21
|
-
* The
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
* the published JS is self-contained. See `scripts/generate-font-data.mjs`
|
|
26
|
-
* for the rationale and trade-offs.
|
|
21
|
+
* The URLs come from `./font-urls.web`, which imports the `.woff2` files so
|
|
22
|
+
* the consuming bundler emits them as separate, cacheable assets. See that
|
|
23
|
+
* module for the per-bundler details and for the one thing a consumer has to
|
|
24
|
+
* provide (Metro needs `woff2` in `assetExts`).
|
|
27
25
|
*/
|
|
28
26
|
function applyFontFaces() {
|
|
29
27
|
if (typeof document === 'undefined') return;
|
|
@@ -31,10 +29,10 @@ function applyFontFaces() {
|
|
|
31
29
|
const style = document.createElement('style');
|
|
32
30
|
style.id = STYLE_ID;
|
|
33
31
|
style.textContent = `
|
|
34
|
-
@font-face { font-family: 'BlomusModernus'; src: url(${
|
|
35
|
-
@font-face { font-family: 'BlomusModernus'; src: url(${
|
|
36
|
-
@font-face { font-family: 'Inter'; src: url(${
|
|
37
|
-
@font-face { font-family: 'Geist Mono'; src: url(${
|
|
32
|
+
@font-face { font-family: 'BlomusModernus'; src: url("${_fontUrlsWeb.blomusModernusRegular}") format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }
|
|
33
|
+
@font-face { font-family: 'BlomusModernus'; src: url("${_fontUrlsWeb.blomusModernusBold}") format('woff2'); font-weight: 700; font-style: normal; font-display: swap; }
|
|
34
|
+
@font-face { font-family: 'Inter'; src: url("${_fontUrlsWeb.interVariable}") format('woff2-variations'); font-weight: 100 900; font-style: normal; font-display: swap; }
|
|
35
|
+
@font-face { font-family: 'Geist Mono'; src: url("${_fontUrlsWeb.geistMonoVariable}") format('woff2-variations'); font-weight: 100 900; font-style: normal; font-display: swap; }
|
|
38
36
|
:root {
|
|
39
37
|
--bloom-font-display: ${_tokens.fontFamilies.display};
|
|
40
38
|
--bloom-font-sans: ${_tokens.fontFamilies.sans};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["_fontUrlsWeb","require","_tokens","STYLE_ID","applyFontFaces","document","getElementById","style","createElement","id","textContent","blomusModernusRegular","blomusModernusBold","interVariable","geistMonoVariable","fontFamilies","display","sans","mono","head","appendChild"],"sourceRoot":"../../../src","sources":["fonts/apply-font-faces.web.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAMA,IAAAC,OAAA,GAAAD,OAAA;AAEA,MAAME,QAAQ,GAAG,aAAa;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,cAAcA,CAAA,EAAS;EACrC,IAAI,OAAOC,QAAQ,KAAK,WAAW,EAAE;EACrC,IAAIA,QAAQ,CAACC,cAAc,CAACH,QAAQ,CAAC,EAAE;EAEvC,MAAMI,KAAK,GAAGF,QAAQ,CAACG,aAAa,CAAC,OAAO,CAAC;EAC7CD,KAAK,CAACE,EAAE,GAAGN,QAAQ;EACnBI,KAAK,CAACG,WAAW,GAAG;AACtB,4DAA4DC,kCAAqB;AACjF,4DAA4DC,+BAAkB;AAC9E,mDAAmDC,0BAAa;AAChE,wDAAwDC,8BAAiB;AACzE;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":[]}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -8,8 +8,9 @@ exports.FONT_ASSETS = void 0;
|
|
|
8
8
|
//
|
|
9
9
|
// `useFonts()` is native-only — the web `FontLoader` (`FontLoader.tsx`) calls
|
|
10
10
|
// `applyFontFaces()` instead, which injects the same four families as
|
|
11
|
-
// `@font-face` rules
|
|
12
|
-
// `font-
|
|
11
|
+
// `@font-face` rules pointing at bundler-emitted `.woff2` URLs
|
|
12
|
+
// (`apply-font-faces.web.ts` / `font-urls.web.ts`). So the map is empty by
|
|
13
|
+
// design, not by omission.
|
|
13
14
|
//
|
|
14
15
|
// This file exists so `index.web.ts` can name its font-asset source
|
|
15
16
|
// explicitly, exactly as it already does for `./apply-font-faces.web`. The
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["FONT_ASSETS","exports"],"sourceRoot":"../../../src","sources":["fonts/font-assets.web.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGO,MAAMA,WAAyB,GAAAC,OAAA,CAAAD,WAAA,GAAG,CAAC,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["FONT_ASSETS","exports"],"sourceRoot":"../../../src","sources":["fonts/font-assets.web.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGO,MAAMA,WAAyB,GAAAC,OAAA,CAAAD,WAAA,GAAG,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "blomusModernusBold", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _BlomusModernusBold.default;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "blomusModernusRegular", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () {
|
|
15
|
+
return _BlomusModernusRegular.default;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
Object.defineProperty(exports, "geistMonoVariable", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function () {
|
|
21
|
+
return _GeistMonoVariable.default;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
Object.defineProperty(exports, "interVariable", {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
get: function () {
|
|
27
|
+
return _InterVariable.default;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
var _BlomusModernusBold = _interopRequireDefault(require("./assets/BlomusModernus-Bold.woff2"));
|
|
31
|
+
var _BlomusModernusRegular = _interopRequireDefault(require("./assets/BlomusModernus-Regular.woff2"));
|
|
32
|
+
var _GeistMonoVariable = _interopRequireDefault(require("./assets/GeistMono-Variable.woff2"));
|
|
33
|
+
var _InterVariable = _interopRequireDefault(require("./assets/InterVariable.woff2"));
|
|
34
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
35
|
+
//# sourceMappingURL=font-urls.web.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_BlomusModernusBold","_interopRequireDefault","require","_BlomusModernusRegular","_GeistMonoVariable","_InterVariable","e","__esModule","default"],"sourceRoot":"../../../src","sources":["fonts/font-urls.web.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwBA,IAAAA,mBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,sBAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,kBAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,cAAA,GAAAJ,sBAAA,CAAAC,OAAA;AAAyD,SAAAD,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA","ignoreList":[]}
|
|
@@ -26,6 +26,7 @@ var _index2 = require("../overlay/index.js");
|
|
|
26
26
|
var _indexWeb = require("../portal/index.web.js");
|
|
27
27
|
var _zIndex = require("../styles/z-index.js");
|
|
28
28
|
var _webViewStyle = require("../styles/web-view-style.js");
|
|
29
|
+
var _dropdownPlacement = require("../overlay/dropdown-placement.js");
|
|
29
30
|
var _shadows = require("../design-tokens/shadows");
|
|
30
31
|
var _useInteractionState = require("../hooks/useInteractionState.js");
|
|
31
32
|
var _Chevron = require("../icons/Chevron.js");
|
|
@@ -34,6 +35,8 @@ var _common = require("./common.js");
|
|
|
34
35
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
35
36
|
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); }
|
|
36
37
|
const selectZIndex = (0, _zIndex.createOverlayZIndex)();
|
|
38
|
+
const VIEWPORT_GUTTER = 8;
|
|
39
|
+
const SELECT_OFFSET = 6;
|
|
37
40
|
|
|
38
41
|
// ---------------------------------------------------------------------------
|
|
39
42
|
// Context
|
|
@@ -60,13 +63,15 @@ function Select({
|
|
|
60
63
|
disabled
|
|
61
64
|
}) {
|
|
62
65
|
const [isOpen, setIsOpen] = (0, _react.useState)(false);
|
|
66
|
+
const triggerRef = (0, _react.useRef)(null);
|
|
63
67
|
const ctx = (0, _react.useMemo)(() => ({
|
|
64
68
|
value,
|
|
65
69
|
onValueChange,
|
|
66
70
|
disabled,
|
|
67
71
|
isOpen,
|
|
68
72
|
open: () => setIsOpen(true),
|
|
69
|
-
close: () => setIsOpen(false)
|
|
73
|
+
close: () => setIsOpen(false),
|
|
74
|
+
triggerRef
|
|
70
75
|
}), [value, onValueChange, disabled, isOpen]);
|
|
71
76
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(SelectContext.Provider, {
|
|
72
77
|
value: ctx,
|
|
@@ -111,6 +116,7 @@ function SelectTrigger({
|
|
|
111
116
|
pressed: false
|
|
112
117
|
},
|
|
113
118
|
props: {
|
|
119
|
+
ref: ctx.triggerRef,
|
|
114
120
|
onPress: ctx.open,
|
|
115
121
|
onFocus,
|
|
116
122
|
onBlur,
|
|
@@ -119,6 +125,7 @@ function SelectTrigger({
|
|
|
119
125
|
});
|
|
120
126
|
}
|
|
121
127
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
|
|
128
|
+
ref: ctx.triggerRef,
|
|
122
129
|
onPress: ctx.open,
|
|
123
130
|
onFocus: onFocus,
|
|
124
131
|
onBlur: onBlur,
|
|
@@ -184,6 +191,58 @@ function SelectContent({
|
|
|
184
191
|
}) {
|
|
185
192
|
const ctx = useSelectContext();
|
|
186
193
|
const theme = (0, _useTheme.useTheme)();
|
|
194
|
+
const [position, setPosition] = (0, _react.useState)(null);
|
|
195
|
+
// The mounted dropdown node, as STATE rather than a bare ref: positioning has
|
|
196
|
+
// to measure it, and `Portal` renders null on its first pass (it resolves its
|
|
197
|
+
// host in its own layout effect), so the node lands one render after `isOpen`
|
|
198
|
+
// flips. An effect keyed only on `isOpen` would measure nothing.
|
|
199
|
+
const [dropdownNode, setDropdownNode] = (0, _react.useState)(null);
|
|
200
|
+
const attachDropdown = (0, _react.useCallback)(node => {
|
|
201
|
+
setDropdownNode(node);
|
|
202
|
+
}, []);
|
|
203
|
+
|
|
204
|
+
// Anchored to the trigger, left edges aligned, and never off-screen: sit below
|
|
205
|
+
// when it fits, flip above when it doesn't, clamp when neither. Before this the
|
|
206
|
+
// dropdown had no `top`/`left` at all, so it rendered at the `Portal` root's
|
|
207
|
+
// origin — the viewport's top-left corner — however far from its trigger.
|
|
208
|
+
(0, _react.useLayoutEffect)(() => {
|
|
209
|
+
if (!ctx.isOpen || typeof window === 'undefined') return;
|
|
210
|
+
const triggerNode = ctx.triggerRef.current;
|
|
211
|
+
if (!triggerNode?.getBoundingClientRect || !dropdownNode) return;
|
|
212
|
+
const updatePosition = () => {
|
|
213
|
+
const rect = triggerNode.getBoundingClientRect();
|
|
214
|
+
// Measured BEFORE `minWidth` is applied, so the final surface can only be
|
|
215
|
+
// wider than this — and a wider surface wraps less, so the measured height
|
|
216
|
+
// is an upper bound. Erring that way flips early in a tie, never late.
|
|
217
|
+
const surface = dropdownNode.getBoundingClientRect();
|
|
218
|
+
const width = Math.max(surface.width, rect.width);
|
|
219
|
+
setPosition({
|
|
220
|
+
position: _webViewStyle.WEB_POSITION_FIXED,
|
|
221
|
+
...(0, _dropdownPlacement.resolveDropdownPlacement)({
|
|
222
|
+
anchor: rect,
|
|
223
|
+
size: {
|
|
224
|
+
width,
|
|
225
|
+
height: surface.height
|
|
226
|
+
},
|
|
227
|
+
viewport: {
|
|
228
|
+
width: window.innerWidth,
|
|
229
|
+
height: window.innerHeight
|
|
230
|
+
},
|
|
231
|
+
offset: SELECT_OFFSET,
|
|
232
|
+
gutter: VIEWPORT_GUTTER,
|
|
233
|
+
align: 'start'
|
|
234
|
+
}),
|
|
235
|
+
minWidth: width
|
|
236
|
+
});
|
|
237
|
+
};
|
|
238
|
+
updatePosition();
|
|
239
|
+
window.addEventListener('resize', updatePosition);
|
|
240
|
+
window.addEventListener('scroll', updatePosition, true);
|
|
241
|
+
return () => {
|
|
242
|
+
window.removeEventListener('resize', updatePosition);
|
|
243
|
+
window.removeEventListener('scroll', updatePosition, true);
|
|
244
|
+
};
|
|
245
|
+
}, [ctx.isOpen, ctx.triggerRef, dropdownNode]);
|
|
187
246
|
if (!ctx.isOpen) return null;
|
|
188
247
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_indexWeb.Portal, {
|
|
189
248
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_index2.Backdrop, {
|
|
@@ -191,13 +250,14 @@ function SelectContent({
|
|
|
191
250
|
onPress: ctx.close,
|
|
192
251
|
accessibilityLabel: "Close selection"
|
|
193
252
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
253
|
+
ref: attachDropdown,
|
|
194
254
|
accessibilityRole: "list",
|
|
195
255
|
accessibilityLabel: label,
|
|
196
256
|
style: [styles.dropdown, {
|
|
197
257
|
backgroundColor: theme.isDark ? theme.colors.backgroundSecondary : theme.colors.background,
|
|
198
258
|
borderColor: theme.colors.borderLight,
|
|
199
259
|
...(0, _shadows.bloomShadowStyle)('m')
|
|
200
|
-
}],
|
|
260
|
+
}, position],
|
|
201
261
|
children: items.map((item, index) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_react.default.Fragment, {
|
|
202
262
|
children: renderItem(item, index, ctx.value)
|
|
203
263
|
}, valueExtractor(item)))
|
|
@@ -212,6 +272,7 @@ function SelectContent({
|
|
|
212
272
|
function SelectItem({
|
|
213
273
|
ref,
|
|
214
274
|
value,
|
|
275
|
+
label,
|
|
215
276
|
children,
|
|
216
277
|
style
|
|
217
278
|
}) {
|
|
@@ -236,7 +297,12 @@ function SelectItem({
|
|
|
236
297
|
}), [isSelected, hovered, focused]);
|
|
237
298
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
|
|
238
299
|
ref: ref,
|
|
239
|
-
accessibilityRole: "radio"
|
|
300
|
+
accessibilityRole: "radio"
|
|
301
|
+
// The native fork has always applied this; web declared `label` and then
|
|
302
|
+
// dropped it, leaving every option a `role="radio"` with no accessible
|
|
303
|
+
// name for a screen reader to announce.
|
|
304
|
+
,
|
|
305
|
+
accessibilityLabel: label,
|
|
240
306
|
accessibilityState: {
|
|
241
307
|
checked: isSelected
|
|
242
308
|
},
|
|
@@ -340,7 +406,14 @@ const styles = _reactNative.StyleSheet.create({
|
|
|
340
406
|
pointerEvents: 'auto'
|
|
341
407
|
},
|
|
342
408
|
dropdown: {
|
|
343
|
-
|
|
409
|
+
// Fixed from the outset, not only once positioned: the `Portal` root is a
|
|
410
|
+
// block container, so a static child would stretch to the full viewport
|
|
411
|
+
// width and the pre-position measurement would under-read the height (less
|
|
412
|
+
// wrapping at a width the surface never actually has). A fixed box
|
|
413
|
+
// shrink-wraps to the same width it ends up with.
|
|
414
|
+
position: _webViewStyle.WEB_POSITION_FIXED,
|
|
415
|
+
top: 0,
|
|
416
|
+
left: 0,
|
|
344
417
|
zIndex: selectZIndex.surface,
|
|
345
418
|
borderRadius: 8,
|
|
346
419
|
borderWidth: 1,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_useTheme","_index","_index2","_indexWeb","_zIndex","_webViewStyle","_shadows","_useInteractionState","_Chevron","_Check","_common","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","selectZIndex","createOverlayZIndex","SelectContext","createContext","displayName","useSelectContext","ctx","useContext","Error","Select","children","value","onValueChange","disabled","isOpen","setIsOpen","useState","useMemo","open","close","jsx","Provider","SelectTrigger","label","theme","useTheme","triggerId","useId","state","hovered","onIn","onMouseEnter","onOut","onMouseLeave","useInteractionState","focused","onFocus","onBlur","control","id","ref","current","pressed","props","onPress","accessibilityLabel","Pressable","accessibilityRole","style","styles","trigger","backgroundColor","colors","contrast50","borderColor","primary","SelectValue","extractLabel","placeholder","display","Text","numberOfLines","valueText","color","text","textSecondary","SelectIcon","ChevronBottom_Stroke2_Corner0_Rounded","size","fill","SelectContent","items","renderItem","valueExtractor","defaultItemValueExtractor","jsxs","Portal","Backdrop","backdrop","View","dropdown","isDark","backgroundSecondary","background","borderLight","bloomShadowStyle","map","item","index","Fragment","SelectItem","isSelected","itemCtx","selected","accessibilityState","checked","primaryLight","ItemContext","SelectItemText","itemText","SelectItemIndicator","icon","IconComponent","CheckIcon","useSelectItemContext","itemIndicatorPlaceholder","itemIndicatorContainer","SelectSeparator","separator","StyleSheet","create","flexDirection","position","alignItems","gap","justifyContent","paddingVertical","paddingHorizontal","borderRadius","maxWidth","borderWidth","borderStyle","fontSize","WEB_POSITION_FIXED","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","_interopRequireWildcard","require","_reactNative","_useTheme","_index","_index2","_indexWeb","_zIndex","_webViewStyle","_dropdownPlacement","_shadows","_useInteractionState","_Chevron","_Check","_common","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","selectZIndex","createOverlayZIndex","VIEWPORT_GUTTER","SELECT_OFFSET","SelectContext","createContext","displayName","useSelectContext","ctx","useContext","Error","Select","children","value","onValueChange","disabled","isOpen","setIsOpen","useState","triggerRef","useRef","useMemo","open","close","jsx","Provider","SelectTrigger","label","theme","useTheme","triggerId","useId","state","hovered","onIn","onMouseEnter","onOut","onMouseLeave","useInteractionState","focused","onFocus","onBlur","control","id","ref","current","pressed","props","onPress","accessibilityLabel","Pressable","accessibilityRole","style","styles","trigger","backgroundColor","colors","contrast50","borderColor","primary","SelectValue","extractLabel","placeholder","display","Text","numberOfLines","valueText","color","text","textSecondary","SelectIcon","ChevronBottom_Stroke2_Corner0_Rounded","size","fill","SelectContent","items","renderItem","valueExtractor","defaultItemValueExtractor","position","setPosition","dropdownNode","setDropdownNode","attachDropdown","useCallback","node","useLayoutEffect","window","triggerNode","getBoundingClientRect","updatePosition","rect","surface","width","Math","max","WEB_POSITION_FIXED","resolveDropdownPlacement","anchor","height","viewport","innerWidth","innerHeight","offset","gutter","align","minWidth","addEventListener","removeEventListener","jsxs","Portal","Backdrop","backdrop","View","dropdown","isDark","backgroundSecondary","background","borderLight","bloomShadowStyle","map","item","index","Fragment","SelectItem","isSelected","itemCtx","selected","accessibilityState","checked","primaryLight","ItemContext","SelectItemText","itemText","SelectItemIndicator","icon","IconComponent","CheckIcon","useSelectItemContext","itemIndicatorPlaceholder","itemIndicatorContainer","SelectSeparator","separator","StyleSheet","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":[]}
|
|
@@ -4,10 +4,11 @@
|
|
|
4
4
|
// is selected by bundlers via the package.json conditions. RN consumers
|
|
5
5
|
// never need font-face injection — useFonts handles loading on native.
|
|
6
6
|
//
|
|
7
|
-
// The
|
|
8
|
-
//
|
|
9
|
-
//
|
|
10
|
-
//
|
|
7
|
+
// The split is load-bearing, not decorative: the web variant reaches
|
|
8
|
+
// `font-urls.web.ts`, whose module-level `.woff2` imports would otherwise
|
|
9
|
+
// drag a second, unusable copy of every font into the native bundle
|
|
10
|
+
// (Metro resolves an asset import on native to a registry id, not a URL).
|
|
11
|
+
// Keeping this stub empty is what guarantees native pays nothing for them.
|
|
11
12
|
export function applyFontFaces() {
|
|
12
13
|
// intentionally empty
|
|
13
14
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["applyFontFaces"],"sourceRoot":"../../../src","sources":["fonts/apply-font-faces.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,cAAcA,CAAA,EAAS;EACrC;AAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["applyFontFaces"],"sourceRoot":"../../../src","sources":["fonts/apply-font-faces.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,cAAcA,CAAA,EAAS;EACrC;AAAA","ignoreList":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { blomusModernusRegular, blomusModernusBold, interVariable, geistMonoVariable } from "./font-
|
|
3
|
+
import { blomusModernusRegular, blomusModernusBold, interVariable, geistMonoVariable } from "./font-urls.web.js";
|
|
4
4
|
import { fontFamilies } from "./tokens.js";
|
|
5
5
|
const STYLE_ID = 'bloom-fonts';
|
|
6
6
|
|
|
@@ -8,18 +8,16 @@ const STYLE_ID = 'bloom-fonts';
|
|
|
8
8
|
* Inject @font-face rules and font CSS variables onto :root.
|
|
9
9
|
*
|
|
10
10
|
* Web-only. The native counterpart in `apply-font-faces.ts` is a no-op
|
|
11
|
-
* stub —
|
|
12
|
-
* the font payload out of the native bundle entirely.
|
|
13
|
-
* call multiple times; subsequent calls early-return
|
|
14
|
-
* `<style id="bloom-fonts">` tag has been mounted. SSR-safe via
|
|
15
|
-
* `typeof document === 'undefined'` guard.
|
|
11
|
+
* stub — native loads its fonts through `useFonts(FONT_ASSETS)`, so the file
|
|
12
|
+
* split keeps the web font payload out of the native bundle entirely.
|
|
13
|
+
* Idempotent: safe to call multiple times; subsequent calls early-return
|
|
14
|
+
* after the `<style id="bloom-fonts">` tag has been mounted. SSR-safe via
|
|
15
|
+
* the `typeof document === 'undefined'` guard.
|
|
16
16
|
*
|
|
17
|
-
* The
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
* the published JS is self-contained. See `scripts/generate-font-data.mjs`
|
|
22
|
-
* for the rationale and trade-offs.
|
|
17
|
+
* The URLs come from `./font-urls.web`, which imports the `.woff2` files so
|
|
18
|
+
* the consuming bundler emits them as separate, cacheable assets. See that
|
|
19
|
+
* module for the per-bundler details and for the one thing a consumer has to
|
|
20
|
+
* provide (Metro needs `woff2` in `assetExts`).
|
|
23
21
|
*/
|
|
24
22
|
export function applyFontFaces() {
|
|
25
23
|
if (typeof document === 'undefined') return;
|
|
@@ -27,10 +25,10 @@ export function applyFontFaces() {
|
|
|
27
25
|
const style = document.createElement('style');
|
|
28
26
|
style.id = STYLE_ID;
|
|
29
27
|
style.textContent = `
|
|
30
|
-
@font-face { font-family: 'BlomusModernus'; src: url(${blomusModernusRegular}) format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }
|
|
31
|
-
@font-face { font-family: 'BlomusModernus'; src: url(${blomusModernusBold}) format('woff2'); font-weight: 700; font-style: normal; font-display: swap; }
|
|
32
|
-
@font-face { font-family: 'Inter'; src: url(${interVariable}) format('woff2-variations'); font-weight: 100 900; font-style: normal; font-display: swap; }
|
|
33
|
-
@font-face { font-family: 'Geist Mono'; src: url(${geistMonoVariable}) format('woff2-variations'); font-weight: 100 900; font-style: normal; font-display: swap; }
|
|
28
|
+
@font-face { font-family: 'BlomusModernus'; src: url("${blomusModernusRegular}") format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }
|
|
29
|
+
@font-face { font-family: 'BlomusModernus'; src: url("${blomusModernusBold}") format('woff2'); font-weight: 700; font-style: normal; font-display: swap; }
|
|
30
|
+
@font-face { font-family: 'Inter'; src: url("${interVariable}") format('woff2-variations'); font-weight: 100 900; font-style: normal; font-display: swap; }
|
|
31
|
+
@font-face { font-family: 'Geist Mono'; src: url("${geistMonoVariable}") format('woff2-variations'); font-weight: 100 900; font-style: normal; font-display: swap; }
|
|
34
32
|
:root {
|
|
35
33
|
--bloom-font-display: ${fontFamilies.display};
|
|
36
34
|
--bloom-font-sans: ${fontFamilies.sans};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["blomusModernusRegular","blomusModernusBold","interVariable","geistMonoVariable","fontFamilies","STYLE_ID","applyFontFaces","document","getElementById","style","createElement","id","textContent","display","sans","mono","head","appendChild"],"sourceRoot":"../../../src","sources":["fonts/apply-font-faces.web.ts"],"mappings":";;AAAA,SACEA,qBAAqB,EACrBC,kBAAkB,EAClBC,aAAa,EACbC,iBAAiB,QACZ,oBAAiB;AACxB,SAASC,YAAY,QAAQ,aAAU;AAEvC,MAAMC,QAAQ,GAAG,aAAa;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA
|
|
1
|
+
{"version":3,"names":["blomusModernusRegular","blomusModernusBold","interVariable","geistMonoVariable","fontFamilies","STYLE_ID","applyFontFaces","document","getElementById","style","createElement","id","textContent","display","sans","mono","head","appendChild"],"sourceRoot":"../../../src","sources":["fonts/apply-font-faces.web.ts"],"mappings":";;AAAA,SACEA,qBAAqB,EACrBC,kBAAkB,EAClBC,aAAa,EACbC,iBAAiB,QACZ,oBAAiB;AACxB,SAASC,YAAY,QAAQ,aAAU;AAEvC,MAAMC,QAAQ,GAAG,aAAa;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,cAAcA,CAAA,EAAS;EACrC,IAAI,OAAOC,QAAQ,KAAK,WAAW,EAAE;EACrC,IAAIA,QAAQ,CAACC,cAAc,CAACH,QAAQ,CAAC,EAAE;EAEvC,MAAMI,KAAK,GAAGF,QAAQ,CAACG,aAAa,CAAC,OAAO,CAAC;EAC7CD,KAAK,CAACE,EAAE,GAAGN,QAAQ;EACnBI,KAAK,CAACG,WAAW,GAAG;AACtB,4DAA4DZ,qBAAqB;AACjF,4DAA4DC,kBAAkB;AAC9E,mDAAmDC,aAAa;AAChE,wDAAwDC,iBAAiB;AACzE;AACA,8BAA8BC,YAAY,CAACS,OAAO;AAClD,2BAA2BT,YAAY,CAACU,IAAI;AAC5C,2BAA2BV,YAAY,CAACW,IAAI;AAC5C;AACA,GAAG;EACDR,QAAQ,CAACS,IAAI,CAACC,WAAW,CAACR,KAAK,CAAC;AAClC","ignoreList":[]}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -4,8 +4,9 @@
|
|
|
4
4
|
//
|
|
5
5
|
// `useFonts()` is native-only — the web `FontLoader` (`FontLoader.tsx`) calls
|
|
6
6
|
// `applyFontFaces()` instead, which injects the same four families as
|
|
7
|
-
// `@font-face` rules
|
|
8
|
-
// `font-
|
|
7
|
+
// `@font-face` rules pointing at bundler-emitted `.woff2` URLs
|
|
8
|
+
// (`apply-font-faces.web.ts` / `font-urls.web.ts`). So the map is empty by
|
|
9
|
+
// design, not by omission.
|
|
9
10
|
//
|
|
10
11
|
// This file exists so `index.web.ts` can name its font-asset source
|
|
11
12
|
// explicitly, exactly as it already does for `./apply-font-faces.web`. The
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["FONT_ASSETS"],"sourceRoot":"../../../src","sources":["fonts/font-assets.web.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,OAAO,MAAMA,WAAyB,GAAG,CAAC,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["FONT_ASSETS"],"sourceRoot":"../../../src","sources":["fonts/font-assets.web.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,OAAO,MAAMA,WAAyB,GAAG,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
// Web font URLs, resolved by whatever bundler is building the consuming app.
|
|
4
|
+
//
|
|
5
|
+
// WEB-ONLY. Each import below hands the `.woff2` to the app's asset pipeline,
|
|
6
|
+
// which emits it as a standalone file and gives us back its URL:
|
|
7
|
+
//
|
|
8
|
+
// - Metro (Expo web) rewrites the import to the exported asset path — its
|
|
9
|
+
// asset transformer emits a bare string module whenever the platform is
|
|
10
|
+
// `web`, so the imported value is the URL itself, not an asset id.
|
|
11
|
+
// - Vite, Rollup and webpack 5 resolve it through their own asset handling
|
|
12
|
+
// and return a content-hashed URL.
|
|
13
|
+
//
|
|
14
|
+
// Either way the browser fetches the four families alongside the JS and caches
|
|
15
|
+
// them under their own URLs, instead of re-parsing ~310 KB of base64 out of the
|
|
16
|
+
// entry bundle on every cold load. No consumer ever writes an asset filename
|
|
17
|
+
// down, so a font swap here cannot leave a downstream app pointing at a file
|
|
18
|
+
// that no longer exists.
|
|
19
|
+
//
|
|
20
|
+
// Metro does not carry `woff2` in its default `assetExts`, so a consumer
|
|
21
|
+
// bundling for web with Metro has to register it; `@oxyhq/app-preset`'s Metro
|
|
22
|
+
// base already does that for every Oxy app.
|
|
23
|
+
//
|
|
24
|
+
// Native never reaches this module. The default `apply-font-faces.ts` is a
|
|
25
|
+
// no-op stub and `FontLoader.native.tsx` loads the `.ttf` variants through
|
|
26
|
+
// `useFonts` instead, so no web font bytes enter a native bundle.
|
|
27
|
+
import blomusModernusBold from './assets/BlomusModernus-Bold.woff2';
|
|
28
|
+
import blomusModernusRegular from './assets/BlomusModernus-Regular.woff2';
|
|
29
|
+
import geistMonoVariable from './assets/GeistMono-Variable.woff2';
|
|
30
|
+
import interVariable from './assets/InterVariable.woff2';
|
|
31
|
+
export { blomusModernusRegular, blomusModernusBold, interVariable, geistMonoVariable };
|
|
32
|
+
//# sourceMappingURL=font-urls.web.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["blomusModernusBold","blomusModernusRegular","geistMonoVariable","interVariable"],"sourceRoot":"../../../src","sources":["fonts/font-urls.web.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAOA,kBAAkB,MAAM,oCAAoC;AACnE,OAAOC,qBAAqB,MAAM,uCAAuC;AACzE,OAAOC,iBAAiB,MAAM,mCAAmC;AACjE,OAAOC,aAAa,MAAM,8BAA8B;AAExD,SAASF,qBAAqB,EAAED,kBAAkB,EAAEG,aAAa,EAAED,iBAAiB","ignoreList":[]}
|
|
@@ -8,9 +8,9 @@
|
|
|
8
8
|
// of the box), so an extensionless specifier here would quietly fall through
|
|
9
9
|
// to the default file.
|
|
10
10
|
//
|
|
11
|
-
// - `./apply-font-faces.web` performs the real `@font-face` injection
|
|
12
|
-
//
|
|
13
|
-
// `./apply-font-faces` is a no-op stub for native.
|
|
11
|
+
// - `./apply-font-faces.web` performs the real `@font-face` injection against
|
|
12
|
+
// the `.woff2` URLs the consuming bundler emits (see `font-urls.web.ts`);
|
|
13
|
+
// the default `./apply-font-faces` is a no-op stub for native.
|
|
14
14
|
// - `./font-assets.web` is an empty map. The native map is built from Metro
|
|
15
15
|
// asset `require()` calls, and importing it from an ES module throws
|
|
16
16
|
// `ReferenceError: require is not defined` during module evaluation — which
|