@trops/dash-core 0.1.190 → 0.1.191

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
@@ -31,8 +31,8 @@ import algoliasearch from 'algoliasearch';
31
31
  import { InstantSearch, Hits } from 'react-instantsearch-hooks-web';
32
32
  import { Link } from 'react-router-dom';
33
33
 
34
- function ownKeys$F(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
35
- function _objectSpread$F(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$F(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$F(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
34
+ function ownKeys$G(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
35
+ function _objectSpread$G(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$G(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$G(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
36
36
  var event = {
37
37
  list: new Map(),
38
38
  // Map(1) { '<widget-UUID>' => { 'CustomSearchbar[10].searchQueryChanged': [] } }
@@ -94,7 +94,7 @@ var event = {
94
94
  uuid: subscriber["uuid"]
95
95
  };
96
96
  if ("action" in subscriber && subscriber.action !== undefined) {
97
- subscriber["action"](_objectSpread$F({}, objectToSend));
97
+ subscriber["action"](_objectSpread$G({}, objectToSend));
98
98
  }
99
99
  });
100
100
  }
@@ -2601,8 +2601,8 @@ var DashboardWrapper = function DashboardWrapper(_ref) {
2601
2601
  });
2602
2602
  };
2603
2603
 
2604
- function ownKeys$E(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
2605
- function _objectSpread$E(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$E(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$E(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
2604
+ function ownKeys$F(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
2605
+ function _objectSpread$F(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$F(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$F(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
2606
2606
  var DashboardThemeProvider = function DashboardThemeProvider(_ref) {
2607
2607
  var themeKey = _ref.themeKey,
2608
2608
  children = _ref.children;
@@ -2614,7 +2614,7 @@ var DashboardThemeProvider = function DashboardThemeProvider(_ref) {
2614
2614
  var dashboardTheme = themes[themeKey];
2615
2615
  var themeValue = dashboardTheme ? dashboardTheme[themeVariant] || null : null;
2616
2616
  if (!themeValue) return null;
2617
- return _objectSpread$E(_objectSpread$E({}, parentContext), {}, {
2617
+ return _objectSpread$F(_objectSpread$F({}, parentContext), {}, {
2618
2618
  currentTheme: themeValue,
2619
2619
  currentThemeKey: themeKey,
2620
2620
  theme: themeValue,
@@ -2632,8 +2632,8 @@ var DashboardThemeProvider = function DashboardThemeProvider(_ref) {
2632
2632
  });
2633
2633
  };
2634
2634
 
2635
- function ownKeys$D(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
2636
- function _objectSpread$D(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$D(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$D(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
2635
+ function ownKeys$E(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
2636
+ function _objectSpread$E(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$E(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$E(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
2637
2637
  var AppThemeScope = function AppThemeScope(_ref) {
2638
2638
  var children = _ref.children;
2639
2639
  var ctx = useContext(ThemeContext);
@@ -2641,7 +2641,7 @@ var AppThemeScope = function AppThemeScope(_ref) {
2641
2641
  children: children
2642
2642
  });
2643
2643
  return /*#__PURE__*/jsx(ThemeContext.Provider, {
2644
- value: _objectSpread$D(_objectSpread$D({}, ctx), {}, {
2644
+ value: _objectSpread$E(_objectSpread$E({}, ctx), {}, {
2645
2645
  currentTheme: ctx.appTheme,
2646
2646
  currentThemeKey: ctx.appThemeKey,
2647
2647
  theme: ctx.appTheme,
@@ -2753,8 +2753,8 @@ var LayoutContainer = function LayoutContainer(_ref) {
2753
2753
  });
2754
2754
  };
2755
2755
 
2756
- function ownKeys$C(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
2757
- function _objectSpread$C(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$C(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$C(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
2756
+ function ownKeys$D(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
2757
+ function _objectSpread$D(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$D(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$D(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
2758
2758
  function _createForOfIteratorHelper$f(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$f(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
2759
2759
  function _unsupportedIterableToArray$f(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$f(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$f(r, a) : void 0; } }
2760
2760
  function _arrayLikeToArray$f(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
@@ -3036,7 +3036,7 @@ function createLayoutFromTemplate(template) {
3036
3036
  try {
3037
3037
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
3038
3038
  var cell = _step.value;
3039
- grid[cell.key] = _objectSpread$C({
3039
+ grid[cell.key] = _objectSpread$D({
3040
3040
  component: null,
3041
3041
  hide: cell.hide || false
3042
3042
  }, cell.span ? {
@@ -4050,8 +4050,8 @@ var DiscoverDashboardsDetail = function DiscoverDashboardsDetail(_ref) {
4050
4050
  });
4051
4051
  };
4052
4052
 
4053
- function ownKeys$B(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
4054
- function _objectSpread$B(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$B(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$B(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4053
+ function ownKeys$C(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
4054
+ function _objectSpread$C(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$C(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$C(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4055
4055
  var LayoutManagerModal = function LayoutManagerModal(_ref) {
4056
4056
  var open = _ref.open,
4057
4057
  setIsOpen = _ref.setIsOpen,
@@ -4287,7 +4287,7 @@ var LayoutManagerModal = function LayoutManagerModal(_ref) {
4287
4287
  }
4288
4288
  return _context2.abrupt("return");
4289
4289
  case 6:
4290
- updatedWorkspace = _objectSpread$B(_objectSpread$B({}, importedWorkspace), {}, {
4290
+ updatedWorkspace = _objectSpread$C(_objectSpread$C({}, importedWorkspace), {}, {
4291
4291
  name: dashboardName.trim(),
4292
4292
  menuId: menuId,
4293
4293
  themeKey: selectedThemeKey
@@ -6073,8 +6073,8 @@ var WidgetList = function WidgetList(_ref4) {
6073
6073
  });
6074
6074
  };
6075
6075
 
6076
- function ownKeys$A(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
6077
- function _objectSpread$A(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$A(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$A(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
6076
+ function ownKeys$B(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
6077
+ function _objectSpread$B(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$B(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$B(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
6078
6078
  var TOTAL_STEPS = 6; // Steps 0-5
6079
6079
 
6080
6080
  var initialState = {
@@ -6097,11 +6097,11 @@ var initialState = {
6097
6097
  function wizardReducer(state, action) {
6098
6098
  switch (action.type) {
6099
6099
  case "SET_STEP":
6100
- return _objectSpread$A(_objectSpread$A({}, state), {}, {
6100
+ return _objectSpread$B(_objectSpread$B({}, state), {}, {
6101
6101
  step: action.payload
6102
6102
  });
6103
6103
  case "SET_INTENT":
6104
- return _objectSpread$A(_objectSpread$A({}, state), {}, {
6104
+ return _objectSpread$B(_objectSpread$B({}, state), {}, {
6105
6105
  intent: action.payload
6106
6106
  });
6107
6107
  case "TOGGLE_INTENT":
@@ -6109,12 +6109,12 @@ function wizardReducer(state, action) {
6109
6109
  var intent = state.intent.includes(action.payload) ? state.intent.filter(function (i) {
6110
6110
  return i !== action.payload;
6111
6111
  }) : [].concat(_toConsumableArray(state.intent), [action.payload]);
6112
- return _objectSpread$A(_objectSpread$A({}, state), {}, {
6112
+ return _objectSpread$B(_objectSpread$B({}, state), {}, {
6113
6113
  intent: intent
6114
6114
  });
6115
6115
  }
6116
6116
  case "SET_PROVIDERS":
6117
- return _objectSpread$A(_objectSpread$A({}, state), {}, {
6117
+ return _objectSpread$B(_objectSpread$B({}, state), {}, {
6118
6118
  providers: action.payload
6119
6119
  });
6120
6120
  case "TOGGLE_PROVIDER":
@@ -6122,12 +6122,12 @@ function wizardReducer(state, action) {
6122
6122
  var providers = state.providers.includes(action.payload) ? state.providers.filter(function (p) {
6123
6123
  return p !== action.payload;
6124
6124
  }) : [].concat(_toConsumableArray(state.providers), [action.payload]);
6125
- return _objectSpread$A(_objectSpread$A({}, state), {}, {
6125
+ return _objectSpread$B(_objectSpread$B({}, state), {}, {
6126
6126
  providers: providers
6127
6127
  });
6128
6128
  }
6129
6129
  case "SET_SELECTED_WIDGETS":
6130
- return _objectSpread$A(_objectSpread$A({}, state), {}, {
6130
+ return _objectSpread$B(_objectSpread$B({}, state), {}, {
6131
6131
  selectedWidgets: action.payload
6132
6132
  });
6133
6133
  case "TOGGLE_WIDGET":
@@ -6138,34 +6138,34 @@ function wizardReducer(state, action) {
6138
6138
  var selectedWidgets = exists ? state.selectedWidgets.filter(function (w) {
6139
6139
  return w.name !== action.payload.name;
6140
6140
  }) : [].concat(_toConsumableArray(state.selectedWidgets), [action.payload]);
6141
- return _objectSpread$A(_objectSpread$A({}, state), {}, {
6141
+ return _objectSpread$B(_objectSpread$B({}, state), {}, {
6142
6142
  selectedWidgets: selectedWidgets
6143
6143
  });
6144
6144
  }
6145
6145
  case "SET_SELECTED_DASHBOARD":
6146
- return _objectSpread$A(_objectSpread$A({}, state), {}, {
6146
+ return _objectSpread$B(_objectSpread$B({}, state), {}, {
6147
6147
  selectedDashboard: action.payload
6148
6148
  });
6149
6149
  case "SET_PATH":
6150
- return _objectSpread$A(_objectSpread$A({}, state), {}, {
6150
+ return _objectSpread$B(_objectSpread$B({}, state), {}, {
6151
6151
  path: action.payload
6152
6152
  });
6153
6153
  case "SET_LAYOUT":
6154
- return _objectSpread$A(_objectSpread$A({}, state), {}, {
6154
+ return _objectSpread$B(_objectSpread$B({}, state), {}, {
6155
6155
  layout: action.payload
6156
6156
  });
6157
6157
  case "REORDER_WIDGETS":
6158
- return _objectSpread$A(_objectSpread$A({}, state), {}, {
6159
- layout: _objectSpread$A(_objectSpread$A({}, state.layout), {}, {
6158
+ return _objectSpread$B(_objectSpread$B({}, state), {}, {
6159
+ layout: _objectSpread$B(_objectSpread$B({}, state.layout), {}, {
6160
6160
  widgetOrder: action.payload
6161
6161
  })
6162
6162
  });
6163
6163
  case "SET_CUSTOMIZATION":
6164
- return _objectSpread$A(_objectSpread$A({}, state), {}, {
6165
- customization: _objectSpread$A(_objectSpread$A({}, state.customization), action.payload)
6164
+ return _objectSpread$B(_objectSpread$B({}, state), {}, {
6165
+ customization: _objectSpread$B(_objectSpread$B({}, state.customization), action.payload)
6166
6166
  });
6167
6167
  case "RESET":
6168
- return _objectSpread$A({}, initialState);
6168
+ return _objectSpread$B({}, initialState);
6169
6169
  default:
6170
6170
  return state;
6171
6171
  }
@@ -6507,6 +6507,620 @@ var LayoutGrid = function LayoutGrid(_ref3) {
6507
6507
  });
6508
6508
  };
6509
6509
 
6510
+ function ownKeys$A(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
6511
+ function _objectSpread$A(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$A(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$A(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
6512
+ var WizardCustomizeStep = function WizardCustomizeStep(_ref) {
6513
+ var _state$selectedDashbo, _state$selectedDashbo2;
6514
+ var state = _ref.state,
6515
+ dispatch = _ref.dispatch,
6516
+ _ref$menuItems = _ref.menuItems,
6517
+ menuItems = _ref$menuItems === void 0 ? [] : _ref$menuItems,
6518
+ _ref$onSaveMenuItem = _ref.onSaveMenuItem,
6519
+ onSaveMenuItem = _ref$onSaveMenuItem === void 0 ? null : _ref$onSaveMenuItem,
6520
+ _ref$onCreateWorkspac = _ref.onCreateWorkspace,
6521
+ onCreateWorkspace = _ref$onCreateWorkspac === void 0 ? null : _ref$onCreateWorkspac,
6522
+ _ref$onInstallDashboa = _ref.onInstallDashboard,
6523
+ onInstallDashboard = _ref$onInstallDashboa === void 0 ? null : _ref$onInstallDashboa,
6524
+ _ref$onOpenDashboard = _ref.onOpenDashboard,
6525
+ onOpenDashboard = _ref$onOpenDashboard === void 0 ? null : _ref$onOpenDashboard,
6526
+ appId = _ref.appId;
6527
+ var _useContext = useContext(ThemeContext),
6528
+ themes = _useContext.themes,
6529
+ appThemeKey = _useContext.themeKey;
6530
+ var _useContext2 = useContext(AppContext),
6531
+ providersMap = _useContext2.providers;
6532
+ var _useState = useState(menuItems),
6533
+ _useState2 = _slicedToArray(_useState, 2),
6534
+ localMenuItems = _useState2[0],
6535
+ setLocalMenuItems = _useState2[1];
6536
+ var _useState3 = useState(false),
6537
+ _useState4 = _slicedToArray(_useState3, 2),
6538
+ isCreatingFolder = _useState4[0],
6539
+ setIsCreatingFolder = _useState4[1];
6540
+ var _useState5 = useState(""),
6541
+ _useState6 = _slicedToArray(_useState5, 2),
6542
+ newFolderName = _useState6[0],
6543
+ setNewFolderName = _useState6[1];
6544
+ var _useState7 = useState(null),
6545
+ _useState8 = _slicedToArray(_useState7, 2),
6546
+ newFolderIcon = _useState8[0],
6547
+ setNewFolderIcon = _useState8[1];
6548
+
6549
+ // Creation state
6550
+ var _useState9 = useState(false),
6551
+ _useState0 = _slicedToArray(_useState9, 2);
6552
+ _useState0[0];
6553
+ var setCreating = _useState0[1];
6554
+ var _useState1 = useState(null),
6555
+ _useState10 = _slicedToArray(_useState1, 2),
6556
+ error = _useState10[0],
6557
+ setError = _useState10[1];
6558
+ var _useState11 = useState(null),
6559
+ _useState12 = _slicedToArray(_useState11, 2),
6560
+ createdDashboard = _useState12[0],
6561
+ setCreatedDashboard = _useState12[1];
6562
+ var isPrebuilt = state.path === "prebuilt";
6563
+
6564
+ // Initialize customization defaults on mount
6565
+ useEffect(function () {
6566
+ setLocalMenuItems(menuItems);
6567
+ var updates = {};
6568
+ if (!state.customization.menuId && menuItems.length > 0) {
6569
+ updates.menuId = menuItems[0].id;
6570
+ }
6571
+ if (!state.customization.theme && themes) {
6572
+ var _Object$entries$sort$;
6573
+ var fallback = (_Object$entries$sort$ = Object.entries(themes).sort(function (_ref2, _ref3) {
6574
+ var _ref4 = _slicedToArray(_ref2, 2),
6575
+ a = _ref4[1];
6576
+ var _ref5 = _slicedToArray(_ref3, 2),
6577
+ b = _ref5[1];
6578
+ return (a.name || "").localeCompare(b.name || "");
6579
+ })[0]) === null || _Object$entries$sort$ === void 0 ? void 0 : _Object$entries$sort$[0];
6580
+ updates.theme = appThemeKey || fallback || null;
6581
+ }
6582
+ if (Object.keys(updates).length > 0) {
6583
+ dispatch({
6584
+ type: "SET_CUSTOMIZATION",
6585
+ payload: updates
6586
+ });
6587
+ }
6588
+ // eslint-disable-next-line react-hooks/exhaustive-deps
6589
+ }, []);
6590
+ var handleNameChange = useCallback(function (val) {
6591
+ dispatch({
6592
+ type: "SET_CUSTOMIZATION",
6593
+ payload: {
6594
+ name: val
6595
+ }
6596
+ });
6597
+ }, [dispatch]);
6598
+ var handleMenuSelect = useCallback(function (id) {
6599
+ dispatch({
6600
+ type: "SET_CUSTOMIZATION",
6601
+ payload: {
6602
+ menuId: id
6603
+ }
6604
+ });
6605
+ setIsCreatingFolder(false);
6606
+ setNewFolderName("");
6607
+ setNewFolderIcon(null);
6608
+ }, [dispatch]);
6609
+ var handleThemeSelect = useCallback(function (key) {
6610
+ dispatch({
6611
+ type: "SET_CUSTOMIZATION",
6612
+ payload: {
6613
+ theme: key
6614
+ }
6615
+ });
6616
+ }, [dispatch]);
6617
+ function handleCancelNewFolder() {
6618
+ setIsCreatingFolder(false);
6619
+ setNewFolderName("");
6620
+ setNewFolderIcon(null);
6621
+ }
6622
+ function handleSaveNewFolder() {
6623
+ if (!newFolderName.trim() || !newFolderIcon) return;
6624
+ var newItem = {
6625
+ id: Date.now(),
6626
+ name: newFolderName.trim(),
6627
+ icon: newFolderIcon
6628
+ };
6629
+ setLocalMenuItems(function (prev) {
6630
+ return [].concat(_toConsumableArray(prev), [newItem]);
6631
+ });
6632
+ dispatch({
6633
+ type: "SET_CUSTOMIZATION",
6634
+ payload: {
6635
+ menuId: newItem.id
6636
+ }
6637
+ });
6638
+ if (onSaveMenuItem) {
6639
+ onSaveMenuItem(newItem);
6640
+ }
6641
+ setIsCreatingFolder(false);
6642
+ setNewFolderName("");
6643
+ setNewFolderIcon(null);
6644
+ }
6645
+
6646
+ // --- Create logic ---
6647
+ useCallback(/*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
6648
+ var _state$customization, name, menuId, theme, result, _window$mainApi, installResult, updatedWorkspace, _window$mainApi2, template, layoutObj, widgetOrder, cells, _loop, i, workspace, _t;
6649
+ return _regeneratorRuntime.wrap(function (_context2) {
6650
+ while (1) switch (_context2.prev = _context2.next) {
6651
+ case 0:
6652
+ setCreating(true);
6653
+ setError(null);
6654
+ _context2.prev = 1;
6655
+ _state$customization = state.customization, name = _state$customization.name, menuId = _state$customization.menuId, theme = _state$customization.theme;
6656
+ if (!(isPrebuilt && state.selectedDashboard)) {
6657
+ _context2.next = 7;
6658
+ break;
6659
+ }
6660
+ if (!onInstallDashboard) {
6661
+ _context2.next = 3;
6662
+ break;
6663
+ }
6664
+ _context2.next = 2;
6665
+ return onInstallDashboard({
6666
+ dashboard: state.selectedDashboard,
6667
+ name: name.trim(),
6668
+ menuId: menuId || 1,
6669
+ themeKey: theme,
6670
+ appId: appId
6671
+ });
6672
+ case 2:
6673
+ result = _context2.sent;
6674
+ _context2.next = 6;
6675
+ break;
6676
+ case 3:
6677
+ if (!((_window$mainApi = window.mainApi) !== null && _window$mainApi !== void 0 && (_window$mainApi = _window$mainApi.registry) !== null && _window$mainApi !== void 0 && _window$mainApi.installDashboard)) {
6678
+ _context2.next = 6;
6679
+ break;
6680
+ }
6681
+ _context2.next = 4;
6682
+ return window.mainApi.registry.installDashboard(appId, state.selectedDashboard.name || state.selectedDashboard.key);
6683
+ case 4:
6684
+ installResult = _context2.sent;
6685
+ if (!(installResult !== null && installResult !== void 0 && installResult.workspace)) {
6686
+ _context2.next = 6;
6687
+ break;
6688
+ }
6689
+ updatedWorkspace = _objectSpread$A(_objectSpread$A({}, installResult.workspace), {}, {
6690
+ name: name.trim(),
6691
+ menuId: menuId || 1,
6692
+ themeKey: theme
6693
+ });
6694
+ _context2.next = 5;
6695
+ return window.mainApi.workspace.saveWorkspaceForApplication(appId, updatedWorkspace);
6696
+ case 5:
6697
+ result = {
6698
+ success: true,
6699
+ workspace: updatedWorkspace
6700
+ };
6701
+ case 6:
6702
+ _context2.next = 15;
6703
+ break;
6704
+ case 7:
6705
+ // Build-your-own path: create layout from template + place widgets
6706
+ template = layoutTemplates.find(function (t) {
6707
+ return t.id === state.layout.templateKey;
6708
+ });
6709
+ if (template) {
6710
+ _context2.next = 8;
6711
+ break;
6712
+ }
6713
+ throw new Error("No layout template selected.");
6714
+ case 8:
6715
+ layoutObj = createLayoutFromTemplate(template, menuId || 1); // Place widgets into grid cells
6716
+ widgetOrder = state.layout.widgetOrder || [];
6717
+ cells = template.cells.filter(function (c) {
6718
+ return !c.hide;
6719
+ });
6720
+ _loop = /*#__PURE__*/_regeneratorRuntime.mark(function _loop(i) {
6721
+ var widget;
6722
+ return _regeneratorRuntime.wrap(function (_context) {
6723
+ while (1) switch (_context.prev = _context.next) {
6724
+ case 0:
6725
+ widget = state.selectedWidgets.find(function (w) {
6726
+ return (w.name || w.key) === widgetOrder[i];
6727
+ });
6728
+ if (widget && layoutObj.grid[cells[i].key]) {
6729
+ layoutObj.grid[cells[i].key].component = widget.component || widget.name || widget.key;
6730
+ }
6731
+ case 1:
6732
+ case "end":
6733
+ return _context.stop();
6734
+ }
6735
+ }, _loop);
6736
+ });
6737
+ i = 0;
6738
+ case 9:
6739
+ if (!(i < widgetOrder.length && i < cells.length)) {
6740
+ _context2.next = 11;
6741
+ break;
6742
+ }
6743
+ return _context2.delegateYield(_loop(i), "t0", 10);
6744
+ case 10:
6745
+ i++;
6746
+ _context2.next = 9;
6747
+ break;
6748
+ case 11:
6749
+ if (!onCreateWorkspace) {
6750
+ _context2.next = 13;
6751
+ break;
6752
+ }
6753
+ _context2.next = 12;
6754
+ return onCreateWorkspace(layoutObj, theme, name.trim());
6755
+ case 12:
6756
+ result = _context2.sent;
6757
+ _context2.next = 15;
6758
+ break;
6759
+ case 13:
6760
+ if (!((_window$mainApi2 = window.mainApi) !== null && _window$mainApi2 !== void 0 && (_window$mainApi2 = _window$mainApi2.workspace) !== null && _window$mainApi2 !== void 0 && _window$mainApi2.saveWorkspaceForApplication)) {
6761
+ _context2.next = 15;
6762
+ break;
6763
+ }
6764
+ workspace = {
6765
+ name: name.trim(),
6766
+ menuId: menuId || 1,
6767
+ themeKey: theme,
6768
+ layout: [layoutObj]
6769
+ };
6770
+ _context2.next = 14;
6771
+ return window.mainApi.workspace.saveWorkspaceForApplication(appId, workspace);
6772
+ case 14:
6773
+ result = {
6774
+ success: true,
6775
+ workspace: workspace
6776
+ };
6777
+ case 15:
6778
+ if (result) {
6779
+ setCreatedDashboard(result.workspace || result);
6780
+ }
6781
+ _context2.next = 17;
6782
+ break;
6783
+ case 16:
6784
+ _context2.prev = 16;
6785
+ _t = _context2["catch"](1);
6786
+ setError(_t.message || "Failed to create dashboard.");
6787
+ case 17:
6788
+ _context2.prev = 17;
6789
+ setCreating(false);
6790
+ return _context2.finish(17);
6791
+ case 18:
6792
+ case "end":
6793
+ return _context2.stop();
6794
+ }
6795
+ }, _callee, null, [[1, 16, 17, 18]]);
6796
+ })), [state, isPrebuilt, onInstallDashboard, onCreateWorkspace, appId]);
6797
+
6798
+ // --- Success state ---
6799
+ if (createdDashboard) {
6800
+ return /*#__PURE__*/jsx("div", {
6801
+ className: "wizard-customize-step",
6802
+ children: /*#__PURE__*/jsxs("div", {
6803
+ className: "wizard-success",
6804
+ children: [/*#__PURE__*/jsx(FontAwesomeIcon, {
6805
+ icon: "circle-check",
6806
+ className: "wizard-success-icon"
6807
+ }), /*#__PURE__*/jsx("h3", {
6808
+ className: "wizard-step-header",
6809
+ children: "Dashboard created!"
6810
+ }), /*#__PURE__*/jsxs("p", {
6811
+ className: "wizard-step-description",
6812
+ children: ["Your dashboard", " ", /*#__PURE__*/jsx("strong", {
6813
+ children: createdDashboard.name || state.customization.name.trim()
6814
+ }), " ", "is ready."]
6815
+ }), onOpenDashboard && /*#__PURE__*/jsx(Button, {
6816
+ onClick: function onClick() {
6817
+ return onOpenDashboard(createdDashboard);
6818
+ },
6819
+ title: "Open Dashboard",
6820
+ textSize: "text-base",
6821
+ padding: "py-2 px-6",
6822
+ backgroundColor: "bg-blue-600",
6823
+ textColor: "text-white",
6824
+ hoverTextColor: "hover:text-white",
6825
+ hoverBackgroundColor: "hover:bg-blue-500",
6826
+ icon: "arrow-right"
6827
+ })]
6828
+ })
6829
+ });
6830
+ }
6831
+
6832
+ // --- Provider setup summary ---
6833
+ var selectedProviders = (state.providers || []).map(function (provKey) {
6834
+ var prov = (providersMap === null || providersMap === void 0 ? void 0 : providersMap[provKey]) || {};
6835
+ return {
6836
+ key: provKey,
6837
+ name: prov.name || provKey,
6838
+ icon: prov.icon || "plug",
6839
+ configured: !!prov.configured
6840
+ };
6841
+ });
6842
+ var configuredProviders = selectedProviders.filter(function (p) {
6843
+ return p.configured;
6844
+ });
6845
+ var needsSetupProviders = selectedProviders.filter(function (p) {
6846
+ return !p.configured;
6847
+ });
6848
+ var selectedFolder = localMenuItems.find(function (item) {
6849
+ return item.id === state.customization.menuId;
6850
+ });
6851
+ var selectedTheme = themes && state.customization.theme ? themes[state.customization.theme] : null;
6852
+ return /*#__PURE__*/jsxs("div", {
6853
+ className: "wizard-customize-step",
6854
+ children: [/*#__PURE__*/jsx("h3", {
6855
+ className: "wizard-step-header",
6856
+ children: "Customize your dashboard"
6857
+ }), /*#__PURE__*/jsx("p", {
6858
+ className: "wizard-step-description",
6859
+ children: "Name your dashboard, choose a folder, and pick a theme."
6860
+ }), /*#__PURE__*/jsxs("div", {
6861
+ className: "wizard-customize-sections",
6862
+ children: [/*#__PURE__*/jsxs("div", {
6863
+ className: "wizard-customize-section",
6864
+ children: [/*#__PURE__*/jsxs("label", {
6865
+ className: "wizard-customize-label",
6866
+ children: [/*#__PURE__*/jsx(FontAwesomeIcon, {
6867
+ icon: "input-text",
6868
+ fixedWidth: true,
6869
+ className: "wizard-customize-label-icon"
6870
+ }), "Dashboard Name"]
6871
+ }), /*#__PURE__*/jsx(InputText, {
6872
+ value: state.customization.name,
6873
+ onChange: handleNameChange,
6874
+ placeholder: "My Dashboard",
6875
+ autoFocus: true
6876
+ })]
6877
+ }), /*#__PURE__*/jsxs("div", {
6878
+ className: "wizard-customize-section",
6879
+ children: [/*#__PURE__*/jsxs("label", {
6880
+ className: "wizard-customize-label",
6881
+ children: [/*#__PURE__*/jsx(FontAwesomeIcon, {
6882
+ icon: "folder",
6883
+ fixedWidth: true,
6884
+ className: "wizard-customize-label-icon"
6885
+ }), "Folder"]
6886
+ }), /*#__PURE__*/jsxs("div", {
6887
+ className: "wizard-customize-folder-list",
6888
+ children: [!isCreatingFolder ? /*#__PURE__*/jsxs("button", {
6889
+ type: "button",
6890
+ className: "wizard-customize-folder-create",
6891
+ onClick: function onClick() {
6892
+ return setIsCreatingFolder(true);
6893
+ },
6894
+ children: [/*#__PURE__*/jsx(FontAwesomeIcon, {
6895
+ icon: "plus",
6896
+ fixedWidth: true
6897
+ }), /*#__PURE__*/jsx("span", {
6898
+ children: "New Folder"
6899
+ })]
6900
+ }) : /*#__PURE__*/jsxs("div", {
6901
+ className: "wizard-customize-folder-form",
6902
+ children: [/*#__PURE__*/jsxs("div", {
6903
+ className: "wizard-customize-folder-form-header",
6904
+ children: [/*#__PURE__*/jsx("span", {
6905
+ className: "text-sm font-medium text-gray-300",
6906
+ children: "New Folder"
6907
+ }), /*#__PURE__*/jsx("button", {
6908
+ type: "button",
6909
+ className: "text-gray-500 hover:text-gray-300 transition-colors",
6910
+ onClick: handleCancelNewFolder,
6911
+ children: /*#__PURE__*/jsx(FontAwesomeIcon, {
6912
+ icon: "xmark"
6913
+ })
6914
+ })]
6915
+ }), /*#__PURE__*/jsx(InputText, {
6916
+ value: newFolderName,
6917
+ onChange: function onChange(val) {
6918
+ return setNewFolderName(val);
6919
+ },
6920
+ placeholder: "Folder name"
6921
+ }), /*#__PURE__*/jsx("div", {
6922
+ className: "grid grid-cols-10 gap-2",
6923
+ children: FOLDER_ICONS.map(function (icon) {
6924
+ var isIconSelected = icon === newFolderIcon;
6925
+ return /*#__PURE__*/jsx("div", {
6926
+ className: "flex items-center justify-center p-2 rounded cursor-pointer transition-all ".concat(isIconSelected ? "bg-blue-600 ring-2 ring-blue-400 text-white" : "bg-gray-700 text-gray-400 hover:bg-gray-600 hover:text-gray-200"),
6927
+ onClick: function onClick() {
6928
+ return setNewFolderIcon(icon);
6929
+ },
6930
+ children: /*#__PURE__*/jsx(FontAwesomeIcon, {
6931
+ icon: icon
6932
+ })
6933
+ }, icon);
6934
+ })
6935
+ }), /*#__PURE__*/jsx(Button, {
6936
+ onClick: handleSaveNewFolder,
6937
+ title: "Add Folder",
6938
+ textSize: "text-sm",
6939
+ padding: "py-1 px-3",
6940
+ backgroundColor: "bg-blue-600",
6941
+ textColor: "text-white",
6942
+ hoverTextColor: "hover:text-white",
6943
+ hoverBackgroundColor: "hover:bg-blue-500",
6944
+ disabled: !newFolderName.trim() || !newFolderIcon
6945
+ })]
6946
+ }), localMenuItems.map(function (item) {
6947
+ var isSelected = !isCreatingFolder && item.id === state.customization.menuId;
6948
+ return /*#__PURE__*/jsxs("div", {
6949
+ className: "wizard-customize-folder-item ".concat(isSelected ? "wizard-customize-folder-item--selected" : ""),
6950
+ onClick: function onClick() {
6951
+ return handleMenuSelect(item.id);
6952
+ },
6953
+ children: [/*#__PURE__*/jsx(FontAwesomeIcon, {
6954
+ icon: item.icon || item.folder || "folder",
6955
+ fixedWidth: true,
6956
+ className: "w-5 h-5 ".concat(isSelected ? "text-blue-400" : "text-gray-400")
6957
+ }), /*#__PURE__*/jsx("span", {
6958
+ className: "text-sm font-medium ".concat(isSelected ? "text-blue-300" : "text-gray-300"),
6959
+ children: item.name
6960
+ }), isSelected && /*#__PURE__*/jsx(FontAwesomeIcon, {
6961
+ icon: "check",
6962
+ className: "ml-auto text-blue-400 text-sm"
6963
+ })]
6964
+ }, item.id);
6965
+ })]
6966
+ })]
6967
+ }), /*#__PURE__*/jsxs("div", {
6968
+ className: "wizard-customize-section",
6969
+ children: [/*#__PURE__*/jsxs("label", {
6970
+ className: "wizard-customize-label",
6971
+ children: [/*#__PURE__*/jsx(FontAwesomeIcon, {
6972
+ icon: "palette",
6973
+ fixedWidth: true,
6974
+ className: "wizard-customize-label-icon"
6975
+ }), "Theme"]
6976
+ }), /*#__PURE__*/jsx("div", {
6977
+ className: "wizard-customize-theme-list",
6978
+ children: themes && Object.entries(themes).sort(function (_ref7, _ref8) {
6979
+ var _ref9 = _slicedToArray(_ref7, 2),
6980
+ a = _ref9[1];
6981
+ var _ref0 = _slicedToArray(_ref8, 2),
6982
+ b = _ref0[1];
6983
+ return (a.name || "").localeCompare(b.name || "");
6984
+ }).map(function (_ref1) {
6985
+ var _ref10 = _slicedToArray(_ref1, 2),
6986
+ key = _ref10[0],
6987
+ t = _ref10[1];
6988
+ var isThemeSelected = state.customization.theme === key;
6989
+ return /*#__PURE__*/jsxs("div", {
6990
+ className: "wizard-customize-theme-item ".concat(isThemeSelected ? "wizard-customize-theme-item--selected" : ""),
6991
+ onClick: function onClick() {
6992
+ return handleThemeSelect(key);
6993
+ },
6994
+ children: [/*#__PURE__*/jsx(FontAwesomeIcon, {
6995
+ icon: "palette",
6996
+ className: "w-5 h-5 mr-3 ".concat(isThemeSelected ? "text-blue-400" : "text-gray-400")
6997
+ }), /*#__PURE__*/jsx("span", {
6998
+ className: "text-sm font-medium ".concat(isThemeSelected ? "text-blue-300" : "text-gray-300"),
6999
+ children: t.name || key
7000
+ }), /*#__PURE__*/jsxs("div", {
7001
+ className: "flex flex-row space-x-1 ml-auto",
7002
+ children: [t.primary && /*#__PURE__*/jsx("div", {
7003
+ className: "w-4 h-4 rounded bg-".concat(t.primary, "-500")
7004
+ }), t.secondary && /*#__PURE__*/jsx("div", {
7005
+ className: "w-4 h-4 rounded bg-".concat(t.secondary, "-500")
7006
+ }), t.tertiary && /*#__PURE__*/jsx("div", {
7007
+ className: "w-4 h-4 rounded bg-".concat(t.tertiary, "-500")
7008
+ })]
7009
+ })]
7010
+ }, key);
7011
+ })
7012
+ })]
7013
+ }), selectedProviders.length > 0 && /*#__PURE__*/jsxs("div", {
7014
+ className: "wizard-customize-section",
7015
+ children: [/*#__PURE__*/jsxs("label", {
7016
+ className: "wizard-customize-label",
7017
+ children: [/*#__PURE__*/jsx(FontAwesomeIcon, {
7018
+ icon: "plug",
7019
+ fixedWidth: true,
7020
+ className: "wizard-customize-label-icon"
7021
+ }), "Provider Status"]
7022
+ }), /*#__PURE__*/jsxs("div", {
7023
+ className: "wizard-customize-provider-summary",
7024
+ children: [configuredProviders.length > 0 && /*#__PURE__*/jsxs("div", {
7025
+ className: "wizard-provider-group",
7026
+ children: [/*#__PURE__*/jsxs("span", {
7027
+ className: "wizard-provider-group-label wizard-provider-group-label--ready",
7028
+ children: [/*#__PURE__*/jsx(FontAwesomeIcon, {
7029
+ icon: "circle-check",
7030
+ className: "text-green-400"
7031
+ }), " ", "Ready (", configuredProviders.length, ")"]
7032
+ }), /*#__PURE__*/jsx("div", {
7033
+ className: "wizard-provider-list",
7034
+ children: configuredProviders.map(function (p) {
7035
+ return /*#__PURE__*/jsxs("span", {
7036
+ className: "wizard-provider-badge wizard-provider-badge--ready",
7037
+ children: [/*#__PURE__*/jsx(FontAwesomeIcon, {
7038
+ icon: resolveIcon(p.icon),
7039
+ fixedWidth: true
7040
+ }), p.name]
7041
+ }, p.key);
7042
+ })
7043
+ })]
7044
+ }), needsSetupProviders.length > 0 && /*#__PURE__*/jsxs("div", {
7045
+ className: "wizard-provider-group",
7046
+ children: [/*#__PURE__*/jsxs("span", {
7047
+ className: "wizard-provider-group-label wizard-provider-group-label--setup",
7048
+ children: [/*#__PURE__*/jsx(FontAwesomeIcon, {
7049
+ icon: "circle-exclamation",
7050
+ className: "text-amber-400"
7051
+ }), " ", "Needs setup (", needsSetupProviders.length, ")"]
7052
+ }), /*#__PURE__*/jsx("div", {
7053
+ className: "wizard-provider-list",
7054
+ children: needsSetupProviders.map(function (p) {
7055
+ return /*#__PURE__*/jsxs("span", {
7056
+ className: "wizard-provider-badge wizard-provider-badge--setup",
7057
+ children: [/*#__PURE__*/jsx(FontAwesomeIcon, {
7058
+ icon: resolveIcon(p.icon),
7059
+ fixedWidth: true
7060
+ }), p.name]
7061
+ }, p.key);
7062
+ })
7063
+ })]
7064
+ })]
7065
+ })]
7066
+ }), /*#__PURE__*/jsxs("div", {
7067
+ className: "wizard-customize-summary",
7068
+ children: [/*#__PURE__*/jsx("span", {
7069
+ className: "wizard-customize-summary-title",
7070
+ children: "Summary"
7071
+ }), state.customization.name.trim() && /*#__PURE__*/jsxs("div", {
7072
+ className: "wizard-customize-summary-row",
7073
+ children: [/*#__PURE__*/jsx(FontAwesomeIcon, {
7074
+ icon: "clone",
7075
+ className: "text-blue-400"
7076
+ }), /*#__PURE__*/jsx("span", {
7077
+ children: state.customization.name.trim()
7078
+ })]
7079
+ }), selectedFolder && /*#__PURE__*/jsxs("div", {
7080
+ className: "wizard-customize-summary-row",
7081
+ children: [/*#__PURE__*/jsx(FontAwesomeIcon, {
7082
+ icon: selectedFolder.icon || selectedFolder.folder || "folder",
7083
+ className: "text-blue-400"
7084
+ }), /*#__PURE__*/jsx("span", {
7085
+ children: selectedFolder.name
7086
+ })]
7087
+ }), selectedTheme && /*#__PURE__*/jsxs("div", {
7088
+ className: "wizard-customize-summary-row",
7089
+ children: [/*#__PURE__*/jsx(FontAwesomeIcon, {
7090
+ icon: "palette",
7091
+ className: "text-blue-400"
7092
+ }), /*#__PURE__*/jsx("span", {
7093
+ children: selectedTheme.name || state.customization.theme
7094
+ }), /*#__PURE__*/jsxs("div", {
7095
+ className: "flex flex-row space-x-1 ml-2",
7096
+ children: [selectedTheme.primary && /*#__PURE__*/jsx("div", {
7097
+ className: "w-3 h-3 rounded bg-".concat(selectedTheme.primary, "-500")
7098
+ }), selectedTheme.secondary && /*#__PURE__*/jsx("div", {
7099
+ className: "w-3 h-3 rounded bg-".concat(selectedTheme.secondary, "-500")
7100
+ })]
7101
+ })]
7102
+ }), /*#__PURE__*/jsxs("div", {
7103
+ className: "wizard-customize-summary-row",
7104
+ children: [/*#__PURE__*/jsx(FontAwesomeIcon, {
7105
+ icon: isPrebuilt ? "box" : "grid-2",
7106
+ className: "text-blue-400"
7107
+ }), /*#__PURE__*/jsx("span", {
7108
+ children: isPrebuilt ? ((_state$selectedDashbo = state.selectedDashboard) === null || _state$selectedDashbo === void 0 ? void 0 : _state$selectedDashbo.displayName) || ((_state$selectedDashbo2 = state.selectedDashboard) === null || _state$selectedDashbo2 === void 0 ? void 0 : _state$selectedDashbo2.name) || "Pre-built dashboard" : "".concat(state.selectedWidgets.length, " widget").concat(state.selectedWidgets.length !== 1 ? "s" : "")
7109
+ })]
7110
+ })]
7111
+ }), error && /*#__PURE__*/jsxs("div", {
7112
+ className: "wizard-customize-error",
7113
+ children: [/*#__PURE__*/jsx(FontAwesomeIcon, {
7114
+ icon: "triangle-exclamation",
7115
+ className: "text-red-400"
7116
+ }), /*#__PURE__*/jsx("span", {
7117
+ children: error
7118
+ })]
7119
+ })]
7120
+ })]
7121
+ });
7122
+ };
7123
+
6510
7124
  var LayoutBuilderAddItemModal = function LayoutBuilderAddItemModal(_ref) {
6511
7125
  var workspace = _ref.workspace,
6512
7126
  open = _ref.open,
@@ -49126,5 +49740,5 @@ var WorkspaceMenu = function WorkspaceMenu(_ref) {
49126
49740
 
49127
49741
  ComponentManager.registerContainerTypes(LayoutContainer, LayoutGridContainer);
49128
49742
 
49129
- export { ALGOLIA_ANALYTICS_FOR_QUERY, ALGOLIA_ANALYTICS_FOR_QUERY_COMPLETE, ALGOLIA_ANALYTICS_FOR_QUERY_ERROR, ALGOLIA_LIST_INDICES, ALGOLIA_LIST_INDICES_COMPLETE, ALGOLIA_LIST_INDICES_ERROR, AVAILABLE_COLORS, AddMenuItemModal, AdvancedMcpConfig, AppContext, AppSettingsModal, AppThemeScope, AppWrapper, CHOOSE_FILE, CHOOSE_FILE_COMPLETE, CHOOSE_FILE_ERROR, ColorModel, ComponentConfigModel, ComponentManager, ContextModel, DATA_JSON_TO_CSV_FILE, DATA_JSON_TO_CSV_FILE_COMPLETE, DATA_JSON_TO_CSV_FILE_ERROR, DATA_JSON_TO_CSV_STRING, DATA_JSON_TO_CSV_STRING_COMPLETE, DATA_JSON_TO_CSV_STRING_ERROR, DATA_READ_FROM_FILE, DATA_READ_FROM_FILE_COMPLETE, DATA_READ_FROM_FILE_ERROR, DATA_SAVE_TO_FILE, DATA_SAVE_TO_FILE_COMPLETE, DATA_SAVE_TO_FILE_ERROR, DashCommandPalette, DashNavbar, DashSidebar, DashTabBar, DashboardStage as Dashboard, DashboardApi, DashboardContext, DashboardFooter, DashboardHeader, DashboardMenuItem, DashboardModel, DashboardMonitor, DashboardPublisher, DashboardStage, DashboardThemeProvider, DashboardWrapper, ElectronDashboardApi, ErrorBoundary, ExternalWidget, GRID_CELL_WIDGET_TYPE, HARMONY_STRATEGIES, LAYOUT_LIST, LAYOUT_LIST_COMPLETE, LAYOUT_LIST_ERROR, LAYOUT_SAVE, LAYOUT_SAVE_COMPLETE, LAYOUT_SAVE_ERROR, Layout, LayoutBuilder, LayoutBuilderAddItemModal, LayoutBuilderConfigContainerMenuItem, LayoutBuilderConfigMenuItem, LayoutBuilderConfigModal, LayoutBuilderEditItemModal, LayoutBuilderEventModal, LayoutBuilderGridItem, LayoutContainer, LayoutDragBuilder, LayoutDragBuilderEdit, LayoutGridContainer, LayoutManagerModal, LayoutModel, LayoutQuickAddMenu, MCP_CALL_TOOL_COMPLETE, MCP_CALL_TOOL_ERROR, MCP_GET_CATALOG_COMPLETE, MCP_GET_CATALOG_ERROR, MCP_LIST_RESOURCES_COMPLETE, MCP_LIST_RESOURCES_ERROR, MCP_LIST_TOOLS_COMPLETE, MCP_LIST_TOOLS_ERROR, MCP_READ_RESOURCE_COMPLETE, MCP_READ_RESOURCE_ERROR, MCP_RUN_AUTH_COMPLETE, MCP_RUN_AUTH_ERROR, MCP_SERVER_STATUS_COMPLETE, MCP_SERVER_STATUS_ERROR, MCP_START_SERVER_COMPLETE, MCP_START_SERVER_ERROR, MCP_STOP_SERVER_COMPLETE, MCP_STOP_SERVER_ERROR, MENU_ITEMS_DELETE, MENU_ITEMS_DELETE_COMPLETE, MENU_ITEMS_DELETE_ERROR, MENU_ITEMS_LIST, MENU_ITEMS_LIST_COMPLETE, MENU_ITEMS_LIST_ERROR, MENU_ITEMS_SAVE, MENU_ITEMS_SAVE_COMPLETE, MENU_ITEMS_SAVE_ERROR, MainMenu, MainMenuItem, MainMenuSection, McpServerPicker, MenuItemModel, MenuSlideOverlay, MergeCellsModal, MissingProviderPrompt, MockDashboardApi, PROVIDER_DELETE_COMPLETE, PROVIDER_DELETE_ERROR, PROVIDER_GET_COMPLETE, PROVIDER_GET_ERROR, PROVIDER_LIST_COMPLETE, PROVIDER_LIST_ERROR, PROVIDER_SAVE_COMPLETE, PROVIDER_SAVE_ERROR, PanelCode, PanelEditItem, PanelEditItemHandlers, PanelEditItemNotifications, ProviderContext, ProviderErrorBoundary, ProviderForm, ProviderSelector, SECURE_STORAGE_ENCRYPT_STRING, SECURE_STORAGE_ENCRYPT_STRING_COMPLETE, SECURE_STORAGE_ENCRYPT_STRING_ERROR, SECURE_STORE_ENCRYPTION_CHECK, SECURE_STORE_ENCRYPTION_CHECK_COMPLETE, SECURE_STORE_ENCRYPTION_CHECK_ERROR, SECURE_STORE_GET_DATA, SECURE_STORE_GET_DATA_COMPLETE, SECURE_STORE_GET_DATA_ERROR, SECURE_STORE_SET_DATA, SECURE_STORE_SET_DATA_COMPLETE, SECURE_STORE_SET_DATA_ERROR, SETTINGS_GET, SETTINGS_GET_COMPLETE, SETTINGS_GET_ERROR, SETTINGS_SAVE, SETTINGS_SAVE_COMPLETE, SETTINGS_SAVE_ERROR, SIDEBAR_WIDGET_TYPE, SettingsModel, SideMenu, SplitCellModal, THEME_DELETE, THEME_DELETE_COMPLETE, THEME_DELETE_ERROR, THEME_EXTRACT_FROM_URL, THEME_EXTRACT_FROM_URL_COMPLETE, THEME_EXTRACT_FROM_URL_ERROR, THEME_LIST, THEME_LIST_COMPLETE, THEME_LIST_ERROR, THEME_MAP_PALETTE, THEME_MAP_PALETTE_COMPLETE, THEME_MAP_PALETTE_ERROR, THEME_SAVE, THEME_SAVE_COMPLETE, THEME_SAVE_ERROR, ThemeApi, ThemeColorDots, ThemeManagerModal, ThemeModel, ThemeWrapper, WORKSPACE_DELETE, WORKSPACE_DELETE_COMPLETE, WORKSPACE_DELETE_ERROR, WORKSPACE_LIST, WORKSPACE_LIST_COMPLETE, WORKSPACE_LIST_ERROR, WORKSPACE_SAVE, WORKSPACE_SAVE_COMPLETE, WORKSPACE_SAVE_ERROR, WebDashboardApi, Widget, WidgetApi, WidgetConfigPanel, WidgetContext, WidgetFactory, WidgetPopoutStage, WidgetProviderWrapper, WidgetSidebar, WizardIntentStep, WizardLayoutPreviewStep, WizardProvidersStep, WizardResultsStep, Workspace, WorkspaceContext, WorkspaceFooter, WorkspaceMenu, WorkspaceModel, addChildToLayoutItem, addItemToItemLayout, buildMcpConfigFromOverrides, canHaveChildren, changeDirectionForLayoutItem, createProviderRegistry, deriveFormFields, envMappingToRows, evaluateBundle, extractWidgetConfigs, formStateToMcpJson, formatFieldName, generateCustomTheme, generateHarmonyTheme, generateRandomTheme, generateThemeName, getBorderStyle, getChildrenForLayoutItem, getComponentInLayout, getContainerBorderColor, getContainerColor, getIndexOfLayoutChildrenForItem, getIndexOfLayoutItem, getLayoutItemById, getLayoutItemForWorkspace, getNearestParentWorkspace, getNextHighestId, getNextHighestItemInLayout, getNextHighestOrder, getNextHighestParentId, getNextLowestItemInLayout, getParentForLayoutItem, getParentWorkspaceForItem, getThemePresets, getUserConfigurableProviders, getWidgetsForWorkspace, getWorkspacesForWorkspace, headerTemplateToRows, isContainer, isLikelySecret, isMaxOrderForItem, isMinOrderForItem, isWidget, isWidgetResolvable, isWorkspace, layoutItemHasWorkspaceAsChild, loadWidgetBundle, mcpJsonToFormState, numChildrenForLayout, removeItemFromLayout, renderComponent, renderGridLayout, renderGridLayoutFlow, _renderLayout as renderLayout, renderLayoutMenu, replaceItemInLayout, resolveIcon, setHostModules, traverseParentTree, updateLayoutItem, updateParentForItem, useDashboard, useMcpDashServer, useMcpProvider, useNotifications, useProvider, useProviderClient, useScheduler, useWebSocketProvider, useWidgetEvents, useWidgetProviders, useWidgetSchedulerStatus, useWizardState, validateCellMerge, validateGridCell, validateGridPlacement, validateWidgetPlacement, widgetCountToTemplate, withProviderDetection };
49743
+ export { ALGOLIA_ANALYTICS_FOR_QUERY, ALGOLIA_ANALYTICS_FOR_QUERY_COMPLETE, ALGOLIA_ANALYTICS_FOR_QUERY_ERROR, ALGOLIA_LIST_INDICES, ALGOLIA_LIST_INDICES_COMPLETE, ALGOLIA_LIST_INDICES_ERROR, AVAILABLE_COLORS, AddMenuItemModal, AdvancedMcpConfig, AppContext, AppSettingsModal, AppThemeScope, AppWrapper, CHOOSE_FILE, CHOOSE_FILE_COMPLETE, CHOOSE_FILE_ERROR, ColorModel, ComponentConfigModel, ComponentManager, ContextModel, DATA_JSON_TO_CSV_FILE, DATA_JSON_TO_CSV_FILE_COMPLETE, DATA_JSON_TO_CSV_FILE_ERROR, DATA_JSON_TO_CSV_STRING, DATA_JSON_TO_CSV_STRING_COMPLETE, DATA_JSON_TO_CSV_STRING_ERROR, DATA_READ_FROM_FILE, DATA_READ_FROM_FILE_COMPLETE, DATA_READ_FROM_FILE_ERROR, DATA_SAVE_TO_FILE, DATA_SAVE_TO_FILE_COMPLETE, DATA_SAVE_TO_FILE_ERROR, DashCommandPalette, DashNavbar, DashSidebar, DashTabBar, DashboardStage as Dashboard, DashboardApi, DashboardContext, DashboardFooter, DashboardHeader, DashboardMenuItem, DashboardModel, DashboardMonitor, DashboardPublisher, DashboardStage, DashboardThemeProvider, DashboardWrapper, ElectronDashboardApi, ErrorBoundary, ExternalWidget, GRID_CELL_WIDGET_TYPE, HARMONY_STRATEGIES, LAYOUT_LIST, LAYOUT_LIST_COMPLETE, LAYOUT_LIST_ERROR, LAYOUT_SAVE, LAYOUT_SAVE_COMPLETE, LAYOUT_SAVE_ERROR, Layout, LayoutBuilder, LayoutBuilderAddItemModal, LayoutBuilderConfigContainerMenuItem, LayoutBuilderConfigMenuItem, LayoutBuilderConfigModal, LayoutBuilderEditItemModal, LayoutBuilderEventModal, LayoutBuilderGridItem, LayoutContainer, LayoutDragBuilder, LayoutDragBuilderEdit, LayoutGridContainer, LayoutManagerModal, LayoutModel, LayoutQuickAddMenu, MCP_CALL_TOOL_COMPLETE, MCP_CALL_TOOL_ERROR, MCP_GET_CATALOG_COMPLETE, MCP_GET_CATALOG_ERROR, MCP_LIST_RESOURCES_COMPLETE, MCP_LIST_RESOURCES_ERROR, MCP_LIST_TOOLS_COMPLETE, MCP_LIST_TOOLS_ERROR, MCP_READ_RESOURCE_COMPLETE, MCP_READ_RESOURCE_ERROR, MCP_RUN_AUTH_COMPLETE, MCP_RUN_AUTH_ERROR, MCP_SERVER_STATUS_COMPLETE, MCP_SERVER_STATUS_ERROR, MCP_START_SERVER_COMPLETE, MCP_START_SERVER_ERROR, MCP_STOP_SERVER_COMPLETE, MCP_STOP_SERVER_ERROR, MENU_ITEMS_DELETE, MENU_ITEMS_DELETE_COMPLETE, MENU_ITEMS_DELETE_ERROR, MENU_ITEMS_LIST, MENU_ITEMS_LIST_COMPLETE, MENU_ITEMS_LIST_ERROR, MENU_ITEMS_SAVE, MENU_ITEMS_SAVE_COMPLETE, MENU_ITEMS_SAVE_ERROR, MainMenu, MainMenuItem, MainMenuSection, McpServerPicker, MenuItemModel, MenuSlideOverlay, MergeCellsModal, MissingProviderPrompt, MockDashboardApi, PROVIDER_DELETE_COMPLETE, PROVIDER_DELETE_ERROR, PROVIDER_GET_COMPLETE, PROVIDER_GET_ERROR, PROVIDER_LIST_COMPLETE, PROVIDER_LIST_ERROR, PROVIDER_SAVE_COMPLETE, PROVIDER_SAVE_ERROR, PanelCode, PanelEditItem, PanelEditItemHandlers, PanelEditItemNotifications, ProviderContext, ProviderErrorBoundary, ProviderForm, ProviderSelector, SECURE_STORAGE_ENCRYPT_STRING, SECURE_STORAGE_ENCRYPT_STRING_COMPLETE, SECURE_STORAGE_ENCRYPT_STRING_ERROR, SECURE_STORE_ENCRYPTION_CHECK, SECURE_STORE_ENCRYPTION_CHECK_COMPLETE, SECURE_STORE_ENCRYPTION_CHECK_ERROR, SECURE_STORE_GET_DATA, SECURE_STORE_GET_DATA_COMPLETE, SECURE_STORE_GET_DATA_ERROR, SECURE_STORE_SET_DATA, SECURE_STORE_SET_DATA_COMPLETE, SECURE_STORE_SET_DATA_ERROR, SETTINGS_GET, SETTINGS_GET_COMPLETE, SETTINGS_GET_ERROR, SETTINGS_SAVE, SETTINGS_SAVE_COMPLETE, SETTINGS_SAVE_ERROR, SIDEBAR_WIDGET_TYPE, SettingsModel, SideMenu, SplitCellModal, THEME_DELETE, THEME_DELETE_COMPLETE, THEME_DELETE_ERROR, THEME_EXTRACT_FROM_URL, THEME_EXTRACT_FROM_URL_COMPLETE, THEME_EXTRACT_FROM_URL_ERROR, THEME_LIST, THEME_LIST_COMPLETE, THEME_LIST_ERROR, THEME_MAP_PALETTE, THEME_MAP_PALETTE_COMPLETE, THEME_MAP_PALETTE_ERROR, THEME_SAVE, THEME_SAVE_COMPLETE, THEME_SAVE_ERROR, ThemeApi, ThemeColorDots, ThemeManagerModal, ThemeModel, ThemeWrapper, WORKSPACE_DELETE, WORKSPACE_DELETE_COMPLETE, WORKSPACE_DELETE_ERROR, WORKSPACE_LIST, WORKSPACE_LIST_COMPLETE, WORKSPACE_LIST_ERROR, WORKSPACE_SAVE, WORKSPACE_SAVE_COMPLETE, WORKSPACE_SAVE_ERROR, WebDashboardApi, Widget, WidgetApi, WidgetConfigPanel, WidgetContext, WidgetFactory, WidgetPopoutStage, WidgetProviderWrapper, WidgetSidebar, WizardCustomizeStep, WizardIntentStep, WizardLayoutPreviewStep, WizardProvidersStep, WizardResultsStep, Workspace, WorkspaceContext, WorkspaceFooter, WorkspaceMenu, WorkspaceModel, addChildToLayoutItem, addItemToItemLayout, buildMcpConfigFromOverrides, canHaveChildren, changeDirectionForLayoutItem, createProviderRegistry, deriveFormFields, envMappingToRows, evaluateBundle, extractWidgetConfigs, formStateToMcpJson, formatFieldName, generateCustomTheme, generateHarmonyTheme, generateRandomTheme, generateThemeName, getBorderStyle, getChildrenForLayoutItem, getComponentInLayout, getContainerBorderColor, getContainerColor, getIndexOfLayoutChildrenForItem, getIndexOfLayoutItem, getLayoutItemById, getLayoutItemForWorkspace, getNearestParentWorkspace, getNextHighestId, getNextHighestItemInLayout, getNextHighestOrder, getNextHighestParentId, getNextLowestItemInLayout, getParentForLayoutItem, getParentWorkspaceForItem, getThemePresets, getUserConfigurableProviders, getWidgetsForWorkspace, getWorkspacesForWorkspace, headerTemplateToRows, isContainer, isLikelySecret, isMaxOrderForItem, isMinOrderForItem, isWidget, isWidgetResolvable, isWorkspace, layoutItemHasWorkspaceAsChild, loadWidgetBundle, mcpJsonToFormState, numChildrenForLayout, removeItemFromLayout, renderComponent, renderGridLayout, renderGridLayoutFlow, _renderLayout as renderLayout, renderLayoutMenu, replaceItemInLayout, resolveIcon, setHostModules, traverseParentTree, updateLayoutItem, updateParentForItem, useDashboard, useMcpDashServer, useMcpProvider, useNotifications, useProvider, useProviderClient, useScheduler, useWebSocketProvider, useWidgetEvents, useWidgetProviders, useWidgetSchedulerStatus, useWizardState, validateCellMerge, validateGridCell, validateGridPlacement, validateWidgetPlacement, widgetCountToTemplate, withProviderDetection };
49130
49744
  //# sourceMappingURL=index.esm.js.map