@oxyhq/bloom 0.35.5 → 0.35.7

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 (87) hide show
  1. package/LICENSE +661 -0
  2. package/README.md +1 -1
  3. package/lib/commonjs/content-panel/index.js +22 -6
  4. package/lib/commonjs/content-panel/index.js.map +1 -1
  5. package/lib/commonjs/content-panel/index.web.js +37 -12
  6. package/lib/commonjs/content-panel/index.web.js.map +1 -1
  7. package/lib/commonjs/fonts/FontLoader.native.js +2 -2
  8. package/lib/commonjs/fonts/FontLoader.native.js.map +1 -1
  9. package/lib/commonjs/fonts/assets/GeistMono-OFL.txt +93 -0
  10. package/lib/commonjs/fonts/assets/Inter-OFL.txt +92 -0
  11. package/lib/commonjs/fonts/font-assets.js +16 -14
  12. package/lib/commonjs/fonts/font-assets.js.map +1 -1
  13. package/lib/commonjs/fonts/font-assets.native.js +31 -0
  14. package/lib/commonjs/fonts/font-assets.native.js.map +1 -0
  15. package/lib/commonjs/fonts/font-assets.web.js +24 -0
  16. package/lib/commonjs/fonts/font-assets.web.js.map +1 -0
  17. package/lib/commonjs/fonts/index.js +1 -1
  18. package/lib/commonjs/fonts/index.web.js +2 -2
  19. package/lib/commonjs/fonts/index.web.js.map +1 -1
  20. package/lib/commonjs/fonts/tokens.js +12 -0
  21. package/lib/commonjs/fonts/tokens.js.map +1 -1
  22. package/lib/commonjs/theme/init-css-interop.js +13 -1
  23. package/lib/commonjs/theme/init-css-interop.js.map +1 -1
  24. package/lib/module/content-panel/index.js +22 -6
  25. package/lib/module/content-panel/index.js.map +1 -1
  26. package/lib/module/content-panel/index.web.js +37 -12
  27. package/lib/module/content-panel/index.web.js.map +1 -1
  28. package/lib/module/fonts/FontLoader.native.js +1 -1
  29. package/lib/module/fonts/FontLoader.native.js.map +1 -1
  30. package/lib/module/fonts/assets/GeistMono-OFL.txt +93 -0
  31. package/lib/module/fonts/assets/Inter-OFL.txt +92 -0
  32. package/lib/module/fonts/font-assets.js +16 -14
  33. package/lib/module/fonts/font-assets.js.map +1 -1
  34. package/lib/module/fonts/font-assets.native.js +27 -0
  35. package/lib/module/fonts/font-assets.native.js.map +1 -0
  36. package/lib/module/fonts/font-assets.web.js +20 -0
  37. package/lib/module/fonts/font-assets.web.js.map +1 -0
  38. package/lib/module/fonts/index.js +1 -1
  39. package/lib/module/fonts/index.js.map +1 -1
  40. package/lib/module/fonts/index.web.js +15 -6
  41. package/lib/module/fonts/index.web.js.map +1 -1
  42. package/lib/module/fonts/tokens.js +12 -0
  43. package/lib/module/fonts/tokens.js.map +1 -1
  44. package/lib/module/theme/init-css-interop.js +13 -1
  45. package/lib/module/theme/init-css-interop.js.map +1 -1
  46. package/lib/typescript/commonjs/content-panel/index.d.ts +21 -8
  47. package/lib/typescript/commonjs/content-panel/index.d.ts.map +1 -1
  48. package/lib/typescript/commonjs/content-panel/index.web.d.ts +26 -6
  49. package/lib/typescript/commonjs/content-panel/index.web.d.ts.map +1 -1
  50. package/lib/typescript/commonjs/fonts/font-assets.d.ts +2 -6
  51. package/lib/typescript/commonjs/fonts/font-assets.d.ts.map +1 -1
  52. package/lib/typescript/commonjs/fonts/font-assets.native.d.ts +3 -0
  53. package/lib/typescript/commonjs/fonts/font-assets.native.d.ts.map +1 -0
  54. package/lib/typescript/commonjs/fonts/font-assets.web.d.ts +3 -0
  55. package/lib/typescript/commonjs/fonts/font-assets.web.d.ts.map +1 -0
  56. package/lib/typescript/commonjs/fonts/index.web.d.ts +1 -1
  57. package/lib/typescript/commonjs/fonts/index.web.d.ts.map +1 -1
  58. package/lib/typescript/commonjs/fonts/tokens.d.ts +12 -0
  59. package/lib/typescript/commonjs/fonts/tokens.d.ts.map +1 -1
  60. package/lib/typescript/commonjs/theme/init-css-interop.d.ts.map +1 -1
  61. package/lib/typescript/module/content-panel/index.d.ts +21 -8
  62. package/lib/typescript/module/content-panel/index.d.ts.map +1 -1
  63. package/lib/typescript/module/content-panel/index.web.d.ts +26 -6
  64. package/lib/typescript/module/content-panel/index.web.d.ts.map +1 -1
  65. package/lib/typescript/module/fonts/font-assets.d.ts +2 -6
  66. package/lib/typescript/module/fonts/font-assets.d.ts.map +1 -1
  67. package/lib/typescript/module/fonts/font-assets.native.d.ts +3 -0
  68. package/lib/typescript/module/fonts/font-assets.native.d.ts.map +1 -0
  69. package/lib/typescript/module/fonts/font-assets.web.d.ts +3 -0
  70. package/lib/typescript/module/fonts/font-assets.web.d.ts.map +1 -0
  71. package/lib/typescript/module/fonts/index.web.d.ts +1 -1
  72. package/lib/typescript/module/fonts/index.web.d.ts.map +1 -1
  73. package/lib/typescript/module/fonts/tokens.d.ts +12 -0
  74. package/lib/typescript/module/fonts/tokens.d.ts.map +1 -1
  75. package/lib/typescript/module/theme/init-css-interop.d.ts.map +1 -1
  76. package/package.json +2 -2
  77. package/src/content-panel/index.tsx +33 -14
  78. package/src/content-panel/index.web.tsx +62 -22
  79. package/src/fonts/FontLoader.native.tsx +1 -1
  80. package/src/fonts/assets/GeistMono-OFL.txt +93 -0
  81. package/src/fonts/assets/Inter-OFL.txt +92 -0
  82. package/src/fonts/font-assets.native.ts +25 -0
  83. package/src/fonts/font-assets.ts +17 -14
  84. package/src/fonts/font-assets.web.ts +18 -0
  85. package/src/fonts/index.web.ts +15 -6
  86. package/src/fonts/tokens.ts +13 -0
  87. package/src/theme/init-css-interop.ts +13 -1
@@ -9,11 +9,20 @@
9
9
  * the rounded corners / lateral gutters is masked while a single seamless border
10
10
  * is drawn around the panel — see `index.web.tsx`.
11
11
  *
12
- * On NATIVE none of that applies: there is no document scroll, no sticky
13
- * positioning, and no bleed to mask, so the panel is simply a rounded, bordered
14
- * surface wrapping its content. The `framed` and `showStickyFrame` props are
15
- * accepted for cross-platform API parity but are intentionally no-ops here
16
- * (mirroring the no-op native fork of `../scroll`).
12
+ * On NATIVE none of the WEB overlay machinery applies: there is no document
13
+ * scroll, no sticky positioning, and no bleed to mask, so the panel is simply a
14
+ * surface wrapping its content. The `framed` prop still drives whether that
15
+ * surface is rounded + bordered, tri-state and resolved with pure NativeWind
16
+ * (`md:` evaluates against the window width on native too no JS breakpoint
17
+ * hook needed):
18
+ *
19
+ * - `undefined` (DEFAULT) → responsive: full-bleed below `md`, rounded +
20
+ * bordered at `md`+ (`md:rounded-radius-28 md:border md:border-border`).
21
+ * - `false` → never framed (plain full-bleed at every size).
22
+ * - `true` → always rounded + bordered.
23
+ *
24
+ * `showStickyFrame` and `maskColor` are accepted for cross-platform API parity
25
+ * but are no-ops here (there are no sticky overlays on native).
17
26
  *
18
27
  * Web bundlers select `./index.web` via the `"browser"` export condition in
19
28
  * `package.json`; native bundlers fall through to this file.
@@ -38,6 +47,7 @@ export const PANEL_TOP_INSET = 8;
38
47
  export const PANEL_BOTTOM_INSET = 8;
39
48
  const ContentPanelComponent = ({
40
49
  children,
50
+ framed,
41
51
  surfaceClassName,
42
52
  surfaceStyle,
43
53
  contentClassName,
@@ -45,7 +55,13 @@ const ContentPanelComponent = ({
45
55
  }) => {
46
56
  // Dev-only invariant — a ContentPanel must never be nested inside another.
47
57
  useContentPanelNestingGuard();
48
- const surfaceClass = ['flex-1', 'rounded-radius-28', 'overflow-hidden border border-border', surfaceClassName ?? 'bg-card'].join(' ');
58
+
59
+ // Tri-state: `undefined` → responsive (md:-gated), `true` → always framed,
60
+ // `false` → never framed (plain full-bleed). Whole literal class strings are
61
+ // selected per mode so the Tailwind content-scan over `src/**` picks up every
62
+ // `md:` / `rounded-radius-28` token verbatim (no dynamic concatenation).
63
+ const surfaceBase = framed === undefined ? 'flex-1 md:overflow-hidden md:rounded-radius-28 md:border md:border-border' : framed ? 'flex-1 overflow-hidden rounded-radius-28 border border-border' : 'flex-1';
64
+ const surfaceClass = [surfaceBase, surfaceClassName ?? 'bg-card'].join(' ');
49
65
  const contentClass = ['flex-1', contentClassName].filter(Boolean).join(' ');
50
66
  return /*#__PURE__*/_jsx(ContentPanelNestingContext.Provider, {
51
67
  value: true,
@@ -1 +1 @@
1
- {"version":3,"names":["React","memo","View","ContentPanelNestingContext","useContentPanelNestingGuard","jsx","_jsx","GUTTER_MASK_SPREAD","PANEL_TOP_INSET","PANEL_BOTTOM_INSET","ContentPanelComponent","children","surfaceClassName","surfaceStyle","contentClassName","contentStyle","surfaceClass","join","contentClass","filter","Boolean","Provider","value","className","style","ContentPanel","displayName"],"sourceRoot":"../../../src","sources":["content-panel/index.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAOA,KAAK,IAAIC,IAAI,QAAQ,OAAO;AACnC,SAASC,IAAI,QAAwC,cAAc;AAEnE,SACEC,0BAA0B,EAC1BC,2BAA2B,QACtB,sBAAmB;;AAE1B;AACA;AACA;AACA;AAHA,SAAAC,GAAA,IAAAC,IAAA;AAIA,OAAO,MAAMC,kBAAkB,GAAG,EAAE;AACpC;AACA,OAAO,MAAMC,eAAe,GAAG,CAAC;AAChC;AACA,OAAO,MAAMC,kBAAkB,GAAG,CAAC;AA2BnC,MAAMC,qBAAkD,GAAGA,CAAC;EAC1DC,QAAQ;EACRC,gBAAgB;EAChBC,YAAY;EACZC,gBAAgB;EAChBC;AACF,CAAC,KAAK;EACJ;EACAX,2BAA2B,CAAC,CAAC;EAE7B,MAAMY,YAAY,GAAG,CACnB,QAAQ,EACR,mBAAmB,EACnB,sCAAsC,EACtCJ,gBAAgB,IAAI,SAAS,CAC9B,CAACK,IAAI,CAAC,GAAG,CAAC;EACX,MAAMC,YAAY,GAAG,CAAC,QAAQ,EAAEJ,gBAAgB,CAAC,CAACK,MAAM,CAACC,OAAO,CAAC,CAACH,IAAI,CAAC,GAAG,CAAC;EAE3E,oBACEX,IAAA,CAACH,0BAA0B,CAACkB,QAAQ;IAACC,KAAK,EAAE,IAAK;IAAAX,QAAA,eAC/CL,IAAA,CAACJ,IAAI;MACIqB,SAAS,EAAEP,YAAY;MAC9BQ,KAAK,EAAEX,YAAa;MAAAF,QAAA,eAEpBL,IAAA,CAACJ,IAAI;QACIqB,SAAS,EAAEL,YAAY;QAC9BM,KAAK,EAAET,YAAa;QAAAJ,QAAA,EAEnBA;MAAQ,CACL;IAAC,CACH;EAAC,CAC4B,CAAC;AAE1C,CAAC;AAED,OAAO,MAAMc,YAAY,gBAAGxB,IAAI,CAACS,qBAAqB,CAAC;AACvDe,YAAY,CAACC,WAAW,GAAG,cAAc","ignoreList":[]}
1
+ {"version":3,"names":["React","memo","View","ContentPanelNestingContext","useContentPanelNestingGuard","jsx","_jsx","GUTTER_MASK_SPREAD","PANEL_TOP_INSET","PANEL_BOTTOM_INSET","ContentPanelComponent","children","framed","surfaceClassName","surfaceStyle","contentClassName","contentStyle","surfaceBase","undefined","surfaceClass","join","contentClass","filter","Boolean","Provider","value","className","style","ContentPanel","displayName"],"sourceRoot":"../../../src","sources":["content-panel/index.tsx"],"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;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAOA,KAAK,IAAIC,IAAI,QAAQ,OAAO;AACnC,SAASC,IAAI,QAAwC,cAAc;AAEnE,SACEC,0BAA0B,EAC1BC,2BAA2B,QACtB,sBAAmB;;AAE1B;AACA;AACA;AACA;AAHA,SAAAC,GAAA,IAAAC,IAAA;AAIA,OAAO,MAAMC,kBAAkB,GAAG,EAAE;AACpC;AACA,OAAO,MAAMC,eAAe,GAAG,CAAC;AAChC;AACA,OAAO,MAAMC,kBAAkB,GAAG,CAAC;AA+BnC,MAAMC,qBAAkD,GAAGA,CAAC;EAC1DC,QAAQ;EACRC,MAAM;EACNC,gBAAgB;EAChBC,YAAY;EACZC,gBAAgB;EAChBC;AACF,CAAC,KAAK;EACJ;EACAZ,2BAA2B,CAAC,CAAC;;EAE7B;EACA;EACA;EACA;EACA,MAAMa,WAAW,GACfL,MAAM,KAAKM,SAAS,GAChB,2EAA2E,GAC3EN,MAAM,GACJ,+DAA+D,GAC/D,QAAQ;EAChB,MAAMO,YAAY,GAAG,CAACF,WAAW,EAAEJ,gBAAgB,IAAI,SAAS,CAAC,CAACO,IAAI,CAAC,GAAG,CAAC;EAC3E,MAAMC,YAAY,GAAG,CAAC,QAAQ,EAAEN,gBAAgB,CAAC,CAACO,MAAM,CAACC,OAAO,CAAC,CAACH,IAAI,CAAC,GAAG,CAAC;EAE3E,oBACEd,IAAA,CAACH,0BAA0B,CAACqB,QAAQ;IAACC,KAAK,EAAE,IAAK;IAAAd,QAAA,eAC/CL,IAAA,CAACJ,IAAI;MACIwB,SAAS,EAAEP,YAAY;MAC9BQ,KAAK,EAAEb,YAAa;MAAAH,QAAA,eAEpBL,IAAA,CAACJ,IAAI;QACIwB,SAAS,EAAEL,YAAY;QAC9BM,KAAK,EAAEX,YAAa;QAAAL,QAAA,EAEnBA;MAAQ,CACL;IAAC,CACH;EAAC,CAC4B,CAAC;AAE1C,CAAC;AAED,OAAO,MAAMiB,YAAY,gBAAG3B,IAAI,CAACS,qBAAqB,CAAC;AACvDkB,YAAY,CAACC,WAAW,GAAG,cAAc","ignoreList":[]}
@@ -25,16 +25,29 @@
25
25
  * content rather than displacing it). They render BEFORE the content wrapper so
26
26
  * z-index — not DOM order — decides layering.
27
27
  *
28
- * When `framed` is false (narrow screens) the panel is full-bleed: a single
29
- * flat surface, no rounding, no overlays.
28
+ * Framing is tri-state via the `framed` prop:
29
+ *
30
+ * - `undefined` (DEFAULT) → RESPONSIVE, driven purely by NativeWind: full-bleed
31
+ * below `md`, framed at `md`+. The rounding is `md:`-gated and both overlays
32
+ * are always rendered but carry `max-md:hidden` (`display:none` below `md`),
33
+ * so the breakpoint is decided in CSS — no consumer JS breakpoint hook.
34
+ * - `false` → NEVER framed (full-bleed at every size): a single flat surface,
35
+ * no rounding, no overlays.
36
+ * - `true` → ALWAYS framed (rounded + overlays at every size).
37
+ *
38
+ * The overlays are gated by VISIBILITY (a `max-md:hidden` literal) rather than
39
+ * by conditional mounting for the responsive case, so crossing the breakpoint
40
+ * never remounts them. The content wrapper likewise keeps a stable `key` so
41
+ * `{children}` reconciles in place across the breakpoint instead of remounting
42
+ * (which would reset feed scroll / the virtualizer + refetch).
30
43
  *
31
44
  * Native bundlers use `./index.tsx` (a plain rounded surface); web bundlers
32
45
  * select this file via the `"browser"` export condition in `package.json`.
33
46
  *
34
47
  * Styling is NativeWind-className-first; the literal class strings below MUST
35
48
  * stay literal so a consumer's Tailwind content-scan over `lib/**` picks them up
36
- * (no dynamic concatenation of the arbitrary `web:[…]` / `rounded-radius-28`
37
- * parts).
49
+ * (no dynamic concatenation of the arbitrary `web:[…]` / `rounded-radius-28` /
50
+ * `md:` parts — whole class strings are selected per mode instead).
38
51
  */
39
52
  import React, { memo } from 'react';
40
53
  import { View } from 'react-native';
@@ -58,28 +71,40 @@ const ContentPanelComponent = ({
58
71
  showStickyFrame,
59
72
  maskColor
60
73
  }) => {
61
- // Dev-only invariant — must run unconditionally before the early `!framed`
62
- // return so the hook order stays stable across renders (rules of hooks).
74
+ // Dev-only invariant — must run unconditionally (before deriving any
75
+ // mode-specific branch) so the hook order stays stable (rules of hooks).
63
76
  useContentPanelNestingGuard();
64
77
  const {
65
78
  colors
66
79
  } = useTheme();
67
- const surfaceClass = framed ? ['flex-1 rounded-radius-28', surfaceClassName ?? 'bg-card'].join(' ') : ['flex-1', surfaceClassName ?? 'bg-card'].join(' ');
68
- const contentClass = framed ? ['flex-1 rounded-radius-28 web:overflow-x-clip', contentClassName].filter(Boolean).join(' ') : ['flex-1', contentClassName].filter(Boolean).join(' ');
80
+
81
+ // Tri-state: `undefined` responsive (md:-gated), `true` always framed,
82
+ // `false` → never framed (full-bleed).
83
+ const responsive = framed === undefined;
84
+ const showOverlays = framed !== false;
85
+
86
+ // Whole literal class strings selected per mode (the Tailwind content-scan
87
+ // over `lib/**` requires each arbitrary/`md:`/`web:` token stay literal).
88
+ // `web:md:overflow-x-clip` is platform-first-then-breakpoint, matching the
89
+ // consumer convention (`web:sm:flex` in `@mercaria/ui`).
90
+ const surfaceBase = responsive ? 'flex-1 md:rounded-radius-28' : framed ? 'flex-1 rounded-radius-28' : 'flex-1';
91
+ const contentBase = responsive ? 'flex-1 md:rounded-radius-28 web:md:overflow-x-clip' : framed ? 'flex-1 rounded-radius-28 web:overflow-x-clip' : 'flex-1';
92
+ const surfaceClass = [surfaceBase, surfaceClassName ?? 'bg-card'].join(' ');
93
+ const contentClass = [contentBase, contentClassName].filter(Boolean).join(' ');
69
94
  return /*#__PURE__*/_jsx(ContentPanelNestingContext.Provider, {
70
95
  value: true,
71
96
  children: /*#__PURE__*/_jsxs(View, {
72
97
  className: surfaceClass,
73
98
  style: surfaceStyle,
74
- children: [framed && /*#__PURE__*/_jsx(View, {
99
+ children: [showOverlays && /*#__PURE__*/_jsx(View, {
75
100
  pointerEvents: "none",
76
- className: 'web:sticky web:top-2 z-30 h-[calc(100dvh-16px)] w-full rounded-radius-28 web:[margin-bottom:calc(-100dvh+16px)] web:[clip-path:inset(-12px)]',
101
+ className: responsive ? 'web:sticky web:top-2 z-30 h-[calc(100dvh-16px)] w-full rounded-radius-28 max-md:hidden web:[margin-bottom:calc(-100dvh+16px)] web:[clip-path:inset(-12px)]' : 'web:sticky web:top-2 z-30 h-[calc(100dvh-16px)] w-full rounded-radius-28 web:[margin-bottom:calc(-100dvh+16px)] web:[clip-path:inset(-12px)]',
77
102
  style: {
78
103
  boxShadow: `0 0 0 ${GUTTER_MASK_SPREAD}px ${maskColor ?? colors.background}`
79
104
  }
80
- }, "bleed-mask"), framed && showStickyFrame !== false && /*#__PURE__*/_jsx(View, {
105
+ }, "bleed-mask"), showOverlays && showStickyFrame !== false && /*#__PURE__*/_jsx(View, {
81
106
  pointerEvents: "none",
82
- className: 'web:sticky web:top-2 z-[120] h-[calc(100dvh-16px)] w-full rounded-radius-28 border border-border web:[margin-bottom:calc(-100dvh+16px)]'
107
+ className: responsive ? 'web:sticky web:top-2 z-[120] h-[calc(100dvh-16px)] w-full rounded-radius-28 border border-border max-md:hidden web:[margin-bottom:calc(-100dvh+16px)]' : 'web:sticky web:top-2 z-[120] h-[calc(100dvh-16px)] w-full rounded-radius-28 border border-border web:[margin-bottom:calc(-100dvh+16px)]'
83
108
  }, "border-frame"), /*#__PURE__*/_jsx(View, {
84
109
  className: contentClass,
85
110
  style: contentStyle,
@@ -1 +1 @@
1
- {"version":3,"names":["React","memo","View","useTheme","ContentPanelNestingContext","useContentPanelNestingGuard","jsx","_jsx","jsxs","_jsxs","GUTTER_MASK_SPREAD","PANEL_TOP_INSET","PANEL_BOTTOM_INSET","ContentPanelComponent","children","framed","surfaceClassName","surfaceStyle","contentClassName","contentStyle","showStickyFrame","maskColor","colors","surfaceClass","join","contentClass","filter","Boolean","Provider","value","className","style","pointerEvents","boxShadow","background","ContentPanel","displayName"],"sourceRoot":"../../../src","sources":["content-panel/index.web.tsx"],"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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAOA,KAAK,IAAIC,IAAI,QAAQ,OAAO;AACnC,SAASC,IAAI,QAAwC,cAAc;AAEnE,SAASC,QAAQ,QAAQ,uBAAoB;AAC7C,SACEC,0BAA0B,EAC1BC,2BAA2B,QACtB,sBAAmB;;AAE1B;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AACA,OAAO,MAAMC,kBAAkB,GAAG,EAAE;AACpC;AACA,OAAO,MAAMC,eAAe,GAAG,CAAC;AAChC;AACA,OAAO,MAAMC,kBAAkB,GAAG,CAAC;AAyBnC,MAAMC,qBAAkD,GAAGA,CAAC;EAC1DC,QAAQ;EACRC,MAAM;EACNC,gBAAgB;EAChBC,YAAY;EACZC,gBAAgB;EAChBC,YAAY;EACZC,eAAe;EACfC;AACF,CAAC,KAAK;EACJ;EACA;EACAhB,2BAA2B,CAAC,CAAC;EAC7B,MAAM;IAAEiB;EAAO,CAAC,GAAGnB,QAAQ,CAAC,CAAC;EAE7B,MAAMoB,YAAY,GAAGR,MAAM,GACvB,CAAC,0BAA0B,EAAEC,gBAAgB,IAAI,SAAS,CAAC,CAACQ,IAAI,CAAC,GAAG,CAAC,GACrE,CAAC,QAAQ,EAAER,gBAAgB,IAAI,SAAS,CAAC,CAACQ,IAAI,CAAC,GAAG,CAAC;EACvD,MAAMC,YAAY,GAAGV,MAAM,GACvB,CAAC,8CAA8C,EAAEG,gBAAgB,CAAC,CAACQ,MAAM,CAACC,OAAO,CAAC,CAACH,IAAI,CAAC,GAAG,CAAC,GAC5F,CAAC,QAAQ,EAAEN,gBAAgB,CAAC,CAACQ,MAAM,CAACC,OAAO,CAAC,CAACH,IAAI,CAAC,GAAG,CAAC;EAE1D,oBACEjB,IAAA,CAACH,0BAA0B,CAACwB,QAAQ;IAACC,KAAK,EAAE,IAAK;IAAAf,QAAA,eAC/CL,KAAA,CAACP,IAAI;MACI4B,SAAS,EAAEP,YAAY;MAC9BQ,KAAK,EAAEd,YAAa;MAAAH,QAAA,GAGnBC,MAAM,iBACLR,IAAA,CAACL,IAAI;QAEH8B,aAAa,EAAC,MAAM;QAElBF,SAAS,EACP,8IAA8I;QAElJC,KAAK,EAAE;UAAEE,SAAS,EAAE,SAASvB,kBAAkB,MAAMW,SAAS,IAAIC,MAAM,CAACY,UAAU;QAAG;MAAE,GANpF,YAOL,CACF,EAEAnB,MAAM,IAAIK,eAAe,KAAK,KAAK,iBAClCb,IAAA,CAACL,IAAI;QAEH8B,aAAa,EAAC,MAAM;QAElBF,SAAS,EACP;MAAyI,GAJzI,cAML,CACF,eAKDvB,IAAA,CAACL,IAAI;QAEI4B,SAAS,EAAEL,YAAY;QAC9BM,KAAK,EAAEZ,YAAa;QAAAL,QAAA,EAEnBA;MAAQ,GAJL,SAKA,CAAC;IAAA,CACH;EAAC,CAC4B,CAAC;AAE1C,CAAC;AAED,OAAO,MAAMqB,YAAY,gBAAGlC,IAAI,CAACY,qBAAqB,CAAC;AACvDsB,YAAY,CAACC,WAAW,GAAG,cAAc","ignoreList":[]}
1
+ {"version":3,"names":["React","memo","View","useTheme","ContentPanelNestingContext","useContentPanelNestingGuard","jsx","_jsx","jsxs","_jsxs","GUTTER_MASK_SPREAD","PANEL_TOP_INSET","PANEL_BOTTOM_INSET","ContentPanelComponent","children","framed","surfaceClassName","surfaceStyle","contentClassName","contentStyle","showStickyFrame","maskColor","colors","responsive","undefined","showOverlays","surfaceBase","contentBase","surfaceClass","join","contentClass","filter","Boolean","Provider","value","className","style","pointerEvents","boxShadow","background","ContentPanel","displayName"],"sourceRoot":"../../../src","sources":["content-panel/index.web.tsx"],"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;AACA;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,KAAK,IAAIC,IAAI,QAAQ,OAAO;AACnC,SAASC,IAAI,QAAwC,cAAc;AAEnE,SAASC,QAAQ,QAAQ,uBAAoB;AAC7C,SACEC,0BAA0B,EAC1BC,2BAA2B,QACtB,sBAAmB;;AAE1B;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AACA,OAAO,MAAMC,kBAAkB,GAAG,EAAE;AACpC;AACA,OAAO,MAAMC,eAAe,GAAG,CAAC;AAChC;AACA,OAAO,MAAMC,kBAAkB,GAAG,CAAC;AAgCnC,MAAMC,qBAAkD,GAAGA,CAAC;EAC1DC,QAAQ;EACRC,MAAM;EACNC,gBAAgB;EAChBC,YAAY;EACZC,gBAAgB;EAChBC,YAAY;EACZC,eAAe;EACfC;AACF,CAAC,KAAK;EACJ;EACA;EACAhB,2BAA2B,CAAC,CAAC;EAC7B,MAAM;IAAEiB;EAAO,CAAC,GAAGnB,QAAQ,CAAC,CAAC;;EAE7B;EACA;EACA,MAAMoB,UAAU,GAAGR,MAAM,KAAKS,SAAS;EACvC,MAAMC,YAAY,GAAGV,MAAM,KAAK,KAAK;;EAErC;EACA;EACA;EACA;EACA,MAAMW,WAAW,GAAGH,UAAU,GAC1B,6BAA6B,GAC7BR,MAAM,GACJ,0BAA0B,GAC1B,QAAQ;EACd,MAAMY,WAAW,GAAGJ,UAAU,GAC1B,oDAAoD,GACpDR,MAAM,GACJ,8CAA8C,GAC9C,QAAQ;EACd,MAAMa,YAAY,GAAG,CAACF,WAAW,EAAEV,gBAAgB,IAAI,SAAS,CAAC,CAACa,IAAI,CAAC,GAAG,CAAC;EAC3E,MAAMC,YAAY,GAAG,CAACH,WAAW,EAAET,gBAAgB,CAAC,CAACa,MAAM,CAACC,OAAO,CAAC,CAACH,IAAI,CAAC,GAAG,CAAC;EAE9E,oBACEtB,IAAA,CAACH,0BAA0B,CAAC6B,QAAQ;IAACC,KAAK,EAAE,IAAK;IAAApB,QAAA,eAC/CL,KAAA,CAACP,IAAI;MACIiC,SAAS,EAAEP,YAAY;MAC9BQ,KAAK,EAAEnB,YAAa;MAAAH,QAAA,GAKnBW,YAAY,iBACXlB,IAAA,CAACL,IAAI;QAEHmC,aAAa,EAAC,MAAM;QAElBF,SAAS,EAAEZ,UAAU,GACjB,4JAA4J,GAC5J,8IAA8I;QAEpJa,KAAK,EAAE;UAAEE,SAAS,EAAE,SAAS5B,kBAAkB,MAAMW,SAAS,IAAIC,MAAM,CAACiB,UAAU;QAAG;MAAE,GAPpF,YAQL,CACF,EAGAd,YAAY,IAAIL,eAAe,KAAK,KAAK,iBACxCb,IAAA,CAACL,IAAI;QAEHmC,aAAa,EAAC,MAAM;QAElBF,SAAS,EAAEZ,UAAU,GACjB,uJAAuJ,GACvJ;MAAyI,GAL3I,cAOL,CACF,eAKDhB,IAAA,CAACL,IAAI;QAEIiC,SAAS,EAAEL,YAAY;QAC9BM,KAAK,EAAEjB,YAAa;QAAAL,QAAA,EAEnBA;MAAQ,GAJL,SAKA,CAAC;IAAA,CACH;EAAC,CAC4B,CAAC;AAE1C,CAAC;AAED,OAAO,MAAM0B,YAAY,gBAAGvC,IAAI,CAACY,qBAAqB,CAAC;AACvD2B,YAAY,CAACC,WAAW,GAAG,cAAc","ignoreList":[]}
@@ -3,7 +3,7 @@
3
3
  import React, { useRef } from 'react';
4
4
  import { Text } from 'react-native';
5
5
  import { useFonts } from 'expo-font';
6
- import { FONT_ASSETS } from "./font-assets.js";
6
+ import { FONT_ASSETS } from "./font-assets.native.js";
7
7
 
8
8
  /**
9
9
  * React Native's `Text` exposes a static `defaultProps` for app-wide prop
@@ -1 +1 @@
1
- {"version":3,"names":["React","useRef","Text","useFonts","FONT_ASSETS","Fragment","_Fragment","jsx","_jsx","applyDefaultTextFont","TextWithDefaults","existing","defaultProps","style","bloomDefault","fontFamily","Array","isArray","first","nextStyle","FontLoader","enabled","fallback","children","loaded","defaultsApplied","current"],"sourceRoot":"../../../src","sources":["fonts/FontLoader.native.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,MAAM,QAAQ,OAAO;AACrC,SAASC,IAAI,QAAwD,cAAc;AACnF,SAASC,QAAQ,QAAQ,WAAW;AACpC,SAASC,WAAW,QAAQ,kBAAe;;AAc3C;AACA;AACA;AACA;AACA;AACA;AALA,SAAAC,QAAA,IAAAC,SAAA,EAAAC,GAAA,IAAAC,IAAA;AAUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,oBAAoBA,CAAA,EAAS;EACpC,MAAMC,gBAAgB,GAAGR,IAAwB;EACjD,MAAMS,QAAQ,GAAGD,gBAAgB,CAACE,YAAY,EAAEC,KAAK;EACrD,MAAMC,YAAuB,GAAG;IAAEC,UAAU,EAAE;EAAiB,CAAC;;EAEhE;EACA;EACA;EACA;EACA,IAAIC,KAAK,CAACC,OAAO,CAACN,QAAQ,CAAC,EAAE;IAC3B,MAAMO,KAAK,GAAGP,QAAQ,CAAC,CAAC,CAAC;IACzB,IACEO,KAAK,IACL,OAAOA,KAAK,KAAK,QAAQ,IACzB,CAACF,KAAK,CAACC,OAAO,CAACC,KAAK,CAAC,IACpBA,KAAK,CAAeH,UAAU,KAAKD,YAAY,CAACC,UAAU,EAC3D;MACA;IACF;EACF,CAAC,MAAM,IACLJ,QAAQ,IACR,OAAOA,QAAQ,KAAK,QAAQ,IAC3BA,QAAQ,CAAeI,UAAU,KAAKD,YAAY,CAACC,UAAU,EAC9D;IACA;EACF;EAEA,MAAMI,SAA+B,GACnCR,QAAQ,IAAI,IAAI,GAAGG,YAAY,GAAG,CAACA,YAAY,EAAEH,QAAQ,CAAC;EAE5DD,gBAAgB,CAACE,YAAY,GAAG;IAC9B,GAAGF,gBAAgB,CAACE,YAAY;IAChCC,KAAK,EAAEM;EACT,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,UAAUA,CAAC;EAAEC,OAAO;EAAEC,QAAQ;EAAEC;AAA0B,CAAC,EAAE;EAC3E,MAAM,CAACC,MAAM,CAAC,GAAGrB,QAAQ,CAACC,WAAW,CAAC;EACtC,MAAMqB,eAAe,GAAGxB,MAAM,CAAC,KAAK,CAAC;EAErC,IAAIuB,MAAM,IAAI,CAACC,eAAe,CAACC,OAAO,EAAE;IACtCD,eAAe,CAACC,OAAO,GAAG,IAAI;IAC9BjB,oBAAoB,CAAC,CAAC;EACxB;EAEA,IAAI,CAACY,OAAO,EAAE,oBAAOb,IAAA,CAAAF,SAAA;IAAAiB,QAAA,EAAGA;EAAQ,CAAG,CAAC;EACpC,IAAI,CAACC,MAAM,EAAE,oBAAOhB,IAAA,CAAAF,SAAA;IAAAiB,QAAA,EAAGD,QAAQ,IAAI;EAAI,CAAG,CAAC;EAC3C,oBAAOd,IAAA,CAAAF,SAAA;IAAAiB,QAAA,EAAGA;EAAQ,CAAG,CAAC;AACxB","ignoreList":[]}
1
+ {"version":3,"names":["React","useRef","Text","useFonts","FONT_ASSETS","Fragment","_Fragment","jsx","_jsx","applyDefaultTextFont","TextWithDefaults","existing","defaultProps","style","bloomDefault","fontFamily","Array","isArray","first","nextStyle","FontLoader","enabled","fallback","children","loaded","defaultsApplied","current"],"sourceRoot":"../../../src","sources":["fonts/FontLoader.native.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,MAAM,QAAQ,OAAO;AACrC,SAASC,IAAI,QAAwD,cAAc;AACnF,SAASC,QAAQ,QAAQ,WAAW;AACpC,SAASC,WAAW,QAAQ,yBAAsB;;AAclD;AACA;AACA;AACA;AACA;AACA;AALA,SAAAC,QAAA,IAAAC,SAAA,EAAAC,GAAA,IAAAC,IAAA;AAUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,oBAAoBA,CAAA,EAAS;EACpC,MAAMC,gBAAgB,GAAGR,IAAwB;EACjD,MAAMS,QAAQ,GAAGD,gBAAgB,CAACE,YAAY,EAAEC,KAAK;EACrD,MAAMC,YAAuB,GAAG;IAAEC,UAAU,EAAE;EAAiB,CAAC;;EAEhE;EACA;EACA;EACA;EACA,IAAIC,KAAK,CAACC,OAAO,CAACN,QAAQ,CAAC,EAAE;IAC3B,MAAMO,KAAK,GAAGP,QAAQ,CAAC,CAAC,CAAC;IACzB,IACEO,KAAK,IACL,OAAOA,KAAK,KAAK,QAAQ,IACzB,CAACF,KAAK,CAACC,OAAO,CAACC,KAAK,CAAC,IACpBA,KAAK,CAAeH,UAAU,KAAKD,YAAY,CAACC,UAAU,EAC3D;MACA;IACF;EACF,CAAC,MAAM,IACLJ,QAAQ,IACR,OAAOA,QAAQ,KAAK,QAAQ,IAC3BA,QAAQ,CAAeI,UAAU,KAAKD,YAAY,CAACC,UAAU,EAC9D;IACA;EACF;EAEA,MAAMI,SAA+B,GACnCR,QAAQ,IAAI,IAAI,GAAGG,YAAY,GAAG,CAACA,YAAY,EAAEH,QAAQ,CAAC;EAE5DD,gBAAgB,CAACE,YAAY,GAAG;IAC9B,GAAGF,gBAAgB,CAACE,YAAY;IAChCC,KAAK,EAAEM;EACT,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,UAAUA,CAAC;EAAEC,OAAO;EAAEC,QAAQ;EAAEC;AAA0B,CAAC,EAAE;EAC3E,MAAM,CAACC,MAAM,CAAC,GAAGrB,QAAQ,CAACC,WAAW,CAAC;EACtC,MAAMqB,eAAe,GAAGxB,MAAM,CAAC,KAAK,CAAC;EAErC,IAAIuB,MAAM,IAAI,CAACC,eAAe,CAACC,OAAO,EAAE;IACtCD,eAAe,CAACC,OAAO,GAAG,IAAI;IAC9BjB,oBAAoB,CAAC,CAAC;EACxB;EAEA,IAAI,CAACY,OAAO,EAAE,oBAAOb,IAAA,CAAAF,SAAA;IAAAiB,QAAA,EAAGA;EAAQ,CAAG,CAAC;EACpC,IAAI,CAACC,MAAM,EAAE,oBAAOhB,IAAA,CAAAF,SAAA;IAAAiB,QAAA,EAAGD,QAAQ,IAAI;EAAI,CAAG,CAAC;EAC3C,oBAAOd,IAAA,CAAAF,SAAA;IAAAiB,QAAA,EAAGA;EAAQ,CAAG,CAAC;AACxB","ignoreList":[]}
@@ -0,0 +1,93 @@
1
+ Copyright 2024 The Geist Project Authors (https://github.com/vercel/geist-font)
2
+
3
+ This Font Software is licensed under the SIL Open Font License, Version 1.1.
4
+ This license is copied below, and is also available with a FAQ at:
5
+ https://openfontlicense.org
6
+
7
+
8
+ -----------------------------------------------------------
9
+ SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
10
+ -----------------------------------------------------------
11
+
12
+ PREAMBLE
13
+ The goals of the Open Font License (OFL) are to stimulate worldwide
14
+ development of collaborative font projects, to support the font creation
15
+ efforts of academic and linguistic communities, and to provide a free and
16
+ open framework in which fonts may be shared and improved in partnership
17
+ with others.
18
+
19
+ The OFL allows the licensed fonts to be used, studied, modified and
20
+ redistributed freely as long as they are not sold by themselves. The
21
+ fonts, including any derivative works, can be bundled, embedded,
22
+ redistributed and/or sold with any software provided that any reserved
23
+ names are not used by derivative works. The fonts and derivatives,
24
+ however, cannot be released under any other type of license. The
25
+ requirement for fonts to remain under this license does not apply
26
+ to any document created using the fonts or their derivatives.
27
+
28
+ DEFINITIONS
29
+ "Font Software" refers to the set of files released by the Copyright
30
+ Holder(s) under this license and clearly marked as such. This may
31
+ include source files, build scripts and documentation.
32
+
33
+ "Reserved Font Name" refers to any names specified as such after the
34
+ copyright statement(s).
35
+
36
+ "Original Version" refers to the collection of Font Software components as
37
+ distributed by the Copyright Holder(s).
38
+
39
+ "Modified Version" refers to any derivative made by adding to, deleting,
40
+ or substituting -- in part or in whole -- any of the components of the
41
+ Original Version, by changing formats or by porting the Font Software to a
42
+ new environment.
43
+
44
+ "Author" refers to any designer, engineer, programmer, technical
45
+ writer or other person who contributed to the Font Software.
46
+
47
+ PERMISSION & CONDITIONS
48
+ Permission is hereby granted, free of charge, to any person obtaining
49
+ a copy of the Font Software, to use, study, copy, merge, embed, modify,
50
+ redistribute, and sell modified and unmodified copies of the Font
51
+ Software, subject to the following conditions:
52
+
53
+ 1) Neither the Font Software nor any of its individual components,
54
+ in Original or Modified Versions, may be sold by itself.
55
+
56
+ 2) Original or Modified Versions of the Font Software may be bundled,
57
+ redistributed and/or sold with any software, provided that each copy
58
+ contains the above copyright notice and this license. These can be
59
+ included either as stand-alone text files, human-readable headers or
60
+ in the appropriate machine-readable metadata fields within text or
61
+ binary files as long as those fields can be easily viewed by the user.
62
+
63
+ 3) No Modified Version of the Font Software may use the Reserved Font
64
+ Name(s) unless explicit written permission is granted by the corresponding
65
+ Copyright Holder. This restriction only applies to the primary font name as
66
+ presented to the users.
67
+
68
+ 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
69
+ Software shall not be used to promote, endorse or advertise any
70
+ Modified Version, except to acknowledge the contribution(s) of the
71
+ Copyright Holder(s) and the Author(s) or with their explicit written
72
+ permission.
73
+
74
+ 5) The Font Software, modified or unmodified, in part or in whole,
75
+ must be distributed entirely under this license, and must not be
76
+ distributed under any other license. The requirement for fonts to
77
+ remain under this license does not apply to any document created
78
+ using the Font Software.
79
+
80
+ TERMINATION
81
+ This license becomes null and void if any of the above conditions are
82
+ not met.
83
+
84
+ DISCLAIMER
85
+ THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
86
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
87
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
88
+ OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
89
+ COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
90
+ INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
91
+ DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
92
+ FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
93
+ OTHER DEALINGS IN THE FONT SOFTWARE.
@@ -0,0 +1,92 @@
1
+ Copyright (c) 2016 The Inter Project Authors (https://github.com/rsms/inter)
2
+
3
+ This Font Software is licensed under the SIL Open Font License, Version 1.1.
4
+ This license is copied below, and is also available with a FAQ at:
5
+ http://scripts.sil.org/OFL
6
+
7
+ -----------------------------------------------------------
8
+ SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
9
+ -----------------------------------------------------------
10
+
11
+ PREAMBLE
12
+ The goals of the Open Font License (OFL) are to stimulate worldwide
13
+ development of collaborative font projects, to support the font creation
14
+ efforts of academic and linguistic communities, and to provide a free and
15
+ open framework in which fonts may be shared and improved in partnership
16
+ with others.
17
+
18
+ The OFL allows the licensed fonts to be used, studied, modified and
19
+ redistributed freely as long as they are not sold by themselves. The
20
+ fonts, including any derivative works, can be bundled, embedded,
21
+ redistributed and/or sold with any software provided that any reserved
22
+ names are not used by derivative works. The fonts and derivatives,
23
+ however, cannot be released under any other type of license. The
24
+ requirement for fonts to remain under this license does not apply
25
+ to any document created using the fonts or their derivatives.
26
+
27
+ DEFINITIONS
28
+ "Font Software" refers to the set of files released by the Copyright
29
+ Holder(s) under this license and clearly marked as such. This may
30
+ include source files, build scripts and documentation.
31
+
32
+ "Reserved Font Name" refers to any names specified as such after the
33
+ copyright statement(s).
34
+
35
+ "Original Version" refers to the collection of Font Software components as
36
+ distributed by the Copyright Holder(s).
37
+
38
+ "Modified Version" refers to any derivative made by adding to, deleting,
39
+ or substituting -- in part or in whole -- any of the components of the
40
+ Original Version, by changing formats or by porting the Font Software to a
41
+ new environment.
42
+
43
+ "Author" refers to any designer, engineer, programmer, technical
44
+ writer or other person who contributed to the Font Software.
45
+
46
+ PERMISSION AND CONDITIONS
47
+ Permission is hereby granted, free of charge, to any person obtaining
48
+ a copy of the Font Software, to use, study, copy, merge, embed, modify,
49
+ redistribute, and sell modified and unmodified copies of the Font
50
+ Software, subject to the following conditions:
51
+
52
+ 1) Neither the Font Software nor any of its individual components,
53
+ in Original or Modified Versions, may be sold by itself.
54
+
55
+ 2) Original or Modified Versions of the Font Software may be bundled,
56
+ redistributed and/or sold with any software, provided that each copy
57
+ contains the above copyright notice and this license. These can be
58
+ included either as stand-alone text files, human-readable headers or
59
+ in the appropriate machine-readable metadata fields within text or
60
+ binary files as long as those fields can be easily viewed by the user.
61
+
62
+ 3) No Modified Version of the Font Software may use the Reserved Font
63
+ Name(s) unless explicit written permission is granted by the corresponding
64
+ Copyright Holder. This restriction only applies to the primary font name as
65
+ presented to the users.
66
+
67
+ 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
68
+ Software shall not be used to promote, endorse or advertise any
69
+ Modified Version, except to acknowledge the contribution(s) of the
70
+ Copyright Holder(s) and the Author(s) or with their explicit written
71
+ permission.
72
+
73
+ 5) The Font Software, modified or unmodified, in part or in whole,
74
+ must be distributed entirely under this license, and must not be
75
+ distributed under any other license. The requirement for fonts to
76
+ remain under this license does not apply to any document created
77
+ using the Font Software.
78
+
79
+ TERMINATION
80
+ This license becomes null and void if any of the above conditions are
81
+ not met.
82
+
83
+ DISCLAIMER
84
+ THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
85
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
86
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
87
+ OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
88
+ COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
89
+ INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
90
+ DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
91
+ FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
92
+ OTHER DEALINGS IN THE FONT SOFTWARE.
@@ -1,19 +1,21 @@
1
1
  "use strict";
2
2
 
3
- // Native font asset map for `useFonts(FONT_ASSETS)`.
3
+ // Platform-neutral default font asset map deliberately empty.
4
4
  //
5
- // We ship variable .ttf files for Inter and Geist Mono (extracted from the
6
- // official rsms/inter and vercel/geist-font releases) so the same family name
7
- // covers all weights at runtime. `@fontsource(-variable)?/*` packages only
8
- // publish .woff2 for their variable axes modern react-native font loading
9
- // requires .ttf, so we use the upstream variable TTFs instead. On web,
10
- // `apply-font-faces.web.ts` inlines the .woff2 variants as base64 data URLs
11
- // (see `font-data.web.ts`) and this file is never imported.
5
+ // The real map is Metro-only (`font-assets.native.ts`): it is built from
6
+ // `require('./assets/*.ttf')` asset requires, which are meaningless outside
7
+ // Metro and fatal inside an ES module, where `require` is not defined. This
8
+ // default therefore carries no asset requires at all, per the platform-split
9
+ // rule in AGENTS.md anything with platform-specific behaviour ships
10
+ // `.native.ts` + `.web.ts` + a clean default `.ts` that no bundler can choke
11
+ // on.
12
+ //
13
+ // Who lands here: any consumer whose bundler does no platform-extension
14
+ // resolution. In practice that is the `"import"` export condition — Node ESM,
15
+ // SSR, and prerender passes. They get an empty map and load no fonts, which is
16
+ // correct: there is no native font registry to load them into. Metro takes
17
+ // `font-assets.native.ts`, and the web barrel names `./font-assets.web`
18
+ // outright.
12
19
 
13
- export const FONT_ASSETS = {
14
- BlomusModernus: require('./assets/BlomusModernus-Regular.ttf'),
15
- 'BlomusModernus-Bold': require('./assets/BlomusModernus-Bold.ttf'),
16
- Inter: require('./assets/InterVariable.ttf'),
17
- 'Geist Mono': require('./assets/GeistMono-Variable.ttf')
18
- };
20
+ export const FONT_ASSETS = {};
19
21
  //# sourceMappingURL=font-assets.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["FONT_ASSETS","BlomusModernus","require","Inter"],"sourceRoot":"../../../src","sources":["fonts/font-assets.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,MAAMA,WAAW,GAAG;EACzBC,cAAc,EAAEC,OAAO,CAAC,qCAAqC,CAAC;EAC9D,qBAAqB,EAAEA,OAAO,CAAC,kCAAkC,CAAC;EAClEC,KAAK,EAAED,OAAO,CAAC,4BAA4B,CAAC;EAC5C,YAAY,EAAEA,OAAO,CAAC,iCAAiC;AACzD,CAAU","ignoreList":[]}
1
+ {"version":3,"names":["FONT_ASSETS"],"sourceRoot":"../../../src","sources":["fonts/font-assets.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,27 @@
1
+ "use strict";
2
+
3
+ // Native font asset map for `useFonts(FONT_ASSETS)`.
4
+ //
5
+ // We ship variable .ttf files for Inter and Geist Mono (extracted from the
6
+ // official rsms/inter and vercel/geist-font releases) so the same family name
7
+ // covers all weights at runtime. `@fontsource(-variable)?/*` packages only
8
+ // publish .woff2 for their variable axes — modern react-native font loading
9
+ // requires .ttf, so we use the upstream variable TTFs instead.
10
+ //
11
+ // METRO-ONLY. The calls below are Metro asset requires: they resolve to
12
+ // asset-registry ids and only exist because Metro rewrites them at bundle
13
+ // time. Reaching a web or Node ESM bundler with them is fatal — `require` is
14
+ // not defined in an ES module, so merely importing this file throws
15
+ // `ReferenceError: require is not defined` at module-evaluation time and takes
16
+ // the whole app down before React can mount. That is why this map lives behind
17
+ // a platform split (`font-assets.web.ts` and the default `font-assets.ts` are
18
+ // both empty) and why the web barrel reaches for `./font-assets.web`
19
+ // explicitly rather than relying on bundler extension resolution.
20
+
21
+ export const FONT_ASSETS = {
22
+ BlomusModernus: require('./assets/BlomusModernus-Regular.ttf'),
23
+ 'BlomusModernus-Bold': require('./assets/BlomusModernus-Bold.ttf'),
24
+ Inter: require('./assets/InterVariable.ttf'),
25
+ 'Geist Mono': require('./assets/GeistMono-Variable.ttf')
26
+ };
27
+ //# sourceMappingURL=font-assets.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["FONT_ASSETS","BlomusModernus","require","Inter"],"sourceRoot":"../../../src","sources":["fonts/font-assets.native.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,OAAO,MAAMA,WAAyB,GAAG;EACvCC,cAAc,EAAEC,OAAO,CAAC,qCAAqC,CAAC;EAC9D,qBAAqB,EAAEA,OAAO,CAAC,kCAAkC,CAAC;EAClEC,KAAK,EAAED,OAAO,CAAC,4BAA4B,CAAC;EAC5C,YAAY,EAAEA,OAAO,CAAC,iCAAiC;AACzD,CAAC","ignoreList":[]}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ // Web has no bundled font assets.
4
+ //
5
+ // `useFonts()` is native-only — the web `FontLoader` (`FontLoader.tsx`) calls
6
+ // `applyFontFaces()` instead, which injects the same four families as
7
+ // `@font-face` rules from base64 data URLs (`apply-font-faces.web.ts` /
8
+ // `font-data.web.ts`). So the map is empty by design, not by omission.
9
+ //
10
+ // This file exists so `index.web.ts` can name its font-asset source
11
+ // explicitly, exactly as it already does for `./apply-font-faces.web`. The
12
+ // native map (`font-assets.native.ts`) is built from Metro asset `require()`
13
+ // calls, which throw `ReferenceError: require is not defined` the moment an
14
+ // ES module bundler evaluates them — an explicit `./font-assets.web` import
15
+ // keeps that file out of the web graph without depending on the consumer's
16
+ // bundler being configured to resolve `.web` extensions (Vite, for one, does
17
+ // not do so by default).
18
+
19
+ export const FONT_ASSETS = {};
20
+ //# sourceMappingURL=font-assets.web.js.map
@@ -0,0 +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":[]}
@@ -2,6 +2,6 @@
2
2
 
3
3
  export { fontFamilies, fontCssVars } from "./tokens.js";
4
4
  export { applyFontFaces } from './apply-font-faces';
5
- export { FONT_ASSETS } from "./font-assets.js";
5
+ export { FONT_ASSETS } from './font-assets';
6
6
  export { FontLoader } from './FontLoader';
7
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["fontFamilies","fontCssVars","applyFontFaces","FONT_ASSETS","FontLoader"],"sourceRoot":"../../../src","sources":["fonts/index.ts"],"mappings":";;AAAA,SAASA,YAAY,EAAEC,WAAW,QAAQ,aAAU;AAEpD,SAASC,cAAc,QAAQ,oBAAoB;AACnD,SAASC,WAAW,QAAQ,kBAAe;AAC3C,SAASC,UAAU,QAAQ,cAAc","ignoreList":[]}
1
+ {"version":3,"names":["fontFamilies","fontCssVars","applyFontFaces","FONT_ASSETS","FontLoader"],"sourceRoot":"../../../src","sources":["fonts/index.ts"],"mappings":";;AAAA,SAASA,YAAY,EAAEC,WAAW,QAAQ,aAAU;AAEpD,SAASC,cAAc,QAAQ,oBAAoB;AACnD,SAASC,WAAW,QAAQ,eAAe;AAC3C,SAASC,UAAU,QAAQ,cAAc","ignoreList":[]}
@@ -2,17 +2,26 @@
2
2
 
3
3
  // Web variant of the `./fonts` barrel.
4
4
  //
5
- // The default barrel (`./index.ts`) re-exports `applyFontFaces` from
6
- // `./apply-font-faces`, which on native is a no-op stub. The web fork
7
- // explicitly reaches for `./apply-font-faces.web`, which performs the real
8
- // `@font-face` injection using inlined base64 data URLs (see
9
- // `font-data.web.ts`).
5
+ // Every re-export below that has a platform fork names its `.web` source
6
+ // OUTRIGHT rather than letting the bundler pick. That is deliberate: web
7
+ // bundlers are not required to resolve `.web` extensions (Vite does not, out
8
+ // of the box), so an extensionless specifier here would quietly fall through
9
+ // to the default file.
10
+ //
11
+ // - `./apply-font-faces.web` performs the real `@font-face` injection using
12
+ // inlined base64 data URLs (see `font-data.web.ts`); the default
13
+ // `./apply-font-faces` is a no-op stub for native.
14
+ // - `./font-assets.web` is an empty map. The native map is built from Metro
15
+ // asset `require()` calls, and importing it from an ES module throws
16
+ // `ReferenceError: require is not defined` during module evaluation — which
17
+ // white-screens the consumer before React mounts. Naming the `.web` file
18
+ // here is what keeps it out of the web graph.
10
19
  //
11
20
  // Web bundlers select this file via the `"browser"` condition in
12
21
  // `package.json`'s `exports['./fonts']`; native bundlers fall through to
13
22
  // `./index.ts` via the `"react-native"` condition.
14
23
  export { fontFamilies, fontCssVars } from "./tokens.js";
15
24
  export { applyFontFaces } from "./apply-font-faces.web.js";
16
- export { FONT_ASSETS } from "./font-assets.js";
25
+ export { FONT_ASSETS } from "./font-assets.web.js";
17
26
  export { FontLoader } from './FontLoader';
18
27
  //# sourceMappingURL=index.web.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["fontFamilies","fontCssVars","applyFontFaces","FONT_ASSETS","FontLoader"],"sourceRoot":"../../../src","sources":["fonts/index.web.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,YAAY,EAAEC,WAAW,QAAQ,aAAU;AAEpD,SAASC,cAAc,QAAQ,2BAAwB;AACvD,SAASC,WAAW,QAAQ,kBAAe;AAC3C,SAASC,UAAU,QAAQ,cAAc","ignoreList":[]}
1
+ {"version":3,"names":["fontFamilies","fontCssVars","applyFontFaces","FONT_ASSETS","FontLoader"],"sourceRoot":"../../../src","sources":["fonts/index.web.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,YAAY,EAAEC,WAAW,QAAQ,aAAU;AAEpD,SAASC,cAAc,QAAQ,2BAAwB;AACvD,SAASC,WAAW,QAAQ,sBAAmB;AAC/C,SAASC,UAAU,QAAQ,cAAc","ignoreList":[]}
@@ -20,4 +20,16 @@ export const fontCssVars = {
20
20
  sans: '--bloom-font-sans',
21
21
  mono: '--bloom-font-mono'
22
22
  };
23
+
24
+ /**
25
+ * Shape of the font asset map handed to `expo-font`'s `useFonts()`.
26
+ *
27
+ * Values are Metro asset-registry ids produced by `require('./assets/*.ttf')`,
28
+ * so the map is only ever populated under Metro (`font-assets.native.ts`).
29
+ * Every other platform resolves an empty map — web installs the same families
30
+ * as `@font-face` rules instead (`apply-font-faces.web.ts`).
31
+ *
32
+ * Declared here, in the platform-neutral tokens module, so all three
33
+ * `font-assets` variants can share it without importing each other.
34
+ */
23
35
  //# sourceMappingURL=tokens.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["fontFamilies","display","sans","mono","fontCssVars"],"sourceRoot":"../../../src","sources":["fonts/tokens.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,MAAMA,YAAY,GAAG;EAC1BC,OAAO,EAAE,mDAAmD;EAC5DC,IAAI,EAAE,mFAAmF;EACzFC,IAAI,EAAE;AACR,CAAU;AAEV,OAAO,MAAMC,WAAW,GAAG;EACzBH,OAAO,EAAE,sBAAsB;EAC/BC,IAAI,EAAE,mBAAmB;EACzBC,IAAI,EAAE;AACR,CAAU","ignoreList":[]}
1
+ {"version":3,"names":["fontFamilies","display","sans","mono","fontCssVars"],"sourceRoot":"../../../src","sources":["fonts/tokens.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,MAAMA,YAAY,GAAG;EAC1BC,OAAO,EAAE,mDAAmD;EAC5DC,IAAI,EAAE,mFAAmF;EACzFC,IAAI,EAAE;AACR,CAAU;AAEV,OAAO,MAAMC,WAAW,GAAG;EACzBH,OAAO,EAAE,sBAAsB;EAC/BC,IAAI,EAAE,mBAAmB;EACzBC,IAAI,EAAE;AACR,CAAU;;AAIV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","ignoreList":[]}
@@ -64,13 +64,25 @@ function setWebCssVariable() {
64
64
  }
65
65
  function tryCallSetFlag() {
66
66
  let mod;
67
+ // `require` does not exist in an ES module, so guard before touching it —
68
+ // an unguarded reference is a ReferenceError, not a resolution failure.
69
+ // Matches the pattern used by every other optional-module load in Bloom
70
+ // (`utils/lazy-require.ts`, `theme/adaptive-colors.ts`,
71
+ // `bottom-sheet/index.tsx`).
72
+ if (typeof require === 'undefined') return;
67
73
  try {
68
74
  // Dynamic require: css-interop is not a Bloom dependency. If the host
69
75
  // app ships it (via NativeWind or directly), this resolves. Otherwise
70
76
  // the require throws and we silently move on — there is nothing to
71
77
  // initialize because css-interop is not in the bundle.
78
+ //
79
+ // The specifier goes through a variable on purpose: a literal
80
+ // `require('react-native-css-interop')` is statically analysable, so
81
+ // bundlers try to resolve (and warn about, or fail on) a module that is
82
+ // intentionally absent. The indirection keeps this a pure runtime lookup.
83
+ const moduleName = 'react-native-css-interop';
72
84
  // eslint-disable-next-line @typescript-eslint/no-require-imports
73
- mod = require('react-native-css-interop');
85
+ mod = require(moduleName);
74
86
  } catch {
75
87
  return;
76
88
  }
@@ -1 +1 @@
1
- {"version":3,"names":["Platform","initialized","warned","CSS_VAR_NAME","CSS_VAR_VALUE","warnOnce","message","error","console","warn","setWebCssVariable","document","root","documentElement","current","style","getPropertyValue","setProperty","tryCallSetFlag","mod","require","setFlag","StyleSheet","call","initCssInteropDarkMode","OS"],"sourceRoot":"../../../src","sources":["theme/init-css-interop.ts"],"mappings":";;AAAA,SAASA,QAAQ,QAAQ,cAAc;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAIC,WAAW,GAAG,KAAK;AACvB,IAAIC,MAAM,GAAG,KAAK;AAElB,MAAMC,YAAY,GAAG,wBAAwB;AAC7C,MAAMC,aAAa,GAAG,YAAY;AAUlC,SAASC,QAAQA,CAACC,OAAe,EAAEC,KAAe,EAAQ;EACxD,IAAIL,MAAM,EAAE;EACZA,MAAM,GAAG,IAAI;EACb;EACA;EACA;EACAM,OAAO,CAACC,IAAI,CAAC,WAAWH,OAAO,EAAE,EAAEC,KAAK,IAAI,EAAE,CAAC;AACjD;AAEA,SAASG,iBAAiBA,CAAA,EAAS;EACjC,IAAI,OAAOC,QAAQ,KAAK,WAAW,EAAE;EACrC,MAAMC,IAAI,GAAGD,QAAQ,CAACE,eAAe;EACrC,IAAI,CAACD,IAAI,EAAE;EACX;EACA;EACA;EACA,MAAME,OAAO,GAAGF,IAAI,CAACG,KAAK,CAACC,gBAAgB,CAACb,YAAY,CAAC;EACzD,IAAIW,OAAO,EAAE;EACbF,IAAI,CAACG,KAAK,CAACE,WAAW,CAACd,YAAY,EAAEC,aAAa,CAAC;AACrD;AAEA,SAASc,cAAcA,CAAA,EAAS;EAC9B,IAAIC,GAAiC;EACrC,IAAI;IACF;IACA;IACA;IACA;IACA;IACAA,GAAG,GAAGC,OAAO,CAAC,0BAA0B,CAAqB;EAC/D,CAAC,CAAC,MAAM;IACN;EACF;EAEA,MAAMC,OAAO,GAAGF,GAAG,EAAEG,UAAU,EAAED,OAAO;EACxC,IAAI,OAAOA,OAAO,KAAK,UAAU,EAAE;IACjC;IACA;IACA;IACA;IACA;EACF;EAEA,IAAI;IACFA,OAAO,CAACE,IAAI,CAACJ,GAAG,EAAEG,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC;EACpD,CAAC,CAAC,OAAOf,KAAK,EAAE;IACdF,QAAQ,CACN,0EAA0E,GACxE,kDAAkD,EACpDE,KACF,CAAC;EACH;AACF;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASiB,sBAAsBA,CAAA,EAAS;EAC7C,IAAIvB,WAAW,EAAE;EACjBA,WAAW,GAAG,IAAI;EAElB,IAAID,QAAQ,CAACyB,EAAE,KAAK,KAAK,EAAE;IACzBf,iBAAiB,CAAC,CAAC;EACrB;EAEAQ,cAAc,CAAC,CAAC;AAClB;;AAEA;AACA;AACA;AACAM,sBAAsB,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["Platform","initialized","warned","CSS_VAR_NAME","CSS_VAR_VALUE","warnOnce","message","error","console","warn","setWebCssVariable","document","root","documentElement","current","style","getPropertyValue","setProperty","tryCallSetFlag","mod","require","moduleName","setFlag","StyleSheet","call","initCssInteropDarkMode","OS"],"sourceRoot":"../../../src","sources":["theme/init-css-interop.ts"],"mappings":";;AAAA,SAASA,QAAQ,QAAQ,cAAc;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAIC,WAAW,GAAG,KAAK;AACvB,IAAIC,MAAM,GAAG,KAAK;AAElB,MAAMC,YAAY,GAAG,wBAAwB;AAC7C,MAAMC,aAAa,GAAG,YAAY;AAUlC,SAASC,QAAQA,CAACC,OAAe,EAAEC,KAAe,EAAQ;EACxD,IAAIL,MAAM,EAAE;EACZA,MAAM,GAAG,IAAI;EACb;EACA;EACA;EACAM,OAAO,CAACC,IAAI,CAAC,WAAWH,OAAO,EAAE,EAAEC,KAAK,IAAI,EAAE,CAAC;AACjD;AAEA,SAASG,iBAAiBA,CAAA,EAAS;EACjC,IAAI,OAAOC,QAAQ,KAAK,WAAW,EAAE;EACrC,MAAMC,IAAI,GAAGD,QAAQ,CAACE,eAAe;EACrC,IAAI,CAACD,IAAI,EAAE;EACX;EACA;EACA;EACA,MAAME,OAAO,GAAGF,IAAI,CAACG,KAAK,CAACC,gBAAgB,CAACb,YAAY,CAAC;EACzD,IAAIW,OAAO,EAAE;EACbF,IAAI,CAACG,KAAK,CAACE,WAAW,CAACd,YAAY,EAAEC,aAAa,CAAC;AACrD;AAEA,SAASc,cAAcA,CAAA,EAAS;EAC9B,IAAIC,GAAiC;EACrC;EACA;EACA;EACA;EACA;EACA,IAAI,OAAOC,OAAO,KAAK,WAAW,EAAE;EACpC,IAAI;IACF;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,MAAMC,UAAU,GAAG,0BAA0B;IAC7C;IACAF,GAAG,GAAGC,OAAO,CAACC,UAAU,CAAqB;EAC/C,CAAC,CAAC,MAAM;IACN;EACF;EAEA,MAAMC,OAAO,GAAGH,GAAG,EAAEI,UAAU,EAAED,OAAO;EACxC,IAAI,OAAOA,OAAO,KAAK,UAAU,EAAE;IACjC;IACA;IACA;IACA;IACA;EACF;EAEA,IAAI;IACFA,OAAO,CAACE,IAAI,CAACL,GAAG,EAAEI,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC;EACpD,CAAC,CAAC,OAAOhB,KAAK,EAAE;IACdF,QAAQ,CACN,0EAA0E,GACxE,kDAAkD,EACpDE,KACF,CAAC;EACH;AACF;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASkB,sBAAsBA,CAAA,EAAS;EAC7C,IAAIxB,WAAW,EAAE;EACjBA,WAAW,GAAG,IAAI;EAElB,IAAID,QAAQ,CAAC0B,EAAE,KAAK,KAAK,EAAE;IACzBhB,iBAAiB,CAAC,CAAC;EACrB;EAEAQ,cAAc,CAAC,CAAC;AAClB;;AAEA;AACA;AACA;AACAO,sBAAsB,CAAC,CAAC","ignoreList":[]}