@oxyhq/services 13.1.7 → 13.3.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.
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  import { useCallback, useEffect, useState } from 'react';
4
- import { View, Pressable, Modal, ScrollView, ActivityIndicator, Platform } from 'react-native';
4
+ import { View, Pressable, Modal, ScrollView, ActivityIndicator, StyleSheet, Platform } from 'react-native';
5
5
  import { MaterialCommunityIcons } from '@expo/vector-icons';
6
6
  import { Avatar } from '@oxyhq/bloom/avatar';
7
7
  import { Text } from '@oxyhq/bloom/typography';
@@ -19,16 +19,20 @@ const isWeb = Platform.OS === 'web';
19
19
  const MENU_WIDTH = 300;
20
20
 
21
21
  /**
22
- * Web-only anchor. `ProfileButton` measures its trigger and anchors the panel's
23
- * BOTTOM-LEFT corner so the menu opens UPWARD from the sidebar footer. Native
24
- * ignores the anchor and docks the panel to the bottom as a sheet.
22
+ * Web-only anchor. `ProfileButton` measures its trigger and anchors the panel to
23
+ * one corner so the menu opens either UPWARD (footer trigger) or DOWNWARD (a
24
+ * trigger at the top of a sidebar). Exactly ONE vertical edge is pinned:
25
+ * - `bottom` set → the panel's BOTTOM edge is anchored, so it opens UPWARD.
26
+ * - `top` set → the panel's TOP edge is anchored, so it opens DOWNWARD.
27
+ * Native ignores the anchor and docks the panel to the bottom as a sheet.
25
28
  */
26
29
 
27
30
  /** Everything `ProfileMenuContent` needs, minus the `open` flag (always open). */
28
31
 
29
32
  /**
30
- * Clean device-account switcher, modeled on the inbox `AccountMenu` but written
31
- * fresh with NativeWind classNames + Bloom primitives. Lists every account
33
+ * Clean device-account switcher, modeled on the inbox `AccountMenu` and styled
34
+ * with react-native `StyleSheet` + the Bloom theme (via `useTheme`) so it
35
+ * renders in EVERY consumer regardless of NativeWind. Lists every account
32
36
  * signed in on this device (from {@link useDeviceAccounts}); tapping a row
33
37
  * switches, and each inactive row carries a sign-out icon. Below the list:
34
38
  * Add account, Manage account, optional View profile, and Sign out of all.
@@ -146,8 +150,8 @@ const ProfileMenuContent = ({
146
150
  }, [onClose]);
147
151
  return /*#__PURE__*/_jsxs(_Fragment, {
148
152
  children: [/*#__PURE__*/_jsxs(ScrollView, {
149
- className: "grow-0",
150
- contentContainerClassName: "py-1",
153
+ style: styles.scroll,
154
+ contentContainerStyle: styles.scrollContent,
151
155
  showsVerticalScrollIndicator: false,
152
156
  children: [accounts.map(account => {
153
157
  const isActive = account.isCurrent;
@@ -161,7 +165,9 @@ const ProfileMenuContent = ({
161
165
  },
162
166
  onPress: () => handleSwitch(account.sessionId),
163
167
  disabled: isActive || isBusy || isSwitching,
164
- className: `flex-row items-center gap-3 px-4 py-2.5 ${isActive ? 'bg-secondary' : ''} ${isSwitching && !isActive ? 'opacity-40' : ''}`,
168
+ style: [styles.accountRow, isActive && {
169
+ backgroundColor: colors.backgroundSecondary
170
+ }, isSwitching && !isActive && styles.rowDimmed],
165
171
  children: [/*#__PURE__*/_jsx(Avatar, {
166
172
  source: account.user.avatar ?? undefined,
167
173
  uri: account.avatarUrl,
@@ -169,13 +175,17 @@ const ProfileMenuContent = ({
169
175
  name: account.displayName,
170
176
  size: isActive ? 40 : 32
171
177
  }), /*#__PURE__*/_jsxs(View, {
172
- className: "min-w-0 flex-1",
178
+ style: styles.accountInfo,
173
179
  children: [/*#__PURE__*/_jsx(Text, {
174
- className: `text-foreground ${isActive ? 'font-semibold' : 'font-medium'}`,
180
+ style: [isActive ? styles.accountNameActive : styles.accountName, {
181
+ color: colors.text
182
+ }],
175
183
  numberOfLines: 1,
176
184
  children: account.displayName
177
185
  }), account.email ? /*#__PURE__*/_jsx(Text, {
178
- className: "text-xs text-muted-foreground",
186
+ style: [styles.accountEmail, {
187
+ color: colors.textSecondary
188
+ }],
179
189
  numberOfLines: 1,
180
190
  children: account.email
181
191
  }) : null]
@@ -202,7 +212,7 @@ const ProfileMenuContent = ({
202
212
  left: 8,
203
213
  right: 8
204
214
  },
205
- className: "h-7 w-7 items-center justify-center rounded-full opacity-60",
215
+ style: styles.rowSignOutButton,
206
216
  children: /*#__PURE__*/_jsx(MaterialCommunityIcons, {
207
217
  name: "logout",
208
218
  size: 18,
@@ -211,12 +221,14 @@ const ProfileMenuContent = ({
211
221
  })]
212
222
  }, `account-${account.sessionId}`);
213
223
  }), isSwitching ? /*#__PURE__*/_jsxs(View, {
214
- className: "flex-row items-center justify-center gap-2 py-2",
224
+ style: styles.switchingRow,
215
225
  children: [/*#__PURE__*/_jsx(ActivityIndicator, {
216
226
  color: colors.textSecondary,
217
227
  size: "small"
218
228
  }), /*#__PURE__*/_jsx(Text, {
219
- className: "text-xs font-medium text-muted-foreground",
229
+ style: [styles.switchingText, {
230
+ color: colors.textSecondary
231
+ }],
220
232
  children: t('accountMenu.switching') || 'Switching account…'
221
233
  })]
222
234
  }) : null, /*#__PURE__*/_jsx(Divider, {
@@ -225,6 +237,7 @@ const ProfileMenuContent = ({
225
237
  }), /*#__PURE__*/_jsx(ActionRow, {
226
238
  icon: "account-plus-outline",
227
239
  iconColor: colors.icon,
240
+ textColor: colors.text,
228
241
  label: t('accountMenu.addAnother') || 'Add another account',
229
242
  disabled: actionDisabled,
230
243
  onPress: () => {
@@ -234,6 +247,7 @@ const ProfileMenuContent = ({
234
247
  }), /*#__PURE__*/_jsx(ActionRow, {
235
248
  icon: "cog-outline",
236
249
  iconColor: colors.icon,
250
+ textColor: colors.text,
237
251
  label: t('accountMenu.manage') || 'Manage your Oxy Account',
238
252
  disabled: actionDisabled,
239
253
  onPress: () => {
@@ -243,6 +257,7 @@ const ProfileMenuContent = ({
243
257
  }), onNavigateProfile ? /*#__PURE__*/_jsx(ActionRow, {
244
258
  icon: "account-outline",
245
259
  iconColor: colors.icon,
260
+ textColor: colors.text,
246
261
  label: t('accountMenu.viewProfile') || 'View profile',
247
262
  disabled: actionDisabled,
248
263
  onPress: () => {
@@ -257,7 +272,7 @@ const ProfileMenuContent = ({
257
272
  accessibilityLabel: t('accountMenu.signOutAll') || 'Sign out of all accounts',
258
273
  onPress: () => signOutAllDialog.open(),
259
274
  disabled: actionDisabled,
260
- className: `flex-row items-center gap-3 px-4 py-3 ${actionDisabled ? 'opacity-40' : ''}`,
275
+ style: [styles.signOutAllRow, actionDisabled && styles.rowDimmed],
261
276
  children: [signingOutAll ? /*#__PURE__*/_jsx(ActivityIndicator, {
262
277
  color: colors.error,
263
278
  size: "small"
@@ -266,10 +281,9 @@ const ProfileMenuContent = ({
266
281
  size: 18,
267
282
  color: colors.error
268
283
  }), /*#__PURE__*/_jsx(Text, {
269
- className: "font-medium",
270
- style: {
284
+ style: [styles.actionText, {
271
285
  color: colors.error
272
- },
286
+ }],
273
287
  children: t('accountMenu.signOutAll') || 'Sign out of all accounts'
274
288
  })]
275
289
  })]
@@ -313,15 +327,24 @@ const ProfileMenu = ({
313
327
  const {
314
328
  t
315
329
  } = useI18n();
330
+ const {
331
+ colors
332
+ } = useTheme();
316
333
 
317
- // Web: anchor the panel's bottom-left corner to the measured trigger, falling
318
- // back to a bottom-left placement when no anchor was captured. Native ignores
319
- // this (the panel docks to the bottom via the overlay's flex-end).
334
+ // Web: anchor the panel to the measured trigger. When the anchor pins `top`
335
+ // the panel opens DOWNWARD from the trigger; otherwise it pins `bottom` and
336
+ // opens UPWARD (the default footer behavior). With no anchor captured, fall
337
+ // back to a bottom-left placement. Native ignores this (the panel docks to
338
+ // the bottom via the overlay's flex-end).
320
339
  const panelAnchorStyle = isWeb ? {
321
340
  position: 'absolute',
322
341
  width: MENU_WIDTH,
323
342
  left: anchor?.left ?? 8,
324
- bottom: anchor?.bottom ?? 8
343
+ ...(typeof anchor?.top === 'number' ? {
344
+ top: anchor.top
345
+ } : {
346
+ bottom: anchor?.bottom ?? 8
347
+ })
325
348
  } : undefined;
326
349
  return /*#__PURE__*/_jsx(Modal, {
327
350
  visible: open,
@@ -332,17 +355,17 @@ const ProfileMenu = ({
332
355
  accessibilityRole: "button",
333
356
  accessibilityLabel: t('common.actions.close') || 'Close',
334
357
  onPress: onClose,
335
- className: isWeb ? 'flex-1 relative' : 'flex-1 justify-end',
336
- style: !isWeb ? styles.nativeScrim : undefined,
358
+ style: isWeb ? styles.webOverlay : styles.nativeOverlay,
337
359
  children: /*#__PURE__*/_jsx(Pressable
338
360
  // Swallow taps inside the panel so they never reach the overlay's
339
361
  // outside-tap-to-close handler.
340
362
  , {
341
363
  onPress: () => undefined,
342
- className: isWeb ? 'overflow-hidden rounded-2xl border border-border bg-background' : 'overflow-hidden rounded-t-3xl bg-background pb-3',
343
- style: [panelAnchorStyle, {
344
- maxHeight: '85%'
345
- }, styles.shadow],
364
+ style: [isWeb ? styles.panelWeb : styles.panelNative, {
365
+ backgroundColor: colors.background
366
+ }, isWeb && {
367
+ borderColor: colors.border
368
+ }, panelAnchorStyle, styles.panelBounds, styles.shadow],
346
369
  accessibilityRole: "menu",
347
370
  accessibilityLabel: t('accountMenu.label') || 'Account menu',
348
371
  children: open ? /*#__PURE__*/_jsx(ProfileMenuContent, {
@@ -362,6 +385,7 @@ const ProfileMenu = ({
362
385
  const ActionRow = ({
363
386
  icon,
364
387
  iconColor,
388
+ textColor,
365
389
  label,
366
390
  disabled,
367
391
  onPress
@@ -370,21 +394,47 @@ const ActionRow = ({
370
394
  accessibilityLabel: label,
371
395
  onPress: onPress,
372
396
  disabled: disabled,
373
- className: `flex-row items-center gap-3 px-4 py-3 ${disabled ? 'opacity-40' : ''}`,
397
+ style: [styles.actionRow, disabled && styles.rowDimmed],
374
398
  children: [/*#__PURE__*/_jsx(MaterialCommunityIcons, {
375
399
  name: icon,
376
400
  size: 20,
377
401
  color: iconColor
378
402
  }), /*#__PURE__*/_jsx(Text, {
379
- className: "font-medium text-foreground",
403
+ style: [styles.actionText, {
404
+ color: textColor
405
+ }],
380
406
  children: label
381
407
  })]
382
408
  });
383
-
384
- // The panel's drop shadow and the native scrim are the only values with no
385
- // NativeWind class equivalent in this package (dynamic elevation + rgba scrim),
386
- // so they stay as small inline objects rather than raw class-replaceable styles.
387
- const styles = {
409
+ const styles = StyleSheet.create({
410
+ // Overlay (`flex-1 relative` web / `flex-1 justify-end` + scrim native).
411
+ webOverlay: {
412
+ flex: 1,
413
+ position: 'relative'
414
+ },
415
+ nativeOverlay: {
416
+ flex: 1,
417
+ justifyContent: 'flex-end',
418
+ backgroundColor: 'rgba(0,0,0,0.32)'
419
+ },
420
+ // Panel shell — web popover (`overflow-hidden rounded-2xl border`).
421
+ panelWeb: {
422
+ overflow: 'hidden',
423
+ borderRadius: 16,
424
+ borderWidth: 1
425
+ },
426
+ // Panel shell — native bottom sheet (`overflow-hidden rounded-t-3xl pb-3`).
427
+ panelNative: {
428
+ overflow: 'hidden',
429
+ borderTopLeftRadius: 24,
430
+ borderTopRightRadius: 24,
431
+ paddingBottom: 12
432
+ },
433
+ // Shared `maxHeight: '85%'` cap applied to both panel variants.
434
+ panelBounds: {
435
+ maxHeight: '85%'
436
+ },
437
+ // The panel's drop shadow — dynamic elevation with no class equivalent.
388
438
  shadow: {
389
439
  shadowColor: '#000',
390
440
  shadowOpacity: 0.18,
@@ -395,9 +445,83 @@ const styles = {
395
445
  },
396
446
  elevation: 12
397
447
  },
398
- nativeScrim: {
399
- backgroundColor: 'rgba(0,0,0,0.32)'
448
+ // Scroll region (`grow-0` + `py-1` content).
449
+ scroll: {
450
+ flexGrow: 0
451
+ },
452
+ scrollContent: {
453
+ paddingVertical: 4
454
+ },
455
+ // Account row (`flex-row items-center gap-3 px-4 py-2.5`).
456
+ accountRow: {
457
+ flexDirection: 'row',
458
+ alignItems: 'center',
459
+ gap: 12,
460
+ paddingHorizontal: 16,
461
+ paddingVertical: 10
462
+ },
463
+ // `opacity-40` dim applied to disabled / non-active-while-switching rows.
464
+ rowDimmed: {
465
+ opacity: 0.4
466
+ },
467
+ // Identity block (`min-w-0 flex-1`).
468
+ accountInfo: {
469
+ flex: 1,
470
+ minWidth: 0
471
+ },
472
+ // Inactive account name (`font-medium`).
473
+ accountName: {
474
+ fontWeight: '500'
475
+ },
476
+ // Active account name (`font-semibold`).
477
+ accountNameActive: {
478
+ fontWeight: '600'
479
+ },
480
+ // Secondary email line (`text-xs`).
481
+ accountEmail: {
482
+ fontSize: 12
483
+ },
484
+ // Per-row sign-out button (`h-7 w-7 items-center justify-center rounded-full opacity-60`).
485
+ rowSignOutButton: {
486
+ width: 28,
487
+ height: 28,
488
+ alignItems: 'center',
489
+ justifyContent: 'center',
490
+ borderRadius: 9999,
491
+ opacity: 0.6
492
+ },
493
+ // Switching indicator (`flex-row items-center justify-center gap-2 py-2`).
494
+ switchingRow: {
495
+ flexDirection: 'row',
496
+ alignItems: 'center',
497
+ justifyContent: 'center',
498
+ gap: 8,
499
+ paddingVertical: 8
500
+ },
501
+ switchingText: {
502
+ fontSize: 12,
503
+ fontWeight: '500'
504
+ },
505
+ // Bottom action rows (`flex-row items-center gap-3 px-4 py-3`).
506
+ actionRow: {
507
+ flexDirection: 'row',
508
+ alignItems: 'center',
509
+ gap: 12,
510
+ paddingHorizontal: 16,
511
+ paddingVertical: 12
512
+ },
513
+ // Sign-out-of-all row shares the action-row geometry.
514
+ signOutAllRow: {
515
+ flexDirection: 'row',
516
+ alignItems: 'center',
517
+ gap: 12,
518
+ paddingHorizontal: 16,
519
+ paddingVertical: 12
520
+ },
521
+ // Action / sign-out label (`font-medium`).
522
+ actionText: {
523
+ fontWeight: '500'
400
524
  }
401
- };
525
+ });
402
526
  export default ProfileMenu;
403
527
  //# sourceMappingURL=ProfileMenu.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useEffect","useState","View","Pressable","Modal","ScrollView","ActivityIndicator","Platform","MaterialCommunityIcons","Avatar","Text","useTheme","toast","useDialogControl","Dialog","Divider","isDev","logger","loggerUtil","useOxy","useI18n","useDeviceAccounts","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","isWeb","OS","MENU_WIDTH","ProfileMenuContent","onClose","onNavigateManage","onAddAccount","onNavigateProfile","onBeforeSessionChange","activeSessionId","switchSession","logoutAll","removeSession","t","colors","accounts","busySessionId","setBusySessionId","removingSessionId","setRemovingSessionId","signingOutAll","setSigningOutAll","signOutAllDialog","isSwitching","actionDisabled","handleSwitch","sessionId","success","error","warn","component","handleRemove","performSignOutAll","document","undefined","onKey","event","key","stopPropagation","addEventListener","removeEventListener","children","className","contentContainerClassName","showsVerticalScrollIndicator","map","account","isActive","isCurrent","isBusy","isRemoving","accessibilityRole","accessibilityLabel","displayName","accessibilityState","selected","onPress","disabled","source","user","avatar","uri","avatarUrl","variant","name","size","numberOfLines","email","color","primary","textSecondary","hitSlop","top","bottom","left","right","border","spacing","ActionRow","icon","iconColor","label","open","style","control","title","description","actions","ProfileMenu","anchor","panelAnchorStyle","position","width","visible","transparent","animationType","onRequestClose","styles","nativeScrim","maxHeight","shadow","shadowColor","shadowOpacity","shadowRadius","shadowOffset","height","elevation","backgroundColor"],"sourceRoot":"../../../../src","sources":["ui/components/ProfileMenu.tsx"],"mappings":";;AACA,SAASA,WAAW,EAAEC,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AACxD,SACIC,IAAI,EACJC,SAAS,EACTC,KAAK,EACLC,UAAU,EACVC,iBAAiB,EACjBC,QAAQ,QAEL,cAAc;AACrB,SAASC,sBAAsB,QAAQ,oBAAoB;AAC3D,SAASC,MAAM,QAAQ,qBAAqB;AAC5C,SAASC,IAAI,QAAQ,yBAAyB;AAC9C,SAASC,QAAQ,QAAQ,oBAAoB;AAC7C,SAASC,KAAK,EAAEC,gBAAgB,EAAEC,MAAM,QAAQ,cAAc;AAC9D,SAASC,OAAO,QAAQ,sBAAsB;AAC9C,SAASC,KAAK,EAAEC,MAAM,IAAIC,UAAU,QAAQ,aAAa;AACzD,SAASC,MAAM,QAAQ,0BAAuB;AAC9C,SAASC,OAAO,QAAQ,qBAAkB;AAC1C,SAASC,iBAAiB,QAAQ,+BAA4B;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA,EAAAC,QAAA,IAAAC,SAAA;AAE/D,MAAMC,KAAK,GAAGrB,QAAQ,CAACsB,EAAE,KAAK,KAAK;;AAEnC;AACA,MAAMC,UAAU,GAAG,GAAG;;AAEtB;AACA;AACA;AACA;AACA;;AAuBA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,kBAAqD,GAAGA,CAAC;EAC3DC,OAAO;EACPC,gBAAgB;EAChBC,YAAY;EACZC,iBAAiB;EACjBC;AACJ,CAAC,KAAK;EACF,MAAM;IACFC,eAAe;IACfC,aAAa;IACbC,SAAS;IACTC;EACJ,CAAC,GAAGrB,MAAM,CAAC,CAAC;EACZ,MAAM;IAAEsB;EAAE,CAAC,GAAGrB,OAAO,CAAC,CAAC;EACvB,MAAM;IAAEsB;EAAO,CAAC,GAAG/B,QAAQ,CAAC,CAAC;EAE7B,MAAM;IAAEgC;EAAS,CAAC,GAAGtB,iBAAiB,CAAC,CAAC;EAExC,MAAM,CAACuB,aAAa,EAAEC,gBAAgB,CAAC,GAAG5C,QAAQ,CAAgB,IAAI,CAAC;EACvE,MAAM,CAAC6C,iBAAiB,EAAEC,oBAAoB,CAAC,GAAG9C,QAAQ,CAAgB,IAAI,CAAC;EAC/E,MAAM,CAAC+C,aAAa,EAAEC,gBAAgB,CAAC,GAAGhD,QAAQ,CAAC,KAAK,CAAC;EAEzD,MAAMiD,gBAAgB,GAAGrC,gBAAgB,CAAC,CAAC;EAE3C,MAAMsC,WAAW,GAAGP,aAAa,KAAK,IAAI;EAC1C,MAAMQ,cAAc,GAAGD,WAAW,IAAIL,iBAAiB,KAAK,IAAI,IAAIE,aAAa;;EAEjF;EACA,MAAMK,YAAY,GAAGtD,WAAW,CAAC,MAAOuD,SAAiB,IAAK;IAC1D,IAAIA,SAAS,KAAKjB,eAAe,IAAIO,aAAa,EAAE;MAChD;IACJ;IACAC,gBAAgB,CAACS,SAAS,CAAC;IAC3B,IAAI;MACA,MAAMlB,qBAAqB,GAAG,CAAC;MAC/B,MAAME,aAAa,CAACgB,SAAS,CAAC;MAC9B1C,KAAK,CAAC2C,OAAO,CAACd,CAAC,CAAC,sCAAsC,CAAC,IAAI,kBAAkB,CAAC;MAC9ET,OAAO,CAAC,CAAC;IACb,CAAC,CAAC,OAAOwB,KAAK,EAAE;MACZ,IAAI,CAACxC,KAAK,CAAC,CAAC,EAAE;QACVE,UAAU,CAACuC,IAAI,CAAC,uBAAuB,EAAE;UAAEC,SAAS,EAAE;QAAc,CAAC,EAAEF,KAAgB,CAAC;MAC5F;MACA5C,KAAK,CAAC4C,KAAK,CAACf,CAAC,CAAC,qCAAqC,CAAC,IAAI,0BAA0B,CAAC;IACvF,CAAC,SAAS;MACNI,gBAAgB,CAAC,IAAI,CAAC;IAC1B;EACJ,CAAC,EAAE,CAACR,eAAe,EAAEO,aAAa,EAAEN,aAAa,EAAEG,CAAC,EAAET,OAAO,EAAEI,qBAAqB,CAAC,CAAC;;EAEtF;EACA;EACA,MAAMuB,YAAY,GAAG5D,WAAW,CAAC,MAAOuD,SAAiB,IAAK;IAC1D,IAAIA,SAAS,KAAKjB,eAAe,IAAIS,iBAAiB,EAAE;MACpD;IACJ;IACAC,oBAAoB,CAACO,SAAS,CAAC;IAC/B,IAAI;MACA,MAAMd,aAAa,CAACc,SAAS,CAAC;MAC9B1C,KAAK,CAAC2C,OAAO,CAACd,CAAC,CAAC,0BAA0B,CAAC,IAAI,YAAY,CAAC;IAChE,CAAC,CAAC,OAAOe,KAAK,EAAE;MACZtC,UAAU,CAACuC,IAAI,CAAC,uBAAuB,EAAE;QAAEC,SAAS,EAAE;MAAc,CAAC,EAAEF,KAAgB,CAAC;MACxF5C,KAAK,CAAC4C,KAAK,CAACf,CAAC,CAAC,6BAA6B,CAAC,IAAI,oBAAoB,CAAC;IACzE,CAAC,SAAS;MACNM,oBAAoB,CAAC,IAAI,CAAC;IAC9B;EACJ,CAAC,EAAE,CAACV,eAAe,EAAES,iBAAiB,EAAEN,aAAa,EAAEC,CAAC,CAAC,CAAC;EAE1D,MAAMmB,iBAAiB,GAAG7D,WAAW,CAAC,YAAY;IAC9C,IAAIiD,aAAa,EAAE;MACf;IACJ;IACAC,gBAAgB,CAAC,IAAI,CAAC;IACtB,IAAI;MACA,MAAMb,qBAAqB,GAAG,CAAC;MAC/B,MAAMG,SAAS,CAAC,CAAC;MACjB3B,KAAK,CAAC2C,OAAO,CAACd,CAAC,CAAC,0CAA0C,CAAC,IAAI,4BAA4B,CAAC;MAC5FT,OAAO,CAAC,CAAC;IACb,CAAC,CAAC,OAAOwB,KAAK,EAAE;MACZtC,UAAU,CAACuC,IAAI,CAAC,qBAAqB,EAAE;QAAEC,SAAS,EAAE;MAAc,CAAC,EAAEF,KAAgB,CAAC;MACtF5C,KAAK,CAAC4C,KAAK,CAACf,CAAC,CAAC,gCAAgC,CAAC,IAAI,oCAAoC,CAAC;IAC5F,CAAC,SAAS;MACNQ,gBAAgB,CAAC,KAAK,CAAC;IAC3B;EACJ,CAAC,EAAE,CAACD,aAAa,EAAET,SAAS,EAAEE,CAAC,EAAET,OAAO,EAAEI,qBAAqB,CAAC,CAAC;;EAEjE;EACA;EACApC,SAAS,CAAC,MAAM;IACZ,IAAI,CAAC4B,KAAK,IAAI,OAAOiC,QAAQ,KAAK,WAAW,EAAE;MAC3C,OAAOC,SAAS;IACpB;IACA,MAAMC,KAAK,GAAIC,KAAoB,IAAK;MACpC,IAAIA,KAAK,CAACC,GAAG,KAAK,QAAQ,EAAE;QACxBD,KAAK,CAACE,eAAe,CAAC,CAAC;QACvBlC,OAAO,CAAC,CAAC;MACb;IACJ,CAAC;IACD6B,QAAQ,CAACM,gBAAgB,CAAC,SAAS,EAAEJ,KAAK,EAAE,IAAI,CAAC;IACjD,OAAO,MAAMF,QAAQ,CAACO,mBAAmB,CAAC,SAAS,EAAEL,KAAK,EAAE,IAAI,CAAC;EACrE,CAAC,EAAE,CAAC/B,OAAO,CAAC,CAAC;EAEb,oBACIP,KAAA,CAAAE,SAAA;IAAA0C,QAAA,gBACI5C,KAAA,CAACpB,UAAU;MACPiE,SAAS,EAAC,QAAQ;MAClBC,yBAAyB,EAAC,MAAM;MAChCC,4BAA4B,EAAE,KAAM;MAAAH,QAAA,GAGnC1B,QAAQ,CAAC8B,GAAG,CAAEC,OAAO,IAAK;QACvB,MAAMC,QAAQ,GAAGD,OAAO,CAACE,SAAS;QAClC,MAAMC,MAAM,GAAGjC,aAAa,KAAK8B,OAAO,CAACpB,SAAS;QAClD,MAAMwB,UAAU,GAAGhC,iBAAiB,KAAK4B,OAAO,CAACpB,SAAS;QAC1D,oBACI7B,KAAA,CAACtB,SAAS;UAEN4E,iBAAiB,EAAC,UAAU;UAC5BC,kBAAkB,EAAEN,OAAO,CAACO,WAAY;UACxCC,kBAAkB,EAAE;YAAEC,QAAQ,EAAER;UAAS,CAAE;UAC3CS,OAAO,EAAEA,CAAA,KAAM/B,YAAY,CAACqB,OAAO,CAACpB,SAAS,CAAE;UAC/C+B,QAAQ,EAAEV,QAAQ,IAAIE,MAAM,IAAI1B,WAAY;UAC5CmB,SAAS,EAAE,2CACPK,QAAQ,GAAG,cAAc,GAAG,EAAE,IAC9BxB,WAAW,IAAI,CAACwB,QAAQ,GAAG,YAAY,GAAG,EAAE,EAAG;UAAAN,QAAA,gBAEnD9C,IAAA,CAACd,MAAM;YACH6E,MAAM,EAAEZ,OAAO,CAACa,IAAI,CAACC,MAAM,IAAI1B,SAAU;YACzC2B,GAAG,EAAEf,OAAO,CAACgB,SAAU;YACvBC,OAAO,EAAC,OAAO;YACfC,IAAI,EAAElB,OAAO,CAACO,WAAY;YAC1BY,IAAI,EAAElB,QAAQ,GAAG,EAAE,GAAG;UAAG,CAC5B,CAAC,eACFlD,KAAA,CAACvB,IAAI;YAACoE,SAAS,EAAC,gBAAgB;YAAAD,QAAA,gBAC5B9C,IAAA,CAACb,IAAI;cACD4D,SAAS,EAAE,mBAAmBK,QAAQ,GAAG,eAAe,GAAG,aAAa,EAAG;cAC3EmB,aAAa,EAAE,CAAE;cAAAzB,QAAA,EAEhBK,OAAO,CAACO;YAAW,CAClB,CAAC,EACNP,OAAO,CAACqB,KAAK,gBACVxE,IAAA,CAACb,IAAI;cACD4D,SAAS,EAAC,+BAA+B;cACzCwB,aAAa,EAAE,CAAE;cAAAzB,QAAA,EAEhBK,OAAO,CAACqB;YAAK,CACZ,CAAC,GACP,IAAI;UAAA,CACN,CAAC,EACNlB,MAAM,gBACHtD,IAAA,CAACjB,iBAAiB;YAAC0F,KAAK,EAAEtD,MAAM,CAACuD,OAAQ;YAACJ,IAAI,EAAC;UAAO,CAAE,CAAC,GACzDlB,QAAQ,gBACRpD,IAAA,CAACf,sBAAsB;YAACoF,IAAI,EAAC,OAAO;YAACC,IAAI,EAAE,EAAG;YAACG,KAAK,EAAEtD,MAAM,CAACuD;UAAQ,CAAE,CAAC,GACxEnB,UAAU,gBACVvD,IAAA,CAACjB,iBAAiB;YAAC0F,KAAK,EAAEtD,MAAM,CAACwD,aAAc;YAACL,IAAI,EAAC;UAAO,CAAE,CAAC,gBAE/DtE,IAAA,CAACpB,SAAS;YACN4E,iBAAiB,EAAC,QAAQ;YAC1BC,kBAAkB,EACdvC,CAAC,CAAC,4BAA4B,EAAE;cAAEmD,IAAI,EAAElB,OAAO,CAACO;YAAY,CAAC,CAAC,IAC3D,YAAYP,OAAO,CAACO,WAAW,EACrC;YACDG,OAAO,EAAEA,CAAA,KAAMzB,YAAY,CAACe,OAAO,CAACpB,SAAS,CAAE;YAC/C+B,QAAQ,EAAEjC,cAAe;YACzB+C,OAAO,EAAE;cAAEC,GAAG,EAAE,CAAC;cAAEC,MAAM,EAAE,CAAC;cAAEC,IAAI,EAAE,CAAC;cAAEC,KAAK,EAAE;YAAE,CAAE;YAClDjC,SAAS,EAAC,6DAA6D;YAAAD,QAAA,eAEvE9C,IAAA,CAACf,sBAAsB;cACnBoF,IAAI,EAAC,QAAQ;cACbC,IAAI,EAAE,EAAG;cACTG,KAAK,EAAEtD,MAAM,CAACwD;YAAc,CAC/B;UAAC,CACK,CACd;QAAA,GAzDI,WAAWxB,OAAO,CAACpB,SAAS,EA0D1B,CAAC;MAEpB,CAAC,CAAC,EAGDH,WAAW,gBACR1B,KAAA,CAACvB,IAAI;QAACoE,SAAS,EAAC,iDAAiD;QAAAD,QAAA,gBAC7D9C,IAAA,CAACjB,iBAAiB;UAAC0F,KAAK,EAAEtD,MAAM,CAACwD,aAAc;UAACL,IAAI,EAAC;QAAO,CAAE,CAAC,eAC/DtE,IAAA,CAACb,IAAI;UAAC4D,SAAS,EAAC,2CAA2C;UAAAD,QAAA,EACtD5B,CAAC,CAAC,uBAAuB,CAAC,IAAI;QAAoB,CACjD,CAAC;MAAA,CACL,CAAC,GACP,IAAI,eAERlB,IAAA,CAACR,OAAO;QAACiF,KAAK,EAAEtD,MAAM,CAAC8D,MAAO;QAACC,OAAO,EAAE;MAAE,CAAE,CAAC,eAG7ClF,IAAA,CAACmF,SAAS;QACNC,IAAI,EAAC,sBAAsB;QAC3BC,SAAS,EAAElE,MAAM,CAACiE,IAAK;QACvBE,KAAK,EAAEpE,CAAC,CAAC,wBAAwB,CAAC,IAAI,qBAAsB;QAC5D4C,QAAQ,EAAEjC,cAAe;QACzBgC,OAAO,EAAEA,CAAA,KAAM;UACXpD,OAAO,CAAC,CAAC;UACTE,YAAY,CAAC,CAAC;QAClB;MAAE,CACL,CAAC,eAGFX,IAAA,CAACmF,SAAS;QACNC,IAAI,EAAC,aAAa;QAClBC,SAAS,EAAElE,MAAM,CAACiE,IAAK;QACvBE,KAAK,EAAEpE,CAAC,CAAC,oBAAoB,CAAC,IAAI,yBAA0B;QAC5D4C,QAAQ,EAAEjC,cAAe;QACzBgC,OAAO,EAAEA,CAAA,KAAM;UACXpD,OAAO,CAAC,CAAC;UACTC,gBAAgB,CAAC,CAAC;QACtB;MAAE,CACL,CAAC,EAGDE,iBAAiB,gBACdZ,IAAA,CAACmF,SAAS;QACNC,IAAI,EAAC,iBAAiB;QACtBC,SAAS,EAAElE,MAAM,CAACiE,IAAK;QACvBE,KAAK,EAAEpE,CAAC,CAAC,yBAAyB,CAAC,IAAI,cAAe;QACtD4C,QAAQ,EAAEjC,cAAe;QACzBgC,OAAO,EAAEA,CAAA,KAAM;UACXpD,OAAO,CAAC,CAAC;UACTG,iBAAiB,CAAC,CAAC;QACvB;MAAE,CACL,CAAC,GACF,IAAI,eAGRZ,IAAA,CAACR,OAAO;QAACiF,KAAK,EAAEtD,MAAM,CAAC8D,MAAO;QAACC,OAAO,EAAE;MAAE,CAAE,CAAC,eAC7ChF,KAAA,CAACtB,SAAS;QACN4E,iBAAiB,EAAC,UAAU;QAC5BC,kBAAkB,EAAEvC,CAAC,CAAC,wBAAwB,CAAC,IAAI,0BAA2B;QAC9E2C,OAAO,EAAEA,CAAA,KAAMlC,gBAAgB,CAAC4D,IAAI,CAAC,CAAE;QACvCzB,QAAQ,EAAEjC,cAAe;QACzBkB,SAAS,EAAE,yCAAyClB,cAAc,GAAG,YAAY,GAAG,EAAE,EAAG;QAAAiB,QAAA,GAExFrB,aAAa,gBACVzB,IAAA,CAACjB,iBAAiB;UAAC0F,KAAK,EAAEtD,MAAM,CAACc,KAAM;UAACqC,IAAI,EAAC;QAAO,CAAE,CAAC,gBAEvDtE,IAAA,CAACf,sBAAsB;UAACoF,IAAI,EAAC,QAAQ;UAACC,IAAI,EAAE,EAAG;UAACG,KAAK,EAAEtD,MAAM,CAACc;QAAM,CAAE,CACzE,eACDjC,IAAA,CAACb,IAAI;UAAC4D,SAAS,EAAC,aAAa;UAACyC,KAAK,EAAE;YAAEf,KAAK,EAAEtD,MAAM,CAACc;UAAM,CAAE;UAAAa,QAAA,EACxD5B,CAAC,CAAC,wBAAwB,CAAC,IAAI;QAA0B,CACxD,CAAC;MAAA,CACA,CAAC;IAAA,CACJ,CAAC,eAEblB,IAAA,CAACT,MAAM;MACHkG,OAAO,EAAE9D,gBAAiB;MAC1B+D,KAAK,EAAExE,CAAC,CAAC,wBAAwB,CAAC,IAAI,0BAA2B;MACjEyE,WAAW,EAAEzE,CAAC,CAAC,4BAA4B,CAAC,IAAI,oDAAqD;MACrG0E,OAAO,EAAE,CACL;QACIN,KAAK,EAAEpE,CAAC,CAAC,wBAAwB,CAAC,IAAI,0BAA0B;QAChEuD,KAAK,EAAE,aAAa;QACpBZ,OAAO,EAAExB;MACb,CAAC,EACD;QAAEiD,KAAK,EAAEpE,CAAC,CAAC,eAAe,CAAC,IAAI,QAAQ;QAAEuD,KAAK,EAAE;MAAS,CAAC;IAC5D,CACL,CAAC;EAAA,CACJ,CAAC;AAEX,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMoB,WAAuC,GAAGA,CAAC;EAC7CN,IAAI;EACJ9E,OAAO;EACPqF,MAAM;EACNpF,gBAAgB;EAChBC,YAAY;EACZC,iBAAiB;EACjBC;AACJ,CAAC,KAAK;EACF,MAAM;IAAEK;EAAE,CAAC,GAAGrB,OAAO,CAAC,CAAC;;EAEvB;EACA;EACA;EACA,MAAMkG,gBAAuC,GAAG1F,KAAK,GAC/C;IACE2F,QAAQ,EAAE,UAAU;IACpBC,KAAK,EAAE1F,UAAU;IACjBwE,IAAI,EAAEe,MAAM,EAAEf,IAAI,IAAI,CAAC;IACvBD,MAAM,EAAEgB,MAAM,EAAEhB,MAAM,IAAI;EAC9B,CAAC,GACCvC,SAAS;EAEf,oBACIvC,IAAA,CAACnB,KAAK;IACFqH,OAAO,EAAEX,IAAK;IACdY,WAAW;IACXC,aAAa,EAAE/F,KAAK,GAAG,MAAM,GAAG,OAAQ;IACxCgG,cAAc,EAAE5F,OAAQ;IAAAqC,QAAA,eAExB9C,IAAA,CAACpB,SAAS;MACN4E,iBAAiB,EAAC,QAAQ;MAC1BC,kBAAkB,EAAEvC,CAAC,CAAC,sBAAsB,CAAC,IAAI,OAAQ;MACzD2C,OAAO,EAAEpD,OAAQ;MACjBsC,SAAS,EAAE1C,KAAK,GAAG,iBAAiB,GAAG,oBAAqB;MAC5DmF,KAAK,EAAE,CAACnF,KAAK,GAAGiG,MAAM,CAACC,WAAW,GAAGhE,SAAU;MAAAO,QAAA,eAE/C9C,IAAA,CAACpB;MACG;MACA;MAAA;QACAiF,OAAO,EAAEA,CAAA,KAAMtB,SAAU;QACzBQ,SAAS,EACL1C,KAAK,GACC,gEAAgE,GAChE,kDACT;QACDmF,KAAK,EAAE,CAACO,gBAAgB,EAAE;UAAES,SAAS,EAAE;QAAM,CAAC,EAAEF,MAAM,CAACG,MAAM,CAAE;QAC/DjD,iBAAiB,EAAC,MAAM;QACxBC,kBAAkB,EAAEvC,CAAC,CAAC,mBAAmB,CAAC,IAAI,cAAe;QAAA4B,QAAA,EAE5DyC,IAAI,gBACDvF,IAAA,CAACQ,kBAAkB;UACfC,OAAO,EAAEA,OAAQ;UACjBqF,MAAM,EAAEA,MAAO;UACfpF,gBAAgB,EAAEA,gBAAiB;UACnCC,YAAY,EAAEA,YAAa;UAC3BC,iBAAiB,EAAEA,iBAAkB;UACrCC,qBAAqB,EAAEA;QAAsB,CAChD,CAAC,GACF;MAAI,CACD;IAAC,CACL;EAAC,CACT,CAAC;AAEhB,CAAC;;AAED;AACA,MAAMsE,SAMJ,GAAGA,CAAC;EAAEC,IAAI;EAAEC,SAAS;EAAEC,KAAK;EAAExB,QAAQ;EAAED;AAAQ,CAAC,kBAC/C3D,KAAA,CAACtB,SAAS;EACN4E,iBAAiB,EAAC,UAAU;EAC5BC,kBAAkB,EAAE6B,KAAM;EAC1BzB,OAAO,EAAEA,OAAQ;EACjBC,QAAQ,EAAEA,QAAS;EACnBf,SAAS,EAAE,yCAAyCe,QAAQ,GAAG,YAAY,GAAG,EAAE,EAAG;EAAAhB,QAAA,gBAEnF9C,IAAA,CAACf,sBAAsB;IAACoF,IAAI,EAAEe,IAAK;IAACd,IAAI,EAAE,EAAG;IAACG,KAAK,EAAEY;EAAU,CAAE,CAAC,eAClErF,IAAA,CAACb,IAAI;IAAC4D,SAAS,EAAC,6BAA6B;IAAAD,QAAA,EAAEwC;EAAK,CAAO,CAAC;AAAA,CACrD,CACd;;AAED;AACA;AACA;AACA,MAAMgB,MAAM,GAAG;EACXG,MAAM,EAAE;IACJC,WAAW,EAAE,MAAM;IACnBC,aAAa,EAAE,IAAI;IACnBC,YAAY,EAAE,EAAE;IAChBC,YAAY,EAAE;MAAEZ,KAAK,EAAE,CAAC;MAAEa,MAAM,EAAE;IAAE,CAAC;IACrCC,SAAS,EAAE;EACf,CAAqB;EACrBR,WAAW,EAAE;IACTS,eAAe,EAAE;EACrB;AACJ,CAAC;AAED,eAAenB,WAAW","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useEffect","useState","View","Pressable","Modal","ScrollView","ActivityIndicator","StyleSheet","Platform","MaterialCommunityIcons","Avatar","Text","useTheme","toast","useDialogControl","Dialog","Divider","isDev","logger","loggerUtil","useOxy","useI18n","useDeviceAccounts","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","isWeb","OS","MENU_WIDTH","ProfileMenuContent","onClose","onNavigateManage","onAddAccount","onNavigateProfile","onBeforeSessionChange","activeSessionId","switchSession","logoutAll","removeSession","t","colors","accounts","busySessionId","setBusySessionId","removingSessionId","setRemovingSessionId","signingOutAll","setSigningOutAll","signOutAllDialog","isSwitching","actionDisabled","handleSwitch","sessionId","success","error","warn","component","handleRemove","performSignOutAll","document","undefined","onKey","event","key","stopPropagation","addEventListener","removeEventListener","children","style","styles","scroll","contentContainerStyle","scrollContent","showsVerticalScrollIndicator","map","account","isActive","isCurrent","isBusy","isRemoving","accessibilityRole","accessibilityLabel","displayName","accessibilityState","selected","onPress","disabled","accountRow","backgroundColor","backgroundSecondary","rowDimmed","source","user","avatar","uri","avatarUrl","variant","name","size","accountInfo","accountNameActive","accountName","color","text","numberOfLines","email","accountEmail","textSecondary","primary","hitSlop","top","bottom","left","right","rowSignOutButton","switchingRow","switchingText","border","spacing","ActionRow","icon","iconColor","textColor","label","open","signOutAllRow","actionText","control","title","description","actions","ProfileMenu","anchor","panelAnchorStyle","position","width","visible","transparent","animationType","onRequestClose","webOverlay","nativeOverlay","panelWeb","panelNative","background","borderColor","panelBounds","shadow","actionRow","create","flex","justifyContent","overflow","borderRadius","borderWidth","borderTopLeftRadius","borderTopRightRadius","paddingBottom","maxHeight","shadowColor","shadowOpacity","shadowRadius","shadowOffset","height","elevation","flexGrow","paddingVertical","flexDirection","alignItems","gap","paddingHorizontal","opacity","minWidth","fontWeight","fontSize"],"sourceRoot":"../../../../src","sources":["ui/components/ProfileMenu.tsx"],"mappings":"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","ignoreList":[]}
@@ -18,7 +18,23 @@ export interface ProfileButtonProps {
18
18
  onNavigateProfile?: () => void;
19
19
  /** Called before the active identity changes so apps can clear scoped state. */
20
20
  onBeforeSessionChange?: () => void | Promise<void>;
21
- /** Extra className applied to the outer trigger. */
21
+ /**
22
+ * Web-only popover direction relative to the trigger:
23
+ * - `'up'` (default): the menu opens UPWARD, for a trigger placed at the
24
+ * BOTTOM of a sidebar (the footer pattern). Pixel-identical to prior
25
+ * behavior.
26
+ * - `'down'`: the menu opens DOWNWARD, for a trigger placed at the TOP of a
27
+ * sidebar (the accounts app pattern).
28
+ * - `'auto'`: opens downward when there is more room below the trigger than
29
+ * above, otherwise upward.
30
+ * Native (bottom-sheet) is unaffected — this only influences the web popover.
31
+ */
32
+ placement?: 'up' | 'down' | 'auto';
33
+ /**
34
+ * Extra className applied to the outer trigger. Kept for NativeWind consumers
35
+ * that layer utility classes on top; the component's own layout is driven by
36
+ * `StyleSheet` so it renders correctly with or without NativeWind.
37
+ */
22
38
  className?: string;
23
39
  /** Extra style applied to the outer trigger. */
24
40
  style?: StyleProp<ViewStyle>;
@@ -36,6 +52,12 @@ export interface ProfileButtonProps {
36
52
  * against the measured trigger, or as a bottom sheet (native).
37
53
  * - **Signed out**: a "Sign in" row that calls `useAuth().signIn()`.
38
54
  *
55
+ * Styling uses react-native `StyleSheet` + the Bloom theme (via `useTheme`) so
56
+ * the layout renders identically in EVERY consumer — including apps that do not
57
+ * use NativeWind (e.g. the accounts app). Only the web hover animation keeps
58
+ * dynamic inline `style` (the CSS transition/transform values), which is what
59
+ * the `react-native-web-style.d.ts` augmentation exists for.
60
+ *
39
61
  * All display strings resolve through `@oxyhq/core`'s
40
62
  * `getAccountDisplayName` / `getAccountFallbackHandle` — no hand-rolled name
41
63
  * fallbacks. Avatars pass the bare file id as `source` + `variant="thumb"`, so
@@ -1 +1 @@
1
- {"version":3,"file":"ProfileButton.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/ProfileButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAIH,KAAK,SAAS,EACd,KAAK,SAAS,EACjB,MAAM,cAAc,CAAC;AAiDtB,MAAM,WAAW,kBAAkB;IAC/B;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2DAA2D;IAC3D,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,sEAAsE;IACtE,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,8DAA8D;IAC9D,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,gFAAgF;IAChF,qBAAqB,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gDAAgD;IAChD,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAChC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,QAAA,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAoS/C,CAAC;AAEF,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"ProfileButton.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/ProfileButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAKH,KAAK,SAAS,EACd,KAAK,SAAS,EACjB,MAAM,cAAc,CAAC;AAiDtB,MAAM,WAAW,kBAAkB;IAC/B;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2DAA2D;IAC3D,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,sEAAsE;IACtE,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,8DAA8D;IAC9D,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,gFAAgF;IAChF,qBAAqB,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD;;;;;;;;;;OAUG;IACH,SAAS,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;IACnC;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gDAAgD;IAChD,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAChC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,QAAA,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAqU/C,CAAC;AAqDF,eAAe,aAAa,CAAC"}
@@ -1,14 +1,19 @@
1
1
  import type React from 'react';
2
2
  /**
3
- * Web-only anchor. `ProfileButton` measures its trigger and anchors the panel's
4
- * BOTTOM-LEFT corner so the menu opens UPWARD from the sidebar footer. Native
5
- * ignores the anchor and docks the panel to the bottom as a sheet.
3
+ * Web-only anchor. `ProfileButton` measures its trigger and anchors the panel to
4
+ * one corner so the menu opens either UPWARD (footer trigger) or DOWNWARD (a
5
+ * trigger at the top of a sidebar). Exactly ONE vertical edge is pinned:
6
+ * - `bottom` set → the panel's BOTTOM edge is anchored, so it opens UPWARD.
7
+ * - `top` set → the panel's TOP edge is anchored, so it opens DOWNWARD.
8
+ * Native ignores the anchor and docks the panel to the bottom as a sheet.
6
9
  */
7
10
  export interface ProfileMenuAnchor {
8
11
  /** Distance from the viewport left, for the panel's LEFT edge. */
9
12
  left: number;
10
13
  /** Distance from the viewport bottom, for the panel's BOTTOM edge (opens upward). */
11
- bottom: number;
14
+ bottom?: number;
15
+ /** Distance from the viewport top, for the panel's TOP edge (opens downward). */
16
+ top?: number;
12
17
  }
13
18
  export interface ProfileMenuProps {
14
19
  open: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"ProfileMenu.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/ProfileMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AA2B/B;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAC9B,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAC;IACb,qFAAqF;IACrF,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC7B,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,yEAAyE;IACzE,MAAM,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAClC,2DAA2D;IAC3D,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,sEAAsE;IACtE,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,8DAA8D;IAC9D,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,gFAAgF;IAChF,qBAAqB,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtD;AAwRD;;;;;;;;;;;GAWG;AACH,QAAA,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAgE3C,CAAC;AAsCF,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"ProfileMenu.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/ProfileMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AA4B/B;;;;;;;GAOG;AACH,MAAM,WAAW,iBAAiB;IAC9B,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAC;IACb,qFAAqF;IACrF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iFAAiF;IACjF,GAAG,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC7B,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,yEAAyE;IACzE,MAAM,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAClC,2DAA2D;IAC3D,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,sEAAsE;IACtE,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,8DAA8D;IAC9D,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,gFAAgF;IAChF,qBAAqB,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtD;AAiSD;;;;;;;;;;;GAWG;AACH,QAAA,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAsE3C,CAAC;AA0IF,eAAe,WAAW,CAAC"}
@@ -18,7 +18,23 @@ export interface ProfileButtonProps {
18
18
  onNavigateProfile?: () => void;
19
19
  /** Called before the active identity changes so apps can clear scoped state. */
20
20
  onBeforeSessionChange?: () => void | Promise<void>;
21
- /** Extra className applied to the outer trigger. */
21
+ /**
22
+ * Web-only popover direction relative to the trigger:
23
+ * - `'up'` (default): the menu opens UPWARD, for a trigger placed at the
24
+ * BOTTOM of a sidebar (the footer pattern). Pixel-identical to prior
25
+ * behavior.
26
+ * - `'down'`: the menu opens DOWNWARD, for a trigger placed at the TOP of a
27
+ * sidebar (the accounts app pattern).
28
+ * - `'auto'`: opens downward when there is more room below the trigger than
29
+ * above, otherwise upward.
30
+ * Native (bottom-sheet) is unaffected — this only influences the web popover.
31
+ */
32
+ placement?: 'up' | 'down' | 'auto';
33
+ /**
34
+ * Extra className applied to the outer trigger. Kept for NativeWind consumers
35
+ * that layer utility classes on top; the component's own layout is driven by
36
+ * `StyleSheet` so it renders correctly with or without NativeWind.
37
+ */
22
38
  className?: string;
23
39
  /** Extra style applied to the outer trigger. */
24
40
  style?: StyleProp<ViewStyle>;
@@ -36,6 +52,12 @@ export interface ProfileButtonProps {
36
52
  * against the measured trigger, or as a bottom sheet (native).
37
53
  * - **Signed out**: a "Sign in" row that calls `useAuth().signIn()`.
38
54
  *
55
+ * Styling uses react-native `StyleSheet` + the Bloom theme (via `useTheme`) so
56
+ * the layout renders identically in EVERY consumer — including apps that do not
57
+ * use NativeWind (e.g. the accounts app). Only the web hover animation keeps
58
+ * dynamic inline `style` (the CSS transition/transform values), which is what
59
+ * the `react-native-web-style.d.ts` augmentation exists for.
60
+ *
39
61
  * All display strings resolve through `@oxyhq/core`'s
40
62
  * `getAccountDisplayName` / `getAccountFallbackHandle` — no hand-rolled name
41
63
  * fallbacks. Avatars pass the bare file id as `source` + `variant="thumb"`, so
@@ -1 +1 @@
1
- {"version":3,"file":"ProfileButton.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/ProfileButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAIH,KAAK,SAAS,EACd,KAAK,SAAS,EACjB,MAAM,cAAc,CAAC;AAiDtB,MAAM,WAAW,kBAAkB;IAC/B;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2DAA2D;IAC3D,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,sEAAsE;IACtE,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,8DAA8D;IAC9D,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,gFAAgF;IAChF,qBAAqB,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gDAAgD;IAChD,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAChC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,QAAA,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAoS/C,CAAC;AAEF,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"ProfileButton.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/ProfileButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAKH,KAAK,SAAS,EACd,KAAK,SAAS,EACjB,MAAM,cAAc,CAAC;AAiDtB,MAAM,WAAW,kBAAkB;IAC/B;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2DAA2D;IAC3D,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,sEAAsE;IACtE,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,8DAA8D;IAC9D,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,gFAAgF;IAChF,qBAAqB,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD;;;;;;;;;;OAUG;IACH,SAAS,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;IACnC;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gDAAgD;IAChD,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAChC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,QAAA,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAqU/C,CAAC;AAqDF,eAAe,aAAa,CAAC"}
@@ -1,14 +1,19 @@
1
1
  import type React from 'react';
2
2
  /**
3
- * Web-only anchor. `ProfileButton` measures its trigger and anchors the panel's
4
- * BOTTOM-LEFT corner so the menu opens UPWARD from the sidebar footer. Native
5
- * ignores the anchor and docks the panel to the bottom as a sheet.
3
+ * Web-only anchor. `ProfileButton` measures its trigger and anchors the panel to
4
+ * one corner so the menu opens either UPWARD (footer trigger) or DOWNWARD (a
5
+ * trigger at the top of a sidebar). Exactly ONE vertical edge is pinned:
6
+ * - `bottom` set → the panel's BOTTOM edge is anchored, so it opens UPWARD.
7
+ * - `top` set → the panel's TOP edge is anchored, so it opens DOWNWARD.
8
+ * Native ignores the anchor and docks the panel to the bottom as a sheet.
6
9
  */
7
10
  export interface ProfileMenuAnchor {
8
11
  /** Distance from the viewport left, for the panel's LEFT edge. */
9
12
  left: number;
10
13
  /** Distance from the viewport bottom, for the panel's BOTTOM edge (opens upward). */
11
- bottom: number;
14
+ bottom?: number;
15
+ /** Distance from the viewport top, for the panel's TOP edge (opens downward). */
16
+ top?: number;
12
17
  }
13
18
  export interface ProfileMenuProps {
14
19
  open: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"ProfileMenu.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/ProfileMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AA2B/B;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAC9B,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAC;IACb,qFAAqF;IACrF,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC7B,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,yEAAyE;IACzE,MAAM,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAClC,2DAA2D;IAC3D,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,sEAAsE;IACtE,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,8DAA8D;IAC9D,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,gFAAgF;IAChF,qBAAqB,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtD;AAwRD;;;;;;;;;;;GAWG;AACH,QAAA,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAgE3C,CAAC;AAsCF,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"ProfileMenu.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/ProfileMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AA4B/B;;;;;;;GAOG;AACH,MAAM,WAAW,iBAAiB;IAC9B,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAC;IACb,qFAAqF;IACrF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iFAAiF;IACjF,GAAG,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC7B,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,yEAAyE;IACzE,MAAM,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAClC,2DAA2D;IAC3D,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,sEAAsE;IACtE,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,8DAA8D;IAC9D,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,gFAAgF;IAChF,qBAAqB,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtD;AAiSD;;;;;;;;;;;GAWG;AACH,QAAA,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAsE3C,CAAC;AA0IF,eAAe,WAAW,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oxyhq/services",
3
- "version": "13.1.7",
3
+ "version": "13.3.0",
4
4
  "description": "OxyHQ Expo/React Native SDK — UI components, screens, and native features",
5
5
  "main": "lib/commonjs/index.js",
6
6
  "module": "lib/module/index.js",