@iblai/iblai-js 1.20.2 → 1.20.4

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.
@@ -197302,32 +197302,16 @@ function SignupButton({ authUrl, tenantKey, redirectTo, label = 'Sign Up', onCli
197302
197302
  }
197303
197303
  SignupButton.displayName = 'SignupButton';
197304
197304
 
197305
- function OverlayModal({ open, onClose, title, description, className, children, }) {
197306
- const [mounted, setMounted] = useState(false);
197307
- const [dialogPanel, setDialogPanel] = useState(null);
197308
- useEffect(() => {
197309
- setMounted(true);
197310
- }, []);
197311
- const handleOpenChange = (nextOpen) => {
197312
- if (!nextOpen)
197313
- onClose();
197314
- };
197315
- if (!mounted || typeof document === 'undefined') {
197316
- return null;
197317
- }
197318
- // Nested Radix Dialog on document.body: viewport-fixed overlay + its own scroll lock,
197319
- // independent of any parent modal. Requires the app to resolve the same
197320
- // `@radix-ui/react-dialog` instance as this package (peer dependency + Rollup external).
197321
- return (jsx(DialogPrimitive.Root, { open: open, onOpenChange: handleOpenChange, modal: true, children: jsxs(DialogPrimitive.Portal, { container: document.body, children: [jsx(DialogPrimitive.Overlay, { "data-iblai-dialog-interaction-layer": true, className: cn('pointer-events-auto fixed inset-0 z-[100] bg-black/60', 'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0') }), jsx(DialogPrimitive.Content, { ref: setDialogPanel, "data-iblai-dialog-interaction-layer": true, ...(!description ? { 'aria-describedby': undefined } : {}), className: cn('pointer-events-auto fixed left-[50%] top-[50%] z-[100] grid w-full translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background shadow-lg duration-200', 'max-h-[min(90dvh,calc(100dvh-2rem))] max-w-[calc(100vw-2rem)] overflow-y-auto overscroll-contain rounded-lg p-6 sm:rounded-lg', 'pt-[max(1.5rem,env(safe-area-inset-top))] pb-[max(1.5rem,env(safe-area-inset-bottom))]', 'pl-[max(1.5rem,env(safe-area-inset-left))] pr-[max(1.5rem,env(safe-area-inset-right))]', 'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%]', 'focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2', className), children: jsxs(FloatingPortalContainerContext.Provider, { value: dialogPanel, children: [jsx(DialogPrimitive.Close, { type: "button", className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2", "aria-label": "Close", children: jsx(X$1, { className: "h-4 w-4" }) }), jsxs("div", { className: "space-y-4", children: [jsxs("div", { className: "flex flex-col space-y-1.5 pr-8 text-center sm:text-left", children: [jsx(DialogPrimitive.Title, { className: "text-lg font-semibold leading-none tracking-tight", children: title }), description ? (jsx(DialogPrimitive.Description, { className: "text-sm text-muted-foreground", children: description })) : null] }), children] })] }) })] }) }));
197322
- }
197323
-
197324
- // ── Helpers ──────────────────────────────────────────────────────────────────
197305
+ /**
197306
+ * Returns the canonical logo path and display name for an LLM provider.
197307
+ * `logo` is a static-root path (e.g. `/llm-amazon-provider.png`); the package
197308
+ * ships the canonical assets under `@iblai/web-containers/public/` — copy them
197309
+ * into your app's static-root (`public/` for Next.js) so the paths resolve.
197310
+ */
197325
197311
  function getLLMProviderDetails(llmProvider, llmName) {
197326
197312
  switch (llmProvider) {
197327
197313
  case 'groq':
197328
197314
  return { logo: '/llm-groq-provider.png', name: 'Groq' };
197329
- case 'IBLChatNvidia':
197330
- return { logo: '/llm-nvidia-provider.webp', name: 'NVIDIA' };
197331
197315
  case 'azure_openai':
197332
197316
  return { logo: '/llm-microsoft-provider.png', name: 'Microsoft' };
197333
197317
  case 'openai':
@@ -197342,22 +197326,48 @@ function getLLMProviderDetails(llmProvider, llmName) {
197342
197326
  return { logo: '/llm-google-provider.svg', name: 'Google' };
197343
197327
  case 'llama':
197344
197328
  return { logo: '/llm-llama-provider.jpeg', name: 'Meta' };
197345
- case 'IBLChatAnthropic':
197346
- return { logo: '/llm-claude-provider.png', name: 'Anthropic' };
197347
197329
  case 'perplexity':
197348
197330
  return { logo: '/llm-perplexity-provider.webp', name: 'Perplexity' };
197349
197331
  case 'deepseek':
197350
197332
  return { logo: '/llm-deepseek-provider.png', name: 'DeepSeek' };
197351
197333
  case 'xai':
197352
197334
  return { logo: '/llm-xai-provider.jpg', name: 'xAI' };
197335
+ case 'IBLChatAnthropic':
197353
197336
  case 'anthropic':
197354
197337
  return { logo: '/llm-claude-provider.png', name: 'Anthropic' };
197338
+ case 'IBLChatNvidia':
197355
197339
  case 'nvidia':
197356
197340
  return { logo: '/llm-nvidia-provider.webp', name: 'NVIDIA' };
197341
+ case 'bedrock':
197342
+ case 'amazon-bedrock':
197343
+ case 'amazon_bedrock':
197344
+ case 'IBLChatBedrock':
197345
+ return { logo: '/llm-amazon-provider.png', name: 'Amazon' };
197357
197346
  default:
197358
197347
  return { logo: '/llm-generic-provider.png', name: llmProvider };
197359
197348
  }
197360
197349
  }
197350
+
197351
+ function OverlayModal({ open, onClose, title, description, className, children, }) {
197352
+ const [mounted, setMounted] = useState(false);
197353
+ const [dialogPanel, setDialogPanel] = useState(null);
197354
+ useEffect(() => {
197355
+ setMounted(true);
197356
+ }, []);
197357
+ const handleOpenChange = (nextOpen) => {
197358
+ if (!nextOpen)
197359
+ onClose();
197360
+ };
197361
+ if (!mounted || typeof document === 'undefined') {
197362
+ return null;
197363
+ }
197364
+ // Nested Radix Dialog on document.body: viewport-fixed overlay + its own scroll lock,
197365
+ // independent of any parent modal. Requires the app to resolve the same
197366
+ // `@radix-ui/react-dialog` instance as this package (peer dependency + Rollup external).
197367
+ return (jsx(DialogPrimitive.Root, { open: open, onOpenChange: handleOpenChange, modal: true, children: jsxs(DialogPrimitive.Portal, { container: document.body, children: [jsx(DialogPrimitive.Overlay, { "data-iblai-dialog-interaction-layer": true, className: cn('pointer-events-auto fixed inset-0 z-[100] bg-black/60', 'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0') }), jsx(DialogPrimitive.Content, { ref: setDialogPanel, "data-iblai-dialog-interaction-layer": true, ...(!description ? { 'aria-describedby': undefined } : {}), className: cn('pointer-events-auto fixed left-[50%] top-[50%] z-[100] grid w-full translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background shadow-lg duration-200', 'max-h-[min(90dvh,calc(100dvh-2rem))] max-w-[calc(100vw-2rem)] overflow-y-auto overscroll-contain rounded-lg p-6 sm:rounded-lg', 'pt-[max(1.5rem,env(safe-area-inset-top))] pb-[max(1.5rem,env(safe-area-inset-bottom))]', 'pl-[max(1.5rem,env(safe-area-inset-left))] pr-[max(1.5rem,env(safe-area-inset-right))]', 'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%]', 'focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2', className), children: jsxs(FloatingPortalContainerContext.Provider, { value: dialogPanel, children: [jsx(DialogPrimitive.Close, { type: "button", className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2", "aria-label": "Close", children: jsx(X$1, { className: "h-4 w-4" }) }), jsxs("div", { className: "space-y-4", children: [jsxs("div", { className: "flex flex-col space-y-1.5 pr-8 text-center sm:text-left", children: [jsx(DialogPrimitive.Title, { className: "text-lg font-semibold leading-none tracking-tight", children: title }), description ? (jsx(DialogPrimitive.Description, { className: "text-sm text-muted-foreground", children: description })) : null] }), children] })] }) })] }) }));
197368
+ }
197369
+
197370
+ // ── Helpers ──────────────────────────────────────────────────────────────────
197361
197371
  const canSwitchLLm = (llm) => {
197362
197372
  if (llm === null || llm === void 0 ? void 0 : llm.has_credentials) {
197363
197373
  return true;
@@ -198198,7 +198208,7 @@ function UpgradePackageModal({ open, onClose, redirectUrl, sourcePlatformKey, ma
198198
198208
  }
198199
198209
 
198200
198210
  function AppleRestrictionModal({ isOpen, onClose }) {
198201
- return (jsx(Dialog, { open: isOpen, onOpenChange: onClose, children: jsx(DialogContent, { showCloseButton: false, className: "max-w-sm gap-0 overflow-hidden rounded-2xl p-0", children: jsxs("div", { className: "flex flex-col items-center gap-6 px-8 py-10 text-center", children: [jsx("div", { className: "flex h-16 w-16 items-center justify-center rounded-full bg-gray-100", children: jsx(Smartphone, { className: "h-8 w-8 text-gray-500", strokeWidth: 1.5 }) }), jsxs("div", { className: "flex flex-col gap-2", children: [jsx(DialogTitle, { className: "text-xl font-bold tracking-tight text-gray-900", children: "Subscription changes happen outside the app" }), jsx(DialogDescription, { className: "text-sm leading-relaxed text-gray-500", children: "All subscription and billing changes are managed through your account, outside the app." })] }), jsx("div", { className: "flex w-full flex-col gap-3", children: jsx("button", { type: "button", onClick: onClose, className: "ibl-button-primary flex w-full items-center justify-center rounded-full py-3 text-sm font-semibold", children: "OK" }) })] }) }) }));
198211
+ return (jsx(Dialog, { open: isOpen, onOpenChange: onClose, children: jsx(DialogContent, { showCloseButton: false, className: "max-w-sm gap-0 overflow-hidden rounded-2xl p-0", children: jsxs("div", { className: "flex flex-col items-center gap-6 px-8 py-10 text-center", children: [jsx("div", { className: "flex h-16 w-16 items-center justify-center rounded-full bg-gray-100", children: jsx(Smartphone, { className: "h-8 w-8 text-gray-500", strokeWidth: 1.5 }) }), jsxs("div", { className: "flex flex-col gap-2", children: [jsx(DialogTitle, { className: "text-xl font-bold tracking-tight text-gray-900", children: "This action requires a subscription which happens outside the app" }), jsx(DialogDescription, { className: "text-sm leading-relaxed text-gray-500", children: "All subscription and billing changes are managed through your account, outside the app." })] }), jsx("div", { className: "flex w-full flex-col gap-3", children: jsx("button", { type: "button", onClick: onClose, className: "ibl-button-primary flex w-full items-center justify-center rounded-full py-3 text-sm font-semibold", children: "OK" }) })] }) }) }));
198202
198212
  }
198203
198213
 
198204
198214
  function Version({ appName, appVersion, poweredBy, }) {
@@ -202441,6 +202441,52 @@ var reactPaginate = {exports: {}};
202441
202441
 
202442
202442
  } (reactPaginate));
202443
202443
 
202444
+ /**
202445
+ * Returns the canonical logo path and display name for an LLM provider.
202446
+ * `logo` is a static-root path (e.g. `/llm-amazon-provider.png`); the package
202447
+ * ships the canonical assets under `@iblai/web-containers/public/` — copy them
202448
+ * into your app's static-root (`public/` for Next.js) so the paths resolve.
202449
+ */
202450
+ function getLLMProviderDetails(llmProvider, llmName) {
202451
+ switch (llmProvider) {
202452
+ case 'groq':
202453
+ return { logo: '/llm-groq-provider.png', name: 'Groq' };
202454
+ case 'azure_openai':
202455
+ return { logo: '/llm-microsoft-provider.png', name: 'Microsoft' };
202456
+ case 'openai':
202457
+ if (llmName)
202458
+ return { logo: '/llm-openai-provider.jpg', name: 'OpenAI' };
202459
+ return { logo: '/llm-openai-provider-2.svg', name: 'OpenAI' };
202460
+ case 'mistral':
202461
+ return { logo: '/llm-mistral-provider.jpeg', name: 'Mistral' };
202462
+ case 'google':
202463
+ if (llmName)
202464
+ return { logo: '/llm-gemini-provider.png', name: 'Google' };
202465
+ return { logo: '/llm-google-provider.svg', name: 'Google' };
202466
+ case 'llama':
202467
+ return { logo: '/llm-llama-provider.jpeg', name: 'Meta' };
202468
+ case 'perplexity':
202469
+ return { logo: '/llm-perplexity-provider.webp', name: 'Perplexity' };
202470
+ case 'deepseek':
202471
+ return { logo: '/llm-deepseek-provider.png', name: 'DeepSeek' };
202472
+ case 'xai':
202473
+ return { logo: '/llm-xai-provider.jpg', name: 'xAI' };
202474
+ case 'IBLChatAnthropic':
202475
+ case 'anthropic':
202476
+ return { logo: '/llm-claude-provider.png', name: 'Anthropic' };
202477
+ case 'IBLChatNvidia':
202478
+ case 'nvidia':
202479
+ return { logo: '/llm-nvidia-provider.webp', name: 'NVIDIA' };
202480
+ case 'bedrock':
202481
+ case 'amazon-bedrock':
202482
+ case 'amazon_bedrock':
202483
+ case 'IBLChatBedrock':
202484
+ return { logo: '/llm-amazon-provider.png', name: 'Amazon' };
202485
+ default:
202486
+ return { logo: '/llm-generic-provider.png', name: llmProvider };
202487
+ }
202488
+ }
202489
+
202444
202490
  lazy(() => Promise.resolve().then(function () { return createProjectModal; }).then((mod) => ({
202445
202491
  default: mod.CreateProjectModal,
202446
202492
  })));
@@ -211036,52 +211082,6 @@ function AgentLLMTab({ showConfigurationHeader = true, getLLMProviderDetails, la
211036
211082
  }, llms: (llmProviders !== null && llmProviders !== void 0 ? llmProviders : []), getLLMProviderDetails: getLLMProviderDetails, labels: labels.providerModal }))] }) })] }));
211037
211083
  }
211038
211084
 
211039
- /**
211040
- * Returns the canonical logo path and display name for an LLM provider.
211041
- * `logo` is a static-root path (e.g. `/llm-amazon-provider.png`); the package
211042
- * ships the canonical assets under `@iblai/web-containers/public/` — copy them
211043
- * into your app's static-root (`public/` for Next.js) so the paths resolve.
211044
- */
211045
- function getLLMProviderDetails(llmProvider, llmName) {
211046
- switch (llmProvider) {
211047
- case 'groq':
211048
- return { logo: '/llm-groq-provider.png', name: 'Groq' };
211049
- case 'azure_openai':
211050
- return { logo: '/llm-microsoft-provider.png', name: 'Microsoft' };
211051
- case 'openai':
211052
- if (llmName)
211053
- return { logo: '/llm-openai-provider.jpg', name: 'OpenAI' };
211054
- return { logo: '/llm-openai-provider-2.svg', name: 'OpenAI' };
211055
- case 'mistral':
211056
- return { logo: '/llm-mistral-provider.jpeg', name: 'Mistral' };
211057
- case 'google':
211058
- if (llmName)
211059
- return { logo: '/llm-gemini-provider.png', name: 'Google' };
211060
- return { logo: '/llm-google-provider.svg', name: 'Google' };
211061
- case 'llama':
211062
- return { logo: '/llm-llama-provider.jpeg', name: 'Meta' };
211063
- case 'perplexity':
211064
- return { logo: '/llm-perplexity-provider.webp', name: 'Perplexity' };
211065
- case 'deepseek':
211066
- return { logo: '/llm-deepseek-provider.png', name: 'DeepSeek' };
211067
- case 'xai':
211068
- return { logo: '/llm-xai-provider.jpg', name: 'xAI' };
211069
- case 'IBLChatAnthropic':
211070
- case 'anthropic':
211071
- return { logo: '/llm-claude-provider.png', name: 'Anthropic' };
211072
- case 'IBLChatNvidia':
211073
- case 'nvidia':
211074
- return { logo: '/llm-nvidia-provider.webp', name: 'NVIDIA' };
211075
- case 'bedrock':
211076
- case 'amazon-bedrock':
211077
- case 'amazon_bedrock':
211078
- case 'IBLChatBedrock':
211079
- return { logo: '/llm-amazon-provider.png', name: 'Amazon' };
211080
- default:
211081
- return { logo: '/llm-generic-provider.png', name: llmProvider };
211082
- }
211083
- }
211084
-
211085
211085
  function useTools({ labels }) {
211086
211086
  var _a, _b;
211087
211087
  const { tenantKey, mentorId, username } = useAgentSettings();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@iblai/iblai-js",
3
- "version": "1.20.2",
3
+ "version": "1.20.4",
4
4
  "description": "Unified JavaScript SDK for IBL.ai — re-exports data-layer, web-containers, and web-utils under a single package",
5
5
  "type": "module",
6
6
  "engines": {
@@ -68,8 +68,8 @@
68
68
  "winston": "3.19.0",
69
69
  "@iblai/data-layer": "1.8.4",
70
70
  "@iblai/mcp": "1.7.2",
71
- "@iblai/web-utils": "1.11.2",
72
- "@iblai/web-containers": "1.10.2"
71
+ "@iblai/web-containers": "1.10.4",
72
+ "@iblai/web-utils": "1.11.2"
73
73
  },
74
74
  "peerDependencies": {
75
75
  "@radix-ui/react-dialog": "^1.1.7",