@trops/dash-core 0.1.454 → 0.1.456

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.esm.js CHANGED
@@ -43913,7 +43913,9 @@ var ProviderDetail = function ProviderDetail(_ref) {
43913
43913
  _ref$catalogAuthComma = _ref.catalogAuthCommand,
43914
43914
  catalogAuthCommand = _ref$catalogAuthComma === void 0 ? null : _ref$catalogAuthComma,
43915
43915
  _ref$catalogCredentia = _ref.catalogCredentialSchema,
43916
- catalogCredentialSchema = _ref$catalogCredentia === void 0 ? {} : _ref$catalogCredentia;
43916
+ catalogCredentialSchema = _ref$catalogCredentia === void 0 ? {} : _ref$catalogCredentia,
43917
+ _ref$onBack = _ref.onBack,
43918
+ onBack = _ref$onBack === void 0 ? null : _ref$onBack;
43917
43919
  var appContext = useContext(AppContext);
43918
43920
  var dashApi = appContext === null || appContext === void 0 ? void 0 : appContext.dashApi;
43919
43921
  var isMcp = (provider === null || provider === void 0 ? void 0 : provider.providerClass) === "mcp";
@@ -44242,7 +44244,15 @@ var ProviderDetail = function ProviderDetail(_ref) {
44242
44244
  className: "flex flex-col flex-1 min-h-0",
44243
44245
  children: [/*#__PURE__*/jsxs("div", {
44244
44246
  className: "flex-1 min-h-0 overflow-y-auto p-6 space-y-5",
44245
- children: [/*#__PURE__*/jsx(SubHeading3, {
44247
+ children: [onBack && /*#__PURE__*/jsxs("button", {
44248
+ type: "button",
44249
+ onClick: onBack,
44250
+ className: "flex items-center gap-2 text-sm opacity-60 hover:opacity-100 transition-opacity",
44251
+ children: [/*#__PURE__*/jsx(FontAwesomeIcon, {
44252
+ icon: "chevron-left",
44253
+ className: "h-3 w-3"
44254
+ }), "Back"]
44255
+ }), /*#__PURE__*/jsx(SubHeading3, {
44246
44256
  title: isCreating ? "New Provider" : "Edit Provider",
44247
44257
  padding: false
44248
44258
  }), /*#__PURE__*/jsxs("div", {
@@ -45836,7 +45846,9 @@ var McpCatalogDetail = function McpCatalogDetail(_ref) {
45836
45846
  var onSave = _ref.onSave,
45837
45847
  onCancel = _ref.onCancel,
45838
45848
  _ref$initialSelectedI = _ref.initialSelectedId,
45839
- initialSelectedId = _ref$initialSelectedI === void 0 ? null : _ref$initialSelectedI;
45849
+ initialSelectedId = _ref$initialSelectedI === void 0 ? null : _ref$initialSelectedI,
45850
+ _ref$onBack = _ref.onBack,
45851
+ onBack = _ref$onBack === void 0 ? null : _ref$onBack;
45840
45852
  var appContext = useContext(AppContext);
45841
45853
  var dashApi = appContext === null || appContext === void 0 ? void 0 : appContext.dashApi;
45842
45854
  var _useState = useState([]),
@@ -46487,7 +46499,15 @@ var McpCatalogDetail = function McpCatalogDetail(_ref) {
46487
46499
  className: "flex flex-col flex-1 min-h-0",
46488
46500
  children: /*#__PURE__*/jsxs("div", {
46489
46501
  className: "flex-1 min-h-0 overflow-y-auto p-6 space-y-4",
46490
- children: [/*#__PURE__*/jsxs("div", {
46502
+ children: [onBack && /*#__PURE__*/jsxs("button", {
46503
+ type: "button",
46504
+ onClick: onBack,
46505
+ className: "flex items-center gap-2 text-sm opacity-60 hover:opacity-100 transition-opacity",
46506
+ children: [/*#__PURE__*/jsx(FontAwesomeIcon, {
46507
+ icon: "chevron-left",
46508
+ className: "h-3 w-3"
46509
+ }), "Back"]
46510
+ }), /*#__PURE__*/jsxs("div", {
46491
46511
  className: "flex items-center justify-between",
46492
46512
  children: [/*#__PURE__*/jsx(SubHeading3, {
46493
46513
  title: "Add MCP Server",
@@ -46664,7 +46684,9 @@ var WebSocketProviderForm = function WebSocketProviderForm(_ref) {
46664
46684
  _ref$initialCredentia = _ref.initialCredentials,
46665
46685
  initialCredentials = _ref$initialCredentia === void 0 ? {} : _ref$initialCredentia,
46666
46686
  onSave = _ref.onSave,
46667
- onCancel = _ref.onCancel;
46687
+ onCancel = _ref.onCancel,
46688
+ _ref$onBack = _ref.onBack,
46689
+ onBack = _ref$onBack === void 0 ? null : _ref$onBack;
46668
46690
  var _useState = useState(initialName),
46669
46691
  _useState2 = _slicedToArray(_useState, 2),
46670
46692
  name = _useState2[0],
@@ -46878,7 +46900,15 @@ var WebSocketProviderForm = function WebSocketProviderForm(_ref) {
46878
46900
  className: "flex flex-col flex-1 min-h-0",
46879
46901
  children: [/*#__PURE__*/jsxs("div", {
46880
46902
  className: "flex-1 min-h-0 overflow-y-auto p-6 space-y-5",
46881
- children: [/*#__PURE__*/jsx(SubHeading3, {
46903
+ children: [onBack && /*#__PURE__*/jsxs("button", {
46904
+ type: "button",
46905
+ onClick: onBack,
46906
+ className: "flex items-center gap-2 text-sm opacity-60 hover:opacity-100 transition-opacity",
46907
+ children: [/*#__PURE__*/jsx(FontAwesomeIcon, {
46908
+ icon: "chevron-left",
46909
+ className: "h-3 w-3"
46910
+ }), "Back"]
46911
+ }), /*#__PURE__*/jsx(SubHeading3, {
46882
46912
  title: isEditMode ? "Edit WebSocket Provider" : "New WebSocket Provider",
46883
46913
  padding: false
46884
46914
  }), /*#__PURE__*/jsxs("div", {
@@ -47200,42 +47230,50 @@ var ProvidersSection = function ProvidersSection(_ref) {
47200
47230
  _useState0 = _slicedToArray(_useState9, 2),
47201
47231
  isShowingClassChooser = _useState0[0],
47202
47232
  setIsShowingClassChooser = _useState0[1];
47233
+ // Tracks whether the current create-flow detail was reached via the
47234
+ // chooser (vs. the Widget Builder deep-link or list-edit). Only the
47235
+ // chooser-entry path renders the "← Back" affordance, since that's
47236
+ // the only path that has somewhere to go back to.
47203
47237
  var _useState1 = useState(false),
47204
47238
  _useState10 = _slicedToArray(_useState1, 2),
47205
- isEditing = _useState10[0],
47206
- setIsEditing = _useState10[1];
47207
- var _useState11 = useState(""),
47239
+ cameFromClassChooser = _useState10[0],
47240
+ setCameFromClassChooser = _useState10[1];
47241
+ var _useState11 = useState(false),
47208
47242
  _useState12 = _slicedToArray(_useState11, 2),
47209
- formName = _useState12[0],
47210
- setFormName = _useState12[1];
47243
+ isEditing = _useState12[0],
47244
+ setIsEditing = _useState12[1];
47211
47245
  var _useState13 = useState(""),
47212
47246
  _useState14 = _slicedToArray(_useState13, 2),
47213
- formType = _useState14[0],
47214
- setFormType = _useState14[1];
47215
- var _useState15 = useState({}),
47247
+ formName = _useState14[0],
47248
+ setFormName = _useState14[1];
47249
+ var _useState15 = useState(""),
47216
47250
  _useState16 = _slicedToArray(_useState15, 2),
47217
- formCredentials = _useState16[0],
47218
- setFormCredentials = _useState16[1];
47219
- var _useState17 = useState(null),
47251
+ formType = _useState16[0],
47252
+ setFormType = _useState16[1];
47253
+ var _useState17 = useState({}),
47220
47254
  _useState18 = _slicedToArray(_useState17, 2),
47221
- deleteTarget = _useState18[0],
47222
- setDeleteTarget = _useState18[1];
47223
- var _useState19 = useState(false),
47255
+ formCredentials = _useState18[0],
47256
+ setFormCredentials = _useState18[1];
47257
+ var _useState19 = useState(null),
47224
47258
  _useState20 = _slicedToArray(_useState19, 2),
47225
- isAddingMcp = _useState20[0],
47226
- setIsAddingMcp = _useState20[1];
47259
+ deleteTarget = _useState20[0],
47260
+ setDeleteTarget = _useState20[1];
47227
47261
  var _useState21 = useState(false),
47228
47262
  _useState22 = _slicedToArray(_useState21, 2),
47229
- isEditingMcp = _useState22[0],
47230
- setIsEditingMcp = _useState22[1];
47263
+ isAddingMcp = _useState22[0],
47264
+ setIsAddingMcp = _useState22[1];
47231
47265
  var _useState23 = useState(false),
47232
47266
  _useState24 = _slicedToArray(_useState23, 2),
47233
- isAddingWs = _useState24[0],
47234
- setIsAddingWs = _useState24[1];
47267
+ isEditingMcp = _useState24[0],
47268
+ setIsEditingMcp = _useState24[1];
47235
47269
  var _useState25 = useState(false),
47236
47270
  _useState26 = _slicedToArray(_useState25, 2),
47237
- isEditingWs = _useState26[0],
47238
- setIsEditingWs = _useState26[1];
47271
+ isAddingWs = _useState26[0],
47272
+ setIsAddingWs = _useState26[1];
47273
+ var _useState27 = useState(false),
47274
+ _useState28 = _slicedToArray(_useState27, 2),
47275
+ isEditingWs = _useState28[0],
47276
+ setIsEditingWs = _useState28[1];
47239
47277
 
47240
47278
  // Row ID counter for env/header rows in MCP edit mode
47241
47279
  var nextRowIdRef = useRef(0);
@@ -47518,6 +47556,10 @@ var ProvidersSection = function ProvidersSection(_ref) {
47518
47556
  resetForm();
47519
47557
  setSelectedName(null);
47520
47558
  setIsShowingClassChooser(false);
47559
+ // External create requests (deep-link or header button) do NOT
47560
+ // come via the chooser, so any leftover "came from chooser" state
47561
+ // from a prior session must be cleared before routing.
47562
+ setCameFromClassChooser(false);
47521
47563
  if (initialProviderClass === "mcp") {
47522
47564
  // MCP class: open the catalog detail. Pre-select happens in
47523
47565
  // McpCatalogDetail via the initialSelectedId prop passed below.
@@ -47600,6 +47642,11 @@ var ProvidersSection = function ProvidersSection(_ref) {
47600
47642
  setIsCreating(false);
47601
47643
  setIsEditing(false);
47602
47644
  setIsAddingMcp(false);
47645
+ setIsAddingWs(false);
47646
+ setIsEditingMcp(false);
47647
+ setIsEditingWs(false);
47648
+ setIsShowingClassChooser(false);
47649
+ setCameFromClassChooser(false);
47603
47650
  resetForm();
47604
47651
  },
47605
47652
  badge: provider.type ? /*#__PURE__*/jsx(Tag3, {
@@ -47645,13 +47692,26 @@ var ProvidersSection = function ProvidersSection(_ref) {
47645
47692
  })]
47646
47693
  })]
47647
47694
  });
47695
+
47696
+ // Closes whichever create-flow detail is open and re-opens the
47697
+ // class chooser. Only attached to the detail's onBack prop when
47698
+ // the user reached it via the chooser (cameFromClassChooser).
47699
+ var goBackToClassChooser = function goBackToClassChooser() {
47700
+ resetForm();
47701
+ setIsAddingWs(false);
47702
+ setIsAddingMcp(false);
47703
+ setIsCreating(false);
47704
+ setCameFromClassChooser(false);
47705
+ setIsShowingClassChooser(true);
47706
+ };
47648
47707
  var detailContent = null;
47649
47708
  if (isAddingWs) {
47650
47709
  detailContent = /*#__PURE__*/jsx(WebSocketProviderForm, {
47651
47710
  onSave: handleWsSave,
47652
47711
  onCancel: function onCancel() {
47653
47712
  return setIsAddingWs(false);
47654
- }
47713
+ },
47714
+ onBack: cameFromClassChooser ? goBackToClassChooser : null
47655
47715
  });
47656
47716
  } else if (isEditingWs && selectedName && selectedProvider) {
47657
47717
  var wc = selectedProvider.wsConfig || {};
@@ -47681,6 +47741,7 @@ var ProvidersSection = function ProvidersSection(_ref) {
47681
47741
  detailContent = /*#__PURE__*/jsx(NewProviderPicker, {
47682
47742
  onSelect: function onSelect(cls) {
47683
47743
  setIsShowingClassChooser(false);
47744
+ setCameFromClassChooser(true);
47684
47745
  if (cls === "mcp") {
47685
47746
  setIsAddingMcp(true);
47686
47747
  } else if (cls === "websocket") {
@@ -47696,7 +47757,8 @@ var ProvidersSection = function ProvidersSection(_ref) {
47696
47757
  onCancel: function onCancel() {
47697
47758
  return setIsAddingMcp(false);
47698
47759
  },
47699
- initialSelectedId: initialProviderType
47760
+ initialSelectedId: initialProviderType,
47761
+ onBack: cameFromClassChooser ? goBackToClassChooser : null
47700
47762
  });
47701
47763
  } else if (isCreating) {
47702
47764
  detailContent = /*#__PURE__*/jsx(ProviderDetail, {
@@ -47711,7 +47773,8 @@ var ProvidersSection = function ProvidersSection(_ref) {
47711
47773
  onCancelEdit: function onCancelEdit() {
47712
47774
  resetForm();
47713
47775
  setIsCreating(false);
47714
- }
47776
+ },
47777
+ onBack: cameFromClassChooser ? goBackToClassChooser : null
47715
47778
  });
47716
47779
  } else if (isEditingMcp && selectedName && selectedProvider) {
47717
47780
  var mc = selectedProvider.mcpConfig || {};