@buoy-gg/shared-ui 7.0.59 → 7.0.61

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 (40) hide show
  1. package/lib/commonjs/index.js +1 -1
  2. package/lib/commonjs/license/BuoyUpgradeSheet.js +1 -0
  3. package/lib/commonjs/license/FeatureGate.js +1 -1
  4. package/lib/commonjs/license/index.js +1 -1
  5. package/lib/commonjs/license/licenseModule.js +1 -1
  6. package/lib/module/index.js +1 -1
  7. package/lib/module/license/BuoyUpgradeSheet.js +1 -0
  8. package/lib/module/license/FeatureGate.js +1 -1
  9. package/lib/module/license/index.js +1 -1
  10. package/lib/module/license/licenseModule.js +1 -1
  11. package/lib/typescript/commonjs/hooks/safe-area-impl.d.ts +1 -1
  12. package/lib/typescript/commonjs/index.d.ts +2 -2
  13. package/lib/typescript/commonjs/license/BuoyUpgradeSheet.d.ts +27 -0
  14. package/lib/typescript/commonjs/license/FeatureGate.d.ts +1 -1
  15. package/lib/typescript/commonjs/license/index.d.ts +2 -2
  16. package/lib/typescript/commonjs/license/licenseModule.d.ts +25 -0
  17. package/lib/typescript/commonjs/ui/otto/ottoEngine.d.ts +1 -1
  18. package/lib/typescript/module/hooks/safe-area-impl.d.ts +1 -1
  19. package/lib/typescript/module/index.d.ts +2 -2
  20. package/lib/typescript/module/license/BuoyUpgradeSheet.d.ts +27 -0
  21. package/lib/typescript/module/license/FeatureGate.d.ts +1 -1
  22. package/lib/typescript/module/license/index.d.ts +2 -2
  23. package/lib/typescript/module/license/licenseModule.d.ts +25 -0
  24. package/lib/typescript/module/ui/otto/ottoEngine.d.ts +1 -1
  25. package/lib/web/chunks/{chunk-JYM7MCKQ.mjs → chunk-BZTGYXMT.mjs} +1 -1
  26. package/lib/web/chunks/{chunk-OPTY6SMO.mjs → chunk-GF364FIK.mjs} +1 -1
  27. package/lib/web/chunks/{chunk-7YVWZ4ZK.mjs → chunk-L7OYS724.mjs} +1 -1
  28. package/lib/web/chunks/chunk-SYU4BFQR.mjs +6 -0
  29. package/lib/web/chunks/{chunk-T2SPCEHP.mjs → chunk-UYWHGSA7.mjs} +1 -1
  30. package/lib/web/dataViewer.mjs +2 -2
  31. package/lib/web/history.mjs +1 -1
  32. package/lib/web/index.mjs +3 -3
  33. package/lib/web/ui.mjs +1 -1
  34. package/lib/web/utils.mjs +1 -1
  35. package/package.json +5 -5
  36. package/lib/commonjs/license/LicenseEntryModal.js +0 -5
  37. package/lib/module/license/LicenseEntryModal.js +0 -5
  38. package/lib/typescript/commonjs/license/LicenseEntryModal.d.ts +0 -22
  39. package/lib/typescript/module/license/LicenseEntryModal.d.ts +0 -22
  40. package/lib/web/chunks/chunk-PXAINEZK.mjs +0 -14
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});var _exportNames={startSettingsSync:true,SettingsSync:true,PERSONAL_SETTING_KEYS:true,TEAM_SETTING_KEYS:true,onSettingsApplied:true,syncSettingsNow:true,guardToolAdapter:true,absoluteFill:true,displayValue:true,parseDisplayValue:true,getSafeAreaInsets:true,persistentStorage:true,isUsingPersistentStorage:true,getStorageBackendType:true,safeStringify:true,getValueType:true,isPrimitive:true,isJsonSerializable:true,isValidJson:true,getConstructorName:true,isEmpty:true,getValueSize:true,parseValue:true,formatValue:true,getTypeColor:true,truncateText:true,flattenObject:true,formatPath:true,loadOptionalModule:true,getCachedOptionalModule:true,setRenderCaptureProvider:true,getRenderCaptureProvider:true,registerStateSnapshotProvider:true,getStateSnapshotProviders:true,getStateSnapshotProvider:true,subscribeToStateSnapshotProviders:true,superJsonSerialize:true,superJsonDeserialize:true,realNow:true,getRealAppState:true,subscribeRealAppState:true,BUOY_SYNTHETIC_MARK:true,countBuoyListener:true,reloadApp:true,scheduleReloadApp:true,resolveReloadStrategy:true,REMOTE_RELOAD_DELAY_MS:true,getDevServerOrigin:true,Subscribable:true,subscriberCountNotifier:true,subscribeToSubscriberCountChanges:true,notifySubscriberCountChange:true,useSafeRouter:true,useSafePathname:true,useSafeSegments:true,useSafeGlobalSearchParams:true,getSafeRouter:true,getSafeCurrentPathname:true,getSafeCurrentRoute:true,isExpoRouterAvailable:true,registerBrowserRouter:true,browserRouter:true,subscribeBrowserNavigation:true,PREVIEW_ITEM_RENDER_BYTE_LIMIT:true,createRestoreScope:true,emptyRestoreResult:true,failedRestore:true,skippedRestore:true,classifyPreviewItem:true,wontApply:true,unionKeys:true,entityColor:true,formatValuePreview:true,shallowDiffSummary:true,isPlainObjectUtil:true,useSafeAreaInsets:true,useFilterManager:true,usePersistedState:true,resetPersistedStateCache:true,useChangeLog:true,useSubscribedValue:true,useEventStoreEvents:true,useDeviceInfo:true,getDeviceInfo:true,logDeviceInfo:true,JsModal:true,night:true,NIGHT_LABEL_TRACKING:true,QrCodeView:true,NightSectionLabel:true,NightFootnote:true,NightCard:true,NightSeparator:true,NightRows:true,NightSwitch:true,NightChip:true,NightButton:true,NightSegmented:true,NightBadge:true,gameUIColors:true,buoyColors:true,refreshGameUIColors:true,dialColors:true,macOSColors:true,EnvironmentIndicator:true,EnvironmentSelector:true,EnvironmentSelectorInline:true,normalizeEnvironment:true,HintsProvider:true,useHintsDisabled:true,useHintsContext:true,FeatureGate:true,UpgradePrompt:true,useFeatureGate:true,ProFeatureBanner:true,UpgradeModal:true,LicenseEntryModal:true,ProBadge:true,ProUpgradeModal:true,FreeAccountPrompt:true,LOGIN_COMMAND:true,getUseIsPro:true,getUseLicense:true,getUseTier:true,signOutOfBuoy:true,TIER_LIMITS:true,useLimit:true,resolveEffectiveTier:true,getAccountAccess:true,hasAccountAccess:true,assertAccountAccess:true,subscribeAccountAccess:true,getUseAccountAccess:true,retryAccountAccess:true,isProNow:true,AccountSetup:true,AccountSetupButton:true};Object.defineProperty(exports,"AccountSetup",{enumerable:true,get:function(){return _AccountSetup.AccountSetup}});Object.defineProperty(exports,"AccountSetupButton",{enumerable:true,get:function(){return _AccountSetupContent.AccountSetupButton}});Object.defineProperty(exports,"BUOY_SYNTHETIC_MARK",{enumerable:true,get:function(){return _index3.BUOY_SYNTHETIC_MARK}});Object.defineProperty(exports,"EnvironmentIndicator",{enumerable:true,get:function(){return _EnvironmentIndicator.EnvironmentIndicator}});Object.defineProperty(exports,"EnvironmentSelector",{enumerable:true,get:function(){return _EnvironmentSelector.EnvironmentSelector}});Object.defineProperty(exports,"EnvironmentSelectorInline",{enumerable:true,get:function(){return _EnvironmentSelectorInline.EnvironmentSelectorInline}});Object.defineProperty(exports,"FeatureGate",{enumerable:true,get:function(){return _index12.FeatureGate}});Object.defineProperty(exports,"FreeAccountPrompt",{enumerable:true,get:function(){return _index12.FreeAccountPrompt}});Object.defineProperty(exports,"HintsProvider",{enumerable:true,get:function(){return _index10.HintsProvider}});Object.defineProperty(exports,"JsModal",{enumerable:true,get:function(){return _JsModal.JsModal}});Object.defineProperty(exports,"LOGIN_COMMAND",{enumerable:true,get:function(){return _index12.LOGIN_COMMAND}});Object.defineProperty(exports,"LicenseEntryModal",{enumerable:true,get:function(){return _index12.LicenseEntryModal}});Object.defineProperty(exports,"NIGHT_LABEL_TRACKING",{enumerable:true,get:function(){return _nightTheme.NIGHT_LABEL_TRACKING}});Object.defineProperty(exports,"NightBadge",{enumerable:true,get:function(){return _primitives.NightBadge}});Object.defineProperty(exports,"NightButton",{enumerable:true,get:function(){return _primitives.NightButton}});Object.defineProperty(exports,"NightCard",{enumerable:true,get:function(){return _primitives.NightCard}});Object.defineProperty(exports,"NightChip",{enumerable:true,get:function(){return _primitives.NightChip}});Object.defineProperty(exports,"NightFootnote",{enumerable:true,get:function(){return _primitives.NightFootnote}});Object.defineProperty(exports,"NightRows",{enumerable:true,get:function(){return _primitives.NightRows}});Object.defineProperty(exports,"NightSectionLabel",{enumerable:true,get:function(){return _primitives.NightSectionLabel}});Object.defineProperty(exports,"NightSegmented",{enumerable:true,get:function(){return _primitives.NightSegmented}});Object.defineProperty(exports,"NightSeparator",{enumerable:true,get:function(){return _primitives.NightSeparator}});Object.defineProperty(exports,"NightSwitch",{enumerable:true,get:function(){return _primitives.NightSwitch}});Object.defineProperty(exports,"PERSONAL_SETTING_KEYS",{enumerable:true,get:function(){return _settingsSync.PERSONAL_SETTING_KEYS}});Object.defineProperty(exports,"PREVIEW_ITEM_RENDER_BYTE_LIMIT",{enumerable:true,get:function(){return _snapshotProviderKit.PREVIEW_ITEM_RENDER_BYTE_LIMIT}});Object.defineProperty(exports,"ProBadge",{enumerable:true,get:function(){return _index12.ProBadge}});Object.defineProperty(exports,"ProFeatureBanner",{enumerable:true,get:function(){return _index12.ProFeatureBanner}});Object.defineProperty(exports,"ProUpgradeModal",{enumerable:true,get:function(){return _index12.ProUpgradeModal}});Object.defineProperty(exports,"QrCodeView",{enumerable:true,get:function(){return _QrCodeView.QrCodeView}});Object.defineProperty(exports,"REMOTE_RELOAD_DELAY_MS",{enumerable:true,get:function(){return _index3.REMOTE_RELOAD_DELAY_MS}});Object.defineProperty(exports,"SettingsSync",{enumerable:true,get:function(){return _settingsSync.SettingsSync}});Object.defineProperty(exports,"Subscribable",{enumerable:true,get:function(){return _index3.Subscribable}});Object.defineProperty(exports,"TEAM_SETTING_KEYS",{enumerable:true,get:function(){return _settingsSync.TEAM_SETTING_KEYS}});Object.defineProperty(exports,"TIER_LIMITS",{enumerable:true,get:function(){return _index12.TIER_LIMITS}});Object.defineProperty(exports,"UpgradeModal",{enumerable:true,get:function(){return _index12.UpgradeModal}});Object.defineProperty(exports,"UpgradePrompt",{enumerable:true,get:function(){return _index12.UpgradePrompt}});Object.defineProperty(exports,"absoluteFill",{enumerable:true,get:function(){return _index3.absoluteFill}});Object.defineProperty(exports,"assertAccountAccess",{enumerable:true,get:function(){return _licenseModule.assertAccountAccess}});Object.defineProperty(exports,"browserRouter",{enumerable:true,get:function(){return _browserNavigation.browserRouter}});Object.defineProperty(exports,"buoyColors",{enumerable:true,get:function(){return _gameUIColors.buoyColors}});Object.defineProperty(exports,"classifyPreviewItem",{enumerable:true,get:function(){return _snapshotProviderKit.classifyPreviewItem}});Object.defineProperty(exports,"countBuoyListener",{enumerable:true,get:function(){return _index3.countBuoyListener}});Object.defineProperty(exports,"createRestoreScope",{enumerable:true,get:function(){return _snapshotProviderKit.createRestoreScope}});Object.defineProperty(exports,"dialColors",{enumerable:true,get:function(){return _gameUIColors.dialColors}});Object.defineProperty(exports,"displayValue",{enumerable:true,get:function(){return _index3.displayValue}});Object.defineProperty(exports,"emptyRestoreResult",{enumerable:true,get:function(){return _snapshotProviderKit.emptyRestoreResult}});Object.defineProperty(exports,"entityColor",{enumerable:true,get:function(){return _stateTools.entityColor}});Object.defineProperty(exports,"failedRestore",{enumerable:true,get:function(){return _snapshotProviderKit.failedRestore}});Object.defineProperty(exports,"flattenObject",{enumerable:true,get:function(){return _index3.flattenObject}});Object.defineProperty(exports,"formatPath",{enumerable:true,get:function(){return _index3.formatPath}});Object.defineProperty(exports,"formatValue",{enumerable:true,get:function(){return _index3.formatValue}});Object.defineProperty(exports,"formatValuePreview",{enumerable:true,get:function(){return _stateTools.formatValuePreview}});Object.defineProperty(exports,"gameUIColors",{enumerable:true,get:function(){return _gameUIColors.gameUIColors}});Object.defineProperty(exports,"getAccountAccess",{enumerable:true,get:function(){return _licenseModule.getAccountAccess}});Object.defineProperty(exports,"getCachedOptionalModule",{enumerable:true,get:function(){return _index3.getCachedOptionalModule}});Object.defineProperty(exports,"getConstructorName",{enumerable:true,get:function(){return _index3.getConstructorName}});Object.defineProperty(exports,"getDevServerOrigin",{enumerable:true,get:function(){return _index3.getDevServerOrigin}});Object.defineProperty(exports,"getDeviceInfo",{enumerable:true,get:function(){return _index1.getDeviceInfo}});Object.defineProperty(exports,"getRealAppState",{enumerable:true,get:function(){return _index3.getRealAppState}});Object.defineProperty(exports,"getRenderCaptureProvider",{enumerable:true,get:function(){return _index3.getRenderCaptureProvider}});Object.defineProperty(exports,"getSafeAreaInsets",{enumerable:true,get:function(){return _index3.getSafeAreaInsets}});Object.defineProperty(exports,"getSafeCurrentPathname",{enumerable:true,get:function(){return _index3.getSafeCurrentPathname}});Object.defineProperty(exports,"getSafeCurrentRoute",{enumerable:true,get:function(){return _index3.getSafeCurrentRoute}});Object.defineProperty(exports,"getSafeRouter",{enumerable:true,get:function(){return _index3.getSafeRouter}});Object.defineProperty(exports,"getStateSnapshotProvider",{enumerable:true,get:function(){return _index3.getStateSnapshotProvider}});Object.defineProperty(exports,"getStateSnapshotProviders",{enumerable:true,get:function(){return _index3.getStateSnapshotProviders}});Object.defineProperty(exports,"getStorageBackendType",{enumerable:true,get:function(){return _index3.getStorageBackendType}});Object.defineProperty(exports,"getTypeColor",{enumerable:true,get:function(){return _index3.getTypeColor}});Object.defineProperty(exports,"getUseAccountAccess",{enumerable:true,get:function(){return _licenseModule.getUseAccountAccess}});Object.defineProperty(exports,"getUseIsPro",{enumerable:true,get:function(){return _index12.getUseIsPro}});Object.defineProperty(exports,"getUseLicense",{enumerable:true,get:function(){return _index12.getUseLicense}});Object.defineProperty(exports,"getUseTier",{enumerable:true,get:function(){return _index12.getUseTier}});Object.defineProperty(exports,"getValueSize",{enumerable:true,get:function(){return _index3.getValueSize}});Object.defineProperty(exports,"getValueType",{enumerable:true,get:function(){return _index3.getValueType}});Object.defineProperty(exports,"guardToolAdapter",{enumerable:true,get:function(){return _toolActionRegistry.guardToolAdapter}});Object.defineProperty(exports,"hasAccountAccess",{enumerable:true,get:function(){return _licenseModule.hasAccountAccess}});Object.defineProperty(exports,"isEmpty",{enumerable:true,get:function(){return _index3.isEmpty}});Object.defineProperty(exports,"isExpoRouterAvailable",{enumerable:true,get:function(){return _index3.isExpoRouterAvailable}});Object.defineProperty(exports,"isJsonSerializable",{enumerable:true,get:function(){return _index3.isJsonSerializable}});Object.defineProperty(exports,"isPlainObjectUtil",{enumerable:true,get:function(){return _typeHelpers.isPlainObject}});Object.defineProperty(exports,"isPrimitive",{enumerable:true,get:function(){return _index3.isPrimitive}});Object.defineProperty(exports,"isProNow",{enumerable:true,get:function(){return _licenseModule.isProNow}});Object.defineProperty(exports,"isUsingPersistentStorage",{enumerable:true,get:function(){return _index3.isUsingPersistentStorage}});Object.defineProperty(exports,"isValidJson",{enumerable:true,get:function(){return _index3.isValidJson}});Object.defineProperty(exports,"loadOptionalModule",{enumerable:true,get:function(){return _index3.loadOptionalModule}});Object.defineProperty(exports,"logDeviceInfo",{enumerable:true,get:function(){return _index1.logDeviceInfo}});Object.defineProperty(exports,"macOSColors",{enumerable:true,get:function(){return _macOSDesignSystemColors.macOSColors}});Object.defineProperty(exports,"night",{enumerable:true,get:function(){return _nightTheme.night}});Object.defineProperty(exports,"normalizeEnvironment",{enumerable:true,get:function(){return _types.normalizeEnvironment}});Object.defineProperty(exports,"notifySubscriberCountChange",{enumerable:true,get:function(){return _index3.notifySubscriberCountChange}});Object.defineProperty(exports,"onSettingsApplied",{enumerable:true,get:function(){return _settingsSync.onSettingsApplied}});Object.defineProperty(exports,"parseDisplayValue",{enumerable:true,get:function(){return _index3.parseDisplayValue}});Object.defineProperty(exports,"parseValue",{enumerable:true,get:function(){return _index3.parseValue}});Object.defineProperty(exports,"persistentStorage",{enumerable:true,get:function(){return _index3.persistentStorage}});Object.defineProperty(exports,"realNow",{enumerable:true,get:function(){return _index3.realNow}});Object.defineProperty(exports,"refreshGameUIColors",{enumerable:true,get:function(){return _gameUIColors.refreshGameUIColors}});Object.defineProperty(exports,"registerBrowserRouter",{enumerable:true,get:function(){return _browserNavigation.registerBrowserRouter}});Object.defineProperty(exports,"registerStateSnapshotProvider",{enumerable:true,get:function(){return _index3.registerStateSnapshotProvider}});Object.defineProperty(exports,"reloadApp",{enumerable:true,get:function(){return _index3.reloadApp}});Object.defineProperty(exports,"resetPersistedStateCache",{enumerable:true,get:function(){return _index1.resetPersistedStateCache}});Object.defineProperty(exports,"resolveEffectiveTier",{enumerable:true,get:function(){return _index12.resolveEffectiveTier}});Object.defineProperty(exports,"resolveReloadStrategy",{enumerable:true,get:function(){return _index3.resolveReloadStrategy}});Object.defineProperty(exports,"retryAccountAccess",{enumerable:true,get:function(){return _licenseModule.retryAccountAccess}});Object.defineProperty(exports,"safeStringify",{enumerable:true,get:function(){return _index3.safeStringify}});Object.defineProperty(exports,"scheduleReloadApp",{enumerable:true,get:function(){return _index3.scheduleReloadApp}});Object.defineProperty(exports,"setRenderCaptureProvider",{enumerable:true,get:function(){return _index3.setRenderCaptureProvider}});Object.defineProperty(exports,"shallowDiffSummary",{enumerable:true,get:function(){return _stateTools.shallowDiffSummary}});Object.defineProperty(exports,"signOutOfBuoy",{enumerable:true,get:function(){return _index12.signOutOfBuoy}});Object.defineProperty(exports,"skippedRestore",{enumerable:true,get:function(){return _snapshotProviderKit.skippedRestore}});Object.defineProperty(exports,"startSettingsSync",{enumerable:true,get:function(){return _settingsSync.startSettingsSync}});Object.defineProperty(exports,"subscribeAccountAccess",{enumerable:true,get:function(){return _licenseModule.subscribeAccountAccess}});Object.defineProperty(exports,"subscribeBrowserNavigation",{enumerable:true,get:function(){return _browserNavigation.subscribeBrowserNavigation}});Object.defineProperty(exports,"subscribeRealAppState",{enumerable:true,get:function(){return _index3.subscribeRealAppState}});Object.defineProperty(exports,"subscribeToStateSnapshotProviders",{enumerable:true,get:function(){return _index3.subscribeToStateSnapshotProviders}});Object.defineProperty(exports,"subscribeToSubscriberCountChanges",{enumerable:true,get:function(){return _index3.subscribeToSubscriberCountChanges}});Object.defineProperty(exports,"subscriberCountNotifier",{enumerable:true,get:function(){return _index3.subscriberCountNotifier}});Object.defineProperty(exports,"superJsonDeserialize",{enumerable:true,get:function(){return _index3.superJsonDeserialize}});Object.defineProperty(exports,"superJsonSerialize",{enumerable:true,get:function(){return _index3.superJsonSerialize}});Object.defineProperty(exports,"syncSettingsNow",{enumerable:true,get:function(){return _settingsSync.syncSettingsNow}});Object.defineProperty(exports,"truncateText",{enumerable:true,get:function(){return _index3.truncateText}});Object.defineProperty(exports,"unionKeys",{enumerable:true,get:function(){return _snapshotProviderKit.unionKeys}});Object.defineProperty(exports,"useChangeLog",{enumerable:true,get:function(){return _index1.useChangeLog}});Object.defineProperty(exports,"useDeviceInfo",{enumerable:true,get:function(){return _index1.useDeviceInfo}});Object.defineProperty(exports,"useEventStoreEvents",{enumerable:true,get:function(){return _index1.useEventStoreEvents}});Object.defineProperty(exports,"useFeatureGate",{enumerable:true,get:function(){return _index12.useFeatureGate}});Object.defineProperty(exports,"useFilterManager",{enumerable:true,get:function(){return _index1.useFilterManager}});Object.defineProperty(exports,"useHintsContext",{enumerable:true,get:function(){return _index10.useHintsContext}});Object.defineProperty(exports,"useHintsDisabled",{enumerable:true,get:function(){return _index10.useHintsDisabled}});Object.defineProperty(exports,"useLimit",{enumerable:true,get:function(){return _index12.useLimit}});Object.defineProperty(exports,"usePersistedState",{enumerable:true,get:function(){return _index1.usePersistedState}});Object.defineProperty(exports,"useSafeAreaInsets",{enumerable:true,get:function(){return _index1.useSafeAreaInsets}});Object.defineProperty(exports,"useSafeGlobalSearchParams",{enumerable:true,get:function(){return _index3.useSafeGlobalSearchParams}});Object.defineProperty(exports,"useSafePathname",{enumerable:true,get:function(){return _index3.useSafePathname}});Object.defineProperty(exports,"useSafeRouter",{enumerable:true,get:function(){return _index3.useSafeRouter}});Object.defineProperty(exports,"useSafeSegments",{enumerable:true,get:function(){return _index3.useSafeSegments}});Object.defineProperty(exports,"useSubscribedValue",{enumerable:true,get:function(){return _index1.useSubscribedValue}});Object.defineProperty(exports,"wontApply",{enumerable:true,get:function(){return _snapshotProviderKit.wontApply}});var _index=require("./ui/index.js");Object.keys(_index).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_index[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _index[e]}})});var _index2=require("./stores/index.js");Object.keys(_index2).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_index2[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _index2[e]}})});var _keyedArrays=require("./sync/keyedArrays.js");Object.keys(_keyedArrays).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_keyedArrays[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _keyedArrays[e]}})});var _valueShape=require("./sync/valueShape.js");Object.keys(_valueShape).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_valueShape[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _valueShape[e]}})});var _valuePath=require("./sync/valuePath.js");Object.keys(_valuePath).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_valuePath[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _valuePath[e]}})});var _typedEdit=require("./sync/typedEdit.js");Object.keys(_typedEdit).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_typedEdit[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _typedEdit[e]}})});var _wireBudget=require("./sync/wireBudget.js");Object.keys(_wireBudget).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_wireBudget[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _wireBudget[e]}})});var _wireForm=require("./sync/wireForm.js");Object.keys(_wireForm).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_wireForm[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _wireForm[e]}})});var _toolSyncAdapter=require("./sync/toolSyncAdapter.js");Object.keys(_toolSyncAdapter).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_toolSyncAdapter[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _toolSyncAdapter[e]}})});var _settingsSync=require("./sync/settingsSync.js");var _defineTool=require("./tools/defineTool.js");Object.keys(_defineTool).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_defineTool[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _defineTool[e]}})});var _toolActionRegistry=require("./sync/toolActionRegistry.js");Object.keys(_toolActionRegistry).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_toolActionRegistry[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _toolActionRegistry[e]}})});var _toolUiBridge=require("./sync/toolUiBridge.js");Object.keys(_toolUiBridge).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_toolUiBridge[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _toolUiBridge[e]}})});var _toolScreenHeader=require("./sync/toolScreenHeader.js");Object.keys(_toolScreenHeader).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_toolScreenHeader[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _toolScreenHeader[e]}})});var _index3=require("./utils/index.js");var _toolModules=require("./utils/toolModules.js");Object.keys(_toolModules).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_toolModules[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _toolModules[e]}})});var _browserNavigation=require("./utils/browserNavigation.js");var _snapshotProviderKit=require("./utils/snapshotProviderKit.js");var _stateTools=require("./utils/stateTools.js");var _index4=require("./utils/formatting/index.js");Object.keys(_index4).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_index4[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _index4[e]}})});var _index5=require("./utils/time/index.js");Object.keys(_index5).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_index5[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _index5[e]}})});var _typeHelpers=require("./utils/typeHelpers.js");var _index6=require("./icons/index.js");Object.keys(_index6).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_index6[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _index6[e]}})});var _index7=require("./clipboard/index.js");Object.keys(_index7).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_index7[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _index7[e]}})});var _index8=require("./logger/index.js");Object.keys(_index8).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_index8[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _index8[e]}})});var _index9=require("./settings/index.js");Object.keys(_index9).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_index9[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _index9[e]}})});var _index0=require("./storage/index.js");Object.keys(_index0).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_index0[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _index0[e]}})});var _index1=require("./hooks/index.js");var _JsModal=require("./JsModal");var _nightTheme=require("./ui/night/nightTheme.js");var _QrCodeView=require("./ui/qr/QrCodeView.js");var _primitives=require("./ui/night/primitives.js");var _gameUIColors=require("./ui/gameUI/constants/gameUIColors.js");var _macOSDesignSystemColors=require("./ui/gameUI/constants/macOSDesignSystemColors.js");var _EnvironmentIndicator=require("./env/EnvironmentIndicator");var _EnvironmentSelector=require("./env/EnvironmentSelector.js");var _EnvironmentSelectorInline=require("./env/EnvironmentSelectorInline");var _types=require("./types/types.js");var _index10=require("./context/index.js");var _index11=require("./history/index.js");Object.keys(_index11).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_index11[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _index11[e]}})});var _index12=require("./license/index.js");var _licenseModule=require("./license/licenseModule.js");var _AccountSetup=require("./license/AccountSetup");var _AccountSetupContent=require("./license/AccountSetupContent.js");
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});var _exportNames={startSettingsSync:true,SettingsSync:true,PERSONAL_SETTING_KEYS:true,TEAM_SETTING_KEYS:true,onSettingsApplied:true,syncSettingsNow:true,guardToolAdapter:true,absoluteFill:true,displayValue:true,parseDisplayValue:true,getSafeAreaInsets:true,persistentStorage:true,isUsingPersistentStorage:true,getStorageBackendType:true,safeStringify:true,getValueType:true,isPrimitive:true,isJsonSerializable:true,isValidJson:true,getConstructorName:true,isEmpty:true,getValueSize:true,parseValue:true,formatValue:true,getTypeColor:true,truncateText:true,flattenObject:true,formatPath:true,loadOptionalModule:true,getCachedOptionalModule:true,setRenderCaptureProvider:true,getRenderCaptureProvider:true,registerStateSnapshotProvider:true,getStateSnapshotProviders:true,getStateSnapshotProvider:true,subscribeToStateSnapshotProviders:true,superJsonSerialize:true,superJsonDeserialize:true,realNow:true,getRealAppState:true,subscribeRealAppState:true,BUOY_SYNTHETIC_MARK:true,countBuoyListener:true,reloadApp:true,scheduleReloadApp:true,resolveReloadStrategy:true,REMOTE_RELOAD_DELAY_MS:true,getDevServerOrigin:true,Subscribable:true,subscriberCountNotifier:true,subscribeToSubscriberCountChanges:true,notifySubscriberCountChange:true,useSafeRouter:true,useSafePathname:true,useSafeSegments:true,useSafeGlobalSearchParams:true,getSafeRouter:true,getSafeCurrentPathname:true,getSafeCurrentRoute:true,isExpoRouterAvailable:true,registerBrowserRouter:true,browserRouter:true,subscribeBrowserNavigation:true,PREVIEW_ITEM_RENDER_BYTE_LIMIT:true,createRestoreScope:true,emptyRestoreResult:true,failedRestore:true,skippedRestore:true,classifyPreviewItem:true,wontApply:true,unionKeys:true,entityColor:true,formatValuePreview:true,shallowDiffSummary:true,isPlainObjectUtil:true,useSafeAreaInsets:true,useFilterManager:true,usePersistedState:true,resetPersistedStateCache:true,useChangeLog:true,useSubscribedValue:true,useEventStoreEvents:true,useDeviceInfo:true,getDeviceInfo:true,logDeviceInfo:true,JsModal:true,night:true,NIGHT_LABEL_TRACKING:true,QrCodeView:true,NightSectionLabel:true,NightFootnote:true,NightCard:true,NightSeparator:true,NightRows:true,NightSwitch:true,NightChip:true,NightButton:true,NightSegmented:true,NightBadge:true,gameUIColors:true,buoyColors:true,refreshGameUIColors:true,dialColors:true,macOSColors:true,EnvironmentIndicator:true,EnvironmentSelector:true,EnvironmentSelectorInline:true,normalizeEnvironment:true,HintsProvider:true,useHintsDisabled:true,useHintsContext:true,FeatureGate:true,UpgradePrompt:true,useFeatureGate:true,ProFeatureBanner:true,UpgradeModal:true,BuoyUpgradeSheet:true,BuoySignInCard:true,BuoyNeedsPlanCard:true,useSignInState:true,ProBadge:true,ProUpgradeModal:true,FreeAccountPrompt:true,LOGIN_COMMAND:true,getUseIsPro:true,getUseLicense:true,getUseTier:true,signOutOfBuoy:true,TIER_LIMITS:true,useLimit:true,resolveEffectiveTier:true,getAccountAccess:true,hasAccountAccess:true,assertAccountAccess:true,subscribeAccountAccess:true,getUseAccountAccess:true,retryAccountAccess:true,isProNow:true,AccountSetup:true,AccountSetupButton:true};Object.defineProperty(exports,"AccountSetup",{enumerable:true,get:function(){return _AccountSetup.AccountSetup}});Object.defineProperty(exports,"AccountSetupButton",{enumerable:true,get:function(){return _AccountSetupContent.AccountSetupButton}});Object.defineProperty(exports,"BUOY_SYNTHETIC_MARK",{enumerable:true,get:function(){return _index3.BUOY_SYNTHETIC_MARK}});Object.defineProperty(exports,"BuoyNeedsPlanCard",{enumerable:true,get:function(){return _index12.BuoyNeedsPlanCard}});Object.defineProperty(exports,"BuoySignInCard",{enumerable:true,get:function(){return _index12.BuoySignInCard}});Object.defineProperty(exports,"BuoyUpgradeSheet",{enumerable:true,get:function(){return _index12.BuoyUpgradeSheet}});Object.defineProperty(exports,"EnvironmentIndicator",{enumerable:true,get:function(){return _EnvironmentIndicator.EnvironmentIndicator}});Object.defineProperty(exports,"EnvironmentSelector",{enumerable:true,get:function(){return _EnvironmentSelector.EnvironmentSelector}});Object.defineProperty(exports,"EnvironmentSelectorInline",{enumerable:true,get:function(){return _EnvironmentSelectorInline.EnvironmentSelectorInline}});Object.defineProperty(exports,"FeatureGate",{enumerable:true,get:function(){return _index12.FeatureGate}});Object.defineProperty(exports,"FreeAccountPrompt",{enumerable:true,get:function(){return _index12.FreeAccountPrompt}});Object.defineProperty(exports,"HintsProvider",{enumerable:true,get:function(){return _index10.HintsProvider}});Object.defineProperty(exports,"JsModal",{enumerable:true,get:function(){return _JsModal.JsModal}});Object.defineProperty(exports,"LOGIN_COMMAND",{enumerable:true,get:function(){return _index12.LOGIN_COMMAND}});Object.defineProperty(exports,"NIGHT_LABEL_TRACKING",{enumerable:true,get:function(){return _nightTheme.NIGHT_LABEL_TRACKING}});Object.defineProperty(exports,"NightBadge",{enumerable:true,get:function(){return _primitives.NightBadge}});Object.defineProperty(exports,"NightButton",{enumerable:true,get:function(){return _primitives.NightButton}});Object.defineProperty(exports,"NightCard",{enumerable:true,get:function(){return _primitives.NightCard}});Object.defineProperty(exports,"NightChip",{enumerable:true,get:function(){return _primitives.NightChip}});Object.defineProperty(exports,"NightFootnote",{enumerable:true,get:function(){return _primitives.NightFootnote}});Object.defineProperty(exports,"NightRows",{enumerable:true,get:function(){return _primitives.NightRows}});Object.defineProperty(exports,"NightSectionLabel",{enumerable:true,get:function(){return _primitives.NightSectionLabel}});Object.defineProperty(exports,"NightSegmented",{enumerable:true,get:function(){return _primitives.NightSegmented}});Object.defineProperty(exports,"NightSeparator",{enumerable:true,get:function(){return _primitives.NightSeparator}});Object.defineProperty(exports,"NightSwitch",{enumerable:true,get:function(){return _primitives.NightSwitch}});Object.defineProperty(exports,"PERSONAL_SETTING_KEYS",{enumerable:true,get:function(){return _settingsSync.PERSONAL_SETTING_KEYS}});Object.defineProperty(exports,"PREVIEW_ITEM_RENDER_BYTE_LIMIT",{enumerable:true,get:function(){return _snapshotProviderKit.PREVIEW_ITEM_RENDER_BYTE_LIMIT}});Object.defineProperty(exports,"ProBadge",{enumerable:true,get:function(){return _index12.ProBadge}});Object.defineProperty(exports,"ProFeatureBanner",{enumerable:true,get:function(){return _index12.ProFeatureBanner}});Object.defineProperty(exports,"ProUpgradeModal",{enumerable:true,get:function(){return _index12.ProUpgradeModal}});Object.defineProperty(exports,"QrCodeView",{enumerable:true,get:function(){return _QrCodeView.QrCodeView}});Object.defineProperty(exports,"REMOTE_RELOAD_DELAY_MS",{enumerable:true,get:function(){return _index3.REMOTE_RELOAD_DELAY_MS}});Object.defineProperty(exports,"SettingsSync",{enumerable:true,get:function(){return _settingsSync.SettingsSync}});Object.defineProperty(exports,"Subscribable",{enumerable:true,get:function(){return _index3.Subscribable}});Object.defineProperty(exports,"TEAM_SETTING_KEYS",{enumerable:true,get:function(){return _settingsSync.TEAM_SETTING_KEYS}});Object.defineProperty(exports,"TIER_LIMITS",{enumerable:true,get:function(){return _index12.TIER_LIMITS}});Object.defineProperty(exports,"UpgradeModal",{enumerable:true,get:function(){return _index12.UpgradeModal}});Object.defineProperty(exports,"UpgradePrompt",{enumerable:true,get:function(){return _index12.UpgradePrompt}});Object.defineProperty(exports,"absoluteFill",{enumerable:true,get:function(){return _index3.absoluteFill}});Object.defineProperty(exports,"assertAccountAccess",{enumerable:true,get:function(){return _licenseModule.assertAccountAccess}});Object.defineProperty(exports,"browserRouter",{enumerable:true,get:function(){return _browserNavigation.browserRouter}});Object.defineProperty(exports,"buoyColors",{enumerable:true,get:function(){return _gameUIColors.buoyColors}});Object.defineProperty(exports,"classifyPreviewItem",{enumerable:true,get:function(){return _snapshotProviderKit.classifyPreviewItem}});Object.defineProperty(exports,"countBuoyListener",{enumerable:true,get:function(){return _index3.countBuoyListener}});Object.defineProperty(exports,"createRestoreScope",{enumerable:true,get:function(){return _snapshotProviderKit.createRestoreScope}});Object.defineProperty(exports,"dialColors",{enumerable:true,get:function(){return _gameUIColors.dialColors}});Object.defineProperty(exports,"displayValue",{enumerable:true,get:function(){return _index3.displayValue}});Object.defineProperty(exports,"emptyRestoreResult",{enumerable:true,get:function(){return _snapshotProviderKit.emptyRestoreResult}});Object.defineProperty(exports,"entityColor",{enumerable:true,get:function(){return _stateTools.entityColor}});Object.defineProperty(exports,"failedRestore",{enumerable:true,get:function(){return _snapshotProviderKit.failedRestore}});Object.defineProperty(exports,"flattenObject",{enumerable:true,get:function(){return _index3.flattenObject}});Object.defineProperty(exports,"formatPath",{enumerable:true,get:function(){return _index3.formatPath}});Object.defineProperty(exports,"formatValue",{enumerable:true,get:function(){return _index3.formatValue}});Object.defineProperty(exports,"formatValuePreview",{enumerable:true,get:function(){return _stateTools.formatValuePreview}});Object.defineProperty(exports,"gameUIColors",{enumerable:true,get:function(){return _gameUIColors.gameUIColors}});Object.defineProperty(exports,"getAccountAccess",{enumerable:true,get:function(){return _licenseModule.getAccountAccess}});Object.defineProperty(exports,"getCachedOptionalModule",{enumerable:true,get:function(){return _index3.getCachedOptionalModule}});Object.defineProperty(exports,"getConstructorName",{enumerable:true,get:function(){return _index3.getConstructorName}});Object.defineProperty(exports,"getDevServerOrigin",{enumerable:true,get:function(){return _index3.getDevServerOrigin}});Object.defineProperty(exports,"getDeviceInfo",{enumerable:true,get:function(){return _index1.getDeviceInfo}});Object.defineProperty(exports,"getRealAppState",{enumerable:true,get:function(){return _index3.getRealAppState}});Object.defineProperty(exports,"getRenderCaptureProvider",{enumerable:true,get:function(){return _index3.getRenderCaptureProvider}});Object.defineProperty(exports,"getSafeAreaInsets",{enumerable:true,get:function(){return _index3.getSafeAreaInsets}});Object.defineProperty(exports,"getSafeCurrentPathname",{enumerable:true,get:function(){return _index3.getSafeCurrentPathname}});Object.defineProperty(exports,"getSafeCurrentRoute",{enumerable:true,get:function(){return _index3.getSafeCurrentRoute}});Object.defineProperty(exports,"getSafeRouter",{enumerable:true,get:function(){return _index3.getSafeRouter}});Object.defineProperty(exports,"getStateSnapshotProvider",{enumerable:true,get:function(){return _index3.getStateSnapshotProvider}});Object.defineProperty(exports,"getStateSnapshotProviders",{enumerable:true,get:function(){return _index3.getStateSnapshotProviders}});Object.defineProperty(exports,"getStorageBackendType",{enumerable:true,get:function(){return _index3.getStorageBackendType}});Object.defineProperty(exports,"getTypeColor",{enumerable:true,get:function(){return _index3.getTypeColor}});Object.defineProperty(exports,"getUseAccountAccess",{enumerable:true,get:function(){return _licenseModule.getUseAccountAccess}});Object.defineProperty(exports,"getUseIsPro",{enumerable:true,get:function(){return _index12.getUseIsPro}});Object.defineProperty(exports,"getUseLicense",{enumerable:true,get:function(){return _index12.getUseLicense}});Object.defineProperty(exports,"getUseTier",{enumerable:true,get:function(){return _index12.getUseTier}});Object.defineProperty(exports,"getValueSize",{enumerable:true,get:function(){return _index3.getValueSize}});Object.defineProperty(exports,"getValueType",{enumerable:true,get:function(){return _index3.getValueType}});Object.defineProperty(exports,"guardToolAdapter",{enumerable:true,get:function(){return _toolActionRegistry.guardToolAdapter}});Object.defineProperty(exports,"hasAccountAccess",{enumerable:true,get:function(){return _licenseModule.hasAccountAccess}});Object.defineProperty(exports,"isEmpty",{enumerable:true,get:function(){return _index3.isEmpty}});Object.defineProperty(exports,"isExpoRouterAvailable",{enumerable:true,get:function(){return _index3.isExpoRouterAvailable}});Object.defineProperty(exports,"isJsonSerializable",{enumerable:true,get:function(){return _index3.isJsonSerializable}});Object.defineProperty(exports,"isPlainObjectUtil",{enumerable:true,get:function(){return _typeHelpers.isPlainObject}});Object.defineProperty(exports,"isPrimitive",{enumerable:true,get:function(){return _index3.isPrimitive}});Object.defineProperty(exports,"isProNow",{enumerable:true,get:function(){return _licenseModule.isProNow}});Object.defineProperty(exports,"isUsingPersistentStorage",{enumerable:true,get:function(){return _index3.isUsingPersistentStorage}});Object.defineProperty(exports,"isValidJson",{enumerable:true,get:function(){return _index3.isValidJson}});Object.defineProperty(exports,"loadOptionalModule",{enumerable:true,get:function(){return _index3.loadOptionalModule}});Object.defineProperty(exports,"logDeviceInfo",{enumerable:true,get:function(){return _index1.logDeviceInfo}});Object.defineProperty(exports,"macOSColors",{enumerable:true,get:function(){return _macOSDesignSystemColors.macOSColors}});Object.defineProperty(exports,"night",{enumerable:true,get:function(){return _nightTheme.night}});Object.defineProperty(exports,"normalizeEnvironment",{enumerable:true,get:function(){return _types.normalizeEnvironment}});Object.defineProperty(exports,"notifySubscriberCountChange",{enumerable:true,get:function(){return _index3.notifySubscriberCountChange}});Object.defineProperty(exports,"onSettingsApplied",{enumerable:true,get:function(){return _settingsSync.onSettingsApplied}});Object.defineProperty(exports,"parseDisplayValue",{enumerable:true,get:function(){return _index3.parseDisplayValue}});Object.defineProperty(exports,"parseValue",{enumerable:true,get:function(){return _index3.parseValue}});Object.defineProperty(exports,"persistentStorage",{enumerable:true,get:function(){return _index3.persistentStorage}});Object.defineProperty(exports,"realNow",{enumerable:true,get:function(){return _index3.realNow}});Object.defineProperty(exports,"refreshGameUIColors",{enumerable:true,get:function(){return _gameUIColors.refreshGameUIColors}});Object.defineProperty(exports,"registerBrowserRouter",{enumerable:true,get:function(){return _browserNavigation.registerBrowserRouter}});Object.defineProperty(exports,"registerStateSnapshotProvider",{enumerable:true,get:function(){return _index3.registerStateSnapshotProvider}});Object.defineProperty(exports,"reloadApp",{enumerable:true,get:function(){return _index3.reloadApp}});Object.defineProperty(exports,"resetPersistedStateCache",{enumerable:true,get:function(){return _index1.resetPersistedStateCache}});Object.defineProperty(exports,"resolveEffectiveTier",{enumerable:true,get:function(){return _index12.resolveEffectiveTier}});Object.defineProperty(exports,"resolveReloadStrategy",{enumerable:true,get:function(){return _index3.resolveReloadStrategy}});Object.defineProperty(exports,"retryAccountAccess",{enumerable:true,get:function(){return _licenseModule.retryAccountAccess}});Object.defineProperty(exports,"safeStringify",{enumerable:true,get:function(){return _index3.safeStringify}});Object.defineProperty(exports,"scheduleReloadApp",{enumerable:true,get:function(){return _index3.scheduleReloadApp}});Object.defineProperty(exports,"setRenderCaptureProvider",{enumerable:true,get:function(){return _index3.setRenderCaptureProvider}});Object.defineProperty(exports,"shallowDiffSummary",{enumerable:true,get:function(){return _stateTools.shallowDiffSummary}});Object.defineProperty(exports,"signOutOfBuoy",{enumerable:true,get:function(){return _index12.signOutOfBuoy}});Object.defineProperty(exports,"skippedRestore",{enumerable:true,get:function(){return _snapshotProviderKit.skippedRestore}});Object.defineProperty(exports,"startSettingsSync",{enumerable:true,get:function(){return _settingsSync.startSettingsSync}});Object.defineProperty(exports,"subscribeAccountAccess",{enumerable:true,get:function(){return _licenseModule.subscribeAccountAccess}});Object.defineProperty(exports,"subscribeBrowserNavigation",{enumerable:true,get:function(){return _browserNavigation.subscribeBrowserNavigation}});Object.defineProperty(exports,"subscribeRealAppState",{enumerable:true,get:function(){return _index3.subscribeRealAppState}});Object.defineProperty(exports,"subscribeToStateSnapshotProviders",{enumerable:true,get:function(){return _index3.subscribeToStateSnapshotProviders}});Object.defineProperty(exports,"subscribeToSubscriberCountChanges",{enumerable:true,get:function(){return _index3.subscribeToSubscriberCountChanges}});Object.defineProperty(exports,"subscriberCountNotifier",{enumerable:true,get:function(){return _index3.subscriberCountNotifier}});Object.defineProperty(exports,"superJsonDeserialize",{enumerable:true,get:function(){return _index3.superJsonDeserialize}});Object.defineProperty(exports,"superJsonSerialize",{enumerable:true,get:function(){return _index3.superJsonSerialize}});Object.defineProperty(exports,"syncSettingsNow",{enumerable:true,get:function(){return _settingsSync.syncSettingsNow}});Object.defineProperty(exports,"truncateText",{enumerable:true,get:function(){return _index3.truncateText}});Object.defineProperty(exports,"unionKeys",{enumerable:true,get:function(){return _snapshotProviderKit.unionKeys}});Object.defineProperty(exports,"useChangeLog",{enumerable:true,get:function(){return _index1.useChangeLog}});Object.defineProperty(exports,"useDeviceInfo",{enumerable:true,get:function(){return _index1.useDeviceInfo}});Object.defineProperty(exports,"useEventStoreEvents",{enumerable:true,get:function(){return _index1.useEventStoreEvents}});Object.defineProperty(exports,"useFeatureGate",{enumerable:true,get:function(){return _index12.useFeatureGate}});Object.defineProperty(exports,"useFilterManager",{enumerable:true,get:function(){return _index1.useFilterManager}});Object.defineProperty(exports,"useHintsContext",{enumerable:true,get:function(){return _index10.useHintsContext}});Object.defineProperty(exports,"useHintsDisabled",{enumerable:true,get:function(){return _index10.useHintsDisabled}});Object.defineProperty(exports,"useLimit",{enumerable:true,get:function(){return _index12.useLimit}});Object.defineProperty(exports,"usePersistedState",{enumerable:true,get:function(){return _index1.usePersistedState}});Object.defineProperty(exports,"useSafeAreaInsets",{enumerable:true,get:function(){return _index1.useSafeAreaInsets}});Object.defineProperty(exports,"useSafeGlobalSearchParams",{enumerable:true,get:function(){return _index3.useSafeGlobalSearchParams}});Object.defineProperty(exports,"useSafePathname",{enumerable:true,get:function(){return _index3.useSafePathname}});Object.defineProperty(exports,"useSafeRouter",{enumerable:true,get:function(){return _index3.useSafeRouter}});Object.defineProperty(exports,"useSafeSegments",{enumerable:true,get:function(){return _index3.useSafeSegments}});Object.defineProperty(exports,"useSignInState",{enumerable:true,get:function(){return _index12.useSignInState}});Object.defineProperty(exports,"useSubscribedValue",{enumerable:true,get:function(){return _index1.useSubscribedValue}});Object.defineProperty(exports,"wontApply",{enumerable:true,get:function(){return _snapshotProviderKit.wontApply}});var _index=require("./ui/index.js");Object.keys(_index).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_index[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _index[e]}})});var _index2=require("./stores/index.js");Object.keys(_index2).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_index2[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _index2[e]}})});var _keyedArrays=require("./sync/keyedArrays.js");Object.keys(_keyedArrays).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_keyedArrays[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _keyedArrays[e]}})});var _valueShape=require("./sync/valueShape.js");Object.keys(_valueShape).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_valueShape[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _valueShape[e]}})});var _valuePath=require("./sync/valuePath.js");Object.keys(_valuePath).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_valuePath[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _valuePath[e]}})});var _typedEdit=require("./sync/typedEdit.js");Object.keys(_typedEdit).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_typedEdit[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _typedEdit[e]}})});var _wireBudget=require("./sync/wireBudget.js");Object.keys(_wireBudget).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_wireBudget[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _wireBudget[e]}})});var _wireForm=require("./sync/wireForm.js");Object.keys(_wireForm).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_wireForm[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _wireForm[e]}})});var _toolSyncAdapter=require("./sync/toolSyncAdapter.js");Object.keys(_toolSyncAdapter).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_toolSyncAdapter[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _toolSyncAdapter[e]}})});var _settingsSync=require("./sync/settingsSync.js");var _defineTool=require("./tools/defineTool.js");Object.keys(_defineTool).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_defineTool[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _defineTool[e]}})});var _toolActionRegistry=require("./sync/toolActionRegistry.js");Object.keys(_toolActionRegistry).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_toolActionRegistry[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _toolActionRegistry[e]}})});var _toolUiBridge=require("./sync/toolUiBridge.js");Object.keys(_toolUiBridge).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_toolUiBridge[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _toolUiBridge[e]}})});var _toolScreenHeader=require("./sync/toolScreenHeader.js");Object.keys(_toolScreenHeader).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_toolScreenHeader[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _toolScreenHeader[e]}})});var _index3=require("./utils/index.js");var _toolModules=require("./utils/toolModules.js");Object.keys(_toolModules).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_toolModules[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _toolModules[e]}})});var _browserNavigation=require("./utils/browserNavigation.js");var _snapshotProviderKit=require("./utils/snapshotProviderKit.js");var _stateTools=require("./utils/stateTools.js");var _index4=require("./utils/formatting/index.js");Object.keys(_index4).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_index4[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _index4[e]}})});var _index5=require("./utils/time/index.js");Object.keys(_index5).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_index5[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _index5[e]}})});var _typeHelpers=require("./utils/typeHelpers.js");var _index6=require("./icons/index.js");Object.keys(_index6).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_index6[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _index6[e]}})});var _index7=require("./clipboard/index.js");Object.keys(_index7).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_index7[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _index7[e]}})});var _index8=require("./logger/index.js");Object.keys(_index8).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_index8[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _index8[e]}})});var _index9=require("./settings/index.js");Object.keys(_index9).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_index9[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _index9[e]}})});var _index0=require("./storage/index.js");Object.keys(_index0).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_index0[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _index0[e]}})});var _index1=require("./hooks/index.js");var _JsModal=require("./JsModal");var _nightTheme=require("./ui/night/nightTheme.js");var _QrCodeView=require("./ui/qr/QrCodeView.js");var _primitives=require("./ui/night/primitives.js");var _gameUIColors=require("./ui/gameUI/constants/gameUIColors.js");var _macOSDesignSystemColors=require("./ui/gameUI/constants/macOSDesignSystemColors.js");var _EnvironmentIndicator=require("./env/EnvironmentIndicator");var _EnvironmentSelector=require("./env/EnvironmentSelector.js");var _EnvironmentSelectorInline=require("./env/EnvironmentSelectorInline");var _types=require("./types/types.js");var _index10=require("./context/index.js");var _index11=require("./history/index.js");Object.keys(_index11).forEach(function(e){if(e==="default"||e==="__esModule")return;if(Object.prototype.hasOwnProperty.call(_exportNames,e))return;if(e in exports&&exports[e]===_index11[e])return;Object.defineProperty(exports,e,{enumerable:true,get:function(){return _index11[e]}})});var _index12=require("./license/index.js");var _licenseModule=require("./license/licenseModule.js");var _AccountSetup=require("./license/AccountSetup");var _AccountSetupContent=require("./license/AccountSetupContent.js");
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.BuoyNeedsPlanCard=BuoyNeedsPlanCard;exports.BuoySignInCard=BuoySignInCard;exports.BuoyUpgradeSheet=BuoyUpgradeSheet;exports.useSignInState=useSignInState;var _react=require("react");var _reactNative=require("react-native");var _fonts=require("../ui/fonts.js");var _nightTheme=require("../ui/night/nightTheme.js");var _QrCodeView=require("../ui/qr/QrCodeView.js");var _licenseModule=require("./licenseModule.js");var _openPricing=require("./openPricing.js");var _jsxRuntime=require("react/jsx-runtime");const shortUrl=e=>e.replace(/^https?:\/\//,"");function useSignInState(){const[e,t]=(0,_react.useState)(()=>(0,_licenseModule.getSignInSession)()?.getStatus().state??"signed_out");(0,_react.useEffect)(()=>{const s=(0,_licenseModule.getSignInSession)();if(!s)return;const r=()=>t(s.getStatus().state);r();return s.subscribe(r)},[]);return e}function CardHeader({onClose:e}){return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.header,children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.brand,children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.brandDot}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.wordmark,children:"BUOY"})]}),(0,_jsxRuntime.jsx)(_reactNative.Pressable,{accessibilityRole:"button",accessibilityLabel:"Close sign-in",onPress:e,style:styles.close,testID:"buoy-signin-close",children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.closeText,children:"\u2715"})})]})}function BuoySignInCard({onClose:e,onNotConfigured:t,footer:s}){const[r,n]=(0,_react.useState)({kind:"starting"});const o=(0,_react.useRef)(null);const c=(0,_react.useRef)(e);const i=(0,_react.useRef)(t);c.current=e;i.current=t;const u=(0,_react.useCallback)(()=>{o.current?.abort();const a=(0,_licenseModule.getSignInSession)();if(!a?.signInWithCode){if(i.current)return i.current();n({kind:"error",message:"This version of @buoy-gg/license can't sign in with a code. Update it."});return}const d=new AbortController;o.current=d;n({kind:"starting"});a.signInWithCode(l=>n({kind:"waiting",prompt:l}),{signal:d.signal}).then(()=>{if(!d.signal.aborted)c.current()}).catch(l=>{if(d.signal.aborted)return;if(l?.code==="not_configured"&&i.current){i.current();return}n({kind:"error",message:l instanceof Error?l.message:"Sign-in did not work. Try again."})})},[]);(0,_react.useEffect)(()=>{u();return()=>o.current?.abort()},[u]);return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.card,testID:"buoy-code-signin",children:[(0,_jsxRuntime.jsx)(CardHeader,{onClose:e}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.title,children:"Sign in to Buoy"}),r.kind==="starting"?(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.center,children:(0,_jsxRuntime.jsx)(_reactNative.ActivityIndicator,{color:_nightTheme.night.color.accent})}):null,r.kind==="waiting"?(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.body,children:"Scan this with your phone's camera."}),(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.qr,testID:"buoy-signin-qr",children:(0,_jsxRuntime.jsx)(_QrCodeView.QrCodeView,{value:r.prompt.verificationUriComplete,size:196})}),(0,_jsxRuntime.jsxs)(_reactNative.Text,{style:styles.body,children:["Or go to"," ",(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.strong,children:shortUrl(r.prompt.verificationUri)})," ","and type:"]}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.code,selectable:true,testID:"buoy-signin-code",children:r.prompt.userCode}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.waiting,children:[(0,_jsxRuntime.jsx)(_reactNative.ActivityIndicator,{size:"small",color:_nightTheme.night.color.textSecondary}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.muted,children:"Waiting for you to allow it\u2026"})]})]}):null,r.kind==="error"?(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.body,testID:"buoy-signin-error",children:r.message}),(0,_jsxRuntime.jsx)(_reactNative.Pressable,{accessibilityRole:"button",onPress:u,style:({pressed:a})=>[styles.primary,a&&styles.primaryPressed],testID:"buoy-signin-retry",children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.primaryText,children:"Get a new code"})})]}):null,s]})}function BuoyNeedsPlanCard({onClose:e}){return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.card,testID:"buoy-signin-needs-plan",children:[(0,_jsxRuntime.jsx)(CardHeader,{onClose:e}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.title,children:"You're signed in"}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.body,children:"Buoy in this build needs a Pro or Business plan."}),(0,_jsxRuntime.jsx)(_reactNative.Pressable,{accessibilityRole:"button",onPress:()=>void(0,_licenseModule.getSignInSession)()?.signOut(),style:({pressed:t})=>[styles.primary,t&&styles.primaryPressed],testID:"buoy-signout",children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.primaryText,children:"Sign out"})})]})}function GetProCard({onClose:e}){const[t,s]=(0,_react.useState)(false);const[r,n]=(0,_react.useState)(null);const o=(0,_react.useRef)(true);(0,_react.useEffect)(()=>()=>{o.current=false},[]);const c=(0,_react.useCallback)(async()=>{s(true);n(null);try{await(0,_licenseModule.retryAccountAccess)()}catch{}if(!o.current)return;s(false);if((0,_licenseModule.isProNow)())e();else n("Still on Free. If you just paid, wait a minute and try again.")},[e]);return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.card,testID:"buoy-get-pro",children:[(0,_jsxRuntime.jsx)(CardHeader,{onClose:e}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.title,children:"Get Buoy Pro"}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.body,children:"This needs Pro. Scan to see the plans."}),(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.qr,testID:"buoy-get-pro-qr",children:(0,_jsxRuntime.jsx)(_QrCodeView.QrCodeView,{value:_openPricing.PRICING_URL,size:196})}),(0,_jsxRuntime.jsxs)(_reactNative.Text,{style:styles.body,children:["Or go to ",(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.strong,children:shortUrl(_openPricing.PRICING_URL)})]}),(0,_jsxRuntime.jsx)(_reactNative.Pressable,{accessibilityRole:"link",onPress:()=>(0,_openPricing.openPricing)(),style:({pressed:i})=>[styles.primary,i&&styles.primaryPressed],testID:"buoy-get-pro-open",children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.primaryText,children:"Open buoy.gg"})}),(0,_jsxRuntime.jsx)(_reactNative.Pressable,{accessibilityRole:"button",accessibilityState:{disabled:t,busy:t},disabled:t,onPress:c,style:({pressed:i})=>[styles.secondary,i&&styles.secondaryPressed],testID:"buoy-get-pro-check",children:t?(0,_jsxRuntime.jsx)(_reactNative.ActivityIndicator,{size:"small",color:_nightTheme.night.color.textSecondary}):(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.secondaryText,children:"I have Pro. Check again."})}),r?(0,_jsxRuntime.jsx)(_reactNative.Text,{accessibilityRole:"alert",style:styles.note,children:r}):null]})}function BuoyUpgradeSheet({visible:e,onClose:t}){const s=useSignInState();const[r,n]=(0,_react.useState)(false);(0,_react.useEffect)(()=>{if(!e)n(false)},[e]);if(!e)return null;const o=r||_openPricing.isWeb||s==="active";return(0,_jsxRuntime.jsx)(_reactNative.Modal,{visible:true,transparent:true,animationType:"fade",onRequestClose:t,children:(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.overlay,accessibilityViewIsModal:true,children:[(0,_jsxRuntime.jsx)(_reactNative.Pressable,{style:_reactNative.StyleSheet.absoluteFill,onPress:t,accessible:false}),o?(0,_jsxRuntime.jsx)(GetProCard,{onClose:t}):(0,_jsxRuntime.jsx)(BuoySignInCard,{onClose:t,onNotConfigured:()=>n(true),footer:(0,_jsxRuntime.jsx)(_reactNative.Pressable,{accessibilityRole:"button",onPress:()=>n(true),style:styles.footerLink,testID:"buoy-signin-see-plans",children:(0,_jsxRuntime.jsxs)(_reactNative.Text,{style:styles.muted,children:["No Pro plan yet? ",(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.link,children:"See plans"})]})})})]})})}const styles=_reactNative.StyleSheet.create({overlay:{flex:1,backgroundColor:"rgba(0, 0, 0, 0.65)",alignItems:"center",justifyContent:"center",padding:20},card:{width:"100%",maxWidth:368,backgroundColor:"#111315",borderColor:"#303437",borderWidth:1,borderRadius:20,paddingHorizontal:24,paddingTop:18,paddingBottom:24},header:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",marginBottom:16},brand:{flexDirection:"row",alignItems:"center",gap:8},brandDot:{width:6,height:6,borderRadius:3,backgroundColor:_nightTheme.night.color.accent},wordmark:{color:_nightTheme.night.color.text,fontSize:11,fontWeight:"800",letterSpacing:1.4,lineHeight:16},close:{width:28,height:28,borderRadius:8,alignItems:"center",justifyContent:"center"},closeText:{color:_nightTheme.night.color.textSecondary,fontSize:14},title:{color:_nightTheme.night.color.text,fontSize:20,fontWeight:"700",marginBottom:8},body:{color:_nightTheme.night.color.textSecondary,fontSize:14,lineHeight:20,marginTop:8},strong:{color:_nightTheme.night.color.text,fontWeight:"600"},muted:{color:_nightTheme.night.color.textSecondary,fontSize:13},link:{color:_nightTheme.night.color.accent,fontWeight:"600"},note:{color:_nightTheme.night.color.textSecondary,fontSize:13,lineHeight:18,marginTop:12,textAlign:"center"},center:{paddingVertical:32,alignItems:"center"},qr:{alignSelf:"center",marginTop:16,marginBottom:8,borderRadius:12,overflow:"hidden"},code:{color:_nightTheme.night.color.text,fontFamily:_fonts.monoFont,fontSize:30,fontWeight:"700",letterSpacing:4,textAlign:"center",marginTop:12},waiting:{flexDirection:"row",alignItems:"center",justifyContent:"center",gap:8,marginTop:16},footerLink:{alignItems:"center",marginTop:20,minHeight:32,justifyContent:"center"},primary:{marginTop:20,minHeight:44,borderRadius:12,backgroundColor:_nightTheme.night.color.accent,alignItems:"center",justifyContent:"center"},primaryPressed:{backgroundColor:_nightTheme.night.color.accentPressed},primaryText:{color:_nightTheme.night.color.onAccent,fontSize:15,fontWeight:"600"},secondary:{marginTop:10,minHeight:44,borderRadius:12,borderWidth:1,borderColor:"#303437",alignItems:"center",justifyContent:"center"},secondaryPressed:{backgroundColor:"#1A1D1F"},secondaryText:{color:_nightTheme.night.color.text,fontSize:15,fontWeight:"600"}});
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.WEEKEND_PASS_LABEL=exports.UpgradePrompt=exports.UpgradeModal=exports.ProUpgradeModal=exports.ProFeatureBanner=exports.ProBadge=exports.FeatureGate=void 0;exports.useFeatureGate=useFeatureGate;var _react=_interopRequireWildcard(require("react"));var _reactNative=require("react-native");var _gameUIColors=require("../ui/gameUI/constants/gameUIColors.js");var _lucideIcons=require("../icons/lucide-icons.js");var _LicenseEntryModal=require("./LicenseEntryModal.js");var _openPricing=require("./openPricing.js");var _license=require("@buoy-gg/license");var _jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(r,o){if("function"==typeof WeakMap)var t=new WeakMap,i=new WeakMap;return(_interopRequireWildcard=function(e,a){if(!a&&e&&e.__esModule)return e;var n,s,c={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return c;if(n=a?i:t){if(n.has(e))return n.get(e);n.set(e,c)}for(const l in e)"default"!==l&&{}.hasOwnProperty.call(e,l)&&((s=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,l))&&(s.get||s.set)?n(c,l,s):c[l]=e[l]);return c})(r,o)}const WEEKEND_PASS_LABEL=exports.WEEKEND_PASS_LABEL="WEEKEND PASS";const WEEKEND_VIOLET="#BF5AF2";const ProBadge=({style:r})=>{const{reason:o}=(0,_license.useProAccess)();const t=o==="weekend";return(0,_jsxRuntime.jsx)(_reactNative.View,{style:[styles.proBadge,t&&styles.weekendBadge,r],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[styles.proBadgeText,t&&styles.weekendBadgeText],children:t?WEEKEND_PASS_LABEL:"PRO"})})};exports.ProBadge=ProBadge;const ProUpgradeModal=({visible:r,onClose:o,featureName:t="This feature"})=>{return(0,_jsxRuntime.jsx)(UpgradeModal,{visible:r,onClose:o,featureName:t,description:`${t} requires a Pro subscription.`})};exports.ProUpgradeModal=ProUpgradeModal;const UpgradePrompt=({featureName:r,onUpgradePress:o,compact:t=false})=>{const[i,e]=(0,_react.useState)(false);const a=(0,_react.useCallback)(()=>{if(o){o()}else if(_openPricing.isWeb){(0,_openPricing.openPricing)()}else{e(true)}},[o]);const n=(0,_react.useCallback)(()=>{e(false)},[]);if(t){return(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsxs)(_reactNative.TouchableOpacity,{style:styles.compactContainer,onPress:a,activeOpacity:.8,children:[(0,_jsxRuntime.jsx)(_lucideIcons.LockIcon,{size:14,color:_gameUIColors.gameUIColors.warning}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.compactText,children:"PRO"})]}),(0,_jsxRuntime.jsx)(_LicenseEntryModal.LicenseEntryModal,{visible:i,onClose:n})]})}return(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.container,children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.iconContainer,children:(0,_jsxRuntime.jsx)(_lucideIcons.LockIcon,{size:24,color:_gameUIColors.gameUIColors.warning})}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.title,children:"Pro Feature"}),r&&(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.featureName,children:r}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.description,children:"Upgrade to React Buoy Pro to unlock this feature and more."}),(0,_jsxRuntime.jsx)(_reactNative.TouchableOpacity,{style:styles.upgradeButton,onPress:a,activeOpacity:.8,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.upgradeButtonText,children:"Upgrade to Pro"})})]}),(0,_jsxRuntime.jsx)(_LicenseEntryModal.LicenseEntryModal,{visible:i,onClose:n})]})};exports.UpgradePrompt=UpgradePrompt;const FeatureGate=({children:r,featureName:o,fallback:t,previewMode:i=false,onUpgradePress:e})=>{const a=(0,_license.useIsPro)();if(a){return(0,_jsxRuntime.jsx)(_jsxRuntime.Fragment,{children:r})}if(i){return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.previewContainer,pointerEvents:"none",children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.previewContent,children:r}),(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.previewOverlay,children:(0,_jsxRuntime.jsx)(UpgradePrompt,{featureName:o,onUpgradePress:e,compact:true})})]})}if(t){return(0,_jsxRuntime.jsx)(_jsxRuntime.Fragment,{children:t})}return(0,_jsxRuntime.jsx)(UpgradePrompt,{featureName:o,onUpgradePress:e})};exports.FeatureGate=FeatureGate;function useFeatureGate(){const{isPro:r,isLicensed:o,isWeekendFree:t,reason:i}=(0,_license.useProAccess)();const e=()=>{(0,_openPricing.openPricing)("https://buoy.gg/pro")};return{hasAccess:r,isPro:r,isLicensed:o,isWeekendFree:t,reason:i,showUpgrade:e}}const ProFeatureBanner=({featureName:r="Pro Feature",description:o,benefits:t})=>{const[i,e]=(0,_react.useState)(false);const a=(0,_license.useLicense)();const n=(0,_react.useCallback)(()=>{if(_openPricing.isWeb){(0,_openPricing.openPricing)();return}e(true)},[]);const s=(0,_react.useCallback)(()=>{e(false)},[]);return(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.bannerContainer,children:[(0,_jsxRuntime.jsx)(ProBadge,{style:styles.bannerProBadge}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.bannerHeader,children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.bannerIconContainer,children:(0,_jsxRuntime.jsx)(_lucideIcons.Zap,{size:16,color:_gameUIColors.buoyColors.primary})}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.bannerTitleContainer,children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.bannerTitle,children:r}),o&&(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.bannerDescription,children:o})]})]}),t&&t.length>0&&(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.benefitsList,children:t.map((c,l)=>(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.benefitItem,children:[(0,_jsxRuntime.jsx)(_lucideIcons.Check,{size:14,color:_gameUIColors.buoyColors.success}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.benefitText,children:c})]},l))}),(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.bannerActions,children:(0,_jsxRuntime.jsx)(_reactNative.TouchableOpacity,{style:styles.bannerUpgradeButton,onPress:n,activeOpacity:.8,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.bannerUpgradeButtonText,children:"Upgrade to Pro"})})})]}),(0,_jsxRuntime.jsx)(_LicenseEntryModal.LicenseEntryModal,{visible:i,onClose:s})]})};exports.ProFeatureBanner=ProFeatureBanner;const UpgradeModal=({visible:r,onClose:o,featureName:t="This Feature",description:i,benefits:e})=>{const a=e&&e.length>0;const[n,s]=(0,_react.useState)(false);const c=(0,_license.useLicense)();const l=(0,_react.useCallback)(()=>{if(_openPricing.isWeb){(0,_openPricing.openPricing)();return}s(true)},[]);const d=(0,_react.useCallback)(()=>{s(false)},[]);const u=(0,_react.useCallback)(()=>{s(false);o()},[o]);if(!r)return null;return(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsx)(_reactNative.Modal,{visible:r&&!n,transparent:true,animationType:"fade",onRequestClose:o,children:(0,_jsxRuntime.jsx)(_reactNative.TouchableOpacity,{style:styles.modalOverlay,onPress:o,activeOpacity:1,children:(0,_jsxRuntime.jsxs)(_reactNative.TouchableOpacity,{style:styles.modalContent,activeOpacity:1,onPress:()=>{},testID:"buoy-upgrade-modal",accessibilityLabel:`Unlock ${t}`,children:[(0,_jsxRuntime.jsx)(_reactNative.TouchableOpacity,{style:styles.modalCloseButton,onPress:o,activeOpacity:.7,testID:"buoy-upgrade-modal-close",accessibilityRole:"button",accessibilityLabel:"Close upgrade prompt",children:(0,_jsxRuntime.jsx)(_lucideIcons.X,{size:18,color:_gameUIColors.buoyColors.textMuted})}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.modalHeader,children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.modalIconContainer,children:(0,_jsxRuntime.jsx)(_lucideIcons.Zap,{size:28,color:_gameUIColors.buoyColors.primary})}),(0,_jsxRuntime.jsxs)(_reactNative.Text,{style:styles.modalTitle,children:["Unlock ",t]}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.modalSubtitle,children:i||"Upgrade to React Buoy Pro to access this feature and unlock the full power of your debugging toolkit."})]}),a&&(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.modalBenefits,children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.modalBenefitsTitle,children:"What you get with Pro:"}),e.map((g,p)=>(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.modalBenefitItem,children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.modalBenefitIcon,children:(0,_jsxRuntime.jsx)(_lucideIcons.Check,{size:14,color:_gameUIColors.buoyColors.success})}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.modalBenefitText,children:g})]},p))]}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[styles.modalFeatureRow,!a&&styles.modalFeatureRowNoBenefits],children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.modalFeatureItem,children:[(0,_jsxRuntime.jsx)(_lucideIcons.Shield,{size:16,color:_gameUIColors.buoyColors.textMuted}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.modalFeatureText,children:"14-day trial"})]}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.modalFeatureItem,children:[(0,_jsxRuntime.jsx)(_lucideIcons.Clock,{size:16,color:_gameUIColors.buoyColors.textMuted}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.modalFeatureText,children:"Cancel anytime"})]})]}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.modalActions,children:[(0,_jsxRuntime.jsx)(_reactNative.TouchableOpacity,{style:styles.modalUpgradeButton,onPress:l,activeOpacity:.8,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.modalUpgradeButtonText,children:"Upgrade to Pro"})}),(0,_jsxRuntime.jsx)(_reactNative.TouchableOpacity,{style:styles.modalDismissButton,onPress:o,activeOpacity:.8,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.modalDismissButtonText,children:"Close"})})]})]})})}),(0,_jsxRuntime.jsx)(_LicenseEntryModal.LicenseEntryModal,{visible:n,onClose:d,onSuccess:u})]})};exports.UpgradeModal=UpgradeModal;const styles=_reactNative.StyleSheet.create({proBadge:{backgroundColor:_gameUIColors.buoyColors.primary+"15",borderRadius:4,borderWidth:1,borderColor:_gameUIColors.buoyColors.primary+"40",paddingHorizontal:6,paddingVertical:2},proBadgeText:{fontSize:10,fontWeight:"700",color:_gameUIColors.buoyColors.primary,letterSpacing:.5},weekendBadge:{backgroundColor:WEEKEND_VIOLET+"1A",borderColor:WEEKEND_VIOLET+"55"},weekendBadgeText:{color:WEEKEND_VIOLET,letterSpacing:.4},container:{padding:20,alignItems:"center",justifyContent:"center",backgroundColor:_gameUIColors.gameUIColors.panel,borderRadius:12,borderWidth:1,borderColor:_gameUIColors.gameUIColors.warning+"40"},iconContainer:{width:48,height:48,borderRadius:24,backgroundColor:_gameUIColors.gameUIColors.warning+"20",alignItems:"center",justifyContent:"center",marginBottom:12},title:{fontSize:16,fontWeight:"700",color:_gameUIColors.gameUIColors.text,marginBottom:4},featureName:{fontSize:13,fontWeight:"600",color:_gameUIColors.gameUIColors.warning,marginBottom:8},description:{fontSize:12,color:_gameUIColors.gameUIColors.muted,textAlign:"center",marginBottom:16,lineHeight:18},upgradeButton:{backgroundColor:_gameUIColors.gameUIColors.warning,paddingHorizontal:20,paddingVertical:10,borderRadius:8},upgradeButtonText:{fontSize:13,fontWeight:"700",color:"#000"},compactContainer:{flexDirection:"row",alignItems:"center",gap:4,backgroundColor:_gameUIColors.gameUIColors.warning+"20",paddingHorizontal:8,paddingVertical:4,borderRadius:4,borderWidth:1,borderColor:_gameUIColors.gameUIColors.warning+"40"},compactText:{fontSize:10,fontWeight:"700",color:_gameUIColors.gameUIColors.warning},previewContainer:{position:"relative"},previewContent:{opacity:.3},previewOverlay:{position:"absolute",top:0,left:0,right:0,bottom:0,alignItems:"center",justifyContent:"center",backgroundColor:"rgba(0, 0, 0, 0.5)",borderRadius:8},bannerContainer:{position:"relative",backgroundColor:_gameUIColors.buoyColors.card,borderRadius:12,borderWidth:1,borderColor:_gameUIColors.buoyColors.border,padding:14,marginBottom:12},bannerProBadge:{position:"absolute",top:10,right:10},bannerHeader:{flexDirection:"row",alignItems:"flex-start",gap:12},bannerIconContainer:{width:36,height:36,borderRadius:10,backgroundColor:_gameUIColors.buoyColors.primary+"20",alignItems:"center",justifyContent:"center"},bannerTitleContainer:{flex:1},bannerTitle:{fontSize:14,fontWeight:"600",color:_gameUIColors.buoyColors.text,marginBottom:2},bannerDescription:{fontSize:12,color:_gameUIColors.buoyColors.textMuted,lineHeight:17},benefitsList:{marginTop:12,gap:8},benefitItem:{flexDirection:"row",alignItems:"center",gap:10},benefitText:{fontSize:13,color:_gameUIColors.buoyColors.text,flex:1},bannerActions:{flexDirection:"row",alignItems:"center",gap:16,marginTop:14},bannerUpgradeButton:{backgroundColor:_gameUIColors.buoyColors.primary,paddingHorizontal:16,paddingVertical:10,borderRadius:8},bannerUpgradeButtonText:{fontSize:13,fontWeight:"600",color:"#FFFFFF"},modalOverlay:{flex:1,backgroundColor:"rgba(0, 0, 0, 0.75)",alignItems:"center",justifyContent:"center",padding:20},modalContent:{backgroundColor:_gameUIColors.buoyColors.card,borderRadius:16,borderWidth:1,borderColor:_gameUIColors.buoyColors.primary+"60",padding:24,maxWidth:340,width:"100%",position:"relative",shadowColor:_gameUIColors.buoyColors.primary,shadowOffset:{width:0,height:0},shadowOpacity:.4,shadowRadius:20,elevation:10},modalCloseButton:{position:"absolute",top:12,right:12,width:32,height:32,borderRadius:16,backgroundColor:"rgba(0, 0, 0, 0.4)",alignItems:"center",justifyContent:"center",zIndex:1},modalHeader:{alignItems:"center",marginBottom:20},modalIconContainer:{width:56,height:56,borderRadius:28,backgroundColor:_gameUIColors.buoyColors.primary+"20",alignItems:"center",justifyContent:"center",marginBottom:12},modalTitle:{fontSize:20,fontWeight:"700",color:_gameUIColors.buoyColors.text,textAlign:"center",marginBottom:8},modalSubtitle:{fontSize:13,color:_gameUIColors.buoyColors.textMuted,textAlign:"center",lineHeight:18},modalBenefits:{marginBottom:16},modalBenefitsTitle:{fontSize:12,fontWeight:"600",color:_gameUIColors.buoyColors.textMuted,textTransform:"uppercase",letterSpacing:.5,marginBottom:10},modalBenefitItem:{flexDirection:"row",alignItems:"flex-start",gap:10,marginBottom:8},modalBenefitIcon:{width:22,height:22,borderRadius:11,backgroundColor:_gameUIColors.buoyColors.success+"20",alignItems:"center",justifyContent:"center",marginTop:1},modalBenefitText:{fontSize:13,color:_gameUIColors.buoyColors.text,flex:1,lineHeight:18},modalFeatureRow:{flexDirection:"row",justifyContent:"center",gap:20,marginBottom:20,paddingTop:12,borderTopWidth:1,borderTopColor:_gameUIColors.buoyColors.border},modalFeatureRowNoBenefits:{marginTop:8,borderTopWidth:0,paddingTop:0},modalFeatureItem:{flexDirection:"row",alignItems:"center",gap:6},modalFeatureText:{fontSize:12,color:_gameUIColors.buoyColors.textMuted},modalActions:{alignItems:"center",gap:12},modalUpgradeButton:{backgroundColor:_gameUIColors.buoyColors.primary,paddingHorizontal:24,paddingVertical:12,borderRadius:8,width:"100%",alignItems:"center"},modalUpgradeButtonText:{fontSize:14,fontWeight:"700",color:"#FFFFFF"},modalDismissButton:{paddingVertical:12,width:"100%",alignItems:"center"},modalDismissButtonText:{fontSize:13,fontWeight:"500",color:_gameUIColors.buoyColors.textMuted}});
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.WEEKEND_PASS_LABEL=exports.UpgradePrompt=exports.UpgradeModal=exports.ProUpgradeModal=exports.ProFeatureBanner=exports.ProBadge=exports.FeatureGate=void 0;exports.useFeatureGate=useFeatureGate;var _react=_interopRequireWildcard(require("react"));var _reactNative=require("react-native");var _gameUIColors=require("../ui/gameUI/constants/gameUIColors.js");var _lucideIcons=require("../icons/lucide-icons.js");var _BuoyUpgradeSheet=require("./BuoyUpgradeSheet.js");var _openPricing=require("./openPricing.js");var _license=require("@buoy-gg/license");var _jsxRuntime=require("react/jsx-runtime");function _interopRequireWildcard(r,o){if("function"==typeof WeakMap)var t=new WeakMap,i=new WeakMap;return(_interopRequireWildcard=function(e,a){if(!a&&e&&e.__esModule)return e;var n,l,d={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return d;if(n=a?i:t){if(n.has(e))return n.get(e);n.set(e,d)}for(const s in e)"default"!==s&&{}.hasOwnProperty.call(e,s)&&((l=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,s))&&(l.get||l.set)?n(d,s,l):d[s]=e[s]);return d})(r,o)}const WEEKEND_PASS_LABEL=exports.WEEKEND_PASS_LABEL="WEEKEND PASS";const WEEKEND_VIOLET="#BF5AF2";const ProBadge=({style:r})=>{const{reason:o}=(0,_license.useProAccess)();const t=o==="weekend";return(0,_jsxRuntime.jsx)(_reactNative.View,{style:[styles.proBadge,t&&styles.weekendBadge,r],children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:[styles.proBadgeText,t&&styles.weekendBadgeText],children:t?WEEKEND_PASS_LABEL:"PRO"})})};exports.ProBadge=ProBadge;const ProUpgradeModal=({visible:r,onClose:o,featureName:t="This feature"})=>{return(0,_jsxRuntime.jsx)(UpgradeModal,{visible:r,onClose:o,featureName:t,description:`${t} requires a Pro subscription.`})};exports.ProUpgradeModal=ProUpgradeModal;const UpgradePrompt=({featureName:r,onUpgradePress:o,compact:t=false})=>{const[i,e]=(0,_react.useState)(false);const a=(0,_react.useCallback)(()=>{if(o){o()}else if(_openPricing.isWeb){(0,_openPricing.openPricing)()}else{e(true)}},[o]);const n=(0,_react.useCallback)(()=>{e(false)},[]);if(t){return(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsxs)(_reactNative.TouchableOpacity,{style:styles.compactContainer,onPress:a,activeOpacity:.8,children:[(0,_jsxRuntime.jsx)(_lucideIcons.LockIcon,{size:14,color:_gameUIColors.gameUIColors.warning}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.compactText,children:"PRO"})]}),(0,_jsxRuntime.jsx)(_BuoyUpgradeSheet.BuoyUpgradeSheet,{visible:i,onClose:n})]})}return(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.container,children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.iconContainer,children:(0,_jsxRuntime.jsx)(_lucideIcons.LockIcon,{size:24,color:_gameUIColors.gameUIColors.warning})}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.title,children:"Pro Feature"}),r&&(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.featureName,children:r}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.description,children:"Upgrade to React Buoy Pro to unlock this feature and more."}),(0,_jsxRuntime.jsx)(_reactNative.TouchableOpacity,{style:styles.upgradeButton,onPress:a,activeOpacity:.8,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.upgradeButtonText,children:"Upgrade to Pro"})})]}),(0,_jsxRuntime.jsx)(_BuoyUpgradeSheet.BuoyUpgradeSheet,{visible:i,onClose:n})]})};exports.UpgradePrompt=UpgradePrompt;const FeatureGate=({children:r,featureName:o,fallback:t,previewMode:i=false,onUpgradePress:e})=>{const a=(0,_license.useIsPro)();if(a){return(0,_jsxRuntime.jsx)(_jsxRuntime.Fragment,{children:r})}if(i){return(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.previewContainer,pointerEvents:"none",children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.previewContent,children:r}),(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.previewOverlay,children:(0,_jsxRuntime.jsx)(UpgradePrompt,{featureName:o,onUpgradePress:e,compact:true})})]})}if(t){return(0,_jsxRuntime.jsx)(_jsxRuntime.Fragment,{children:t})}return(0,_jsxRuntime.jsx)(UpgradePrompt,{featureName:o,onUpgradePress:e})};exports.FeatureGate=FeatureGate;function useFeatureGate(){const{isPro:r,isLicensed:o,isWeekendFree:t,reason:i}=(0,_license.useProAccess)();const e=()=>{(0,_openPricing.openPricing)("https://buoy.gg/pro")};return{hasAccess:r,isPro:r,isLicensed:o,isWeekendFree:t,reason:i,showUpgrade:e}}const ProFeatureBanner=({featureName:r="Pro Feature",description:o,benefits:t})=>{const[i,e]=(0,_react.useState)(false);const a=(0,_license.useLicense)();const n=(0,_react.useCallback)(()=>{if(_openPricing.isWeb){(0,_openPricing.openPricing)();return}e(true)},[]);const l=(0,_react.useCallback)(()=>{e(false)},[]);return(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.bannerContainer,children:[(0,_jsxRuntime.jsx)(ProBadge,{style:styles.bannerProBadge}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.bannerHeader,children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.bannerIconContainer,children:(0,_jsxRuntime.jsx)(_lucideIcons.Zap,{size:16,color:_gameUIColors.buoyColors.primary})}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.bannerTitleContainer,children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.bannerTitle,children:r}),o&&(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.bannerDescription,children:o})]})]}),t&&t.length>0&&(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.benefitsList,children:t.map((d,s)=>(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.benefitItem,children:[(0,_jsxRuntime.jsx)(_lucideIcons.Check,{size:14,color:_gameUIColors.buoyColors.success}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.benefitText,children:d})]},s))}),(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.bannerActions,children:(0,_jsxRuntime.jsx)(_reactNative.TouchableOpacity,{style:styles.bannerUpgradeButton,onPress:n,activeOpacity:.8,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.bannerUpgradeButtonText,children:"Upgrade to Pro"})})})]}),(0,_jsxRuntime.jsx)(_BuoyUpgradeSheet.BuoyUpgradeSheet,{visible:i,onClose:l})]})};exports.ProFeatureBanner=ProFeatureBanner;const UpgradeModal=({visible:r,onClose:o,featureName:t="This Feature",description:i,benefits:e})=>{const a=e&&e.length>0;const[n,l]=(0,_react.useState)(false);const d=(0,_license.useLicense)();const s=(0,_react.useCallback)(()=>{if(_openPricing.isWeb){(0,_openPricing.openPricing)();return}l(true)},[]);const c=(0,_react.useCallback)(()=>{l(false)},[]);if(!r)return null;return(0,_jsxRuntime.jsxs)(_jsxRuntime.Fragment,{children:[(0,_jsxRuntime.jsx)(_reactNative.Modal,{visible:r&&!n,transparent:true,animationType:"fade",onRequestClose:o,children:(0,_jsxRuntime.jsx)(_reactNative.TouchableOpacity,{style:styles.modalOverlay,onPress:o,activeOpacity:1,children:(0,_jsxRuntime.jsxs)(_reactNative.TouchableOpacity,{style:styles.modalContent,activeOpacity:1,onPress:()=>{},testID:"buoy-upgrade-modal",accessibilityLabel:`Unlock ${t}`,children:[(0,_jsxRuntime.jsx)(_reactNative.TouchableOpacity,{style:styles.modalCloseButton,onPress:o,activeOpacity:.7,testID:"buoy-upgrade-modal-close",accessibilityRole:"button",accessibilityLabel:"Close upgrade prompt",children:(0,_jsxRuntime.jsx)(_lucideIcons.X,{size:18,color:_gameUIColors.buoyColors.textMuted})}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.modalHeader,children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.modalIconContainer,children:(0,_jsxRuntime.jsx)(_lucideIcons.Zap,{size:28,color:_gameUIColors.buoyColors.primary})}),(0,_jsxRuntime.jsxs)(_reactNative.Text,{style:styles.modalTitle,children:["Unlock ",t]}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.modalSubtitle,children:i||"Upgrade to React Buoy Pro to access this feature and unlock the full power of your debugging toolkit."})]}),a&&(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.modalBenefits,children:[(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.modalBenefitsTitle,children:"What you get with Pro:"}),e.map((u,g)=>(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.modalBenefitItem,children:[(0,_jsxRuntime.jsx)(_reactNative.View,{style:styles.modalBenefitIcon,children:(0,_jsxRuntime.jsx)(_lucideIcons.Check,{size:14,color:_gameUIColors.buoyColors.success})}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.modalBenefitText,children:u})]},g))]}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:[styles.modalFeatureRow,!a&&styles.modalFeatureRowNoBenefits],children:[(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.modalFeatureItem,children:[(0,_jsxRuntime.jsx)(_lucideIcons.Shield,{size:16,color:_gameUIColors.buoyColors.textMuted}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.modalFeatureText,children:"14-day trial"})]}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.modalFeatureItem,children:[(0,_jsxRuntime.jsx)(_lucideIcons.Clock,{size:16,color:_gameUIColors.buoyColors.textMuted}),(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.modalFeatureText,children:"Cancel anytime"})]})]}),(0,_jsxRuntime.jsxs)(_reactNative.View,{style:styles.modalActions,children:[(0,_jsxRuntime.jsx)(_reactNative.TouchableOpacity,{style:styles.modalUpgradeButton,onPress:s,activeOpacity:.8,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.modalUpgradeButtonText,children:"Upgrade to Pro"})}),(0,_jsxRuntime.jsx)(_reactNative.TouchableOpacity,{style:styles.modalDismissButton,onPress:o,activeOpacity:.8,children:(0,_jsxRuntime.jsx)(_reactNative.Text,{style:styles.modalDismissButtonText,children:"Close"})})]})]})})}),(0,_jsxRuntime.jsx)(_BuoyUpgradeSheet.BuoyUpgradeSheet,{visible:n,onClose:c})]})};exports.UpgradeModal=UpgradeModal;const styles=_reactNative.StyleSheet.create({proBadge:{backgroundColor:_gameUIColors.buoyColors.primary+"15",borderRadius:4,borderWidth:1,borderColor:_gameUIColors.buoyColors.primary+"40",paddingHorizontal:6,paddingVertical:2},proBadgeText:{fontSize:10,fontWeight:"700",color:_gameUIColors.buoyColors.primary,letterSpacing:.5},weekendBadge:{backgroundColor:WEEKEND_VIOLET+"1A",borderColor:WEEKEND_VIOLET+"55"},weekendBadgeText:{color:WEEKEND_VIOLET,letterSpacing:.4},container:{padding:20,alignItems:"center",justifyContent:"center",backgroundColor:_gameUIColors.gameUIColors.panel,borderRadius:12,borderWidth:1,borderColor:_gameUIColors.gameUIColors.warning+"40"},iconContainer:{width:48,height:48,borderRadius:24,backgroundColor:_gameUIColors.gameUIColors.warning+"20",alignItems:"center",justifyContent:"center",marginBottom:12},title:{fontSize:16,fontWeight:"700",color:_gameUIColors.gameUIColors.text,marginBottom:4},featureName:{fontSize:13,fontWeight:"600",color:_gameUIColors.gameUIColors.warning,marginBottom:8},description:{fontSize:12,color:_gameUIColors.gameUIColors.muted,textAlign:"center",marginBottom:16,lineHeight:18},upgradeButton:{backgroundColor:_gameUIColors.gameUIColors.warning,paddingHorizontal:20,paddingVertical:10,borderRadius:8},upgradeButtonText:{fontSize:13,fontWeight:"700",color:"#000"},compactContainer:{flexDirection:"row",alignItems:"center",gap:4,backgroundColor:_gameUIColors.gameUIColors.warning+"20",paddingHorizontal:8,paddingVertical:4,borderRadius:4,borderWidth:1,borderColor:_gameUIColors.gameUIColors.warning+"40"},compactText:{fontSize:10,fontWeight:"700",color:_gameUIColors.gameUIColors.warning},previewContainer:{position:"relative"},previewContent:{opacity:.3},previewOverlay:{position:"absolute",top:0,left:0,right:0,bottom:0,alignItems:"center",justifyContent:"center",backgroundColor:"rgba(0, 0, 0, 0.5)",borderRadius:8},bannerContainer:{position:"relative",backgroundColor:_gameUIColors.buoyColors.card,borderRadius:12,borderWidth:1,borderColor:_gameUIColors.buoyColors.border,padding:14,marginBottom:12},bannerProBadge:{position:"absolute",top:10,right:10},bannerHeader:{flexDirection:"row",alignItems:"flex-start",gap:12},bannerIconContainer:{width:36,height:36,borderRadius:10,backgroundColor:_gameUIColors.buoyColors.primary+"20",alignItems:"center",justifyContent:"center"},bannerTitleContainer:{flex:1},bannerTitle:{fontSize:14,fontWeight:"600",color:_gameUIColors.buoyColors.text,marginBottom:2},bannerDescription:{fontSize:12,color:_gameUIColors.buoyColors.textMuted,lineHeight:17},benefitsList:{marginTop:12,gap:8},benefitItem:{flexDirection:"row",alignItems:"center",gap:10},benefitText:{fontSize:13,color:_gameUIColors.buoyColors.text,flex:1},bannerActions:{flexDirection:"row",alignItems:"center",gap:16,marginTop:14},bannerUpgradeButton:{backgroundColor:_gameUIColors.buoyColors.primary,paddingHorizontal:16,paddingVertical:10,borderRadius:8},bannerUpgradeButtonText:{fontSize:13,fontWeight:"600",color:"#FFFFFF"},modalOverlay:{flex:1,backgroundColor:"rgba(0, 0, 0, 0.75)",alignItems:"center",justifyContent:"center",padding:20},modalContent:{backgroundColor:_gameUIColors.buoyColors.card,borderRadius:16,borderWidth:1,borderColor:_gameUIColors.buoyColors.primary+"60",padding:24,maxWidth:340,width:"100%",position:"relative",shadowColor:_gameUIColors.buoyColors.primary,shadowOffset:{width:0,height:0},shadowOpacity:.4,shadowRadius:20,elevation:10},modalCloseButton:{position:"absolute",top:12,right:12,width:32,height:32,borderRadius:16,backgroundColor:"rgba(0, 0, 0, 0.4)",alignItems:"center",justifyContent:"center",zIndex:1},modalHeader:{alignItems:"center",marginBottom:20},modalIconContainer:{width:56,height:56,borderRadius:28,backgroundColor:_gameUIColors.buoyColors.primary+"20",alignItems:"center",justifyContent:"center",marginBottom:12},modalTitle:{fontSize:20,fontWeight:"700",color:_gameUIColors.buoyColors.text,textAlign:"center",marginBottom:8},modalSubtitle:{fontSize:13,color:_gameUIColors.buoyColors.textMuted,textAlign:"center",lineHeight:18},modalBenefits:{marginBottom:16},modalBenefitsTitle:{fontSize:12,fontWeight:"600",color:_gameUIColors.buoyColors.textMuted,textTransform:"uppercase",letterSpacing:.5,marginBottom:10},modalBenefitItem:{flexDirection:"row",alignItems:"flex-start",gap:10,marginBottom:8},modalBenefitIcon:{width:22,height:22,borderRadius:11,backgroundColor:_gameUIColors.buoyColors.success+"20",alignItems:"center",justifyContent:"center",marginTop:1},modalBenefitText:{fontSize:13,color:_gameUIColors.buoyColors.text,flex:1,lineHeight:18},modalFeatureRow:{flexDirection:"row",justifyContent:"center",gap:20,marginBottom:20,paddingTop:12,borderTopWidth:1,borderTopColor:_gameUIColors.buoyColors.border},modalFeatureRowNoBenefits:{marginTop:8,borderTopWidth:0,paddingTop:0},modalFeatureItem:{flexDirection:"row",alignItems:"center",gap:6},modalFeatureText:{fontSize:12,color:_gameUIColors.buoyColors.textMuted},modalActions:{alignItems:"center",gap:12},modalUpgradeButton:{backgroundColor:_gameUIColors.buoyColors.primary,paddingHorizontal:24,paddingVertical:12,borderRadius:8,width:"100%",alignItems:"center"},modalUpgradeButtonText:{fontSize:14,fontWeight:"700",color:"#FFFFFF"},modalDismissButton:{paddingVertical:12,width:"100%",alignItems:"center"},modalDismissButtonText:{fontSize:13,fontWeight:"500",color:_gameUIColors.buoyColors.textMuted}});
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"FeatureGate",{enumerable:true,get:function(){return _FeatureGate.FeatureGate}});Object.defineProperty(exports,"FreeAccountPrompt",{enumerable:true,get:function(){return _FreeAccountPrompt.FreeAccountPrompt}});Object.defineProperty(exports,"LOGIN_COMMAND",{enumerable:true,get:function(){return _FreeAccountPrompt.LOGIN_COMMAND}});Object.defineProperty(exports,"LicenseEntryModal",{enumerable:true,get:function(){return _LicenseEntryModal.LicenseEntryModal}});Object.defineProperty(exports,"ProBadge",{enumerable:true,get:function(){return _FeatureGate.ProBadge}});Object.defineProperty(exports,"ProFeatureBanner",{enumerable:true,get:function(){return _FeatureGate.ProFeatureBanner}});Object.defineProperty(exports,"ProUpgradeModal",{enumerable:true,get:function(){return _FeatureGate.ProUpgradeModal}});Object.defineProperty(exports,"TIER_LIMITS",{enumerable:true,get:function(){return _tierLimits.TIER_LIMITS}});Object.defineProperty(exports,"UpgradeModal",{enumerable:true,get:function(){return _FeatureGate.UpgradeModal}});Object.defineProperty(exports,"UpgradePrompt",{enumerable:true,get:function(){return _FeatureGate.UpgradePrompt}});Object.defineProperty(exports,"getUseIsPro",{enumerable:true,get:function(){return _licenseModule.getUseIsPro}});Object.defineProperty(exports,"getUseLicense",{enumerable:true,get:function(){return _licenseModule.getUseLicense}});Object.defineProperty(exports,"getUseTier",{enumerable:true,get:function(){return _licenseModule.getUseTier}});Object.defineProperty(exports,"resolveEffectiveTier",{enumerable:true,get:function(){return _tierLimits.resolveEffectiveTier}});Object.defineProperty(exports,"signOutOfBuoy",{enumerable:true,get:function(){return _licenseModule.signOutOfBuoy}});Object.defineProperty(exports,"useFeatureGate",{enumerable:true,get:function(){return _FeatureGate.useFeatureGate}});Object.defineProperty(exports,"useLimit",{enumerable:true,get:function(){return _tierLimits.useLimit}});var _FeatureGate=require("./FeatureGate.js");var _LicenseEntryModal=require("./LicenseEntryModal.js");var _FreeAccountPrompt=require("./FreeAccountPrompt.js");var _licenseModule=require("./licenseModule.js");var _tierLimits=require("./tierLimits.js");
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});Object.defineProperty(exports,"BuoyNeedsPlanCard",{enumerable:true,get:function(){return _BuoyUpgradeSheet.BuoyNeedsPlanCard}});Object.defineProperty(exports,"BuoySignInCard",{enumerable:true,get:function(){return _BuoyUpgradeSheet.BuoySignInCard}});Object.defineProperty(exports,"BuoyUpgradeSheet",{enumerable:true,get:function(){return _BuoyUpgradeSheet.BuoyUpgradeSheet}});Object.defineProperty(exports,"FeatureGate",{enumerable:true,get:function(){return _FeatureGate.FeatureGate}});Object.defineProperty(exports,"FreeAccountPrompt",{enumerable:true,get:function(){return _FreeAccountPrompt.FreeAccountPrompt}});Object.defineProperty(exports,"LOGIN_COMMAND",{enumerable:true,get:function(){return _FreeAccountPrompt.LOGIN_COMMAND}});Object.defineProperty(exports,"ProBadge",{enumerable:true,get:function(){return _FeatureGate.ProBadge}});Object.defineProperty(exports,"ProFeatureBanner",{enumerable:true,get:function(){return _FeatureGate.ProFeatureBanner}});Object.defineProperty(exports,"ProUpgradeModal",{enumerable:true,get:function(){return _FeatureGate.ProUpgradeModal}});Object.defineProperty(exports,"TIER_LIMITS",{enumerable:true,get:function(){return _tierLimits.TIER_LIMITS}});Object.defineProperty(exports,"UpgradeModal",{enumerable:true,get:function(){return _FeatureGate.UpgradeModal}});Object.defineProperty(exports,"UpgradePrompt",{enumerable:true,get:function(){return _FeatureGate.UpgradePrompt}});Object.defineProperty(exports,"getUseIsPro",{enumerable:true,get:function(){return _licenseModule.getUseIsPro}});Object.defineProperty(exports,"getUseLicense",{enumerable:true,get:function(){return _licenseModule.getUseLicense}});Object.defineProperty(exports,"getUseTier",{enumerable:true,get:function(){return _licenseModule.getUseTier}});Object.defineProperty(exports,"resolveEffectiveTier",{enumerable:true,get:function(){return _tierLimits.resolveEffectiveTier}});Object.defineProperty(exports,"signOutOfBuoy",{enumerable:true,get:function(){return _licenseModule.signOutOfBuoy}});Object.defineProperty(exports,"useFeatureGate",{enumerable:true,get:function(){return _FeatureGate.useFeatureGate}});Object.defineProperty(exports,"useLimit",{enumerable:true,get:function(){return _tierLimits.useLimit}});Object.defineProperty(exports,"useSignInState",{enumerable:true,get:function(){return _BuoyUpgradeSheet.useSignInState}});var _FeatureGate=require("./FeatureGate.js");var _BuoyUpgradeSheet=require("./BuoyUpgradeSheet.js");var _FreeAccountPrompt=require("./FreeAccountPrompt.js");var _licenseModule=require("./licenseModule.js");var _tierLimits=require("./tierLimits.js");
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.assertAccountAccess=assertAccountAccess;exports.getAccountAccess=getAccountAccess;exports.getSyncCredential=getSyncCredential;exports.getUseAccountAccess=getUseAccountAccess;exports.getUseIsPro=getUseIsPro;exports.getUseLicense=getUseLicense;exports.getUseTier=getUseTier;exports.hasAccountAccess=hasAccountAccess;exports.isProNow=isProNow;exports.retryAccountAccess=retryAccountAccess;exports.signOutOfBuoy=signOutOfBuoy;exports.subscribeAccountAccess=subscribeAccountAccess;var licenseModule=_interopRequireWildcard(require("@buoy-gg/license"));var _accountRuntime=require("./accountRuntime");function _interopRequireWildcard(e,s){if("function"==typeof WeakMap)var i=new WeakMap,a=new WeakMap;return(_interopRequireWildcard=function(t,o){if(!o&&t&&t.__esModule)return t;var n,u,r={__proto__:null,default:t};if(null===t||"object"!=typeof t&&"function"!=typeof t)return r;if(n=o?a:i){if(n.has(t))return n.get(t);n.set(t,r)}for(const c in t)"default"!==c&&{}.hasOwnProperty.call(t,c)&&((u=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(t,c))&&(u.get||u.set)?n(r,c,u):r[c]=t[c]);return r})(e,s)}let _useIsPro=null;let _useLicense=null;let _useTier=null;let _licenseLoadAttempted=false;function loadLicenseModuleCentral(){if(_licenseLoadAttempted)return;_licenseLoadAttempted=true;try{const e=licenseModule;if(e){_useIsPro=e.useIsPro??null;_useLicense=e.useLicense??null;_useTier=e.useTier??null}}catch{}}function getUseIsPro(){loadLicenseModuleCentral();return _useIsPro??(()=>false)}function getUseLicense(){loadLicenseModuleCentral();return _useLicense}function getUseTier(){loadLicenseModuleCentral();return _useTier??(()=>"free")}function isProNow(){try{return licenseModule.isPro?.()??false}catch{return false}}const LOCKED={status:"locked",reason:"account_required",validUntil:null};function accountManager(){if(!(0,_accountRuntime.canInitializeAccount)())return null;try{const e=licenseModule.LicenseManager;void e?.initialize?.();return e}catch{return null}}function getAccountAccess(){return accountManager()?.getAccountAccess?.()??LOCKED}function hasAccountAccess(){return getAccountAccess().status==="admitted"}function assertAccountAccess(){if(!hasAccountAccess())throw new Error("A verified Buoy account is required. Run npx buoy login, then reload your app.")}function subscribeAccountAccess(e){return accountManager()?.subscribe?.(e)??(()=>{})}function getUseAccountAccess(){try{return licenseModule.useAccountAccess??(()=>LOCKED)}catch{return()=>LOCKED}}async function retryAccountAccess(){const e=accountManager();const s=e?.getState?.().licenseKey;if(s)await e.setLicenseKey(s,{force:true});else await e?.initialize?.()}async function signOutOfBuoy(){try{await licenseModule.SessionManager?.signOut()}catch{}}function getSyncCredential(){try{return licenseModule.getSyncCredential?.()??null}catch{return null}}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.assertAccountAccess=assertAccountAccess;exports.getAccountAccess=getAccountAccess;exports.getSignInSession=getSignInSession;exports.getSyncCredential=getSyncCredential;exports.getUseAccountAccess=getUseAccountAccess;exports.getUseIsPro=getUseIsPro;exports.getUseLicense=getUseLicense;exports.getUseTier=getUseTier;exports.hasAccountAccess=hasAccountAccess;exports.isProNow=isProNow;exports.retryAccountAccess=retryAccountAccess;exports.signOutOfBuoy=signOutOfBuoy;exports.subscribeAccountAccess=subscribeAccountAccess;var licenseModule=_interopRequireWildcard(require("@buoy-gg/license"));var _accountRuntime=require("./accountRuntime");function _interopRequireWildcard(e,s){if("function"==typeof WeakMap)var i=new WeakMap,a=new WeakMap;return(_interopRequireWildcard=function(t,o){if(!o&&t&&t.__esModule)return t;var n,u,c={__proto__:null,default:t};if(null===t||"object"!=typeof t&&"function"!=typeof t)return c;if(n=o?a:i){if(n.has(t))return n.get(t);n.set(t,c)}for(const r in t)"default"!==r&&{}.hasOwnProperty.call(t,r)&&((u=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(t,r))&&(u.get||u.set)?n(c,r,u):c[r]=t[r]);return c})(e,s)}let _useIsPro=null;let _useLicense=null;let _useTier=null;let _licenseLoadAttempted=false;function loadLicenseModuleCentral(){if(_licenseLoadAttempted)return;_licenseLoadAttempted=true;try{const e=licenseModule;if(e){_useIsPro=e.useIsPro??null;_useLicense=e.useLicense??null;_useTier=e.useTier??null}}catch{}}function getUseIsPro(){loadLicenseModuleCentral();return _useIsPro??(()=>false)}function getUseLicense(){loadLicenseModuleCentral();return _useLicense}function getUseTier(){loadLicenseModuleCentral();return _useTier??(()=>"free")}function isProNow(){try{return licenseModule.isPro?.()??false}catch{return false}}const LOCKED={status:"locked",reason:"account_required",validUntil:null};function accountManager(){if(!(0,_accountRuntime.canInitializeAccount)())return null;try{const e=licenseModule.LicenseManager;void e?.initialize?.();return e}catch{return null}}function getAccountAccess(){return accountManager()?.getAccountAccess?.()??LOCKED}function hasAccountAccess(){return getAccountAccess().status==="admitted"}function assertAccountAccess(){if(!hasAccountAccess())throw new Error("A verified Buoy account is required. Run npx buoy login, then reload your app.")}function subscribeAccountAccess(e){return accountManager()?.subscribe?.(e)??(()=>{})}function getUseAccountAccess(){try{return licenseModule.useAccountAccess??(()=>LOCKED)}catch{return()=>LOCKED}}async function retryAccountAccess(){const e=accountManager();const s=e?.getState?.().licenseKey;if(s)await e.setLicenseKey(s,{force:true});else await e?.initialize?.()}function getSignInSession(){try{return licenseModule.SessionManager}catch{return void 0}}async function signOutOfBuoy(){try{await licenseModule.SessionManager?.signOut()}catch{}}function getSyncCredential(){try{return licenseModule.getSyncCredential?.()??null}catch{return null}}
@@ -1 +1 @@
1
- "use strict";export*from"./ui/index.js";export*from"./stores/index.js";export*from"./sync/keyedArrays.js";export*from"./sync/valueShape.js";export*from"./sync/valuePath.js";export*from"./sync/typedEdit.js";export*from"./sync/wireBudget.js";export*from"./sync/wireForm.js";export*from"./sync/toolSyncAdapter.js";export{startSettingsSync,SettingsSync,PERSONAL_SETTING_KEYS,TEAM_SETTING_KEYS,onSettingsApplied,syncSettingsNow}from"./sync/settingsSync.js";export*from"./tools/defineTool.js";export*from"./sync/toolActionRegistry.js";export*from"./sync/toolUiBridge.js";export*from"./sync/toolScreenHeader.js";export{absoluteFill,displayValue,parseDisplayValue,getSafeAreaInsets,persistentStorage,isUsingPersistentStorage,getStorageBackendType,safeStringify,getValueType,isPrimitive,isJsonSerializable,isValidJson,getConstructorName,isEmpty,getValueSize,parseValue,formatValue,getTypeColor,truncateText,flattenObject,formatPath,loadOptionalModule,getCachedOptionalModule,setRenderCaptureProvider,getRenderCaptureProvider,registerStateSnapshotProvider,getStateSnapshotProviders,getStateSnapshotProvider,subscribeToStateSnapshotProviders,superJsonSerialize,superJsonDeserialize,realNow,getRealAppState,subscribeRealAppState,BUOY_SYNTHETIC_MARK,countBuoyListener,reloadApp,scheduleReloadApp,resolveReloadStrategy,REMOTE_RELOAD_DELAY_MS,getDevServerOrigin,Subscribable,subscriberCountNotifier,subscribeToSubscriberCountChanges,notifySubscriberCountChange,useSafeRouter,useSafePathname,useSafeSegments,useSafeGlobalSearchParams,getSafeRouter,getSafeCurrentPathname,getSafeCurrentRoute,isExpoRouterAvailable}from"./utils/index.js";export*from"./utils/toolModules.js";export{registerBrowserRouter,browserRouter,subscribeBrowserNavigation}from"./utils/browserNavigation.js";export{PREVIEW_ITEM_RENDER_BYTE_LIMIT,createRestoreScope,emptyRestoreResult,failedRestore,skippedRestore,classifyPreviewItem,wontApply,unionKeys}from"./utils/snapshotProviderKit.js";export{entityColor,formatValuePreview,shallowDiffSummary}from"./utils/stateTools.js";export*from"./utils/formatting/index.js";export*from"./utils/time/index.js";export{isPlainObject as isPlainObjectUtil}from"./utils/typeHelpers.js";export*from"./icons/index.js";export*from"./clipboard/index.js";export*from"./logger/index.js";export*from"./settings/index.js";export*from"./storage/index.js";export{useSafeAreaInsets,useFilterManager,usePersistedState,resetPersistedStateCache,useChangeLog,useSubscribedValue,useEventStoreEvents,useDeviceInfo,getDeviceInfo,logDeviceInfo}from"./hooks/index.js";export{JsModal}from"./JsModal";export{night,NIGHT_LABEL_TRACKING}from"./ui/night/nightTheme.js";export{QrCodeView}from"./ui/qr/QrCodeView.js";export{NightSectionLabel,NightFootnote,NightCard,NightSeparator,NightRows,NightSwitch,NightChip,NightButton,NightSegmented,NightBadge}from"./ui/night/primitives.js";export{gameUIColors,buoyColors}from"./ui/gameUI/constants/gameUIColors.js";export{refreshGameUIColors}from"./ui/gameUI/constants/gameUIColors.js";export{macOSColors}from"./ui/gameUI/constants/macOSDesignSystemColors.js";export{dialColors}from"./ui/gameUI/constants/gameUIColors.js";export{EnvironmentIndicator}from"./env/EnvironmentIndicator";export{EnvironmentSelector}from"./env/EnvironmentSelector.js";export{EnvironmentSelectorInline}from"./env/EnvironmentSelectorInline";export{normalizeEnvironment}from"./types/types.js";export{HintsProvider,useHintsDisabled,useHintsContext}from"./context/index.js";export*from"./history/index.js";export{FeatureGate,UpgradePrompt,useFeatureGate,ProFeatureBanner,UpgradeModal,LicenseEntryModal,ProBadge,ProUpgradeModal,FreeAccountPrompt,LOGIN_COMMAND,getUseIsPro,getUseLicense,getUseTier,signOutOfBuoy,TIER_LIMITS,useLimit,resolveEffectiveTier}from"./license/index.js";export{getAccountAccess,hasAccountAccess,assertAccountAccess,subscribeAccountAccess,getUseAccountAccess,retryAccountAccess,isProNow}from"./license/licenseModule.js";export{guardToolAdapter}from"./sync/toolActionRegistry.js";export{AccountSetup}from"./license/AccountSetup";export{AccountSetupButton}from"./license/AccountSetupContent.js";
1
+ "use strict";export*from"./ui/index.js";export*from"./stores/index.js";export*from"./sync/keyedArrays.js";export*from"./sync/valueShape.js";export*from"./sync/valuePath.js";export*from"./sync/typedEdit.js";export*from"./sync/wireBudget.js";export*from"./sync/wireForm.js";export*from"./sync/toolSyncAdapter.js";export{startSettingsSync,SettingsSync,PERSONAL_SETTING_KEYS,TEAM_SETTING_KEYS,onSettingsApplied,syncSettingsNow}from"./sync/settingsSync.js";export*from"./tools/defineTool.js";export*from"./sync/toolActionRegistry.js";export*from"./sync/toolUiBridge.js";export*from"./sync/toolScreenHeader.js";export{absoluteFill,displayValue,parseDisplayValue,getSafeAreaInsets,persistentStorage,isUsingPersistentStorage,getStorageBackendType,safeStringify,getValueType,isPrimitive,isJsonSerializable,isValidJson,getConstructorName,isEmpty,getValueSize,parseValue,formatValue,getTypeColor,truncateText,flattenObject,formatPath,loadOptionalModule,getCachedOptionalModule,setRenderCaptureProvider,getRenderCaptureProvider,registerStateSnapshotProvider,getStateSnapshotProviders,getStateSnapshotProvider,subscribeToStateSnapshotProviders,superJsonSerialize,superJsonDeserialize,realNow,getRealAppState,subscribeRealAppState,BUOY_SYNTHETIC_MARK,countBuoyListener,reloadApp,scheduleReloadApp,resolveReloadStrategy,REMOTE_RELOAD_DELAY_MS,getDevServerOrigin,Subscribable,subscriberCountNotifier,subscribeToSubscriberCountChanges,notifySubscriberCountChange,useSafeRouter,useSafePathname,useSafeSegments,useSafeGlobalSearchParams,getSafeRouter,getSafeCurrentPathname,getSafeCurrentRoute,isExpoRouterAvailable}from"./utils/index.js";export*from"./utils/toolModules.js";export{registerBrowserRouter,browserRouter,subscribeBrowserNavigation}from"./utils/browserNavigation.js";export{PREVIEW_ITEM_RENDER_BYTE_LIMIT,createRestoreScope,emptyRestoreResult,failedRestore,skippedRestore,classifyPreviewItem,wontApply,unionKeys}from"./utils/snapshotProviderKit.js";export{entityColor,formatValuePreview,shallowDiffSummary}from"./utils/stateTools.js";export*from"./utils/formatting/index.js";export*from"./utils/time/index.js";export{isPlainObject as isPlainObjectUtil}from"./utils/typeHelpers.js";export*from"./icons/index.js";export*from"./clipboard/index.js";export*from"./logger/index.js";export*from"./settings/index.js";export*from"./storage/index.js";export{useSafeAreaInsets,useFilterManager,usePersistedState,resetPersistedStateCache,useChangeLog,useSubscribedValue,useEventStoreEvents,useDeviceInfo,getDeviceInfo,logDeviceInfo}from"./hooks/index.js";export{JsModal}from"./JsModal";export{night,NIGHT_LABEL_TRACKING}from"./ui/night/nightTheme.js";export{QrCodeView}from"./ui/qr/QrCodeView.js";export{NightSectionLabel,NightFootnote,NightCard,NightSeparator,NightRows,NightSwitch,NightChip,NightButton,NightSegmented,NightBadge}from"./ui/night/primitives.js";export{gameUIColors,buoyColors}from"./ui/gameUI/constants/gameUIColors.js";export{refreshGameUIColors}from"./ui/gameUI/constants/gameUIColors.js";export{macOSColors}from"./ui/gameUI/constants/macOSDesignSystemColors.js";export{dialColors}from"./ui/gameUI/constants/gameUIColors.js";export{EnvironmentIndicator}from"./env/EnvironmentIndicator";export{EnvironmentSelector}from"./env/EnvironmentSelector.js";export{EnvironmentSelectorInline}from"./env/EnvironmentSelectorInline";export{normalizeEnvironment}from"./types/types.js";export{HintsProvider,useHintsDisabled,useHintsContext}from"./context/index.js";export*from"./history/index.js";export{FeatureGate,UpgradePrompt,useFeatureGate,ProFeatureBanner,UpgradeModal,BuoyUpgradeSheet,BuoySignInCard,BuoyNeedsPlanCard,useSignInState,ProBadge,ProUpgradeModal,FreeAccountPrompt,LOGIN_COMMAND,getUseIsPro,getUseLicense,getUseTier,signOutOfBuoy,TIER_LIMITS,useLimit,resolveEffectiveTier}from"./license/index.js";export{getAccountAccess,hasAccountAccess,assertAccountAccess,subscribeAccountAccess,getUseAccountAccess,retryAccountAccess,isProNow}from"./license/licenseModule.js";export{guardToolAdapter}from"./sync/toolActionRegistry.js";export{AccountSetup}from"./license/AccountSetup";export{AccountSetupButton}from"./license/AccountSetupContent.js";
@@ -0,0 +1 @@
1
+ "use strict";import{useCallback as P,useEffect as S,useRef as x,useState as m}from"react";import{ActivityIndicator as k,Modal as j,Pressable as g,StyleSheet as T,Text as r,View as a}from"react-native";import{monoFont as B}from"../ui/fonts.js";import{night as o}from"../ui/night/nightTheme.js";import{QrCodeView as D}from"../ui/qr/QrCodeView.js";import{getSignInSession as I,isProNow as v,retryAccountAccess as A}from"./licenseModule.js";import{PRICING_URL as R,isWeb as H,openPricing as F}from"./openPricing.js";import{jsx as t,jsxs as l,Fragment as z}from"react/jsx-runtime";const W=n=>n.replace(/^https?:\/\//,"");export function useSignInState(){const[n,i]=m(()=>I()?.getStatus().state??"signed_out");S(()=>{const d=I();if(!d)return;const s=()=>i(d.getStatus().state);s();return d.subscribe(s)},[]);return n}function w({onClose:n}){return l(a,{style:e.header,children:[l(a,{style:e.brand,children:[t(a,{style:e.brandDot}),t(r,{style:e.wordmark,children:"BUOY"})]}),t(g,{accessibilityRole:"button",accessibilityLabel:"Close sign-in",onPress:n,style:e.close,testID:"buoy-signin-close",children:t(r,{style:e.closeText,children:"\u2715"})})]})}export function BuoySignInCard({onClose:n,onNotConfigured:i,footer:d}){const[s,c]=m({kind:"starting"});const y=x(null);const b=x(n);const u=x(i);b.current=n;u.current=i;const C=P(()=>{y.current?.abort();const f=I();if(!f?.signInWithCode){if(u.current)return u.current();c({kind:"error",message:"This version of @buoy-gg/license can't sign in with a code. Update it."});return}const p=new AbortController;y.current=p;c({kind:"starting"});f.signInWithCode(h=>c({kind:"waiting",prompt:h}),{signal:p.signal}).then(()=>{if(!p.signal.aborted)b.current()}).catch(h=>{if(p.signal.aborted)return;if(h?.code==="not_configured"&&u.current){u.current();return}c({kind:"error",message:h instanceof Error?h.message:"Sign-in did not work. Try again."})})},[]);S(()=>{C();return()=>y.current?.abort()},[C]);return l(a,{style:e.card,testID:"buoy-code-signin",children:[t(w,{onClose:n}),t(r,{style:e.title,children:"Sign in to Buoy"}),s.kind==="starting"?t(a,{style:e.center,children:t(k,{color:o.color.accent})}):null,s.kind==="waiting"?l(z,{children:[t(r,{style:e.body,children:"Scan this with your phone's camera."}),t(a,{style:e.qr,testID:"buoy-signin-qr",children:t(D,{value:s.prompt.verificationUriComplete,size:196})}),l(r,{style:e.body,children:["Or go to"," ",t(r,{style:e.strong,children:W(s.prompt.verificationUri)})," ","and type:"]}),t(r,{style:e.code,selectable:true,testID:"buoy-signin-code",children:s.prompt.userCode}),l(a,{style:e.waiting,children:[t(k,{size:"small",color:o.color.textSecondary}),t(r,{style:e.muted,children:"Waiting for you to allow it\u2026"})]})]}):null,s.kind==="error"?l(z,{children:[t(r,{style:e.body,testID:"buoy-signin-error",children:s.message}),t(g,{accessibilityRole:"button",onPress:C,style:({pressed:f})=>[e.primary,f&&e.primaryPressed],testID:"buoy-signin-retry",children:t(r,{style:e.primaryText,children:"Get a new code"})})]}):null,d]})}export function BuoyNeedsPlanCard({onClose:n}){return l(a,{style:e.card,testID:"buoy-signin-needs-plan",children:[t(w,{onClose:n}),t(r,{style:e.title,children:"You're signed in"}),t(r,{style:e.body,children:"Buoy in this build needs a Pro or Business plan."}),t(g,{accessibilityRole:"button",onPress:()=>void I()?.signOut(),style:({pressed:i})=>[e.primary,i&&e.primaryPressed],testID:"buoy-signout",children:t(r,{style:e.primaryText,children:"Sign out"})})]})}function U({onClose:n}){const[i,d]=m(false);const[s,c]=m(null);const y=x(true);S(()=>()=>{y.current=false},[]);const b=P(async()=>{d(true);c(null);try{await A()}catch{}if(!y.current)return;d(false);if(v())n();else c("Still on Free. If you just paid, wait a minute and try again.")},[n]);return l(a,{style:e.card,testID:"buoy-get-pro",children:[t(w,{onClose:n}),t(r,{style:e.title,children:"Get Buoy Pro"}),t(r,{style:e.body,children:"This needs Pro. Scan to see the plans."}),t(a,{style:e.qr,testID:"buoy-get-pro-qr",children:t(D,{value:R,size:196})}),l(r,{style:e.body,children:["Or go to ",t(r,{style:e.strong,children:W(R)})]}),t(g,{accessibilityRole:"link",onPress:()=>F(),style:({pressed:u})=>[e.primary,u&&e.primaryPressed],testID:"buoy-get-pro-open",children:t(r,{style:e.primaryText,children:"Open buoy.gg"})}),t(g,{accessibilityRole:"button",accessibilityState:{disabled:i,busy:i},disabled:i,onPress:b,style:({pressed:u})=>[e.secondary,u&&e.secondaryPressed],testID:"buoy-get-pro-check",children:i?t(k,{size:"small",color:o.color.textSecondary}):t(r,{style:e.secondaryText,children:"I have Pro. Check again."})}),s?t(r,{accessibilityRole:"alert",style:e.note,children:s}):null]})}export function BuoyUpgradeSheet({visible:n,onClose:i}){const d=useSignInState();const[s,c]=m(false);S(()=>{if(!n)c(false)},[n]);if(!n)return null;const y=s||H||d==="active";return t(j,{visible:true,transparent:true,animationType:"fade",onRequestClose:i,children:l(a,{style:e.overlay,accessibilityViewIsModal:true,children:[t(g,{style:T.absoluteFill,onPress:i,accessible:false}),y?t(U,{onClose:i}):t(BuoySignInCard,{onClose:i,onNotConfigured:()=>c(true),footer:t(g,{accessibilityRole:"button",onPress:()=>c(true),style:e.footerLink,testID:"buoy-signin-see-plans",children:l(r,{style:e.muted,children:["No Pro plan yet? ",t(r,{style:e.link,children:"See plans"})]})})})]})})}const e=T.create({overlay:{flex:1,backgroundColor:"rgba(0, 0, 0, 0.65)",alignItems:"center",justifyContent:"center",padding:20},card:{width:"100%",maxWidth:368,backgroundColor:"#111315",borderColor:"#303437",borderWidth:1,borderRadius:20,paddingHorizontal:24,paddingTop:18,paddingBottom:24},header:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",marginBottom:16},brand:{flexDirection:"row",alignItems:"center",gap:8},brandDot:{width:6,height:6,borderRadius:3,backgroundColor:o.color.accent},wordmark:{color:o.color.text,fontSize:11,fontWeight:"800",letterSpacing:1.4,lineHeight:16},close:{width:28,height:28,borderRadius:8,alignItems:"center",justifyContent:"center"},closeText:{color:o.color.textSecondary,fontSize:14},title:{color:o.color.text,fontSize:20,fontWeight:"700",marginBottom:8},body:{color:o.color.textSecondary,fontSize:14,lineHeight:20,marginTop:8},strong:{color:o.color.text,fontWeight:"600"},muted:{color:o.color.textSecondary,fontSize:13},link:{color:o.color.accent,fontWeight:"600"},note:{color:o.color.textSecondary,fontSize:13,lineHeight:18,marginTop:12,textAlign:"center"},center:{paddingVertical:32,alignItems:"center"},qr:{alignSelf:"center",marginTop:16,marginBottom:8,borderRadius:12,overflow:"hidden"},code:{color:o.color.text,fontFamily:B,fontSize:30,fontWeight:"700",letterSpacing:4,textAlign:"center",marginTop:12},waiting:{flexDirection:"row",alignItems:"center",justifyContent:"center",gap:8,marginTop:16},footerLink:{alignItems:"center",marginTop:20,minHeight:32,justifyContent:"center"},primary:{marginTop:20,minHeight:44,borderRadius:12,backgroundColor:o.color.accent,alignItems:"center",justifyContent:"center"},primaryPressed:{backgroundColor:o.color.accentPressed},primaryText:{color:o.color.onAccent,fontSize:15,fontWeight:"600"},secondary:{marginTop:10,minHeight:44,borderRadius:12,borderWidth:1,borderColor:"#303437",alignItems:"center",justifyContent:"center"},secondaryPressed:{backgroundColor:"#1A1D1F"},secondaryText:{color:o.color.text,fontSize:15,fontWeight:"600"}});
@@ -1 +1 @@
1
- "use strict";import H,{useState as B,useCallback as h}from"react";import{View as n,Text as l,StyleSheet as U,TouchableOpacity as u,Modal as L}from"react-native";import{gameUIColors as c,buoyColors as o}from"../ui/gameUI/constants/gameUIColors.js";import{LockIcon as S,X as D,Zap as F,Shield as O,Clock as A,Check as z}from"../icons/lucide-icons.js";import{LicenseEntryModal as b}from"./LicenseEntryModal.js";import{openPricing as x,isWeb as w}from"./openPricing.js";import{useIsPro as j,useLicense as P,useProAccess as k}from"@buoy-gg/license";import{jsx as e,jsxs as a,Fragment as f}from"react/jsx-runtime";export const WEEKEND_PASS_LABEL="WEEKEND PASS";const T="#BF5AF2";export const ProBadge=({style:d})=>{const{reason:r}=k();const i=r==="weekend";return e(n,{style:[t.proBadge,i&&t.weekendBadge,d],children:e(l,{style:[t.proBadgeText,i&&t.weekendBadgeText],children:i?WEEKEND_PASS_LABEL:"PRO"})})};export const ProUpgradeModal=({visible:d,onClose:r,featureName:i="This feature"})=>{return e(UpgradeModal,{visible:d,onClose:r,featureName:i,description:`${i} requires a Pro subscription.`})};export const UpgradePrompt=({featureName:d,onUpgradePress:r,compact:i=false})=>{const[g,s]=B(false);const m=h(()=>{if(r){r()}else if(w){x()}else{s(true)}},[r]);const p=h(()=>{s(false)},[]);if(i){return a(f,{children:[a(u,{style:t.compactContainer,onPress:m,activeOpacity:.8,children:[e(S,{size:14,color:c.warning}),e(l,{style:t.compactText,children:"PRO"})]}),e(b,{visible:g,onClose:p})]})}return a(f,{children:[a(n,{style:t.container,children:[e(n,{style:t.iconContainer,children:e(S,{size:24,color:c.warning})}),e(l,{style:t.title,children:"Pro Feature"}),d&&e(l,{style:t.featureName,children:d}),e(l,{style:t.description,children:"Upgrade to React Buoy Pro to unlock this feature and more."}),e(u,{style:t.upgradeButton,onPress:m,activeOpacity:.8,children:e(l,{style:t.upgradeButtonText,children:"Upgrade to Pro"})})]}),e(b,{visible:g,onClose:p})]})};export const FeatureGate=({children:d,featureName:r,fallback:i,previewMode:g=false,onUpgradePress:s})=>{const m=j();if(m){return e(f,{children:d})}if(g){return a(n,{style:t.previewContainer,pointerEvents:"none",children:[e(n,{style:t.previewContent,children:d}),e(n,{style:t.previewOverlay,children:e(UpgradePrompt,{featureName:r,onUpgradePress:s,compact:true})})]})}if(i){return e(f,{children:i})}return e(UpgradePrompt,{featureName:r,onUpgradePress:s})};export function useFeatureGate(){const{isPro:d,isLicensed:r,isWeekendFree:i,reason:g}=k();const s=()=>{x("https://buoy.gg/pro")};return{hasAccess:d,isPro:d,isLicensed:r,isWeekendFree:i,reason:g,showUpgrade:s}}export const ProFeatureBanner=({featureName:d="Pro Feature",description:r,benefits:i})=>{const[g,s]=B(false);const m=P();const p=h(()=>{if(w){x();return}s(true)},[]);const y=h(()=>{s(false)},[]);return a(f,{children:[a(n,{style:t.bannerContainer,children:[e(ProBadge,{style:t.bannerProBadge}),a(n,{style:t.bannerHeader,children:[e(n,{style:t.bannerIconContainer,children:e(F,{size:16,color:o.primary})}),a(n,{style:t.bannerTitleContainer,children:[e(l,{style:t.bannerTitle,children:d}),r&&e(l,{style:t.bannerDescription,children:r})]})]}),i&&i.length>0&&e(n,{style:t.benefitsList,children:i.map((I,C)=>a(n,{style:t.benefitItem,children:[e(z,{size:14,color:o.success}),e(l,{style:t.benefitText,children:I})]},C))}),e(n,{style:t.bannerActions,children:e(u,{style:t.bannerUpgradeButton,onPress:p,activeOpacity:.8,children:e(l,{style:t.bannerUpgradeButtonText,children:"Upgrade to Pro"})})})]}),e(b,{visible:g,onClose:y})]})};export const UpgradeModal=({visible:d,onClose:r,featureName:i="This Feature",description:g,benefits:s})=>{const m=s&&s.length>0;const[p,y]=B(false);const I=P();const C=h(()=>{if(w){x();return}y(true)},[]);const v=h(()=>{y(false)},[]);const R=h(()=>{y(false);r()},[r]);if(!d)return null;return a(f,{children:[e(L,{visible:d&&!p,transparent:true,animationType:"fade",onRequestClose:r,children:e(u,{style:t.modalOverlay,onPress:r,activeOpacity:1,children:a(u,{style:t.modalContent,activeOpacity:1,onPress:()=>{},testID:"buoy-upgrade-modal",accessibilityLabel:`Unlock ${i}`,children:[e(u,{style:t.modalCloseButton,onPress:r,activeOpacity:.7,testID:"buoy-upgrade-modal-close",accessibilityRole:"button",accessibilityLabel:"Close upgrade prompt",children:e(D,{size:18,color:o.textMuted})}),a(n,{style:t.modalHeader,children:[e(n,{style:t.modalIconContainer,children:e(F,{size:28,color:o.primary})}),a(l,{style:t.modalTitle,children:["Unlock ",i]}),e(l,{style:t.modalSubtitle,children:g||"Upgrade to React Buoy Pro to access this feature and unlock the full power of your debugging toolkit."})]}),m&&a(n,{style:t.modalBenefits,children:[e(l,{style:t.modalBenefitsTitle,children:"What you get with Pro:"}),s.map((W,M)=>a(n,{style:t.modalBenefitItem,children:[e(n,{style:t.modalBenefitIcon,children:e(z,{size:14,color:o.success})}),e(l,{style:t.modalBenefitText,children:W})]},M))]}),a(n,{style:[t.modalFeatureRow,!m&&t.modalFeatureRowNoBenefits],children:[a(n,{style:t.modalFeatureItem,children:[e(O,{size:16,color:o.textMuted}),e(l,{style:t.modalFeatureText,children:"14-day trial"})]}),a(n,{style:t.modalFeatureItem,children:[e(A,{size:16,color:o.textMuted}),e(l,{style:t.modalFeatureText,children:"Cancel anytime"})]})]}),a(n,{style:t.modalActions,children:[e(u,{style:t.modalUpgradeButton,onPress:C,activeOpacity:.8,children:e(l,{style:t.modalUpgradeButtonText,children:"Upgrade to Pro"})}),e(u,{style:t.modalDismissButton,onPress:r,activeOpacity:.8,children:e(l,{style:t.modalDismissButtonText,children:"Close"})})]})]})})}),e(b,{visible:p,onClose:v,onSuccess:R})]})};const t=U.create({proBadge:{backgroundColor:o.primary+"15",borderRadius:4,borderWidth:1,borderColor:o.primary+"40",paddingHorizontal:6,paddingVertical:2},proBadgeText:{fontSize:10,fontWeight:"700",color:o.primary,letterSpacing:.5},weekendBadge:{backgroundColor:T+"1A",borderColor:T+"55"},weekendBadgeText:{color:T,letterSpacing:.4},container:{padding:20,alignItems:"center",justifyContent:"center",backgroundColor:c.panel,borderRadius:12,borderWidth:1,borderColor:c.warning+"40"},iconContainer:{width:48,height:48,borderRadius:24,backgroundColor:c.warning+"20",alignItems:"center",justifyContent:"center",marginBottom:12},title:{fontSize:16,fontWeight:"700",color:c.text,marginBottom:4},featureName:{fontSize:13,fontWeight:"600",color:c.warning,marginBottom:8},description:{fontSize:12,color:c.muted,textAlign:"center",marginBottom:16,lineHeight:18},upgradeButton:{backgroundColor:c.warning,paddingHorizontal:20,paddingVertical:10,borderRadius:8},upgradeButtonText:{fontSize:13,fontWeight:"700",color:"#000"},compactContainer:{flexDirection:"row",alignItems:"center",gap:4,backgroundColor:c.warning+"20",paddingHorizontal:8,paddingVertical:4,borderRadius:4,borderWidth:1,borderColor:c.warning+"40"},compactText:{fontSize:10,fontWeight:"700",color:c.warning},previewContainer:{position:"relative"},previewContent:{opacity:.3},previewOverlay:{position:"absolute",top:0,left:0,right:0,bottom:0,alignItems:"center",justifyContent:"center",backgroundColor:"rgba(0, 0, 0, 0.5)",borderRadius:8},bannerContainer:{position:"relative",backgroundColor:o.card,borderRadius:12,borderWidth:1,borderColor:o.border,padding:14,marginBottom:12},bannerProBadge:{position:"absolute",top:10,right:10},bannerHeader:{flexDirection:"row",alignItems:"flex-start",gap:12},bannerIconContainer:{width:36,height:36,borderRadius:10,backgroundColor:o.primary+"20",alignItems:"center",justifyContent:"center"},bannerTitleContainer:{flex:1},bannerTitle:{fontSize:14,fontWeight:"600",color:o.text,marginBottom:2},bannerDescription:{fontSize:12,color:o.textMuted,lineHeight:17},benefitsList:{marginTop:12,gap:8},benefitItem:{flexDirection:"row",alignItems:"center",gap:10},benefitText:{fontSize:13,color:o.text,flex:1},bannerActions:{flexDirection:"row",alignItems:"center",gap:16,marginTop:14},bannerUpgradeButton:{backgroundColor:o.primary,paddingHorizontal:16,paddingVertical:10,borderRadius:8},bannerUpgradeButtonText:{fontSize:13,fontWeight:"600",color:"#FFFFFF"},modalOverlay:{flex:1,backgroundColor:"rgba(0, 0, 0, 0.75)",alignItems:"center",justifyContent:"center",padding:20},modalContent:{backgroundColor:o.card,borderRadius:16,borderWidth:1,borderColor:o.primary+"60",padding:24,maxWidth:340,width:"100%",position:"relative",shadowColor:o.primary,shadowOffset:{width:0,height:0},shadowOpacity:.4,shadowRadius:20,elevation:10},modalCloseButton:{position:"absolute",top:12,right:12,width:32,height:32,borderRadius:16,backgroundColor:"rgba(0, 0, 0, 0.4)",alignItems:"center",justifyContent:"center",zIndex:1},modalHeader:{alignItems:"center",marginBottom:20},modalIconContainer:{width:56,height:56,borderRadius:28,backgroundColor:o.primary+"20",alignItems:"center",justifyContent:"center",marginBottom:12},modalTitle:{fontSize:20,fontWeight:"700",color:o.text,textAlign:"center",marginBottom:8},modalSubtitle:{fontSize:13,color:o.textMuted,textAlign:"center",lineHeight:18},modalBenefits:{marginBottom:16},modalBenefitsTitle:{fontSize:12,fontWeight:"600",color:o.textMuted,textTransform:"uppercase",letterSpacing:.5,marginBottom:10},modalBenefitItem:{flexDirection:"row",alignItems:"flex-start",gap:10,marginBottom:8},modalBenefitIcon:{width:22,height:22,borderRadius:11,backgroundColor:o.success+"20",alignItems:"center",justifyContent:"center",marginTop:1},modalBenefitText:{fontSize:13,color:o.text,flex:1,lineHeight:18},modalFeatureRow:{flexDirection:"row",justifyContent:"center",gap:20,marginBottom:20,paddingTop:12,borderTopWidth:1,borderTopColor:o.border},modalFeatureRowNoBenefits:{marginTop:8,borderTopWidth:0,paddingTop:0},modalFeatureItem:{flexDirection:"row",alignItems:"center",gap:6},modalFeatureText:{fontSize:12,color:o.textMuted},modalActions:{alignItems:"center",gap:12},modalUpgradeButton:{backgroundColor:o.primary,paddingHorizontal:24,paddingVertical:12,borderRadius:8,width:"100%",alignItems:"center"},modalUpgradeButtonText:{fontSize:14,fontWeight:"700",color:"#FFFFFF"},modalDismissButton:{paddingVertical:12,width:"100%",alignItems:"center"},modalDismissButtonText:{fontSize:13,fontWeight:"500",color:o.textMuted}});
1
+ "use strict";import H,{useState as B,useCallback as h}from"react";import{View as r,Text as l,StyleSheet as U,TouchableOpacity as u,Modal as M}from"react-native";import{gameUIColors as c,buoyColors as o}from"../ui/gameUI/constants/gameUIColors.js";import{LockIcon as S,X as D,Zap as F,Shield as O,Clock as L,Check as z}from"../icons/lucide-icons.js";import{BuoyUpgradeSheet as b}from"./BuoyUpgradeSheet.js";import{openPricing as C,isWeb as w}from"./openPricing.js";import{useIsPro as A,useLicense as P,useProAccess as k}from"@buoy-gg/license";import{jsx as e,jsxs as a,Fragment as f}from"react/jsx-runtime";export const WEEKEND_PASS_LABEL="WEEKEND PASS";const T="#BF5AF2";export const ProBadge=({style:d})=>{const{reason:n}=k();const i=n==="weekend";return e(r,{style:[t.proBadge,i&&t.weekendBadge,d],children:e(l,{style:[t.proBadgeText,i&&t.weekendBadgeText],children:i?WEEKEND_PASS_LABEL:"PRO"})})};export const ProUpgradeModal=({visible:d,onClose:n,featureName:i="This feature"})=>{return e(UpgradeModal,{visible:d,onClose:n,featureName:i,description:`${i} requires a Pro subscription.`})};export const UpgradePrompt=({featureName:d,onUpgradePress:n,compact:i=false})=>{const[g,s]=B(false);const m=h(()=>{if(n){n()}else if(w){C()}else{s(true)}},[n]);const p=h(()=>{s(false)},[]);if(i){return a(f,{children:[a(u,{style:t.compactContainer,onPress:m,activeOpacity:.8,children:[e(S,{size:14,color:c.warning}),e(l,{style:t.compactText,children:"PRO"})]}),e(b,{visible:g,onClose:p})]})}return a(f,{children:[a(r,{style:t.container,children:[e(r,{style:t.iconContainer,children:e(S,{size:24,color:c.warning})}),e(l,{style:t.title,children:"Pro Feature"}),d&&e(l,{style:t.featureName,children:d}),e(l,{style:t.description,children:"Upgrade to React Buoy Pro to unlock this feature and more."}),e(u,{style:t.upgradeButton,onPress:m,activeOpacity:.8,children:e(l,{style:t.upgradeButtonText,children:"Upgrade to Pro"})})]}),e(b,{visible:g,onClose:p})]})};export const FeatureGate=({children:d,featureName:n,fallback:i,previewMode:g=false,onUpgradePress:s})=>{const m=A();if(m){return e(f,{children:d})}if(g){return a(r,{style:t.previewContainer,pointerEvents:"none",children:[e(r,{style:t.previewContent,children:d}),e(r,{style:t.previewOverlay,children:e(UpgradePrompt,{featureName:n,onUpgradePress:s,compact:true})})]})}if(i){return e(f,{children:i})}return e(UpgradePrompt,{featureName:n,onUpgradePress:s})};export function useFeatureGate(){const{isPro:d,isLicensed:n,isWeekendFree:i,reason:g}=k();const s=()=>{C("https://buoy.gg/pro")};return{hasAccess:d,isPro:d,isLicensed:n,isWeekendFree:i,reason:g,showUpgrade:s}}export const ProFeatureBanner=({featureName:d="Pro Feature",description:n,benefits:i})=>{const[g,s]=B(false);const m=P();const p=h(()=>{if(w){C();return}s(true)},[]);const y=h(()=>{s(false)},[]);return a(f,{children:[a(r,{style:t.bannerContainer,children:[e(ProBadge,{style:t.bannerProBadge}),a(r,{style:t.bannerHeader,children:[e(r,{style:t.bannerIconContainer,children:e(F,{size:16,color:o.primary})}),a(r,{style:t.bannerTitleContainer,children:[e(l,{style:t.bannerTitle,children:d}),n&&e(l,{style:t.bannerDescription,children:n})]})]}),i&&i.length>0&&e(r,{style:t.benefitsList,children:i.map((I,x)=>a(r,{style:t.benefitItem,children:[e(z,{size:14,color:o.success}),e(l,{style:t.benefitText,children:I})]},x))}),e(r,{style:t.bannerActions,children:e(u,{style:t.bannerUpgradeButton,onPress:p,activeOpacity:.8,children:e(l,{style:t.bannerUpgradeButtonText,children:"Upgrade to Pro"})})})]}),e(b,{visible:g,onClose:y})]})};export const UpgradeModal=({visible:d,onClose:n,featureName:i="This Feature",description:g,benefits:s})=>{const m=s&&s.length>0;const[p,y]=B(false);const I=P();const x=h(()=>{if(w){C();return}y(true)},[]);const v=h(()=>{y(false)},[]);if(!d)return null;return a(f,{children:[e(M,{visible:d&&!p,transparent:true,animationType:"fade",onRequestClose:n,children:e(u,{style:t.modalOverlay,onPress:n,activeOpacity:1,children:a(u,{style:t.modalContent,activeOpacity:1,onPress:()=>{},testID:"buoy-upgrade-modal",accessibilityLabel:`Unlock ${i}`,children:[e(u,{style:t.modalCloseButton,onPress:n,activeOpacity:.7,testID:"buoy-upgrade-modal-close",accessibilityRole:"button",accessibilityLabel:"Close upgrade prompt",children:e(D,{size:18,color:o.textMuted})}),a(r,{style:t.modalHeader,children:[e(r,{style:t.modalIconContainer,children:e(F,{size:28,color:o.primary})}),a(l,{style:t.modalTitle,children:["Unlock ",i]}),e(l,{style:t.modalSubtitle,children:g||"Upgrade to React Buoy Pro to access this feature and unlock the full power of your debugging toolkit."})]}),m&&a(r,{style:t.modalBenefits,children:[e(l,{style:t.modalBenefitsTitle,children:"What you get with Pro:"}),s.map((R,W)=>a(r,{style:t.modalBenefitItem,children:[e(r,{style:t.modalBenefitIcon,children:e(z,{size:14,color:o.success})}),e(l,{style:t.modalBenefitText,children:R})]},W))]}),a(r,{style:[t.modalFeatureRow,!m&&t.modalFeatureRowNoBenefits],children:[a(r,{style:t.modalFeatureItem,children:[e(O,{size:16,color:o.textMuted}),e(l,{style:t.modalFeatureText,children:"14-day trial"})]}),a(r,{style:t.modalFeatureItem,children:[e(L,{size:16,color:o.textMuted}),e(l,{style:t.modalFeatureText,children:"Cancel anytime"})]})]}),a(r,{style:t.modalActions,children:[e(u,{style:t.modalUpgradeButton,onPress:x,activeOpacity:.8,children:e(l,{style:t.modalUpgradeButtonText,children:"Upgrade to Pro"})}),e(u,{style:t.modalDismissButton,onPress:n,activeOpacity:.8,children:e(l,{style:t.modalDismissButtonText,children:"Close"})})]})]})})}),e(b,{visible:p,onClose:v})]})};const t=U.create({proBadge:{backgroundColor:o.primary+"15",borderRadius:4,borderWidth:1,borderColor:o.primary+"40",paddingHorizontal:6,paddingVertical:2},proBadgeText:{fontSize:10,fontWeight:"700",color:o.primary,letterSpacing:.5},weekendBadge:{backgroundColor:T+"1A",borderColor:T+"55"},weekendBadgeText:{color:T,letterSpacing:.4},container:{padding:20,alignItems:"center",justifyContent:"center",backgroundColor:c.panel,borderRadius:12,borderWidth:1,borderColor:c.warning+"40"},iconContainer:{width:48,height:48,borderRadius:24,backgroundColor:c.warning+"20",alignItems:"center",justifyContent:"center",marginBottom:12},title:{fontSize:16,fontWeight:"700",color:c.text,marginBottom:4},featureName:{fontSize:13,fontWeight:"600",color:c.warning,marginBottom:8},description:{fontSize:12,color:c.muted,textAlign:"center",marginBottom:16,lineHeight:18},upgradeButton:{backgroundColor:c.warning,paddingHorizontal:20,paddingVertical:10,borderRadius:8},upgradeButtonText:{fontSize:13,fontWeight:"700",color:"#000"},compactContainer:{flexDirection:"row",alignItems:"center",gap:4,backgroundColor:c.warning+"20",paddingHorizontal:8,paddingVertical:4,borderRadius:4,borderWidth:1,borderColor:c.warning+"40"},compactText:{fontSize:10,fontWeight:"700",color:c.warning},previewContainer:{position:"relative"},previewContent:{opacity:.3},previewOverlay:{position:"absolute",top:0,left:0,right:0,bottom:0,alignItems:"center",justifyContent:"center",backgroundColor:"rgba(0, 0, 0, 0.5)",borderRadius:8},bannerContainer:{position:"relative",backgroundColor:o.card,borderRadius:12,borderWidth:1,borderColor:o.border,padding:14,marginBottom:12},bannerProBadge:{position:"absolute",top:10,right:10},bannerHeader:{flexDirection:"row",alignItems:"flex-start",gap:12},bannerIconContainer:{width:36,height:36,borderRadius:10,backgroundColor:o.primary+"20",alignItems:"center",justifyContent:"center"},bannerTitleContainer:{flex:1},bannerTitle:{fontSize:14,fontWeight:"600",color:o.text,marginBottom:2},bannerDescription:{fontSize:12,color:o.textMuted,lineHeight:17},benefitsList:{marginTop:12,gap:8},benefitItem:{flexDirection:"row",alignItems:"center",gap:10},benefitText:{fontSize:13,color:o.text,flex:1},bannerActions:{flexDirection:"row",alignItems:"center",gap:16,marginTop:14},bannerUpgradeButton:{backgroundColor:o.primary,paddingHorizontal:16,paddingVertical:10,borderRadius:8},bannerUpgradeButtonText:{fontSize:13,fontWeight:"600",color:"#FFFFFF"},modalOverlay:{flex:1,backgroundColor:"rgba(0, 0, 0, 0.75)",alignItems:"center",justifyContent:"center",padding:20},modalContent:{backgroundColor:o.card,borderRadius:16,borderWidth:1,borderColor:o.primary+"60",padding:24,maxWidth:340,width:"100%",position:"relative",shadowColor:o.primary,shadowOffset:{width:0,height:0},shadowOpacity:.4,shadowRadius:20,elevation:10},modalCloseButton:{position:"absolute",top:12,right:12,width:32,height:32,borderRadius:16,backgroundColor:"rgba(0, 0, 0, 0.4)",alignItems:"center",justifyContent:"center",zIndex:1},modalHeader:{alignItems:"center",marginBottom:20},modalIconContainer:{width:56,height:56,borderRadius:28,backgroundColor:o.primary+"20",alignItems:"center",justifyContent:"center",marginBottom:12},modalTitle:{fontSize:20,fontWeight:"700",color:o.text,textAlign:"center",marginBottom:8},modalSubtitle:{fontSize:13,color:o.textMuted,textAlign:"center",lineHeight:18},modalBenefits:{marginBottom:16},modalBenefitsTitle:{fontSize:12,fontWeight:"600",color:o.textMuted,textTransform:"uppercase",letterSpacing:.5,marginBottom:10},modalBenefitItem:{flexDirection:"row",alignItems:"flex-start",gap:10,marginBottom:8},modalBenefitIcon:{width:22,height:22,borderRadius:11,backgroundColor:o.success+"20",alignItems:"center",justifyContent:"center",marginTop:1},modalBenefitText:{fontSize:13,color:o.text,flex:1,lineHeight:18},modalFeatureRow:{flexDirection:"row",justifyContent:"center",gap:20,marginBottom:20,paddingTop:12,borderTopWidth:1,borderTopColor:o.border},modalFeatureRowNoBenefits:{marginTop:8,borderTopWidth:0,paddingTop:0},modalFeatureItem:{flexDirection:"row",alignItems:"center",gap:6},modalFeatureText:{fontSize:12,color:o.textMuted},modalActions:{alignItems:"center",gap:12},modalUpgradeButton:{backgroundColor:o.primary,paddingHorizontal:24,paddingVertical:12,borderRadius:8,width:"100%",alignItems:"center"},modalUpgradeButtonText:{fontSize:14,fontWeight:"700",color:"#FFFFFF"},modalDismissButton:{paddingVertical:12,width:"100%",alignItems:"center"},modalDismissButtonText:{fontSize:13,fontWeight:"500",color:o.textMuted}});
@@ -1 +1 @@
1
- "use strict";export{FeatureGate,UpgradePrompt,useFeatureGate,ProFeatureBanner,UpgradeModal,ProBadge,ProUpgradeModal}from"./FeatureGate.js";export{LicenseEntryModal}from"./LicenseEntryModal.js";export{FreeAccountPrompt,LOGIN_COMMAND}from"./FreeAccountPrompt.js";export{getUseIsPro,getUseLicense,getUseTier,signOutOfBuoy}from"./licenseModule.js";export{TIER_LIMITS,useLimit,resolveEffectiveTier}from"./tierLimits.js";
1
+ "use strict";export{FeatureGate,UpgradePrompt,useFeatureGate,ProFeatureBanner,UpgradeModal,ProBadge,ProUpgradeModal}from"./FeatureGate.js";export{BuoyUpgradeSheet,BuoySignInCard,BuoyNeedsPlanCard,useSignInState}from"./BuoyUpgradeSheet.js";export{FreeAccountPrompt,LOGIN_COMMAND}from"./FreeAccountPrompt.js";export{getUseIsPro,getUseLicense,getUseTier,signOutOfBuoy}from"./licenseModule.js";export{TIER_LIMITS,useLimit,resolveEffectiveTier}from"./tierLimits.js";
@@ -1 +1 @@
1
- "use strict";import*as t from"@buoy-gg/license";import{canInitializeAccount as l}from"./accountRuntime";let s=null;let o=null;let i=null;let a=false;function n(){if(a)return;a=true;try{const e=t;if(e){s=e.useIsPro??null;o=e.useLicense??null;i=e.useTier??null}}catch{}}export function getUseIsPro(){n();return s??(()=>false)}export function getUseLicense(){n();return o}export function getUseTier(){n();return i??(()=>"free")}export function isProNow(){try{return t.isPro?.()??false}catch{return false}}const r={status:"locked",reason:"account_required",validUntil:null};function c(){if(!l())return null;try{const e=t.LicenseManager;void e?.initialize?.();return e}catch{return null}}export function getAccountAccess(){return c()?.getAccountAccess?.()??r}export function hasAccountAccess(){return getAccountAccess().status==="admitted"}export function assertAccountAccess(){if(!hasAccountAccess())throw new Error("A verified Buoy account is required. Run npx buoy login, then reload your app.")}export function subscribeAccountAccess(e){return c()?.subscribe?.(e)??(()=>{})}export function getUseAccountAccess(){try{return t.useAccountAccess??(()=>r)}catch{return()=>r}}export async function retryAccountAccess(){const e=c();const u=e?.getState?.().licenseKey;if(u)await e.setLicenseKey(u,{force:true});else await e?.initialize?.()}export async function signOutOfBuoy(){try{await t.SessionManager?.signOut()}catch{}}export function getSyncCredential(){try{return t.getSyncCredential?.()??null}catch{return null}}
1
+ "use strict";import*as t from"@buoy-gg/license";import{canInitializeAccount as l}from"./accountRuntime";let s=null;let o=null;let i=null;let a=false;function n(){if(a)return;a=true;try{const e=t;if(e){s=e.useIsPro??null;o=e.useLicense??null;i=e.useTier??null}}catch{}}export function getUseIsPro(){n();return s??(()=>false)}export function getUseLicense(){n();return o}export function getUseTier(){n();return i??(()=>"free")}export function isProNow(){try{return t.isPro?.()??false}catch{return false}}const r={status:"locked",reason:"account_required",validUntil:null};function c(){if(!l())return null;try{const e=t.LicenseManager;void e?.initialize?.();return e}catch{return null}}export function getAccountAccess(){return c()?.getAccountAccess?.()??r}export function hasAccountAccess(){return getAccountAccess().status==="admitted"}export function assertAccountAccess(){if(!hasAccountAccess())throw new Error("A verified Buoy account is required. Run npx buoy login, then reload your app.")}export function subscribeAccountAccess(e){return c()?.subscribe?.(e)??(()=>{})}export function getUseAccountAccess(){try{return t.useAccountAccess??(()=>r)}catch{return()=>r}}export async function retryAccountAccess(){const e=c();const u=e?.getState?.().licenseKey;if(u)await e.setLicenseKey(u,{force:true});else await e?.initialize?.()}export function getSignInSession(){try{return t.SessionManager}catch{return void 0}}export async function signOutOfBuoy(){try{await t.SessionManager?.signOut()}catch{}}export function getSyncCredential(){try{return t.getSyncCredential?.()??null}catch{return null}}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Auto-generated safe area implementation
3
3
  * Detected: none
4
- * Generated at: 2026-10-06T14:30:09.729Z
4
+ * Generated at: 2026-10-07T14:49:27.277Z
5
5
  *
6
6
  * DO NOT EDIT - This file is generated by scripts/detect-safe-area.js
7
7
  *
@@ -49,8 +49,8 @@ export type { Environment } from "./types/types";
49
49
  export { normalizeEnvironment } from "./types/types";
50
50
  export { HintsProvider, useHintsDisabled, useHintsContext } from "./context";
51
51
  export * from "./history";
52
- export { FeatureGate, UpgradePrompt, useFeatureGate, ProFeatureBanner, UpgradeModal, LicenseEntryModal, ProBadge, ProUpgradeModal, FreeAccountPrompt, LOGIN_COMMAND, getUseIsPro, getUseLicense, getUseTier, signOutOfBuoy, TIER_LIMITS, useLimit, resolveEffectiveTier } from "./license";
53
- export type { FeatureGateProps, ProFeatureBannerProps, UpgradeModalProps, LicenseEntryModalProps, ProUpgradeModalProps, FreeAccountPromptProps, BuoyTier, TierLimitKey } from "./license";
52
+ export { FeatureGate, UpgradePrompt, useFeatureGate, ProFeatureBanner, UpgradeModal, BuoyUpgradeSheet, BuoySignInCard, BuoyNeedsPlanCard, useSignInState, ProBadge, ProUpgradeModal, FreeAccountPrompt, LOGIN_COMMAND, getUseIsPro, getUseLicense, getUseTier, signOutOfBuoy, TIER_LIMITS, useLimit, resolveEffectiveTier } from "./license";
53
+ export type { FeatureGateProps, ProFeatureBannerProps, UpgradeModalProps, BuoyUpgradeSheetProps, ProUpgradeModalProps, FreeAccountPromptProps, BuoyTier, TierLimitKey } from "./license";
54
54
  export { getAccountAccess, hasAccountAccess, assertAccountAccess, subscribeAccountAccess, getUseAccountAccess, retryAccountAccess, isProNow } from "./license/licenseModule";
55
55
  export { guardToolAdapter } from "./sync/toolActionRegistry";
56
56
  export { AccountSetup } from "./license/AccountSetup";
@@ -0,0 +1,27 @@
1
+ import { type ReactNode } from "react";
2
+ export declare function useSignInState(): string;
3
+ /**
4
+ * Sign in with a code: a QR code for buoy.gg/activate and the same short code
5
+ * as text. Needs the app's id (`signIn` on FloatingDevTools); without it,
6
+ * `onNotConfigured` runs instead of showing an error.
7
+ */
8
+ export declare function BuoySignInCard({ onClose, onNotConfigured, footer, }: {
9
+ onClose: () => void;
10
+ onNotConfigured?: () => void;
11
+ footer?: ReactNode;
12
+ }): import("react").JSX.Element;
13
+ /** Signed in, but this build of Buoy needs a paid plan. */
14
+ export declare function BuoyNeedsPlanCard({ onClose }: {
15
+ onClose: () => void;
16
+ }): import("react").JSX.Element;
17
+ export interface BuoyUpgradeSheetProps {
18
+ visible: boolean;
19
+ onClose: () => void;
20
+ }
21
+ /**
22
+ * What every "Upgrade to Pro" button opens. Signed out, it starts "Sign in
23
+ * to Buoy" so a Pro account can open Pro here. Signed in on Free, or in an
24
+ * app with no sign-in set up, it shows "Get Buoy Pro".
25
+ */
26
+ export declare function BuoyUpgradeSheet({ visible, onClose }: BuoyUpgradeSheetProps): import("react").JSX.Element | null;
27
+ //# sourceMappingURL=BuoyUpgradeSheet.d.ts.map
@@ -53,7 +53,7 @@ export interface FeatureGateProps {
53
53
  }
54
54
  /**
55
55
  * Default upgrade prompt shown when user doesn't have Pro access
56
- * Opens LicenseEntryModal when clicked (unless custom onUpgradePress provided)
56
+ * Opens BuoyUpgradeSheet when clicked (unless custom onUpgradePress provided)
57
57
  */
58
58
  export declare const UpgradePrompt: ({ featureName, onUpgradePress, compact, }: {
59
59
  featureName?: string;
@@ -1,9 +1,9 @@
1
1
  export { FeatureGate, UpgradePrompt, useFeatureGate, ProFeatureBanner, UpgradeModal, ProBadge, ProUpgradeModal } from "./FeatureGate";
2
2
  export type { FeatureGateProps, ProFeatureBannerProps, UpgradeModalProps, ProUpgradeModalProps } from "./FeatureGate";
3
- export { LicenseEntryModal } from "./LicenseEntryModal";
3
+ export { BuoyUpgradeSheet, BuoySignInCard, BuoyNeedsPlanCard, useSignInState } from "./BuoyUpgradeSheet";
4
+ export type { BuoyUpgradeSheetProps } from "./BuoyUpgradeSheet";
4
5
  export { FreeAccountPrompt, LOGIN_COMMAND } from "./FreeAccountPrompt";
5
6
  export type { FreeAccountPromptProps } from "./FreeAccountPrompt";
6
- export type { LicenseEntryModalProps, LicenseState } from "./LicenseEntryModal";
7
7
  export { getUseIsPro, getUseLicense, getUseTier, signOutOfBuoy, } from "./licenseModule";
8
8
  export type { BuoyTier } from "./licenseModule";
9
9
  export { TIER_LIMITS, useLimit, resolveEffectiveTier } from "./tierLimits";
@@ -46,6 +46,31 @@ export declare function assertAccountAccess(): void;
46
46
  export declare function subscribeAccountAccess(listener: () => void): () => void;
47
47
  export declare function getUseAccountAccess(): () => AccountAccess;
48
48
  export declare function retryAccountAccess(): Promise<void>;
49
+ /** What the sign-in cards need from SessionManager. */
50
+ export type SignInPrompt = {
51
+ userCode: string;
52
+ verificationUri: string;
53
+ verificationUriComplete: string;
54
+ expiresAt: number;
55
+ };
56
+ export type SignInSession = {
57
+ getStatus(): {
58
+ state: string;
59
+ claims?: {
60
+ tier?: string;
61
+ };
62
+ };
63
+ subscribe(listener: () => void): () => void;
64
+ signInWithCode?: (show: (prompt: SignInPrompt) => void, options?: {
65
+ signal?: AbortSignal;
66
+ }) => Promise<unknown>;
67
+ signOut(): Promise<void>;
68
+ };
69
+ /**
70
+ * "Sign in with Buoy", read when used: Desktop and the website build against a
71
+ * stand-in license package with no sign-in, so a missing one is undefined.
72
+ */
73
+ export declare function getSignInSession(): SignInSession | undefined;
49
74
  /**
50
75
  * Sign out of "Sign in with Buoy" on this device and on buoy.gg. A no-op
51
76
  * without the license package or without a sign-in.
@@ -2161,7 +2161,7 @@ export declare const OTTO_ANCHOR_SIZE = 7;
2161
2161
  export type OttoState = keyof typeof OTTO_STATES;
2162
2162
  export declare const OTTO_NOTES: Record<OttoState, string>;
2163
2163
  /** Every animated state, in the mockup's order (`static` excluded). */
2164
- export declare const OTTO_STATE_NAMES: ("pro" | "locked" | "map" | "keys" | "progress" | "copied" | "idle" | "success" | "error" | "warning" | "ghost" | "happy" | "thinking" | "sleep" | "peek" | "typing" | "debugging" | "building" | "carrying" | "pushing" | "sweeping" | "juggling" | "wizard" | "conducting" | "beacon" | "notification" | "disconnected" | "dizzy" | "overheated" | "confused" | "stare" | "walking" | "goingaway" | "eureka" | "grooving" | "hatmishap" | "lowbattery" | "wake" | "builder" | "mini" | "minityping" | "happydance" | "jumping" | "loading" | "hourglass" | "waiting" | "syncing" | "downloading" | "uploading" | "connecting" | "scanning" | "searching" | "empty" | "shrug" | "fishing" | "listening" | "tumbleweed" | "crash" | "panic" | "sos" | "offline" | "timeout" | "unlocked" | "denied" | "broken" | "sad" | "rain" | "sick" | "flood" | "bug" | "alarm" | "frozen" | "snail" | "angry" | "nervous" | "puzzled" | "detective" | "reading" | "celebrate" | "thumbsup" | "party" | "trophy" | "starred" | "love" | "wave" | "bow" | "cool" | "flexing" | "zen" | "recording" | "paused" | "filtering" | "pinned" | "rewind" | "storing" | "printing" | "stopwatch" | "spotlight" | "photo" | "painting" | "disguise" | "talking" | "handshake" | "robot" | "plug" | "gift" | "action" | "guard" | "coffee" | "swimming" | "diving" | "balloon" | "landing" | "spinning" | "bubbles" | "trash" | "saved" | "charting" | "present" | "lift" | "carry" | "hug" | "lean" | "point")[];
2164
+ export declare const OTTO_STATE_NAMES: ("pro" | "locked" | "map" | "keys" | "progress" | "copied" | "waiting" | "error" | "idle" | "success" | "warning" | "ghost" | "happy" | "thinking" | "sleep" | "peek" | "typing" | "debugging" | "building" | "carrying" | "pushing" | "sweeping" | "juggling" | "wizard" | "conducting" | "beacon" | "notification" | "disconnected" | "dizzy" | "overheated" | "confused" | "stare" | "walking" | "goingaway" | "eureka" | "grooving" | "hatmishap" | "lowbattery" | "wake" | "builder" | "mini" | "minityping" | "happydance" | "jumping" | "loading" | "hourglass" | "syncing" | "downloading" | "uploading" | "connecting" | "scanning" | "searching" | "empty" | "shrug" | "fishing" | "listening" | "tumbleweed" | "crash" | "panic" | "sos" | "offline" | "timeout" | "unlocked" | "denied" | "broken" | "sad" | "rain" | "sick" | "flood" | "bug" | "alarm" | "frozen" | "snail" | "angry" | "nervous" | "puzzled" | "detective" | "reading" | "celebrate" | "thumbsup" | "party" | "trophy" | "starred" | "love" | "wave" | "bow" | "cool" | "flexing" | "zen" | "recording" | "paused" | "filtering" | "pinned" | "rewind" | "storing" | "printing" | "stopwatch" | "spotlight" | "photo" | "painting" | "disguise" | "talking" | "handshake" | "robot" | "plug" | "gift" | "action" | "guard" | "coffee" | "swimming" | "diving" | "balloon" | "landing" | "spinning" | "bubbles" | "trash" | "saved" | "charting" | "present" | "lift" | "carry" | "hug" | "lean" | "point")[];
2165
2165
  export interface OttoGroup {
2166
2166
  id: string;
2167
2167
  title: string;
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Auto-generated safe area implementation
3
3
  * Detected: none
4
- * Generated at: 2026-10-06T14:30:09.729Z
4
+ * Generated at: 2026-10-07T14:49:27.277Z
5
5
  *
6
6
  * DO NOT EDIT - This file is generated by scripts/detect-safe-area.js
7
7
  *
@@ -49,8 +49,8 @@ export type { Environment } from "./types/types";
49
49
  export { normalizeEnvironment } from "./types/types";
50
50
  export { HintsProvider, useHintsDisabled, useHintsContext } from "./context";
51
51
  export * from "./history";
52
- export { FeatureGate, UpgradePrompt, useFeatureGate, ProFeatureBanner, UpgradeModal, LicenseEntryModal, ProBadge, ProUpgradeModal, FreeAccountPrompt, LOGIN_COMMAND, getUseIsPro, getUseLicense, getUseTier, signOutOfBuoy, TIER_LIMITS, useLimit, resolveEffectiveTier } from "./license";
53
- export type { FeatureGateProps, ProFeatureBannerProps, UpgradeModalProps, LicenseEntryModalProps, ProUpgradeModalProps, FreeAccountPromptProps, BuoyTier, TierLimitKey } from "./license";
52
+ export { FeatureGate, UpgradePrompt, useFeatureGate, ProFeatureBanner, UpgradeModal, BuoyUpgradeSheet, BuoySignInCard, BuoyNeedsPlanCard, useSignInState, ProBadge, ProUpgradeModal, FreeAccountPrompt, LOGIN_COMMAND, getUseIsPro, getUseLicense, getUseTier, signOutOfBuoy, TIER_LIMITS, useLimit, resolveEffectiveTier } from "./license";
53
+ export type { FeatureGateProps, ProFeatureBannerProps, UpgradeModalProps, BuoyUpgradeSheetProps, ProUpgradeModalProps, FreeAccountPromptProps, BuoyTier, TierLimitKey } from "./license";
54
54
  export { getAccountAccess, hasAccountAccess, assertAccountAccess, subscribeAccountAccess, getUseAccountAccess, retryAccountAccess, isProNow } from "./license/licenseModule";
55
55
  export { guardToolAdapter } from "./sync/toolActionRegistry";
56
56
  export { AccountSetup } from "./license/AccountSetup";
@@ -0,0 +1,27 @@
1
+ import { type ReactNode } from "react";
2
+ export declare function useSignInState(): string;
3
+ /**
4
+ * Sign in with a code: a QR code for buoy.gg/activate and the same short code
5
+ * as text. Needs the app's id (`signIn` on FloatingDevTools); without it,
6
+ * `onNotConfigured` runs instead of showing an error.
7
+ */
8
+ export declare function BuoySignInCard({ onClose, onNotConfigured, footer, }: {
9
+ onClose: () => void;
10
+ onNotConfigured?: () => void;
11
+ footer?: ReactNode;
12
+ }): import("react").JSX.Element;
13
+ /** Signed in, but this build of Buoy needs a paid plan. */
14
+ export declare function BuoyNeedsPlanCard({ onClose }: {
15
+ onClose: () => void;
16
+ }): import("react").JSX.Element;
17
+ export interface BuoyUpgradeSheetProps {
18
+ visible: boolean;
19
+ onClose: () => void;
20
+ }
21
+ /**
22
+ * What every "Upgrade to Pro" button opens. Signed out, it starts "Sign in
23
+ * to Buoy" so a Pro account can open Pro here. Signed in on Free, or in an
24
+ * app with no sign-in set up, it shows "Get Buoy Pro".
25
+ */
26
+ export declare function BuoyUpgradeSheet({ visible, onClose }: BuoyUpgradeSheetProps): import("react").JSX.Element | null;
27
+ //# sourceMappingURL=BuoyUpgradeSheet.d.ts.map