@shuffleio/shuffle-mcps 0.0.22 → 0.0.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -62,6 +62,10 @@ interface ShuffleHostProps {
62
62
  globalUrl?: string;
63
63
  /** Userdata returned by `GET /api/v1/getinfo` (active_org, support, etc.). */
64
64
  userdata?: any;
65
+ /** Optional theme mode forwarded through composed Shuffle surfaces. */
66
+ theme?: 'light' | 'dark' | 'system';
67
+ /** Legacy theme alias forwarded through composed Shuffle surfaces. */
68
+ colorMode?: 'light' | 'dark' | 'auto';
65
69
  }
66
70
 
67
71
  /**
@@ -182,6 +186,8 @@ interface ShuffleMCPProps extends ShuffleHostProps {
182
186
  showCheckbox?: boolean;
183
187
  multiSelect?: boolean;
184
188
  selectedApps?: AlgoliaSearchApp[];
189
+ /** Disable automatic selection of already validated apps. Useful for explicit user pickers. */
190
+ disableAutoSelectValidatedApps?: boolean;
185
191
  preventDefault?: boolean;
186
192
  /** When true, results show inline on the page instead of as a dropdown */
187
193
  inline?: boolean;
@@ -505,6 +511,10 @@ interface AgentUIProps {
505
511
  apiBaseUrl?: string;
506
512
  /** Optional Shuffle Org ID — sent as the `Org-Id` header on every call. */
507
513
  orgId?: string;
514
+ /** Optional theme mode forwarded to nested Shuffle drawers. */
515
+ theme?: 'light' | 'dark' | 'system';
516
+ /** Legacy theme alias forwarded to nested Shuffle drawers. */
517
+ colorMode?: 'light' | 'dark' | 'auto';
508
518
  /** Optional className forwarded to the root container. */
509
519
  className?: string;
510
520
  /** Style overrides merged into the root container sx. */
package/dist/index.d.ts CHANGED
@@ -62,6 +62,10 @@ interface ShuffleHostProps {
62
62
  globalUrl?: string;
63
63
  /** Userdata returned by `GET /api/v1/getinfo` (active_org, support, etc.). */
64
64
  userdata?: any;
65
+ /** Optional theme mode forwarded through composed Shuffle surfaces. */
66
+ theme?: 'light' | 'dark' | 'system';
67
+ /** Legacy theme alias forwarded through composed Shuffle surfaces. */
68
+ colorMode?: 'light' | 'dark' | 'auto';
65
69
  }
66
70
 
67
71
  /**
@@ -182,6 +186,8 @@ interface ShuffleMCPProps extends ShuffleHostProps {
182
186
  showCheckbox?: boolean;
183
187
  multiSelect?: boolean;
184
188
  selectedApps?: AlgoliaSearchApp[];
189
+ /** Disable automatic selection of already validated apps. Useful for explicit user pickers. */
190
+ disableAutoSelectValidatedApps?: boolean;
185
191
  preventDefault?: boolean;
186
192
  /** When true, results show inline on the page instead of as a dropdown */
187
193
  inline?: boolean;
@@ -505,6 +511,10 @@ interface AgentUIProps {
505
511
  apiBaseUrl?: string;
506
512
  /** Optional Shuffle Org ID — sent as the `Org-Id` header on every call. */
507
513
  orgId?: string;
514
+ /** Optional theme mode forwarded to nested Shuffle drawers. */
515
+ theme?: 'light' | 'dark' | 'system';
516
+ /** Legacy theme alias forwarded to nested Shuffle drawers. */
517
+ colorMode?: 'light' | 'dark' | 'auto';
508
518
  /** Optional className forwarded to the root container. */
509
519
  className?: string;
510
520
  /** Style overrides merged into the root container sx. */
package/dist/index.js CHANGED
@@ -6235,6 +6235,7 @@ var ShuffleMCP = import_react12.default.forwardRef(({
6235
6235
  showCheckbox = false,
6236
6236
  multiSelect = false,
6237
6237
  selectedApps = EMPTY_SELECTED_APPS,
6238
+ disableAutoSelectValidatedApps = false,
6238
6239
  preventDefault = false,
6239
6240
  inline = false,
6240
6241
  initialQuery = "",
@@ -6345,6 +6346,7 @@ var ShuffleMCP = import_react12.default.forwardRef(({
6345
6346
  fetchPrivateApps();
6346
6347
  }, [apiKey, apiBaseUrl, privateAppsPath, disablePrivateApps, orgId]);
6347
6348
  (0, import_react12.useEffect)(() => {
6349
+ if (disableAutoSelectValidatedApps) return;
6348
6350
  if (authenticatedApps.length > 0 && results.length > 0) {
6349
6351
  const validatedApps = authenticatedApps.filter((auth) => auth.validation?.valid);
6350
6352
  const appsToAutoSelect = results.filter(
@@ -6363,7 +6365,7 @@ var ShuffleMCP = import_react12.default.forwardRef(({
6363
6365
  }
6364
6366
  }
6365
6367
  }
6366
- }, [authenticatedApps, results]);
6368
+ }, [authenticatedApps, results, disableAutoSelectValidatedApps]);
6367
6369
  (0, import_react12.useEffect)(() => {
6368
6370
  if (externalAuthenticatedApps) {
6369
6371
  setAuthenticatedApps(externalAuthenticatedApps);
@@ -6861,8 +6863,12 @@ function AppSearchDrawer({
6861
6863
  highlightDelayMs = 5e3,
6862
6864
  multiSelect = false,
6863
6865
  selectedApps,
6864
- onSelectionChange
6866
+ onSelectionChange,
6867
+ globalUrl,
6868
+ theme,
6869
+ colorMode
6865
6870
  }) {
6871
+ const themeScope = useShuffleMcpTheme();
6866
6872
  const [detailAppName, setDetailAppName] = (0, import_react13.useState)(null);
6867
6873
  const [detailAppId, setDetailAppId] = (0, import_react13.useState)(null);
6868
6874
  const [highlightActive, setHighlightActive] = (0, import_react13.useState)(false);
@@ -6948,6 +6954,7 @@ function AppSearchDrawer({
6948
6954
  anchor,
6949
6955
  open: open && detailAppName === null,
6950
6956
  onClose: handleClose,
6957
+ slotProps: { paper: { className: themeScope?.scopeClassName } },
6951
6958
  sx: {
6952
6959
  zIndex: 9999,
6953
6960
  "& .MuiDrawer-paper": {
@@ -7101,7 +7108,10 @@ function AppSearchDrawer({
7101
7108
  ShuffleMCP2,
7102
7109
  {
7103
7110
  apiKey: API_CONFIG.apiKey || void 0,
7104
- apiBaseUrl: API_CONFIG.baseUrl,
7111
+ apiBaseUrl: globalUrl || API_CONFIG.baseUrl,
7112
+ globalUrl,
7113
+ theme,
7114
+ colorMode,
7105
7115
  placeholder: initialQuery ? `Search ${initialQuery} integrations...` : "Search integrations...",
7106
7116
  layout: "grid",
7107
7117
  gridColumns: 2,
@@ -7113,8 +7123,17 @@ function AppSearchDrawer({
7113
7123
  showCheckbox: multiSelect,
7114
7124
  multiSelect,
7115
7125
  selectedApps: multiSelect ? projectedSelectedApps : void 0,
7126
+ disableAutoSelectValidatedApps: multiSelect,
7116
7127
  preventDefault: true,
7117
7128
  onAppSelected: handleAppSelected,
7129
+ onSelectionChange: multiSelect ? (next) => {
7130
+ onSelectionChange?.(next.map((app) => ({
7131
+ name: app.name,
7132
+ id: app.objectID || null,
7133
+ icon: app.image_url || "",
7134
+ categories: app.categories || []
7135
+ })));
7136
+ } : void 0,
7118
7137
  pinnedApps: pinnedApps?.map((p) => ({
7119
7138
  name: p.name,
7120
7139
  image_url: p.image_url,
@@ -7160,6 +7179,9 @@ function AppSearchDrawer({
7160
7179
  appId: detailAppId,
7161
7180
  anchor,
7162
7181
  width,
7182
+ globalUrl,
7183
+ theme,
7184
+ colorMode,
7163
7185
  onRefresh: onClose,
7164
7186
  onAddToCanvas
7165
7187
  }
@@ -9166,6 +9188,8 @@ var AgentUI = ({
9166
9188
  apiKey,
9167
9189
  apiBaseUrl,
9168
9190
  orgId,
9191
+ theme,
9192
+ colorMode,
9169
9193
  className,
9170
9194
  sx,
9171
9195
  contentSx
@@ -11715,6 +11739,9 @@ var AgentUI = ({
11715
11739
  subtitle: appPickerSubtitle,
11716
11740
  multiSelect: true,
11717
11741
  selectedApps: chosenApps.map((a) => ({ name: a.name, id: a.id || null, icon: a.icon })),
11742
+ globalUrl: apiBaseUrl,
11743
+ theme,
11744
+ colorMode,
11718
11745
  onSelectionChange: (next) => {
11719
11746
  setChosenApps(
11720
11747
  next.map((app) => {
@@ -11738,7 +11765,10 @@ var AgentUI = ({
11738
11765
  onClose: () => setAuthDrawerApp(null),
11739
11766
  appName: authDrawerApp?.name || null,
11740
11767
  appId: authDrawerApp?.id || null,
11741
- activeOrgId: orgId || null
11768
+ activeOrgId: orgId || null,
11769
+ globalUrl: apiBaseUrl,
11770
+ theme,
11771
+ colorMode
11742
11772
  }
11743
11773
  )
11744
11774
  ]
@@ -11776,6 +11806,7 @@ var AgentRunDrawer = ({
11776
11806
  globalUrl
11777
11807
  }) => {
11778
11808
  useSyncHostBaseUrl(globalUrl);
11809
+ const themeScope = useShuffleMcpTheme();
11779
11810
  const [activeTab, setActiveTab] = (0, import_react16.useState)(initialTab);
11780
11811
  const prevOpenRef = (0, import_react16.useRef)(open);
11781
11812
  (0, import_react16.useEffect)(() => {
@@ -11805,7 +11836,7 @@ var AgentRunDrawer = ({
11805
11836
  onClose,
11806
11837
  slotProps: {
11807
11838
  paper: {
11808
- className,
11839
+ className: [themeScope?.scopeClassName, className].filter(Boolean).join(" ") || void 0,
11809
11840
  sx: [
11810
11841
  {
11811
11842
  width: { xs: "100%", sm: width },
@@ -12729,8 +12760,11 @@ var AgentExecutionDrawer = ({
12729
12760
  headerSx,
12730
12761
  bodySx,
12731
12762
  topBanner,
12732
- onSchedule
12763
+ onSchedule,
12764
+ theme,
12765
+ colorMode
12733
12766
  }) => {
12767
+ const themeScope = useShuffleMcpTheme();
12734
12768
  const statusKey = (run?.status || "").toUpperCase();
12735
12769
  const cfg = STATUS_CONFIG[statusKey] || STATUS_CONFIG.WAITING;
12736
12770
  const duration = run ? formatDuration(run) : "";
@@ -12742,7 +12776,7 @@ var AgentExecutionDrawer = ({
12742
12776
  onClose,
12743
12777
  slotProps: {
12744
12778
  paper: {
12745
- className,
12779
+ className: [themeScope?.scopeClassName, className].filter(Boolean).join(" ") || void 0,
12746
12780
  sx: [
12747
12781
  {
12748
12782
  width: { xs: "100%", sm: width },
@@ -12878,7 +12912,9 @@ var AgentExecutionDrawer = ({
12878
12912
  apiKey,
12879
12913
  apiBaseUrl,
12880
12914
  orgId,
12881
- onSchedule
12915
+ onSchedule,
12916
+ theme,
12917
+ colorMode
12882
12918
  },
12883
12919
  run.execution_id
12884
12920
  ) : null
@@ -12904,7 +12940,9 @@ var AgentsView = ({
12904
12940
  isLoaded,
12905
12941
  isLoggedIn,
12906
12942
  userdata,
12907
- serverside
12943
+ serverside,
12944
+ theme,
12945
+ colorMode
12908
12946
  }) => {
12909
12947
  useSyncHostBaseUrl(globalUrl);
12910
12948
  const [selectedRun, setSelectedRun] = (0, import_react18.useState)(null);
@@ -13030,7 +13068,9 @@ var AgentsView = ({
13030
13068
  submitLabel: editing ? "Save" : void 0,
13031
13069
  submitTooltip: editing ? "\u2318+Enter to save" : void 0,
13032
13070
  disableSchedule: Boolean(editing),
13033
- disableScheduleTooltip: editing ? "Scheduling is disabled while editing an existing schedule" : void 0
13071
+ disableScheduleTooltip: editing ? "Scheduling is disabled while editing an existing schedule" : void 0,
13072
+ theme,
13073
+ colorMode
13034
13074
  },
13035
13075
  prefill.key
13036
13076
  ),
@@ -13050,7 +13090,9 @@ var AgentsView = ({
13050
13090
  onClose: () => setSelectedRun(null),
13051
13091
  run: selectedRun,
13052
13092
  apiBaseUrl: globalUrl,
13053
- onSchedule
13093
+ onSchedule,
13094
+ theme,
13095
+ colorMode
13054
13096
  }
13055
13097
  ),
13056
13098
  /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
@@ -13062,7 +13104,9 @@ var AgentsView = ({
13062
13104
  globalUrl,
13063
13105
  localLLMSlot: effectiveLocalLLMSlot,
13064
13106
  permissionsSlot,
13065
- agentUIProps: { onSchedule, apiBaseUrl: globalUrl }
13107
+ theme,
13108
+ colorMode,
13109
+ agentUIProps: { onSchedule, apiBaseUrl: globalUrl, theme, colorMode }
13066
13110
  }
13067
13111
  )
13068
13112
  ] });
@@ -13305,7 +13349,7 @@ var withMcpTheme = (Inner, displayName) => {
13305
13349
  const Wrapped = ({ theme, colorMode, ...rest }) => import_react20.default.createElement(
13306
13350
  ShuffleMcpThemeProvider,
13307
13351
  { mode: resolveMode(theme, colorMode) },
13308
- import_react20.default.createElement(Inner, { ...rest })
13352
+ import_react20.default.createElement(Inner, { ...rest, theme, colorMode })
13309
13353
  );
13310
13354
  Wrapped.displayName = `ShuffleMCPs(${displayName})`;
13311
13355
  return Wrapped;
@@ -13315,7 +13359,7 @@ var withMcpThemeRef = (Inner, displayName) => {
13315
13359
  ({ theme, colorMode, ...rest }, ref) => import_react20.default.createElement(
13316
13360
  ShuffleMcpThemeProvider,
13317
13361
  { mode: resolveMode(theme, colorMode) },
13318
- import_react20.default.createElement(Inner, { ...rest, ref })
13362
+ import_react20.default.createElement(Inner, { ...rest, theme, colorMode, ref })
13319
13363
  )
13320
13364
  );
13321
13365
  Wrapped.displayName = `ShuffleMCPs(${displayName})`;
package/dist/index.mjs CHANGED
@@ -5872,6 +5872,7 @@ var ShuffleMCP = React3.forwardRef(({
5872
5872
  showCheckbox = false,
5873
5873
  multiSelect = false,
5874
5874
  selectedApps = EMPTY_SELECTED_APPS,
5875
+ disableAutoSelectValidatedApps = false,
5875
5876
  preventDefault = false,
5876
5877
  inline = false,
5877
5878
  initialQuery = "",
@@ -5982,6 +5983,7 @@ var ShuffleMCP = React3.forwardRef(({
5982
5983
  fetchPrivateApps();
5983
5984
  }, [apiKey, apiBaseUrl, privateAppsPath, disablePrivateApps, orgId]);
5984
5985
  useEffect8(() => {
5986
+ if (disableAutoSelectValidatedApps) return;
5985
5987
  if (authenticatedApps.length > 0 && results.length > 0) {
5986
5988
  const validatedApps = authenticatedApps.filter((auth) => auth.validation?.valid);
5987
5989
  const appsToAutoSelect = results.filter(
@@ -6000,7 +6002,7 @@ var ShuffleMCP = React3.forwardRef(({
6000
6002
  }
6001
6003
  }
6002
6004
  }
6003
- }, [authenticatedApps, results]);
6005
+ }, [authenticatedApps, results, disableAutoSelectValidatedApps]);
6004
6006
  useEffect8(() => {
6005
6007
  if (externalAuthenticatedApps) {
6006
6008
  setAuthenticatedApps(externalAuthenticatedApps);
@@ -6499,8 +6501,12 @@ function AppSearchDrawer({
6499
6501
  highlightDelayMs = 5e3,
6500
6502
  multiSelect = false,
6501
6503
  selectedApps,
6502
- onSelectionChange
6504
+ onSelectionChange,
6505
+ globalUrl,
6506
+ theme,
6507
+ colorMode
6503
6508
  }) {
6509
+ const themeScope = useShuffleMcpTheme();
6504
6510
  const [detailAppName, setDetailAppName] = useState10(null);
6505
6511
  const [detailAppId, setDetailAppId] = useState10(null);
6506
6512
  const [highlightActive, setHighlightActive] = useState10(false);
@@ -6586,6 +6592,7 @@ function AppSearchDrawer({
6586
6592
  anchor,
6587
6593
  open: open && detailAppName === null,
6588
6594
  onClose: handleClose,
6595
+ slotProps: { paper: { className: themeScope?.scopeClassName } },
6589
6596
  sx: {
6590
6597
  zIndex: 9999,
6591
6598
  "& .MuiDrawer-paper": {
@@ -6739,7 +6746,10 @@ function AppSearchDrawer({
6739
6746
  ShuffleMCP2,
6740
6747
  {
6741
6748
  apiKey: API_CONFIG.apiKey || void 0,
6742
- apiBaseUrl: API_CONFIG.baseUrl,
6749
+ apiBaseUrl: globalUrl || API_CONFIG.baseUrl,
6750
+ globalUrl,
6751
+ theme,
6752
+ colorMode,
6743
6753
  placeholder: initialQuery ? `Search ${initialQuery} integrations...` : "Search integrations...",
6744
6754
  layout: "grid",
6745
6755
  gridColumns: 2,
@@ -6751,8 +6761,17 @@ function AppSearchDrawer({
6751
6761
  showCheckbox: multiSelect,
6752
6762
  multiSelect,
6753
6763
  selectedApps: multiSelect ? projectedSelectedApps : void 0,
6764
+ disableAutoSelectValidatedApps: multiSelect,
6754
6765
  preventDefault: true,
6755
6766
  onAppSelected: handleAppSelected,
6767
+ onSelectionChange: multiSelect ? (next) => {
6768
+ onSelectionChange?.(next.map((app) => ({
6769
+ name: app.name,
6770
+ id: app.objectID || null,
6771
+ icon: app.image_url || "",
6772
+ categories: app.categories || []
6773
+ })));
6774
+ } : void 0,
6756
6775
  pinnedApps: pinnedApps?.map((p) => ({
6757
6776
  name: p.name,
6758
6777
  image_url: p.image_url,
@@ -6798,6 +6817,9 @@ function AppSearchDrawer({
6798
6817
  appId: detailAppId,
6799
6818
  anchor,
6800
6819
  width,
6820
+ globalUrl,
6821
+ theme,
6822
+ colorMode,
6801
6823
  onRefresh: onClose,
6802
6824
  onAddToCanvas
6803
6825
  }
@@ -8836,6 +8858,8 @@ var AgentUI = ({
8836
8858
  apiKey,
8837
8859
  apiBaseUrl,
8838
8860
  orgId,
8861
+ theme,
8862
+ colorMode,
8839
8863
  className,
8840
8864
  sx,
8841
8865
  contentSx
@@ -11385,6 +11409,9 @@ var AgentUI = ({
11385
11409
  subtitle: appPickerSubtitle,
11386
11410
  multiSelect: true,
11387
11411
  selectedApps: chosenApps.map((a) => ({ name: a.name, id: a.id || null, icon: a.icon })),
11412
+ globalUrl: apiBaseUrl,
11413
+ theme,
11414
+ colorMode,
11388
11415
  onSelectionChange: (next) => {
11389
11416
  setChosenApps(
11390
11417
  next.map((app) => {
@@ -11408,7 +11435,10 @@ var AgentUI = ({
11408
11435
  onClose: () => setAuthDrawerApp(null),
11409
11436
  appName: authDrawerApp?.name || null,
11410
11437
  appId: authDrawerApp?.id || null,
11411
- activeOrgId: orgId || null
11438
+ activeOrgId: orgId || null,
11439
+ globalUrl: apiBaseUrl,
11440
+ theme,
11441
+ colorMode
11412
11442
  }
11413
11443
  )
11414
11444
  ]
@@ -11459,6 +11489,7 @@ var AgentRunDrawer = ({
11459
11489
  globalUrl
11460
11490
  }) => {
11461
11491
  useSyncHostBaseUrl(globalUrl);
11492
+ const themeScope = useShuffleMcpTheme();
11462
11493
  const [activeTab, setActiveTab] = useState13(initialTab);
11463
11494
  const prevOpenRef = useRef9(open);
11464
11495
  useEffect12(() => {
@@ -11488,7 +11519,7 @@ var AgentRunDrawer = ({
11488
11519
  onClose,
11489
11520
  slotProps: {
11490
11521
  paper: {
11491
- className,
11522
+ className: [themeScope?.scopeClassName, className].filter(Boolean).join(" ") || void 0,
11492
11523
  sx: [
11493
11524
  {
11494
11525
  width: { xs: "100%", sm: width },
@@ -12441,8 +12472,11 @@ var AgentExecutionDrawer = ({
12441
12472
  headerSx,
12442
12473
  bodySx,
12443
12474
  topBanner,
12444
- onSchedule
12475
+ onSchedule,
12476
+ theme,
12477
+ colorMode
12445
12478
  }) => {
12479
+ const themeScope = useShuffleMcpTheme();
12446
12480
  const statusKey = (run?.status || "").toUpperCase();
12447
12481
  const cfg = STATUS_CONFIG[statusKey] || STATUS_CONFIG.WAITING;
12448
12482
  const duration = run ? formatDuration(run) : "";
@@ -12454,7 +12488,7 @@ var AgentExecutionDrawer = ({
12454
12488
  onClose,
12455
12489
  slotProps: {
12456
12490
  paper: {
12457
- className,
12491
+ className: [themeScope?.scopeClassName, className].filter(Boolean).join(" ") || void 0,
12458
12492
  sx: [
12459
12493
  {
12460
12494
  width: { xs: "100%", sm: width },
@@ -12590,7 +12624,9 @@ var AgentExecutionDrawer = ({
12590
12624
  apiKey,
12591
12625
  apiBaseUrl,
12592
12626
  orgId,
12593
- onSchedule
12627
+ onSchedule,
12628
+ theme,
12629
+ colorMode
12594
12630
  },
12595
12631
  run.execution_id
12596
12632
  ) : null
@@ -12616,7 +12652,9 @@ var AgentsView = ({
12616
12652
  isLoaded,
12617
12653
  isLoggedIn,
12618
12654
  userdata,
12619
- serverside
12655
+ serverside,
12656
+ theme,
12657
+ colorMode
12620
12658
  }) => {
12621
12659
  useSyncHostBaseUrl(globalUrl);
12622
12660
  const [selectedRun, setSelectedRun] = useState15(null);
@@ -12742,7 +12780,9 @@ var AgentsView = ({
12742
12780
  submitLabel: editing ? "Save" : void 0,
12743
12781
  submitTooltip: editing ? "\u2318+Enter to save" : void 0,
12744
12782
  disableSchedule: Boolean(editing),
12745
- disableScheduleTooltip: editing ? "Scheduling is disabled while editing an existing schedule" : void 0
12783
+ disableScheduleTooltip: editing ? "Scheduling is disabled while editing an existing schedule" : void 0,
12784
+ theme,
12785
+ colorMode
12746
12786
  },
12747
12787
  prefill.key
12748
12788
  ),
@@ -12762,7 +12802,9 @@ var AgentsView = ({
12762
12802
  onClose: () => setSelectedRun(null),
12763
12803
  run: selectedRun,
12764
12804
  apiBaseUrl: globalUrl,
12765
- onSchedule
12805
+ onSchedule,
12806
+ theme,
12807
+ colorMode
12766
12808
  }
12767
12809
  ),
12768
12810
  /* @__PURE__ */ jsx24(
@@ -12774,7 +12816,9 @@ var AgentsView = ({
12774
12816
  globalUrl,
12775
12817
  localLLMSlot: effectiveLocalLLMSlot,
12776
12818
  permissionsSlot,
12777
- agentUIProps: { onSchedule, apiBaseUrl: globalUrl }
12819
+ theme,
12820
+ colorMode,
12821
+ agentUIProps: { onSchedule, apiBaseUrl: globalUrl, theme, colorMode }
12778
12822
  }
12779
12823
  )
12780
12824
  ] });
@@ -13010,7 +13054,7 @@ var withMcpTheme = (Inner, displayName) => {
13010
13054
  const Wrapped = ({ theme, colorMode, ...rest }) => React5.createElement(
13011
13055
  ShuffleMcpThemeProvider,
13012
13056
  { mode: resolveMode(theme, colorMode) },
13013
- React5.createElement(Inner, { ...rest })
13057
+ React5.createElement(Inner, { ...rest, theme, colorMode })
13014
13058
  );
13015
13059
  Wrapped.displayName = `ShuffleMCPs(${displayName})`;
13016
13060
  return Wrapped;
@@ -13020,7 +13064,7 @@ var withMcpThemeRef = (Inner, displayName) => {
13020
13064
  ({ theme, colorMode, ...rest }, ref) => React5.createElement(
13021
13065
  ShuffleMcpThemeProvider,
13022
13066
  { mode: resolveMode(theme, colorMode) },
13023
- React5.createElement(Inner, { ...rest, ref })
13067
+ React5.createElement(Inner, { ...rest, theme, colorMode, ref })
13024
13068
  )
13025
13069
  );
13026
13070
  Wrapped.displayName = `ShuffleMCPs(${displayName})`;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shuffleio/shuffle-mcps",
3
- "version": "0.0.22",
3
+ "version": "0.0.23",
4
4
  "description": "Turn 3,000+ SaaS tools into MCP servers your agents can use. Headless React component for search, selection, and OAuth handoff.",
5
5
  "license": "MIT",
6
6
  "repository": {