@trops/dash-core 0.1.198 → 0.1.200

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.js CHANGED
@@ -5665,12 +5665,11 @@ var WizardDiscoverStep = function WizardDiscoverStep(_ref) {
5665
5665
  }
5666
5666
  // eslint-disable-next-line react-hooks/exhaustive-deps
5667
5667
  }, []);
5668
- var handleSearchChange = React.useCallback(function (e) {
5669
- var q = e.target.value;
5670
- setSearchQuery(q);
5668
+ var handleSearchChange = React.useCallback(function (val) {
5669
+ setSearchQuery(val);
5671
5670
  dispatch({
5672
5671
  type: "SET_SEARCH_QUERY",
5673
- payload: q
5672
+ payload: val
5674
5673
  });
5675
5674
  }, [setSearchQuery, dispatch]);
5676
5675
 
@@ -5736,76 +5735,61 @@ var WizardDiscoverStep = function WizardDiscoverStep(_ref) {
5736
5735
  var hasResults = filteredDashboards.length > 0 || filteredWidgets.length > 0;
5737
5736
  var hasActiveFilters = filters.categories.length > 0 || filters.providers.length > 0;
5738
5737
  return /*#__PURE__*/jsxRuntime.jsxs("div", {
5739
- className: "wizard-discover-step",
5740
- children: [/*#__PURE__*/jsxRuntime.jsx("div", {
5741
- className: "wizard-discover-search",
5742
- children: /*#__PURE__*/jsxRuntime.jsxs("div", {
5743
- className: "wizard-discover-search-input",
5744
- children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
5745
- icon: "magnifying-glass",
5746
- fixedWidth: true,
5747
- className: "wizard-discover-search-icon"
5748
- }), /*#__PURE__*/jsxRuntime.jsx("input", {
5749
- type: "text",
5750
- placeholder: "Search registry...",
5751
- value: searchQuery,
5752
- onChange: handleSearchChange,
5753
- className: "wizard-discover-input"
5754
- })]
5755
- })
5738
+ className: "flex flex-col gap-4",
5739
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.InputText, {
5740
+ value: searchQuery,
5741
+ onChange: handleSearchChange,
5742
+ placeholder: "Search registry..."
5756
5743
  }), /*#__PURE__*/jsxRuntime.jsxs("div", {
5757
- className: "wizard-discover-filters",
5744
+ className: "flex flex-col gap-3",
5758
5745
  children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
5759
- className: "wizard-discover-filter-row",
5746
+ className: "flex flex-col gap-1.5",
5760
5747
  children: [/*#__PURE__*/jsxRuntime.jsx("span", {
5761
- className: "wizard-discover-filter-label",
5748
+ className: "text-xs font-semibold text-gray-400 uppercase tracking-wide",
5762
5749
  children: "Categories"
5763
5750
  }), /*#__PURE__*/jsxRuntime.jsx("div", {
5764
- className: "wizard-discover-chips",
5751
+ className: "flex flex-wrap gap-1.5",
5765
5752
  children: DASHBOARD_TAGS$1.map(function (tag) {
5766
- return /*#__PURE__*/jsxRuntime.jsx("button", {
5767
- type: "button",
5768
- className: "wizard-chip ".concat(filters.categories.includes(tag) ? "wizard-chip--active" : ""),
5753
+ return /*#__PURE__*/jsxRuntime.jsx(DashReact.Tag2, {
5754
+ text: tag,
5769
5755
  onClick: function onClick() {
5770
5756
  return handleToggleCategory(tag);
5771
5757
  },
5772
- children: tag
5758
+ className: filters.categories.includes(tag) ? "ring-1 ring-blue-400" : ""
5773
5759
  }, tag);
5774
5760
  })
5775
5761
  })]
5776
5762
  }), /*#__PURE__*/jsxRuntime.jsxs("div", {
5777
- className: "wizard-discover-filter-row",
5763
+ className: "flex flex-col gap-1.5",
5778
5764
  children: [/*#__PURE__*/jsxRuntime.jsx("span", {
5779
- className: "wizard-discover-filter-label",
5765
+ className: "text-xs font-semibold text-gray-400 uppercase tracking-wide",
5780
5766
  children: "Providers"
5781
5767
  }), /*#__PURE__*/jsxRuntime.jsx("div", {
5782
- className: "wizard-discover-chips",
5768
+ className: "flex flex-wrap gap-1.5",
5783
5769
  children: KNOWN_PROVIDERS.map(function (prov) {
5784
- return /*#__PURE__*/jsxRuntime.jsx("button", {
5785
- type: "button",
5786
- className: "wizard-chip ".concat(filters.providers.includes(prov.key) ? "wizard-chip--active" : ""),
5770
+ return /*#__PURE__*/jsxRuntime.jsx(DashReact.Tag2, {
5771
+ text: prov.name,
5787
5772
  onClick: function onClick() {
5788
5773
  return handleToggleProvider(prov.key);
5789
5774
  },
5790
- children: prov.name
5775
+ className: filters.providers.includes(prov.key) ? "ring-1 ring-blue-400" : ""
5791
5776
  }, prov.key);
5792
5777
  })
5793
5778
  })]
5794
5779
  })]
5795
5780
  }), /*#__PURE__*/jsxRuntime.jsx("div", {
5796
- className: "wizard-discover-results",
5781
+ className: "flex flex-col gap-6 mt-2",
5797
5782
  children: isLoading ? /*#__PURE__*/jsxRuntime.jsxs("div", {
5798
- className: "wizard-loading",
5783
+ className: "flex flex-col items-center justify-center gap-2 py-12 text-gray-400",
5799
5784
  children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
5800
5785
  icon: "spinner",
5801
5786
  spin: true,
5802
- fixedWidth: true,
5803
- className: "wizard-loading-icon"
5787
+ fixedWidth: true
5804
5788
  }), /*#__PURE__*/jsxRuntime.jsx("span", {
5805
5789
  children: "Searching registry..."
5806
5790
  })]
5807
5791
  }) : error ? /*#__PURE__*/jsxRuntime.jsxs("div", {
5808
- className: "wizard-error",
5792
+ className: "flex items-center gap-2 text-red-400 py-4",
5809
5793
  children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
5810
5794
  icon: "circle-exclamation",
5811
5795
  fixedWidth: true
@@ -5813,55 +5797,54 @@ var WizardDiscoverStep = function WizardDiscoverStep(_ref) {
5813
5797
  children: error
5814
5798
  })]
5815
5799
  }) : !hasResults ? /*#__PURE__*/jsxRuntime.jsxs("div", {
5816
- className: "wizard-empty",
5800
+ className: "flex flex-col items-center justify-center gap-2 py-12 text-gray-500",
5817
5801
  children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
5818
5802
  icon: "magnifying-glass",
5819
- fixedWidth: true,
5820
- className: "wizard-empty-icon"
5803
+ fixedWidth: true
5821
5804
  }), /*#__PURE__*/jsxRuntime.jsx("p", {
5822
5805
  children: "No results match your search."
5823
5806
  }), hasActiveFilters && /*#__PURE__*/jsxRuntime.jsx("p", {
5824
- className: "wizard-empty-hint",
5807
+ className: "text-xs text-gray-600",
5825
5808
  children: "Try removing some filters to see more results."
5826
5809
  })]
5827
5810
  }) : /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
5828
5811
  children: [filteredDashboards.length > 0 && /*#__PURE__*/jsxRuntime.jsxs("div", {
5829
- className: "wizard-discover-section",
5812
+ className: "flex flex-col gap-2",
5830
5813
  children: [/*#__PURE__*/jsxRuntime.jsxs("h4", {
5831
- className: "wizard-discover-section-title",
5814
+ className: "text-sm font-semibold text-gray-300 flex items-center gap-2",
5832
5815
  children: ["Dashboards (", filteredDashboards.length, " result", filteredDashboards.length !== 1 ? "s" : "", ")"]
5833
5816
  }), /*#__PURE__*/jsxRuntime.jsx("div", {
5834
- className: "wizard-dashboard-list",
5817
+ className: "flex flex-col gap-2",
5835
5818
  children: filteredDashboards.map(function (dash) {
5836
5819
  var isSelected = state.selectedDashboard && state.selectedDashboard.name === dash.name;
5837
5820
  var widgetCount = (dash.widgets || []).length;
5838
5821
  var providerNames = (dash.providers || []).map(function (p) {
5839
5822
  return p.name || p.type;
5840
5823
  }).join(", ");
5841
- return /*#__PURE__*/jsxRuntime.jsxs("button", {
5842
- type: "button",
5843
- className: "wizard-dashboard-card ".concat(isSelected ? "wizard-dashboard-card--selected" : ""),
5824
+ return /*#__PURE__*/jsxRuntime.jsxs(DashReact.Card2, {
5825
+ hover: true,
5826
+ selected: isSelected,
5844
5827
  onClick: function onClick() {
5845
5828
  return handleSelectDashboard(dash);
5846
5829
  },
5847
5830
  children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
5848
- className: "wizard-dashboard-card-header",
5831
+ className: "flex items-center gap-2",
5849
5832
  children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
5850
5833
  icon: resolveIcon(dash.icon || "grid-2"),
5851
5834
  fixedWidth: true,
5852
- className: "wizard-dashboard-card-icon"
5835
+ className: "text-gray-400"
5853
5836
  }), /*#__PURE__*/jsxRuntime.jsx("span", {
5854
- className: "wizard-dashboard-card-name",
5837
+ className: "text-sm font-medium text-gray-200",
5855
5838
  children: dash.displayName || dash.name
5856
5839
  }), isSelected && /*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
5857
5840
  icon: "circle-check",
5858
- className: "wizard-dashboard-card-check"
5841
+ className: "ml-auto text-blue-400"
5859
5842
  })]
5860
5843
  }), dash.description && /*#__PURE__*/jsxRuntime.jsx("p", {
5861
- className: "wizard-dashboard-card-desc",
5844
+ className: "text-xs text-gray-400 mt-1",
5862
5845
  children: dash.description
5863
5846
  }), /*#__PURE__*/jsxRuntime.jsxs("div", {
5864
- className: "wizard-dashboard-card-meta",
5847
+ className: "flex items-center gap-3 mt-2 text-xs text-gray-500",
5865
5848
  children: [/*#__PURE__*/jsxRuntime.jsxs("span", {
5866
5849
  children: [widgetCount, " widget", widgetCount !== 1 ? "s" : ""]
5867
5850
  }), providerNames && /*#__PURE__*/jsxRuntime.jsx("span", {
@@ -5872,49 +5855,49 @@ var WizardDiscoverStep = function WizardDiscoverStep(_ref) {
5872
5855
  })
5873
5856
  })]
5874
5857
  }), filteredWidgets.length > 0 && /*#__PURE__*/jsxRuntime.jsxs("div", {
5875
- className: "wizard-discover-section",
5858
+ className: "flex flex-col gap-2",
5876
5859
  children: [/*#__PURE__*/jsxRuntime.jsxs("h4", {
5877
- className: "wizard-discover-section-title",
5878
- children: ["Widgets (", filteredWidgets.length, " result", filteredWidgets.length !== 1 ? "s" : "", ")", state.selectedWidgets.length > 0 && /*#__PURE__*/jsxRuntime.jsxs("span", {
5879
- className: "wizard-count-badge",
5880
- children: [state.selectedWidgets.length, " selected"]
5860
+ className: "text-sm font-semibold text-gray-300 flex items-center gap-2",
5861
+ children: ["Widgets (", filteredWidgets.length, " result", filteredWidgets.length !== 1 ? "s" : "", ")", state.selectedWidgets.length > 0 && /*#__PURE__*/jsxRuntime.jsx(DashReact.Tag3, {
5862
+ text: "".concat(state.selectedWidgets.length, " selected")
5881
5863
  })]
5882
5864
  }), /*#__PURE__*/jsxRuntime.jsx("div", {
5883
- className: "wizard-widget-list",
5865
+ className: "grid grid-cols-2 gap-2",
5884
5866
  children: filteredWidgets.map(function (widget) {
5885
5867
  var checked = isWidgetSelected(widget);
5886
- return /*#__PURE__*/jsxRuntime.jsxs("button", {
5887
- type: "button",
5888
- className: "wizard-widget-card ".concat(checked ? "wizard-widget-card--selected" : ""),
5868
+ return /*#__PURE__*/jsxRuntime.jsx(DashReact.Card2, {
5869
+ hover: true,
5870
+ selected: checked,
5889
5871
  onClick: function onClick() {
5890
5872
  return handleToggleWidget(widget);
5891
5873
  },
5892
- children: [/*#__PURE__*/jsxRuntime.jsx("div", {
5893
- className: "wizard-widget-card-checkbox",
5894
- children: /*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
5874
+ children: /*#__PURE__*/jsxRuntime.jsxs("div", {
5875
+ className: "flex items-start gap-2",
5876
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
5895
5877
  icon: checked ? "square-check" : "square",
5896
- fixedWidth: true
5897
- })
5898
- }), /*#__PURE__*/jsxRuntime.jsxs("div", {
5899
- className: "wizard-widget-card-info",
5900
- children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
5901
- className: "wizard-widget-card-header",
5902
- children: [widget.icon && /*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
5903
- icon: resolveIcon(widget.icon),
5904
- fixedWidth: true,
5905
- className: "wizard-widget-card-icon"
5906
- }), /*#__PURE__*/jsxRuntime.jsx("span", {
5907
- className: "wizard-widget-card-name",
5908
- children: widget.name
5878
+ fixedWidth: true,
5879
+ className: checked ? "text-blue-400 mt-0.5" : "text-gray-500 mt-0.5"
5880
+ }), /*#__PURE__*/jsxRuntime.jsxs("div", {
5881
+ className: "flex flex-col gap-0.5 min-w-0",
5882
+ children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
5883
+ className: "flex items-center gap-1.5",
5884
+ children: [widget.icon && /*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
5885
+ icon: resolveIcon(widget.icon),
5886
+ fixedWidth: true,
5887
+ className: "text-gray-400 text-xs"
5888
+ }), /*#__PURE__*/jsxRuntime.jsx("span", {
5889
+ className: "text-sm font-medium text-gray-200 truncate",
5890
+ children: widget.name
5891
+ })]
5892
+ }), widget.description && /*#__PURE__*/jsxRuntime.jsx("p", {
5893
+ className: "text-xs text-gray-400 line-clamp-2",
5894
+ children: widget.description
5895
+ }), widget.packageDisplayName && /*#__PURE__*/jsxRuntime.jsx("span", {
5896
+ className: "text-xs text-gray-500",
5897
+ children: widget.packageDisplayName
5909
5898
  })]
5910
- }), widget.description && /*#__PURE__*/jsxRuntime.jsx("p", {
5911
- className: "wizard-widget-card-desc",
5912
- children: widget.description
5913
- }), widget.packageDisplayName && /*#__PURE__*/jsxRuntime.jsx("span", {
5914
- className: "wizard-widget-card-package",
5915
- children: widget.packageDisplayName
5916
5899
  })]
5917
- })]
5900
+ })
5918
5901
  }, widget.key);
5919
5902
  })
5920
5903
  })]
@@ -6166,12 +6149,12 @@ var WizardLayoutPreviewStep = function WizardLayoutPreviewStep(_ref) {
6166
6149
  return t.id === state.layout.templateKey;
6167
6150
  });
6168
6151
  return /*#__PURE__*/jsxRuntime.jsxs("div", {
6169
- className: "wizard-layout-step",
6152
+ className: "flex flex-col gap-4",
6170
6153
  children: [/*#__PURE__*/jsxRuntime.jsx("h3", {
6171
- className: "wizard-step-header",
6154
+ className: "text-lg font-semibold text-gray-200",
6172
6155
  children: "Preview your layout"
6173
6156
  }), /*#__PURE__*/jsxRuntime.jsx("p", {
6174
- className: "wizard-step-description",
6157
+ className: "text-sm text-gray-400",
6175
6158
  children: "Drag widgets to rearrange their placement in the grid."
6176
6159
  }), template ? /*#__PURE__*/jsxRuntime.jsx(LayoutGrid, {
6177
6160
  template: template,
@@ -6179,11 +6162,10 @@ var WizardLayoutPreviewStep = function WizardLayoutPreviewStep(_ref) {
6179
6162
  widgets: state.selectedWidgets,
6180
6163
  dispatch: dispatch
6181
6164
  }) : /*#__PURE__*/jsxRuntime.jsxs("div", {
6182
- className: "wizard-empty",
6165
+ className: "flex flex-col items-center justify-center gap-2 py-12 text-gray-500",
6183
6166
  children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
6184
6167
  icon: "grid-2",
6185
- fixedWidth: true,
6186
- className: "wizard-empty-icon"
6168
+ fixedWidth: true
6187
6169
  }), /*#__PURE__*/jsxRuntime.jsx("p", {
6188
6170
  children: "No layout template available."
6189
6171
  })]
@@ -6197,16 +6179,15 @@ var PrebuiltPreview = function PrebuiltPreview(_ref2) {
6197
6179
  var dashboard = _ref2.dashboard;
6198
6180
  if (!dashboard) {
6199
6181
  return /*#__PURE__*/jsxRuntime.jsxs("div", {
6200
- className: "wizard-layout-step",
6182
+ className: "flex flex-col gap-4",
6201
6183
  children: [/*#__PURE__*/jsxRuntime.jsx("h3", {
6202
- className: "wizard-step-header",
6184
+ className: "text-lg font-semibold text-gray-200",
6203
6185
  children: "Dashboard preview"
6204
6186
  }), /*#__PURE__*/jsxRuntime.jsxs("div", {
6205
- className: "wizard-empty",
6187
+ className: "flex flex-col items-center justify-center gap-2 py-12 text-gray-500",
6206
6188
  children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
6207
6189
  icon: "box-open",
6208
- fixedWidth: true,
6209
- className: "wizard-empty-icon"
6190
+ fixedWidth: true
6210
6191
  }), /*#__PURE__*/jsxRuntime.jsx("p", {
6211
6192
  children: "No dashboard selected."
6212
6193
  })]
@@ -6215,38 +6196,39 @@ var PrebuiltPreview = function PrebuiltPreview(_ref2) {
6215
6196
  }
6216
6197
  var widgets = dashboard.widgets || [];
6217
6198
  return /*#__PURE__*/jsxRuntime.jsxs("div", {
6218
- className: "wizard-layout-step",
6199
+ className: "flex flex-col gap-4",
6219
6200
  children: [/*#__PURE__*/jsxRuntime.jsx("h3", {
6220
- className: "wizard-step-header",
6201
+ className: "text-lg font-semibold text-gray-200",
6221
6202
  children: "Dashboard preview"
6222
6203
  }), /*#__PURE__*/jsxRuntime.jsxs("div", {
6223
- className: "wizard-prebuilt-preview",
6204
+ className: "rounded-lg border border-gray-700/50 bg-gray-800/50 p-4 flex flex-col gap-3",
6224
6205
  children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
6225
- className: "wizard-prebuilt-header",
6206
+ className: "flex items-center gap-2",
6226
6207
  children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
6227
6208
  icon: resolveIcon(dashboard.icon || "grid-2"),
6228
6209
  fixedWidth: true,
6229
- className: "wizard-prebuilt-icon"
6210
+ className: "text-blue-400"
6230
6211
  }), /*#__PURE__*/jsxRuntime.jsx("span", {
6231
- className: "wizard-prebuilt-name",
6212
+ className: "text-base font-semibold text-gray-200",
6232
6213
  children: dashboard.displayName || dashboard.name
6233
6214
  })]
6234
6215
  }), dashboard.description && /*#__PURE__*/jsxRuntime.jsx("p", {
6235
- className: "wizard-prebuilt-desc",
6216
+ className: "text-sm text-gray-400",
6236
6217
  children: dashboard.description
6237
6218
  }), /*#__PURE__*/jsxRuntime.jsxs("div", {
6238
- className: "wizard-prebuilt-widgets",
6219
+ className: "flex flex-col gap-1.5",
6239
6220
  children: [/*#__PURE__*/jsxRuntime.jsxs("span", {
6240
- className: "wizard-prebuilt-widgets-label",
6221
+ className: "text-xs font-semibold text-gray-400 uppercase tracking-wide",
6241
6222
  children: ["Includes ", widgets.length, " widget", widgets.length !== 1 ? "s" : "", ":"]
6242
6223
  }), /*#__PURE__*/jsxRuntime.jsx("ul", {
6243
- className: "wizard-prebuilt-widget-list",
6224
+ className: "flex flex-col gap-1",
6244
6225
  children: widgets.map(function (w, i) {
6245
6226
  return /*#__PURE__*/jsxRuntime.jsxs("li", {
6227
+ className: "flex items-center gap-2 text-sm text-gray-300",
6246
6228
  children: [w.icon && /*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
6247
6229
  icon: resolveIcon(w.icon),
6248
6230
  fixedWidth: true,
6249
- className: "wizard-prebuilt-widget-icon"
6231
+ className: "text-gray-500 text-xs"
6250
6232
  }), /*#__PURE__*/jsxRuntime.jsx("span", {
6251
6233
  children: w.displayName || w.name
6252
6234
  })]
@@ -6334,7 +6316,7 @@ var LayoutGrid = function LayoutGrid(_ref3) {
6334
6316
  dragRef.current = null;
6335
6317
  }, []);
6336
6318
  return /*#__PURE__*/jsxRuntime.jsx("div", {
6337
- className: "wizard-layout-grid",
6319
+ className: "gap-3 p-4",
6338
6320
  style: {
6339
6321
  display: "grid",
6340
6322
  gridTemplateRows: "repeat(".concat(template.rows, ", 1fr)"),
@@ -6348,9 +6330,9 @@ var LayoutGrid = function LayoutGrid(_ref3) {
6348
6330
  var cellStyle = {};
6349
6331
  if (cell.rowSpan) cellStyle.gridRow = "span ".concat(cell.rowSpan);
6350
6332
  if (cell.colSpan) cellStyle.gridColumn = "span ".concat(cell.colSpan);
6351
- var classNames = ["wizard-layout-cell", hasWidget ? "wizard-layout-cell--filled" : "wizard-layout-cell--empty", isDragging ? "wizard-layout-cell--dragging" : "", isDragOver ? "wizard-layout-cell--drag-over" : ""].filter(Boolean).join(" ");
6333
+ var cellClasses = ["rounded-lg border transition-all flex items-center justify-center min-h-[60px]", hasWidget ? "border-gray-600 bg-gray-800/80 cursor-grab" : "border-dashed border-gray-700 bg-gray-800/30", isDragging ? "opacity-50 scale-95" : "", isDragOver ? "ring-2 ring-blue-400 border-blue-400" : ""].filter(Boolean).join(" ");
6352
6334
  return /*#__PURE__*/jsxRuntime.jsx("div", {
6353
- className: classNames,
6335
+ className: cellClasses,
6354
6336
  style: cellStyle,
6355
6337
  draggable: hasWidget,
6356
6338
  onDragStart: hasWidget ? function (e) {
@@ -6365,20 +6347,20 @@ var LayoutGrid = function LayoutGrid(_ref3) {
6365
6347
  },
6366
6348
  onDragEnd: handleDragEnd,
6367
6349
  children: hasWidget ? /*#__PURE__*/jsxRuntime.jsxs("div", {
6368
- className: "wizard-layout-cell-content",
6350
+ className: "flex items-center gap-2 px-3 py-2 text-sm text-gray-300",
6369
6351
  children: [content.icon && /*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
6370
6352
  icon: resolveIcon(content.icon),
6371
6353
  fixedWidth: true,
6372
- className: "wizard-layout-cell-icon"
6354
+ className: "text-gray-400 text-xs"
6373
6355
  }), /*#__PURE__*/jsxRuntime.jsx("span", {
6374
- className: "wizard-layout-cell-name",
6356
+ className: "truncate",
6375
6357
  children: content.displayName || content.name || content.key
6376
6358
  }), /*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
6377
6359
  icon: "grip-vertical",
6378
- className: "wizard-layout-cell-grip"
6360
+ className: "text-gray-600 ml-auto"
6379
6361
  })]
6380
6362
  }) : /*#__PURE__*/jsxRuntime.jsx("div", {
6381
- className: "wizard-layout-cell-placeholder",
6363
+ className: "text-gray-600",
6382
6364
  children: /*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
6383
6365
  icon: "plus",
6384
6366
  fixedWidth: true
@@ -6680,17 +6662,17 @@ var WizardCustomizeStep = function WizardCustomizeStep(_ref) {
6680
6662
  // --- Success state ---
6681
6663
  if (createdDashboard) {
6682
6664
  return /*#__PURE__*/jsxRuntime.jsx("div", {
6683
- className: "wizard-customize-step",
6665
+ className: "flex flex-col gap-4",
6684
6666
  children: /*#__PURE__*/jsxRuntime.jsxs("div", {
6685
- className: "wizard-success",
6667
+ className: "flex flex-col items-center justify-center gap-4 py-12",
6686
6668
  children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
6687
6669
  icon: "circle-check",
6688
- className: "wizard-success-icon"
6670
+ className: "text-green-400 text-3xl"
6689
6671
  }), /*#__PURE__*/jsxRuntime.jsx("h3", {
6690
- className: "wizard-step-header",
6672
+ className: "text-lg font-semibold text-gray-200",
6691
6673
  children: "Dashboard created!"
6692
6674
  }), /*#__PURE__*/jsxRuntime.jsxs("p", {
6693
- className: "wizard-step-description",
6675
+ className: "text-sm text-gray-400",
6694
6676
  children: ["Your dashboard", " ", /*#__PURE__*/jsxRuntime.jsx("strong", {
6695
6677
  children: createdDashboard.name || state.customization.name.trim()
6696
6678
  }), " ", "is ready."]
@@ -6732,23 +6714,22 @@ var WizardCustomizeStep = function WizardCustomizeStep(_ref) {
6732
6714
  });
6733
6715
  var selectedTheme = themes && state.customization.theme ? themes[state.customization.theme] : null;
6734
6716
  return /*#__PURE__*/jsxRuntime.jsxs("div", {
6735
- className: "wizard-customize-step",
6717
+ className: "flex flex-col gap-4",
6736
6718
  children: [/*#__PURE__*/jsxRuntime.jsx("h3", {
6737
- className: "wizard-step-header",
6719
+ className: "text-lg font-semibold text-gray-200",
6738
6720
  children: "Customize your dashboard"
6739
6721
  }), /*#__PURE__*/jsxRuntime.jsx("p", {
6740
- className: "wizard-step-description",
6722
+ className: "text-sm text-gray-400",
6741
6723
  children: "Name your dashboard, choose a folder, and pick a theme."
6742
6724
  }), /*#__PURE__*/jsxRuntime.jsxs("div", {
6743
- className: "wizard-customize-sections",
6725
+ className: "flex flex-col gap-6",
6744
6726
  children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
6745
- className: "wizard-customize-section",
6727
+ className: "flex flex-col gap-2",
6746
6728
  children: [/*#__PURE__*/jsxRuntime.jsxs("label", {
6747
- className: "wizard-customize-label",
6729
+ className: "flex items-center gap-2 text-sm font-semibold text-gray-300",
6748
6730
  children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
6749
6731
  icon: "input-text",
6750
- fixedWidth: true,
6751
- className: "wizard-customize-label-icon"
6732
+ fixedWidth: true
6752
6733
  }), "Dashboard Name"]
6753
6734
  }), /*#__PURE__*/jsxRuntime.jsx(DashReact.InputText, {
6754
6735
  value: state.customization.name,
@@ -6757,19 +6738,18 @@ var WizardCustomizeStep = function WizardCustomizeStep(_ref) {
6757
6738
  autoFocus: true
6758
6739
  })]
6759
6740
  }), /*#__PURE__*/jsxRuntime.jsxs("div", {
6760
- className: "wizard-customize-section",
6741
+ className: "flex flex-col gap-2",
6761
6742
  children: [/*#__PURE__*/jsxRuntime.jsxs("label", {
6762
- className: "wizard-customize-label",
6743
+ className: "flex items-center gap-2 text-sm font-semibold text-gray-300",
6763
6744
  children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
6764
6745
  icon: "folder",
6765
- fixedWidth: true,
6766
- className: "wizard-customize-label-icon"
6746
+ fixedWidth: true
6767
6747
  }), "Folder"]
6768
6748
  }), /*#__PURE__*/jsxRuntime.jsxs("div", {
6769
- className: "wizard-customize-folder-list",
6749
+ className: "flex flex-col gap-1.5",
6770
6750
  children: [!isCreatingFolder ? /*#__PURE__*/jsxRuntime.jsxs("button", {
6771
6751
  type: "button",
6772
- className: "wizard-customize-folder-create",
6752
+ className: "flex items-center gap-2 px-3 py-2 rounded border border-dashed border-gray-600 text-sm text-gray-400 hover:border-gray-500 hover:text-gray-300 transition-colors",
6773
6753
  onClick: function onClick() {
6774
6754
  return setIsCreatingFolder(true);
6775
6755
  },
@@ -6780,9 +6760,9 @@ var WizardCustomizeStep = function WizardCustomizeStep(_ref) {
6780
6760
  children: "New Folder"
6781
6761
  })]
6782
6762
  }) : /*#__PURE__*/jsxRuntime.jsxs("div", {
6783
- className: "wizard-customize-folder-form",
6763
+ className: "rounded-lg border border-gray-700 bg-gray-800/50 p-3 flex flex-col gap-2",
6784
6764
  children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
6785
- className: "wizard-customize-folder-form-header",
6765
+ className: "flex items-center justify-between",
6786
6766
  children: [/*#__PURE__*/jsxRuntime.jsx("span", {
6787
6767
  className: "text-sm font-medium text-gray-300",
6788
6768
  children: "New Folder"
@@ -6827,36 +6807,39 @@ var WizardCustomizeStep = function WizardCustomizeStep(_ref) {
6827
6807
  })]
6828
6808
  }), localMenuItems.map(function (item) {
6829
6809
  var isSelected = !isCreatingFolder && item.id === state.customization.menuId;
6830
- return /*#__PURE__*/jsxRuntime.jsxs("div", {
6831
- className: "wizard-customize-folder-item ".concat(isSelected ? "wizard-customize-folder-item--selected" : ""),
6810
+ return /*#__PURE__*/jsxRuntime.jsx(DashReact.Card3, {
6811
+ hover: true,
6812
+ selected: isSelected,
6832
6813
  onClick: function onClick() {
6833
6814
  return handleMenuSelect(item.id);
6834
6815
  },
6835
- children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
6836
- icon: item.icon || item.folder || "folder",
6837
- fixedWidth: true,
6838
- className: "w-5 h-5 ".concat(isSelected ? "text-blue-400" : "text-gray-400")
6839
- }), /*#__PURE__*/jsxRuntime.jsx("span", {
6840
- className: "text-sm font-medium ".concat(isSelected ? "text-blue-300" : "text-gray-300"),
6841
- children: item.name
6842
- }), isSelected && /*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
6843
- icon: "check",
6844
- className: "ml-auto text-blue-400 text-sm"
6845
- })]
6816
+ children: /*#__PURE__*/jsxRuntime.jsxs("div", {
6817
+ className: "flex items-center gap-2",
6818
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
6819
+ icon: item.icon || item.folder || "folder",
6820
+ fixedWidth: true,
6821
+ className: "w-5 h-5 ".concat(isSelected ? "text-blue-400" : "text-gray-400")
6822
+ }), /*#__PURE__*/jsxRuntime.jsx("span", {
6823
+ className: "text-sm font-medium ".concat(isSelected ? "text-blue-300" : "text-gray-300"),
6824
+ children: item.name
6825
+ }), isSelected && /*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
6826
+ icon: "check",
6827
+ className: "ml-auto text-blue-400 text-sm"
6828
+ })]
6829
+ })
6846
6830
  }, item.id);
6847
6831
  })]
6848
6832
  })]
6849
6833
  }), /*#__PURE__*/jsxRuntime.jsxs("div", {
6850
- className: "wizard-customize-section",
6834
+ className: "flex flex-col gap-2",
6851
6835
  children: [/*#__PURE__*/jsxRuntime.jsxs("label", {
6852
- className: "wizard-customize-label",
6836
+ className: "flex items-center gap-2 text-sm font-semibold text-gray-300",
6853
6837
  children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
6854
6838
  icon: "palette",
6855
- fixedWidth: true,
6856
- className: "wizard-customize-label-icon"
6839
+ fixedWidth: true
6857
6840
  }), "Theme"]
6858
6841
  }), /*#__PURE__*/jsxRuntime.jsx("div", {
6859
- className: "wizard-customize-theme-list",
6842
+ className: "flex flex-col gap-1.5",
6860
6843
  children: themes && Object.entries(themes).sort(function (_ref7, _ref8) {
6861
6844
  var _ref9 = _slicedToArray(_ref7, 2),
6862
6845
  a = _ref9[1];
@@ -6868,90 +6851,83 @@ var WizardCustomizeStep = function WizardCustomizeStep(_ref) {
6868
6851
  key = _ref10[0],
6869
6852
  t = _ref10[1];
6870
6853
  var isThemeSelected = state.customization.theme === key;
6871
- return /*#__PURE__*/jsxRuntime.jsxs("div", {
6872
- className: "wizard-customize-theme-item ".concat(isThemeSelected ? "wizard-customize-theme-item--selected" : ""),
6854
+ return /*#__PURE__*/jsxRuntime.jsx(DashReact.Card3, {
6855
+ hover: true,
6856
+ selected: isThemeSelected,
6873
6857
  onClick: function onClick() {
6874
6858
  return handleThemeSelect(key);
6875
6859
  },
6876
- children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
6877
- icon: "palette",
6878
- className: "w-5 h-5 mr-3 ".concat(isThemeSelected ? "text-blue-400" : "text-gray-400")
6879
- }), /*#__PURE__*/jsxRuntime.jsx("span", {
6880
- className: "text-sm font-medium ".concat(isThemeSelected ? "text-blue-300" : "text-gray-300"),
6881
- children: t.name || key
6882
- }), /*#__PURE__*/jsxRuntime.jsxs("div", {
6883
- className: "flex flex-row space-x-1 ml-auto",
6884
- children: [t.primary && /*#__PURE__*/jsxRuntime.jsx("div", {
6885
- className: "w-4 h-4 rounded bg-".concat(t.primary, "-500")
6886
- }), t.secondary && /*#__PURE__*/jsxRuntime.jsx("div", {
6887
- className: "w-4 h-4 rounded bg-".concat(t.secondary, "-500")
6888
- }), t.tertiary && /*#__PURE__*/jsxRuntime.jsx("div", {
6889
- className: "w-4 h-4 rounded bg-".concat(t.tertiary, "-500")
6860
+ children: /*#__PURE__*/jsxRuntime.jsxs("div", {
6861
+ className: "flex items-center gap-2",
6862
+ children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
6863
+ icon: "palette",
6864
+ className: "w-5 h-5 ".concat(isThemeSelected ? "text-blue-400" : "text-gray-400")
6865
+ }), /*#__PURE__*/jsxRuntime.jsx("span", {
6866
+ className: "text-sm font-medium ".concat(isThemeSelected ? "text-blue-300" : "text-gray-300"),
6867
+ children: t.name || key
6868
+ }), /*#__PURE__*/jsxRuntime.jsxs("div", {
6869
+ className: "flex flex-row space-x-1 ml-auto",
6870
+ children: [t.primary && /*#__PURE__*/jsxRuntime.jsx("div", {
6871
+ className: "w-4 h-4 rounded bg-".concat(t.primary, "-500")
6872
+ }), t.secondary && /*#__PURE__*/jsxRuntime.jsx("div", {
6873
+ className: "w-4 h-4 rounded bg-".concat(t.secondary, "-500")
6874
+ }), t.tertiary && /*#__PURE__*/jsxRuntime.jsx("div", {
6875
+ className: "w-4 h-4 rounded bg-".concat(t.tertiary, "-500")
6876
+ })]
6890
6877
  })]
6891
- })]
6878
+ })
6892
6879
  }, key);
6893
6880
  })
6894
6881
  })]
6895
6882
  }), selectedProviders.length > 0 && /*#__PURE__*/jsxRuntime.jsxs("div", {
6896
- className: "wizard-customize-section",
6883
+ className: "flex flex-col gap-2",
6897
6884
  children: [/*#__PURE__*/jsxRuntime.jsxs("label", {
6898
- className: "wizard-customize-label",
6885
+ className: "flex items-center gap-2 text-sm font-semibold text-gray-300",
6899
6886
  children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
6900
6887
  icon: "plug",
6901
- fixedWidth: true,
6902
- className: "wizard-customize-label-icon"
6888
+ fixedWidth: true
6903
6889
  }), "Provider Status"]
6904
6890
  }), /*#__PURE__*/jsxRuntime.jsxs("div", {
6905
- className: "wizard-customize-provider-summary",
6891
+ className: "rounded-lg border border-gray-700/50 bg-gray-800/50 p-4 flex flex-col gap-3",
6906
6892
  children: [configuredProviders.length > 0 && /*#__PURE__*/jsxRuntime.jsxs("div", {
6907
- className: "wizard-provider-group",
6893
+ className: "flex flex-col gap-1.5",
6908
6894
  children: [/*#__PURE__*/jsxRuntime.jsxs("span", {
6909
- className: "wizard-provider-group-label wizard-provider-group-label--ready",
6895
+ className: "flex items-center gap-1.5 text-xs font-semibold text-green-400",
6910
6896
  children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
6911
- icon: "circle-check",
6912
- className: "text-green-400"
6913
- }), " ", "Ready (", configuredProviders.length, ")"]
6897
+ icon: "circle-check"
6898
+ }), " Ready (", configuredProviders.length, ")"]
6914
6899
  }), /*#__PURE__*/jsxRuntime.jsx("div", {
6915
- className: "wizard-provider-list",
6900
+ className: "flex flex-wrap gap-1.5",
6916
6901
  children: configuredProviders.map(function (p) {
6917
- return /*#__PURE__*/jsxRuntime.jsxs("span", {
6918
- className: "wizard-provider-badge wizard-provider-badge--ready",
6919
- children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
6920
- icon: resolveIcon(p.icon),
6921
- fixedWidth: true
6922
- }), p.name]
6902
+ return /*#__PURE__*/jsxRuntime.jsx(DashReact.Tag3, {
6903
+ text: p.name
6923
6904
  }, p.key);
6924
6905
  })
6925
6906
  })]
6926
6907
  }), needsSetupProviders.length > 0 && /*#__PURE__*/jsxRuntime.jsxs("div", {
6927
- className: "wizard-provider-group",
6908
+ className: "flex flex-col gap-1.5",
6928
6909
  children: [/*#__PURE__*/jsxRuntime.jsxs("span", {
6929
- className: "wizard-provider-group-label wizard-provider-group-label--setup",
6910
+ className: "flex items-center gap-1.5 text-xs font-semibold text-amber-400",
6930
6911
  children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
6931
- icon: "circle-exclamation",
6932
- className: "text-amber-400"
6933
- }), " ", "Needs setup (", needsSetupProviders.length, ")"]
6912
+ icon: "circle-exclamation"
6913
+ }), " Needs setup (", needsSetupProviders.length, ")"]
6934
6914
  }), /*#__PURE__*/jsxRuntime.jsx("div", {
6935
- className: "wizard-provider-list",
6915
+ className: "flex flex-wrap gap-1.5",
6936
6916
  children: needsSetupProviders.map(function (p) {
6937
- return /*#__PURE__*/jsxRuntime.jsxs("span", {
6938
- className: "wizard-provider-badge wizard-provider-badge--setup",
6939
- children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
6940
- icon: resolveIcon(p.icon),
6941
- fixedWidth: true
6942
- }), p.name]
6917
+ return /*#__PURE__*/jsxRuntime.jsx(DashReact.Tag3, {
6918
+ text: p.name
6943
6919
  }, p.key);
6944
6920
  })
6945
6921
  })]
6946
6922
  })]
6947
6923
  })]
6948
6924
  }), /*#__PURE__*/jsxRuntime.jsxs("div", {
6949
- className: "wizard-customize-summary",
6925
+ className: "rounded-lg border border-gray-700/50 bg-gray-800/50 p-4 flex flex-col gap-2",
6950
6926
  children: [/*#__PURE__*/jsxRuntime.jsx("span", {
6951
- className: "wizard-customize-summary-title",
6927
+ className: "text-sm font-semibold text-gray-300",
6952
6928
  children: "Summary"
6953
6929
  }), state.customization.name.trim() && /*#__PURE__*/jsxRuntime.jsxs("div", {
6954
- className: "wizard-customize-summary-row",
6930
+ className: "flex items-center gap-2 text-sm text-gray-300",
6955
6931
  children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
6956
6932
  icon: "clone",
6957
6933
  className: "text-blue-400"
@@ -6959,7 +6935,7 @@ var WizardCustomizeStep = function WizardCustomizeStep(_ref) {
6959
6935
  children: state.customization.name.trim()
6960
6936
  })]
6961
6937
  }), selectedFolder && /*#__PURE__*/jsxRuntime.jsxs("div", {
6962
- className: "wizard-customize-summary-row",
6938
+ className: "flex items-center gap-2 text-sm text-gray-300",
6963
6939
  children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
6964
6940
  icon: selectedFolder.icon || selectedFolder.folder || "folder",
6965
6941
  className: "text-blue-400"
@@ -6967,7 +6943,7 @@ var WizardCustomizeStep = function WizardCustomizeStep(_ref) {
6967
6943
  children: selectedFolder.name
6968
6944
  })]
6969
6945
  }), selectedTheme && /*#__PURE__*/jsxRuntime.jsxs("div", {
6970
- className: "wizard-customize-summary-row",
6946
+ className: "flex items-center gap-2 text-sm text-gray-300",
6971
6947
  children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
6972
6948
  icon: "palette",
6973
6949
  className: "text-blue-400"
@@ -6982,7 +6958,7 @@ var WizardCustomizeStep = function WizardCustomizeStep(_ref) {
6982
6958
  })]
6983
6959
  })]
6984
6960
  }), /*#__PURE__*/jsxRuntime.jsxs("div", {
6985
- className: "wizard-customize-summary-row",
6961
+ className: "flex items-center gap-2 text-sm text-gray-300",
6986
6962
  children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
6987
6963
  icon: isPrebuilt ? "box" : "grid-2",
6988
6964
  className: "text-blue-400"
@@ -6991,10 +6967,9 @@ var WizardCustomizeStep = function WizardCustomizeStep(_ref) {
6991
6967
  })]
6992
6968
  })]
6993
6969
  }), error && /*#__PURE__*/jsxRuntime.jsxs("div", {
6994
- className: "wizard-customize-error",
6970
+ className: "flex items-center gap-2 text-red-400 py-2",
6995
6971
  children: [/*#__PURE__*/jsxRuntime.jsx(DashReact.FontAwesomeIcon, {
6996
- icon: "triangle-exclamation",
6997
- className: "text-red-400"
6972
+ icon: "triangle-exclamation"
6998
6973
  }), /*#__PURE__*/jsxRuntime.jsx("span", {
6999
6974
  children: error
7000
6975
  })]