@dreamtree-org/twreact-ui 1.3.2 → 1.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/DESIGN.md +2 -2
- package/README.md +14 -6
- package/ai-skills/dreamtree-ui.md +3 -1
- package/bin/cli.mjs +72 -4
- package/dist/ai-schema.json +3 -2
- package/dist/charts/index.js +75 -47
- package/dist/components/charts/CartesianChart.d.ts.map +1 -1
- package/dist/components/charts/DonutChart.d.ts.map +1 -1
- package/dist/components/charts/Sparkline.d.ts.map +1 -1
- package/dist/components/charts/chartTheme.d.ts +13 -3
- package/dist/components/charts/chartTheme.d.ts.map +1 -1
- package/dist/components/core/Table/MobileCard.d.ts.map +1 -1
- package/dist/components/core/Table/MobileFilters.d.ts.map +1 -1
- package/dist/components/core/Table/Table.d.ts.map +1 -1
- package/dist/components/core/Table/TableRow.d.ts.map +1 -1
- package/dist/components/core/Table/helpers.d.ts +12 -0
- package/dist/components/core/Table/helpers.d.ts.map +1 -1
- package/dist/components/utility/Stepper.d.ts.map +1 -1
- package/dist/esm/components/blocks/StatCard.js +1 -1
- package/dist/esm/components/charts/CartesianChart.js +7 -2
- package/dist/esm/components/charts/DonutChart.js +4 -1
- package/dist/esm/components/charts/Sparkline.js +4 -1
- package/dist/esm/components/charts/chartTheme.js +65 -48
- package/dist/esm/components/core/Select.js +2 -2
- package/dist/esm/components/core/Table/ActionMenu.js +5 -5
- package/dist/esm/components/core/Table/ColumnMenu.js +1 -1
- package/dist/esm/components/core/Table/FieldInput.js +5 -5
- package/dist/esm/components/core/Table/MobileCard.js +14 -12
- package/dist/esm/components/core/Table/MobileFilters.js +11 -4
- package/dist/esm/components/core/Table/Pagination.js +1 -1
- package/dist/esm/components/core/Table/Table.js +22 -19
- package/dist/esm/components/core/Table/TableRow.js +10 -11
- package/dist/esm/components/core/Table/helpers.js +16 -1
- package/dist/esm/components/navigation/Dropdown.js +1 -1
- package/dist/esm/components/navigation/Navbar.js +21 -21
- package/dist/esm/components/navigation/Sidebar.js +12 -12
- package/dist/esm/components/utility/Card.js +5 -5
- package/dist/esm/components/utility/Stepper.js +6 -4
- package/dist/index.css +1 -1
- package/dist/index.esm.css +1 -1
- package/dist/index.esm.js +129 -101
- package/dist/index.js +129 -101
- package/dist/tokens/brands/practicepro.json +1 -0
- package/dist/tokens/brands/studio.json +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/mcp/catalog.snapshot.json +21 -21
- package/package.json +2 -1
- package/tokens/brand.schema.json +612 -0
- package/tokens/brands/practicepro.json +1 -0
- package/tokens/brands/studio.json +1 -0
- package/tokens/lib.cjs +131 -7
package/dist/index.js
CHANGED
|
@@ -3656,7 +3656,7 @@ var Select = /*#__PURE__*/React.forwardRef(function (_ref, forwardedRef) {
|
|
|
3656
3656
|
onMenuItemRender = _ref.onMenuItemRender,
|
|
3657
3657
|
className = _ref.className,
|
|
3658
3658
|
_ref$allowClear = _ref.allowClear,
|
|
3659
|
-
allowClear = _ref$allowClear === void 0 ?
|
|
3659
|
+
allowClear = _ref$allowClear === void 0 ? false : _ref$allowClear,
|
|
3660
3660
|
_ref$creatable = _ref.creatable,
|
|
3661
3661
|
creatable = _ref$creatable === void 0 ? false : _ref$creatable,
|
|
3662
3662
|
onCreateOption = _ref.onCreateOption,
|
|
@@ -4093,7 +4093,7 @@ var Select = /*#__PURE__*/React.forwardRef(function (_ref, forwardedRef) {
|
|
|
4093
4093
|
}, opt.value);
|
|
4094
4094
|
})
|
|
4095
4095
|
}), jsxRuntime.jsxs("div", {
|
|
4096
|
-
className: "text-xs text-primary-
|
|
4096
|
+
className: "text-xs text-primary-700",
|
|
4097
4097
|
children: ["+", rest]
|
|
4098
4098
|
})]
|
|
4099
4099
|
});
|
|
@@ -4822,6 +4822,21 @@ var getRowKey = function getRowKey(row, globalIndex) {
|
|
|
4822
4822
|
if (row._id !== undefined && row._id !== null) return String(row._id);
|
|
4823
4823
|
return String(globalIndex);
|
|
4824
4824
|
};
|
|
4825
|
+
/**
|
|
4826
|
+
* A `stripedColors` entry is either a CSS colour ("#f7fafc", "rgb(...)") applied as an
|
|
4827
|
+
* inline background, or a Tailwind class ("bg-surface", "dark:bg-gray-900") applied as a
|
|
4828
|
+
* className. Returns the props to spread onto the striped element.
|
|
4829
|
+
*/
|
|
4830
|
+
var getStripeProps = function getStripeProps(stripe) {
|
|
4831
|
+
if (!stripe) return {};
|
|
4832
|
+
return /(^|[\s:])bg-/.test(stripe) ? {
|
|
4833
|
+
className: stripe
|
|
4834
|
+
} : {
|
|
4835
|
+
style: {
|
|
4836
|
+
backgroundColor: stripe
|
|
4837
|
+
}
|
|
4838
|
+
};
|
|
4839
|
+
};
|
|
4825
4840
|
/**
|
|
4826
4841
|
* Resolve a value that may be supplied directly or as a per-row producer.
|
|
4827
4842
|
* Used for an action's `label`, `icon`, `hidden` and `disabled`.
|
|
@@ -4959,7 +4974,7 @@ function useClickOutside(refs, isActive, onClickOutside) {
|
|
|
4959
4974
|
* Pagination controls component for the table
|
|
4960
4975
|
* Supports both header (icon-only) and footer (with page numbers) variants
|
|
4961
4976
|
*/
|
|
4962
|
-
var DEFAULT_ROW_HOVER$1 = "bg-
|
|
4977
|
+
var DEFAULT_ROW_HOVER$1 = "bg-background";
|
|
4963
4978
|
// Header pagination (compact, icon-based)
|
|
4964
4979
|
function PaginationHeader(_ref) {
|
|
4965
4980
|
var _theme$rowHover;
|
|
@@ -5104,7 +5119,7 @@ function PaginationFooter(_ref2) {
|
|
|
5104
5119
|
});
|
|
5105
5120
|
}
|
|
5106
5121
|
|
|
5107
|
-
var DEFAULT_ROW_HOVER = "bg-
|
|
5122
|
+
var DEFAULT_ROW_HOVER = "bg-background";
|
|
5108
5123
|
/**
|
|
5109
5124
|
* Column visibility toggle menu
|
|
5110
5125
|
*/
|
|
@@ -5166,20 +5181,23 @@ function MobileFilters(_ref) {
|
|
|
5166
5181
|
visibleColumns = _ref.visibleColumns,
|
|
5167
5182
|
filters = _ref.filters,
|
|
5168
5183
|
handleFilter = _ref.handleFilter;
|
|
5184
|
+
var idPrefix = React.useId();
|
|
5169
5185
|
return jsxRuntime.jsxs("div", {
|
|
5170
|
-
className: "mb-4 p-3 bg-
|
|
5186
|
+
className: "mb-4 p-3 bg-background rounded-lg",
|
|
5171
5187
|
children: [jsxRuntime.jsxs("div", {
|
|
5172
5188
|
className: "flex items-center justify-between mb-3",
|
|
5173
5189
|
children: [jsxRuntime.jsx("h3", {
|
|
5174
5190
|
className: "text-sm font-medium",
|
|
5175
5191
|
children: "Filters"
|
|
5176
5192
|
}), jsxRuntime.jsx("button", {
|
|
5193
|
+
type: "button",
|
|
5177
5194
|
onClick: function onClick() {
|
|
5178
5195
|
return setShowMobileFilters(function (s) {
|
|
5179
5196
|
return !s;
|
|
5180
5197
|
});
|
|
5181
5198
|
},
|
|
5182
|
-
|
|
5199
|
+
"aria-expanded": !!showMobileFilters,
|
|
5200
|
+
className: "text-xs font-medium text-primary-700",
|
|
5183
5201
|
children: showMobileFilters ? "Hide" : "Show"
|
|
5184
5202
|
})]
|
|
5185
5203
|
}), showMobileFilters && jsxRuntime.jsxs("div", {
|
|
@@ -5189,6 +5207,7 @@ function MobileFilters(_ref) {
|
|
|
5189
5207
|
children: [jsxRuntime.jsx("input", {
|
|
5190
5208
|
type: "text",
|
|
5191
5209
|
placeholder: "Search...",
|
|
5210
|
+
"aria-label": "Search",
|
|
5192
5211
|
className: "w-full rounded-md border border-gray-300 px-4 py-2 text-sm",
|
|
5193
5212
|
value: searchInput,
|
|
5194
5213
|
onChange: function onChange(e) {
|
|
@@ -5196,14 +5215,17 @@ function MobileFilters(_ref) {
|
|
|
5196
5215
|
},
|
|
5197
5216
|
onKeyDown: onGlobalKeyDown
|
|
5198
5217
|
}), jsxRuntime.jsx(Search, {
|
|
5199
|
-
className: "absolute right-3 top-2.5 h-4 w-4 text-primary-400"
|
|
5218
|
+
className: "absolute right-3 top-2.5 h-4 w-4 text-primary-400",
|
|
5219
|
+
"aria-hidden": "true"
|
|
5200
5220
|
})]
|
|
5201
5221
|
}), filterable && visibleColumns.map(function (column) {
|
|
5202
5222
|
return jsxRuntime.jsxs("div", {
|
|
5203
5223
|
children: [jsxRuntime.jsx("label", {
|
|
5224
|
+
htmlFor: "".concat(idPrefix, "-filter-").concat(column.key),
|
|
5204
5225
|
className: "block text-xs font-medium mb-1",
|
|
5205
5226
|
children: column.label
|
|
5206
5227
|
}), jsxRuntime.jsx("input", {
|
|
5228
|
+
id: "".concat(idPrefix, "-filter-").concat(column.key),
|
|
5207
5229
|
type: "text",
|
|
5208
5230
|
placeholder: "Filter ".concat(column.label),
|
|
5209
5231
|
className: "w-full rounded-md border border-gray-300 px-3 py-2 text-sm",
|
|
@@ -5218,8 +5240,8 @@ function MobileFilters(_ref) {
|
|
|
5218
5240
|
});
|
|
5219
5241
|
}
|
|
5220
5242
|
|
|
5221
|
-
var DEFAULT_MENU_BG = "bg-
|
|
5222
|
-
var DEFAULT_MENU_ITEM_HOVER = "opacity-75 hover:opacity-100 hover:bg-gray-100/80 active:bg-gray-200/80";
|
|
5243
|
+
var DEFAULT_MENU_BG = "bg-surface border border-line shadow-xl";
|
|
5244
|
+
var DEFAULT_MENU_ITEM_HOVER = "opacity-75 hover:opacity-100 hover:bg-gray-100/80 active:bg-gray-200/80 dark:hover:bg-gray-800 dark:active:bg-gray-700";
|
|
5223
5245
|
function ActionMenu(_ref) {
|
|
5224
5246
|
var _theme$menuBg, _theme$menuItemHover;
|
|
5225
5247
|
var _ref$actions = _ref.actions,
|
|
@@ -5423,7 +5445,7 @@ function ActionMenu(_ref) {
|
|
|
5423
5445
|
children: jsxRuntime.jsx("div", {
|
|
5424
5446
|
className: "p-1.5 space-y-0.5",
|
|
5425
5447
|
children: !Array.isArray(actions) || actions.length === 0 ? jsxRuntime.jsx("div", {
|
|
5426
|
-
className: "px-3 py-2 text-sm text-
|
|
5448
|
+
className: "px-3 py-2 text-sm text-muted italic",
|
|
5427
5449
|
children: "No actions"
|
|
5428
5450
|
}) : actions.map(function (action, idx) {
|
|
5429
5451
|
var _action$name;
|
|
@@ -5434,7 +5456,7 @@ function ActionMenu(_ref) {
|
|
|
5434
5456
|
type: "button",
|
|
5435
5457
|
disabled: isDisabled,
|
|
5436
5458
|
"aria-disabled": isDisabled || undefined,
|
|
5437
|
-
className: cn$1("w-full text-left px-3 py-2 text-sm flex items-center gap-2.5 rounded-lg transition-colors font-medium", isDisabled ? "opacity-50 cursor-not-allowed text-
|
|
5459
|
+
className: cn$1("w-full text-left px-3 py-2 text-sm flex items-center gap-2.5 rounded-lg transition-colors font-medium", isDisabled ? "opacity-50 cursor-not-allowed text-muted" : ["text-foreground", menuItemHover, isFocused ? "bg-gray-100 text-gray-900 ring-1 ring-gray-300 dark:bg-gray-800 dark:text-foreground dark:ring-gray-600" : ""]),
|
|
5438
5460
|
onMouseEnter: function onMouseEnter() {
|
|
5439
5461
|
return !isDisabled && setFocusedIndex(idx);
|
|
5440
5462
|
},
|
|
@@ -5446,7 +5468,7 @@ function ActionMenu(_ref) {
|
|
|
5446
5468
|
},
|
|
5447
5469
|
children: action.render ? action.render(row) : jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
5448
5470
|
children: [action.icon && jsxRuntime.jsx("span", {
|
|
5449
|
-
className: "inline-flex text-
|
|
5471
|
+
className: "inline-flex text-muted flex-shrink-0",
|
|
5450
5472
|
children: action.icon
|
|
5451
5473
|
}), jsxRuntime.jsx("span", {
|
|
5452
5474
|
className: "truncate",
|
|
@@ -5541,6 +5563,7 @@ function TableRow(_ref) {
|
|
|
5541
5563
|
var safeExtraRowClass = typeof extraRowClass === "string" ? extraRowClass.trim() : "";
|
|
5542
5564
|
var stripeColors = theme === null || theme === void 0 ? void 0 : theme.stripedColors;
|
|
5543
5565
|
var stripeBg = stripedRows && !isSelected && Array.isArray(stripeColors) && stripeColors.length > 0 ? stripeColors[globalIndex % stripeColors.length] : undefined;
|
|
5566
|
+
var stripeProps = getStripeProps(stripeBg);
|
|
5544
5567
|
var rowKey = isNewRow ? row._key : key;
|
|
5545
5568
|
var isRowActive = interactive && (activeCell === null || activeCell === void 0 ? void 0 : activeCell.rowKey) === rowKey;
|
|
5546
5569
|
var effectiveRow = React.useMemo(function () {
|
|
@@ -5549,10 +5572,8 @@ function TableRow(_ref) {
|
|
|
5549
5572
|
}, [interactive, pendingEdits, rowKey, row]);
|
|
5550
5573
|
return jsxRuntime.jsxs(React.Fragment, {
|
|
5551
5574
|
children: [jsxRuntime.jsxs("tr", {
|
|
5552
|
-
style:
|
|
5553
|
-
|
|
5554
|
-
} : undefined,
|
|
5555
|
-
className: cn$1(theme !== null && theme !== void 0 && theme.rowHover ? ["hover:" + theme.rowHover] : [], {
|
|
5575
|
+
style: stripeProps.style,
|
|
5576
|
+
className: cn$1(stripeProps.className, theme !== null && theme !== void 0 && theme.rowHover ? ["hover:" + theme.rowHover] : [], {
|
|
5556
5577
|
"cursor-pointer": !!onRowClick,
|
|
5557
5578
|
"bg-primary-50": isSelected,
|
|
5558
5579
|
"bg-primary-50/20": isRowActive && !isSelected,
|
|
@@ -5571,7 +5592,7 @@ function TableRow(_ref) {
|
|
|
5571
5592
|
},
|
|
5572
5593
|
"aria-expanded": isExpanded,
|
|
5573
5594
|
"aria-label": isExpanded ? "Collapse row details" : "Expand row details",
|
|
5574
|
-
className: "p-1 rounded hover:bg-gray-100",
|
|
5595
|
+
className: "p-1 rounded hover:bg-gray-100 dark:hover:bg-gray-800",
|
|
5575
5596
|
children: isExpanded ? "▾" : "▸"
|
|
5576
5597
|
})
|
|
5577
5598
|
}), showSerial && jsxRuntime.jsx("td", {
|
|
@@ -5607,9 +5628,9 @@ function TableRow(_ref) {
|
|
|
5607
5628
|
title: isCellInvalid ? "Field \"".concat(column.label || column.key, "\" is required or invalid") : undefined,
|
|
5608
5629
|
className: cn$1("px-6 py-4 text-sm transition-all", wrapCell ? "whitespace-normal break-words" : "whitespace-nowrap", {
|
|
5609
5630
|
"ring-2 ring-error-500 ring-inset bg-error-50/40 relative z-10": isCellInvalid && !isCellEditing,
|
|
5610
|
-
"ring-2 ring-error-600 ring-inset bg-
|
|
5631
|
+
"ring-2 ring-error-600 ring-inset bg-surface p-1 z-20 relative": isCellEditing && isCellInvalid,
|
|
5611
5632
|
"ring-2 ring-primary-500 ring-inset bg-primary-50/50 relative z-10": isCellActive && !isCellEditing && !isCellInvalid,
|
|
5612
|
-
"ring-2 ring-primary-600 ring-inset bg-
|
|
5633
|
+
"ring-2 ring-primary-600 ring-inset bg-surface p-1 z-20 relative": isCellEditing && !isCellInvalid
|
|
5613
5634
|
}, safeExtraCellClass),
|
|
5614
5635
|
onClick: function onClick() {
|
|
5615
5636
|
if (interactive && onCellClick) {
|
|
@@ -5656,7 +5677,7 @@ function TableRow(_ref) {
|
|
|
5656
5677
|
if (action.disabled) return;
|
|
5657
5678
|
handleOnAction(action, row);
|
|
5658
5679
|
},
|
|
5659
|
-
className: cn$1("p-1 rounded", action.disabled ? "opacity-50 cursor-not-allowed" : "hover:bg-gray-100"),
|
|
5680
|
+
className: cn$1("p-1 rounded", action.disabled ? "opacity-50 cursor-not-allowed" : "hover:bg-gray-100 dark:hover:bg-gray-800"),
|
|
5660
5681
|
children: action.render ? action.render(row) : (_action$icon = action.icon) !== null && _action$icon !== void 0 ? _action$icon : jsxRuntime.jsx("span", {
|
|
5661
5682
|
className: "text-xs",
|
|
5662
5683
|
children: actionLabel
|
|
@@ -5672,7 +5693,7 @@ function TableRow(_ref) {
|
|
|
5672
5693
|
return toggleActions(e, actionCellKey, row);
|
|
5673
5694
|
},
|
|
5674
5695
|
"aria-expanded": activeActionRowKey === actionCellKey,
|
|
5675
|
-
className: "p-1 rounded hover:bg-gray-100",
|
|
5696
|
+
className: "p-1 rounded hover:bg-gray-100 dark:hover:bg-gray-800",
|
|
5676
5697
|
title: "Actions",
|
|
5677
5698
|
children: jsxRuntime.jsx(MoreVertical, {
|
|
5678
5699
|
className: "h-4 w-4"
|
|
@@ -5696,7 +5717,7 @@ function TableRow(_ref) {
|
|
|
5696
5717
|
colSpan: visibleCount,
|
|
5697
5718
|
className: cn$1(_defineProperty$4(_defineProperty$4({
|
|
5698
5719
|
"px-6 py-4": true
|
|
5699
|
-
}, (_theme$accentColor = theme === null || theme === void 0 ? void 0 : theme.accentColor) !== null && _theme$accentColor !== void 0 ? _theme$accentColor : "bg-
|
|
5720
|
+
}, (_theme$accentColor = theme === null || theme === void 0 ? void 0 : theme.accentColor) !== null && _theme$accentColor !== void 0 ? _theme$accentColor : "bg-background", true), (_theme$rowHover = theme === null || theme === void 0 ? void 0 : theme.rowHover) !== null && _theme$rowHover !== void 0 ? _theme$rowHover : "bg-background", true)),
|
|
5700
5721
|
children: jsxRuntime.jsx(DetailsComponent, {
|
|
5701
5722
|
row: row,
|
|
5702
5723
|
index: globalIndex
|
|
@@ -5761,11 +5782,10 @@ function MobileCard(_ref) {
|
|
|
5761
5782
|
var hasActions = withAction && (inlineActions.length > 0 || menuActions.length > 0);
|
|
5762
5783
|
var showHeader = showDetailsToggle || selectable || showSerial || hasActions;
|
|
5763
5784
|
var stripeBg = stripedRows && !isSelected && Array.isArray(stripedColors) && stripedColors.length > 0 ? stripedColors[globalIndex % stripedColors.length] : undefined;
|
|
5785
|
+
var stripeProps = getStripeProps(stripeBg);
|
|
5764
5786
|
return jsxRuntime.jsxs("div", {
|
|
5765
|
-
style:
|
|
5766
|
-
|
|
5767
|
-
} : undefined,
|
|
5768
|
-
className: cn$1("border rounded-lg mb-3 shadow-sm overflow-hidden transition-all duration-200", {
|
|
5787
|
+
style: stripeProps.style,
|
|
5788
|
+
className: cn$1(stripeProps.className, "border border-line rounded-lg mb-3 shadow-sm overflow-hidden transition-all duration-200", {
|
|
5769
5789
|
"cursor-pointer": !!onRowClick,
|
|
5770
5790
|
"bg-primary-50 border-primary-200": isSelected,
|
|
5771
5791
|
"hover:shadow-md": !isSelected
|
|
@@ -5774,7 +5794,7 @@ function MobileCard(_ref) {
|
|
|
5774
5794
|
return onRowClick === null || onRowClick === void 0 ? void 0 : onRowClick(row, globalIndex);
|
|
5775
5795
|
},
|
|
5776
5796
|
children: [showHeader && jsxRuntime.jsxs("div", {
|
|
5777
|
-
className: "flex items-center justify-between p-4 border-b bg-
|
|
5797
|
+
className: "flex items-center justify-between p-4 border-b border-line bg-background",
|
|
5778
5798
|
children: [jsxRuntime.jsxs("div", {
|
|
5779
5799
|
className: "flex items-center gap-3",
|
|
5780
5800
|
children: [showDetailsToggle && jsxRuntime.jsx("button", {
|
|
@@ -5785,7 +5805,7 @@ function MobileCard(_ref) {
|
|
|
5785
5805
|
},
|
|
5786
5806
|
"aria-expanded": isExpanded,
|
|
5787
5807
|
"aria-label": isExpanded ? "Collapse row details" : "Expand row details",
|
|
5788
|
-
className: "p-1 rounded hover:bg-gray-200",
|
|
5808
|
+
className: "p-1 rounded hover:bg-gray-200 dark:hover:bg-gray-700",
|
|
5789
5809
|
children: isExpanded ? "▾" : "▸"
|
|
5790
5810
|
}), selectable && jsxRuntime.jsx("input", {
|
|
5791
5811
|
type: "checkbox",
|
|
@@ -5819,7 +5839,7 @@ function MobileCard(_ref) {
|
|
|
5819
5839
|
if (action.disabled) return;
|
|
5820
5840
|
handleOnAction(action, row);
|
|
5821
5841
|
},
|
|
5822
|
-
className: cn$1("p-1.5 rounded", action.disabled ? "opacity-50 cursor-not-allowed" : "hover:bg-gray-200"),
|
|
5842
|
+
className: cn$1("p-1.5 rounded", action.disabled ? "opacity-50 cursor-not-allowed" : "hover:bg-gray-200 dark:hover:bg-gray-700"),
|
|
5823
5843
|
children: action.render ? action.render(row) : (_action$icon = action.icon) !== null && _action$icon !== void 0 ? _action$icon : jsxRuntime.jsx("span", {
|
|
5824
5844
|
className: "text-xs",
|
|
5825
5845
|
children: actionLabel
|
|
@@ -5828,6 +5848,7 @@ function MobileCard(_ref) {
|
|
|
5828
5848
|
}), menuActions.length > 0 && jsxRuntime.jsxs("div", {
|
|
5829
5849
|
className: "relative",
|
|
5830
5850
|
children: [jsxRuntime.jsx("button", {
|
|
5851
|
+
type: "button",
|
|
5831
5852
|
ref: function ref(el) {
|
|
5832
5853
|
return registerActionButton === null || registerActionButton === void 0 ? void 0 : registerActionButton(actionCellKey, el);
|
|
5833
5854
|
},
|
|
@@ -5835,10 +5856,12 @@ function MobileCard(_ref) {
|
|
|
5835
5856
|
return toggleActions(e, actionCellKey, row);
|
|
5836
5857
|
},
|
|
5837
5858
|
"aria-expanded": activeActionRowKey === actionCellKey,
|
|
5838
|
-
className: "p-1.5 rounded hover:bg-gray-200",
|
|
5859
|
+
className: "p-1.5 rounded hover:bg-gray-200 dark:hover:bg-gray-700",
|
|
5839
5860
|
title: "Actions",
|
|
5861
|
+
"aria-label": "Actions",
|
|
5840
5862
|
children: jsxRuntime.jsx(MoreVertical, {
|
|
5841
|
-
className: "h-4 w-4"
|
|
5863
|
+
className: "h-4 w-4",
|
|
5864
|
+
"aria-hidden": "true"
|
|
5842
5865
|
})
|
|
5843
5866
|
}), activeActionRowKey === actionCellKey && jsxRuntime.jsx(ActionMenu, {
|
|
5844
5867
|
actions: menuActions,
|
|
@@ -5866,7 +5889,7 @@ function MobileCard(_ref) {
|
|
|
5866
5889
|
return jsxRuntime.jsxs("div", {
|
|
5867
5890
|
className: cn$1("flex justify-between items-center flex-row py-2 border-b last:border-b-0", safeExtraCellClass),
|
|
5868
5891
|
children: [jsxRuntime.jsx("div", {
|
|
5869
|
-
className: "text-xs font-medium text-primary-
|
|
5892
|
+
className: "text-xs font-medium text-primary-700 uppercase tracking-wide mb-1 sm:mb-0 sm:w-1/3 sm:pr-2",
|
|
5870
5893
|
children: column.label
|
|
5871
5894
|
}), jsxRuntime.jsx("div", {
|
|
5872
5895
|
className: "text-sm text-primary-900 sm:w-2/3 sm:pl-2 break-words",
|
|
@@ -5875,7 +5898,7 @@ function MobileCard(_ref) {
|
|
|
5875
5898
|
}, column.key);
|
|
5876
5899
|
})
|
|
5877
5900
|
}), showDetailsToggle && isExpanded && DetailsComponent && jsxRuntime.jsx("div", {
|
|
5878
|
-
className: "border-t bg-
|
|
5901
|
+
className: "border-t border-line bg-background p-4",
|
|
5879
5902
|
children: jsxRuntime.jsx(DetailsComponent, {
|
|
5880
5903
|
row: row,
|
|
5881
5904
|
index: globalIndex
|
|
@@ -5936,7 +5959,7 @@ function FieldInput(_ref) {
|
|
|
5936
5959
|
onClick: stopProp,
|
|
5937
5960
|
onMouseDown: stopProp,
|
|
5938
5961
|
placeholder: "Enter ".concat(column.label || column.key, "..."),
|
|
5939
|
-
className: cn$1("w-full px-2 py-1 text-sm border rounded outline-none transition-all focus:ring-2 focus:ring-primary-500 bg-
|
|
5962
|
+
className: cn$1("w-full px-2 py-1 text-sm border rounded outline-none transition-all focus:ring-2 focus:ring-primary-500 bg-surface text-foreground resize-y min-h-[2.5rem]", className)
|
|
5940
5963
|
});
|
|
5941
5964
|
}
|
|
5942
5965
|
// Select / Dropdown
|
|
@@ -5956,7 +5979,7 @@ function FieldInput(_ref) {
|
|
|
5956
5979
|
onKeyDown: onKeyDown,
|
|
5957
5980
|
onClick: stopProp,
|
|
5958
5981
|
onMouseDown: stopProp,
|
|
5959
|
-
className: cn$1("w-full px-2 py-1 text-sm border rounded outline-none focus:ring-2 focus:ring-primary-500 bg-
|
|
5982
|
+
className: cn$1("w-full px-2 py-1 text-sm border rounded outline-none focus:ring-2 focus:ring-primary-500 bg-surface text-foreground", className),
|
|
5960
5983
|
children: [jsxRuntime.jsxs("option", {
|
|
5961
5984
|
value: "",
|
|
5962
5985
|
children: ["Select ", column.label || column.key]
|
|
@@ -5999,7 +6022,7 @@ function FieldInput(_ref) {
|
|
|
5999
6022
|
onKeyDown: onKeyDown,
|
|
6000
6023
|
onClick: stopProp,
|
|
6001
6024
|
onMouseDown: stopProp,
|
|
6002
|
-
className: cn$1("w-full px-2 py-1 text-sm border rounded outline-none focus:ring-2 focus:ring-primary-500 bg-
|
|
6025
|
+
className: cn$1("w-full px-2 py-1 text-sm border rounded outline-none focus:ring-2 focus:ring-primary-500 bg-surface text-foreground", className)
|
|
6003
6026
|
});
|
|
6004
6027
|
}
|
|
6005
6028
|
// Number
|
|
@@ -6015,7 +6038,7 @@ function FieldInput(_ref) {
|
|
|
6015
6038
|
onClick: stopProp,
|
|
6016
6039
|
onMouseDown: stopProp,
|
|
6017
6040
|
placeholder: "Enter ".concat(column.label || column.key, "..."),
|
|
6018
|
-
className: cn$1("w-full px-2 py-1 text-sm border rounded outline-none focus:ring-2 focus:ring-primary-500 bg-
|
|
6041
|
+
className: cn$1("w-full px-2 py-1 text-sm border rounded outline-none focus:ring-2 focus:ring-primary-500 bg-surface text-foreground", className)
|
|
6019
6042
|
});
|
|
6020
6043
|
}
|
|
6021
6044
|
// Default: Text
|
|
@@ -6030,7 +6053,7 @@ function FieldInput(_ref) {
|
|
|
6030
6053
|
onClick: stopProp,
|
|
6031
6054
|
onMouseDown: stopProp,
|
|
6032
6055
|
placeholder: "Enter ".concat(column.label || column.key, "..."),
|
|
6033
|
-
className: cn$1("w-full px-2 py-1 text-sm border rounded outline-none focus:ring-2 focus:ring-primary-500 bg-
|
|
6056
|
+
className: cn$1("w-full px-2 py-1 text-sm border rounded outline-none focus:ring-2 focus:ring-primary-500 bg-surface text-foreground", className)
|
|
6034
6057
|
});
|
|
6035
6058
|
}
|
|
6036
6059
|
|
|
@@ -6041,11 +6064,11 @@ function _objectSpread$P(e) { for (var r = 1; r < arguments.length; r++) { var t
|
|
|
6041
6064
|
var DEFAULT_DATA = [];
|
|
6042
6065
|
var DEFAULT_COLUMNS = [];
|
|
6043
6066
|
var DEFAULT_THEME = {
|
|
6044
|
-
stripedColors: ["bg-
|
|
6045
|
-
rowHover: "bg-
|
|
6046
|
-
accentColor: "bg-
|
|
6047
|
-
menuBg: "bg-
|
|
6048
|
-
menuItemHover: "hover:bg-
|
|
6067
|
+
stripedColors: ["bg-surface", "bg-background"],
|
|
6068
|
+
rowHover: "bg-background",
|
|
6069
|
+
accentColor: "bg-background",
|
|
6070
|
+
menuBg: "bg-surface",
|
|
6071
|
+
menuItemHover: "hover:bg-background"
|
|
6049
6072
|
};
|
|
6050
6073
|
var Table = /*#__PURE__*/React.forwardRef(function Table(_ref, ref) {
|
|
6051
6074
|
var _validationErrors$;
|
|
@@ -7200,10 +7223,13 @@ var Table = /*#__PURE__*/React.forwardRef(function Table(_ref, ref) {
|
|
|
7200
7223
|
children: [showReloadButton && jsxRuntime.jsx(jsxRuntime.Fragment, {
|
|
7201
7224
|
children: renderReloadButton ? typeof renderReloadButton === "function" ? renderReloadButton() : renderReloadButton : jsxRuntime.jsxs("button", {
|
|
7202
7225
|
type: "button",
|
|
7226
|
+
"aria-label": "Reload",
|
|
7227
|
+
title: "Reload",
|
|
7203
7228
|
className: "px-4 py-2 bg-primary-100 flex items-center gap-2 rounded-lg md:rounded text-primary-700 hover:bg-primary-200 transition-colors",
|
|
7204
7229
|
onClick: onReload,
|
|
7205
7230
|
children: [jsxRuntime.jsx(RefreshCcw, {
|
|
7206
|
-
className: "size-4"
|
|
7231
|
+
className: "size-4",
|
|
7232
|
+
"aria-hidden": "true"
|
|
7207
7233
|
}), jsxRuntime.jsx("span", {
|
|
7208
7234
|
className: "hidden sm:inline",
|
|
7209
7235
|
children: "Reload"
|
|
@@ -7257,7 +7283,7 @@ var Table = /*#__PURE__*/React.forwardRef(function Table(_ref, ref) {
|
|
|
7257
7283
|
onClick: handleClearChanges,
|
|
7258
7284
|
disabled: isSaving,
|
|
7259
7285
|
title: "Discard all pending modifications",
|
|
7260
|
-
className: "px-4 py-2 font-medium rounded-lg text-sm flex items-center gap-2 transition-all border border-primary-300 text-primary-700 bg-
|
|
7286
|
+
className: "px-4 py-2 font-medium rounded-lg text-sm flex items-center gap-2 transition-all border border-primary-300 text-primary-700 bg-surface hover:bg-primary-50 dark:text-primary-300 dark:border-primary-700 dark:hover:bg-primary-900/40 active:bg-primary-100 cursor-pointer shadow-sm disabled:opacity-50",
|
|
7261
7287
|
children: [jsxRuntime.jsx(X, {
|
|
7262
7288
|
className: "w-4 h-4 text-primary-600"
|
|
7263
7289
|
}), jsxRuntime.jsx("span", {
|
|
@@ -7301,7 +7327,7 @@ var Table = /*#__PURE__*/React.forwardRef(function Table(_ref, ref) {
|
|
|
7301
7327
|
onKeyDown: onGlobalKeyDown
|
|
7302
7328
|
}), jsxRuntime.jsx("button", {
|
|
7303
7329
|
onClick: applyGlobalSearch,
|
|
7304
|
-
className: "absolute right-2 top-1/2 transform -translate-y-1/2 p-2 rounded-lg hover:bg-gray-100",
|
|
7330
|
+
className: "absolute right-2 top-1/2 transform -translate-y-1/2 p-2 rounded-lg hover:bg-gray-100 dark:hover:bg-gray-800",
|
|
7305
7331
|
title: "Search",
|
|
7306
7332
|
children: jsxRuntime.jsx(Search, {
|
|
7307
7333
|
className: "h-4 w-4 text-primary-400"
|
|
@@ -7312,7 +7338,7 @@ var Table = /*#__PURE__*/React.forwardRef(function Table(_ref, ref) {
|
|
|
7312
7338
|
setSearchInput("");
|
|
7313
7339
|
handleFilter("global", "");
|
|
7314
7340
|
},
|
|
7315
|
-
className: "whitespace-nowrap rounded-lg md:rounded-md border border-gray-300 px-4 py-3 md:py-2 text-sm hover:bg-gray-100 w-full sm:w-auto",
|
|
7341
|
+
className: "whitespace-nowrap rounded-lg md:rounded-md border border-gray-300 px-4 py-3 md:py-2 text-sm hover:bg-gray-100 dark:hover:bg-gray-800 w-full sm:w-auto",
|
|
7316
7342
|
children: "Clear"
|
|
7317
7343
|
})]
|
|
7318
7344
|
})
|
|
@@ -7336,7 +7362,7 @@ var Table = /*#__PURE__*/React.forwardRef(function Table(_ref, ref) {
|
|
|
7336
7362
|
}), !isMobileView && jsxRuntime.jsx("div", {
|
|
7337
7363
|
className: "overflow-x-auto overflow-y-visible",
|
|
7338
7364
|
children: jsxRuntime.jsxs("table", _objectSpread$P(_objectSpread$P({
|
|
7339
|
-
className: cn$1("min-w-full divide-y divide-
|
|
7365
|
+
className: cn$1("min-w-full divide-y divide-line", className)
|
|
7340
7366
|
}, props), {}, {
|
|
7341
7367
|
children: [jsxRuntime.jsxs("thead", {
|
|
7342
7368
|
className: safeTheme.accentColor,
|
|
@@ -7344,7 +7370,7 @@ var Table = /*#__PURE__*/React.forwardRef(function Table(_ref, ref) {
|
|
|
7344
7370
|
children: [hasDetailsColumn && jsxRuntime.jsx("th", {
|
|
7345
7371
|
className: "w-8 px-4 py-3"
|
|
7346
7372
|
}), showSerial && jsxRuntime.jsx("th", {
|
|
7347
|
-
className: "w-8 px-4 py-3 text-left text-xs font-medium text-primary-
|
|
7373
|
+
className: "w-8 px-4 py-3 text-left text-xs font-medium text-primary-700 uppercase tracking-wider",
|
|
7348
7374
|
children: "#"
|
|
7349
7375
|
}), selectable && jsxRuntime.jsx("th", {
|
|
7350
7376
|
className: "w-12 px-6 py-3",
|
|
@@ -7357,8 +7383,8 @@ var Table = /*#__PURE__*/React.forwardRef(function Table(_ref, ref) {
|
|
|
7357
7383
|
}), visibleColumns.map(function (column) {
|
|
7358
7384
|
var _column$rules;
|
|
7359
7385
|
return jsxRuntime.jsx("th", {
|
|
7360
|
-
className: cn$1("px-6 py-3 text-left text-xs font-medium text-primary-
|
|
7361
|
-
"cursor-pointer hover:bg-gray-100": sortable && column.sortable !== false
|
|
7386
|
+
className: cn$1("px-6 py-3 text-left text-xs font-medium text-primary-700 uppercase tracking-wider", {
|
|
7387
|
+
"cursor-pointer hover:bg-gray-100 dark:hover:bg-gray-800": sortable && column.sortable !== false
|
|
7362
7388
|
}),
|
|
7363
7389
|
onClick: function onClick() {
|
|
7364
7390
|
return column.sortable !== false && handleSort(column.key);
|
|
@@ -7402,7 +7428,7 @@ var Table = /*#__PURE__*/React.forwardRef(function Table(_ref, ref) {
|
|
|
7402
7428
|
return !s;
|
|
7403
7429
|
});
|
|
7404
7430
|
},
|
|
7405
|
-
className: "p-1 rounded hover:bg-gray-100",
|
|
7431
|
+
className: "p-1 rounded hover:bg-gray-100 dark:hover:bg-gray-800",
|
|
7406
7432
|
children: jsxRuntime.jsx(MoreVertical, {
|
|
7407
7433
|
className: "h-4 w-4"
|
|
7408
7434
|
})
|
|
@@ -7438,7 +7464,7 @@ var Table = /*#__PURE__*/React.forwardRef(function Table(_ref, ref) {
|
|
|
7438
7464
|
})]
|
|
7439
7465
|
})]
|
|
7440
7466
|
}), jsxRuntime.jsx("tbody", {
|
|
7441
|
-
className: "divide-y divide-
|
|
7467
|
+
className: "divide-y divide-line",
|
|
7442
7468
|
children: loading ? jsxRuntime.jsx("tr", {
|
|
7443
7469
|
children: jsxRuntime.jsx("td", {
|
|
7444
7470
|
colSpan: visibleCount,
|
|
@@ -7448,7 +7474,7 @@ var Table = /*#__PURE__*/React.forwardRef(function Table(_ref, ref) {
|
|
|
7448
7474
|
children: [jsxRuntime.jsx("div", {
|
|
7449
7475
|
className: "h-6 w-6 animate-spin rounded-full border-2 border-primary-600 border-t-transparent"
|
|
7450
7476
|
}), jsxRuntime.jsx("span", {
|
|
7451
|
-
className: "text-sm text-
|
|
7477
|
+
className: "text-sm text-muted",
|
|
7452
7478
|
children: "Loading..."
|
|
7453
7479
|
})]
|
|
7454
7480
|
})
|
|
@@ -7466,7 +7492,7 @@ var Table = /*#__PURE__*/React.forwardRef(function Table(_ref, ref) {
|
|
|
7466
7492
|
className: "h-8 w-8"
|
|
7467
7493
|
})
|
|
7468
7494
|
}), jsxRuntime.jsx("span", {
|
|
7469
|
-
className: "text-sm text-
|
|
7495
|
+
className: "text-sm text-muted",
|
|
7470
7496
|
children: "No results found."
|
|
7471
7497
|
})]
|
|
7472
7498
|
})
|
|
@@ -7511,7 +7537,7 @@ var Table = /*#__PURE__*/React.forwardRef(function Table(_ref, ref) {
|
|
|
7511
7537
|
children: [jsxRuntime.jsx("div", {
|
|
7512
7538
|
className: "h-6 w-6 animate-spin rounded-full border-2 border-primary-600 border-t-transparent"
|
|
7513
7539
|
}), jsxRuntime.jsx("span", {
|
|
7514
|
-
className: "text-sm text-
|
|
7540
|
+
className: "text-sm text-muted",
|
|
7515
7541
|
children: "Loading..."
|
|
7516
7542
|
})]
|
|
7517
7543
|
})
|
|
@@ -7525,7 +7551,7 @@ var Table = /*#__PURE__*/React.forwardRef(function Table(_ref, ref) {
|
|
|
7525
7551
|
className: "h-8 w-8"
|
|
7526
7552
|
})
|
|
7527
7553
|
}), jsxRuntime.jsx("span", {
|
|
7528
|
-
className: "text-sm text-
|
|
7554
|
+
className: "text-sm text-muted",
|
|
7529
7555
|
children: "No results found."
|
|
7530
7556
|
})]
|
|
7531
7557
|
})
|
|
@@ -20045,8 +20071,8 @@ var Sidebar = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
20045
20071
|
}
|
|
20046
20072
|
}), {}, {
|
|
20047
20073
|
className: cn$1("flex items-center rounded-md px-3 py-2 text-sm font-medium transition-colors", "focus:outline-none focus-visible:ring-2 focus-visible:ring-primary-500", {
|
|
20048
|
-
"bg-primary-100 text-primary-700": isActive,
|
|
20049
|
-
"hover:bg-gray-100": !isActive && !item.disabled,
|
|
20074
|
+
"bg-primary-100 text-primary-700 dark:bg-primary-900/40 dark:text-primary-300": isActive,
|
|
20075
|
+
"hover:bg-gray-100 dark:hover:bg-gray-800": !isActive && !item.disabled,
|
|
20050
20076
|
"cursor-pointer": !item.disabled,
|
|
20051
20077
|
"cursor-not-allowed opacity-50": item.disabled,
|
|
20052
20078
|
"justify-center": labelHidden
|
|
@@ -20075,7 +20101,7 @@ var Sidebar = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
20075
20101
|
})]
|
|
20076
20102
|
}) : item.badge
|
|
20077
20103
|
}), hasChildren && jsxRuntime.jsx("span", {
|
|
20078
|
-
className: "ml-2 flex-shrink-0 rounded p-0.5 hover:bg-gray-200",
|
|
20104
|
+
className: "ml-2 flex-shrink-0 rounded p-0.5 hover:bg-gray-200 dark:hover:bg-gray-700",
|
|
20079
20105
|
"aria-hidden": "true",
|
|
20080
20106
|
"data-sidebar-chevron": "",
|
|
20081
20107
|
onClick: hasHref ? function (e) {
|
|
@@ -20125,7 +20151,7 @@ var Sidebar = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
20125
20151
|
}),
|
|
20126
20152
|
"data-sidebar-section": section.key || "",
|
|
20127
20153
|
children: [effectiveCollapsed && idx > 0 && jsxRuntime.jsx("hr", {
|
|
20128
|
-
className: "mx-2 my-2 border-
|
|
20154
|
+
className: "mx-2 my-2 border-line",
|
|
20129
20155
|
"aria-hidden": "true"
|
|
20130
20156
|
}), section.key && (effectiveCollapsed ? jsxRuntime.jsx("span", {
|
|
20131
20157
|
id: headingId,
|
|
@@ -20133,7 +20159,7 @@ var Sidebar = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
20133
20159
|
children: section.key
|
|
20134
20160
|
}) : jsxRuntime.jsx("p", {
|
|
20135
20161
|
id: headingId,
|
|
20136
|
-
className: "px-3 pb-1 pt-2 text-micro font-semibold uppercase tracking-wide text-
|
|
20162
|
+
className: "px-3 pb-1 pt-2 text-micro font-semibold uppercase tracking-wide text-muted",
|
|
20137
20163
|
children: section.key
|
|
20138
20164
|
})), section.items.map(function (item) {
|
|
20139
20165
|
return _renderMenuItem(item, 0, pane);
|
|
@@ -20172,7 +20198,7 @@ var Sidebar = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
20172
20198
|
return jsxRuntime.jsx("button", {
|
|
20173
20199
|
type: "button",
|
|
20174
20200
|
onClick: handleUserClick,
|
|
20175
|
-
className: cn$1(base, "cursor-pointer hover:bg-gray-100 transition-colors", "focus:outline-none focus-visible:ring-2 focus-visible:ring-primary-500"),
|
|
20201
|
+
className: cn$1(base, "cursor-pointer hover:bg-gray-100 dark:hover:bg-gray-800 transition-colors", "focus:outline-none focus-visible:ring-2 focus-visible:ring-primary-500"),
|
|
20176
20202
|
"aria-label": effectiveCollapsed && !user.avatar ? user.name : undefined,
|
|
20177
20203
|
children: content
|
|
20178
20204
|
});
|
|
@@ -20186,26 +20212,26 @@ var Sidebar = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
20186
20212
|
}) : footer;
|
|
20187
20213
|
if (content === undefined || content === null || content === false) return null;
|
|
20188
20214
|
return jsxRuntime.jsx("div", {
|
|
20189
|
-
className: "border-t border-
|
|
20215
|
+
className: "border-t border-line p-4",
|
|
20190
20216
|
"data-sidebar-footer": "",
|
|
20191
20217
|
children: content
|
|
20192
20218
|
});
|
|
20193
20219
|
};
|
|
20194
20220
|
var renderSidebarContent = function renderSidebarContent(pane) {
|
|
20195
20221
|
return jsxRuntime.jsxs("div", {
|
|
20196
|
-
className: cn$1("flex h-full flex-col bg-
|
|
20222
|
+
className: cn$1("flex h-full flex-col bg-surface text-foreground border-r border-line shadow-sm", "w-64 transition-all duration-200", {
|
|
20197
20223
|
"w-16": effectiveCollapsed,
|
|
20198
20224
|
"w-64": !effectiveCollapsed
|
|
20199
20225
|
}),
|
|
20200
20226
|
children: [jsxRuntime.jsxs("div", {
|
|
20201
|
-
className: "flex h-16 items-center justify-between border-b border-
|
|
20227
|
+
className: "flex h-16 items-center justify-between border-b border-line px-4",
|
|
20202
20228
|
children: [!effectiveCollapsed && logo && jsxRuntime.jsx("div", {
|
|
20203
20229
|
className: "flex items-center",
|
|
20204
20230
|
children: logo
|
|
20205
20231
|
}), jsxRuntime.jsx("button", {
|
|
20206
20232
|
type: "button",
|
|
20207
20233
|
onClick: handleToggleClick,
|
|
20208
|
-
className: "rounded-md p-1 hover:bg-gray-100",
|
|
20234
|
+
className: "rounded-md p-1 hover:bg-gray-100 dark:hover:bg-gray-800",
|
|
20209
20235
|
"aria-label": effectiveCollapsed ? "Expand sidebar" : "Collapse sidebar",
|
|
20210
20236
|
children: effectiveCollapsed ? jsxRuntime.jsx(ChevronRight, {
|
|
20211
20237
|
className: "h-5 w-5"
|
|
@@ -20214,10 +20240,10 @@ var Sidebar = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
20214
20240
|
})
|
|
20215
20241
|
})]
|
|
20216
20242
|
}), jsxRuntime.jsx("nav", {
|
|
20217
|
-
className: "flex-1 space-y-1 overflow-y-auto p-4 [&::-webkit-scrollbar]:w-2\n [&::-webkit-scrollbar-track]:bg-gray-100\n [&::-webkit-scrollbar-thumb]:bg-gray-300\n hover:[&::-webkit-scrollbar-thumb]:bg-gray-400",
|
|
20243
|
+
className: "flex-1 space-y-1 overflow-y-auto p-4 [&::-webkit-scrollbar]:w-2\n [&::-webkit-scrollbar-track]:bg-gray-100 dark:[&::-webkit-scrollbar-track]:bg-gray-800\n [&::-webkit-scrollbar-thumb]:bg-gray-300 dark:[&::-webkit-scrollbar-thumb]:bg-gray-700\n hover:[&::-webkit-scrollbar-thumb]:bg-gray-400",
|
|
20218
20244
|
children: renderNavContent(pane)
|
|
20219
20245
|
}), renderFooter(pane), user && jsxRuntime.jsx("div", {
|
|
20220
|
-
className: "border-t border-
|
|
20246
|
+
className: "border-t border-line p-4",
|
|
20221
20247
|
children: jsxRuntime.jsx("div", {
|
|
20222
20248
|
className: "relative",
|
|
20223
20249
|
children: renderUserBlock()
|
|
@@ -20318,7 +20344,7 @@ var Dropdown = function Dropdown(_ref) {
|
|
|
20318
20344
|
},
|
|
20319
20345
|
children: trigger
|
|
20320
20346
|
}), isOpen && jsxRuntime.jsx("div", {
|
|
20321
|
-
className: "absolute z-50 bg-
|
|
20347
|
+
className: "absolute z-50 bg-surface text-foreground border border-line rounded-md shadow-lg ".concat(placementClasses[placement], " min-w-48"),
|
|
20322
20348
|
children: children
|
|
20323
20349
|
})]
|
|
20324
20350
|
}));
|
|
@@ -20468,7 +20494,7 @@ var NotificationsDropdown = function NotificationsDropdown(_ref) {
|
|
|
20468
20494
|
// For simplicity, shows notifications in the dropdown, can be expanded
|
|
20469
20495
|
return jsxRuntime.jsx(Dropdown, {
|
|
20470
20496
|
trigger: jsxRuntime.jsxs("button", {
|
|
20471
|
-
className: "relative rounded-md p-2 text-primary-400 hover:text-primary-500 hover:bg-gray-100",
|
|
20497
|
+
className: "relative rounded-md p-2 text-primary-400 hover:text-primary-500 hover:bg-gray-100 dark:hover:bg-gray-800",
|
|
20472
20498
|
"aria-label": "notifications",
|
|
20473
20499
|
children: [jsxRuntime.jsx(Bell, {
|
|
20474
20500
|
className: "h-5 w-5"
|
|
@@ -20481,9 +20507,9 @@ var NotificationsDropdown = function NotificationsDropdown(_ref) {
|
|
|
20481
20507
|
children: jsxRuntime.jsxs("div", {
|
|
20482
20508
|
className: "py-2 min-w-56 max-h-80 overflow-y-auto",
|
|
20483
20509
|
children: [jsxRuntime.jsxs("div", {
|
|
20484
|
-
className: "px-4 py-2 border-b border-
|
|
20510
|
+
className: "px-4 py-2 border-b border-line flex items-center justify-between",
|
|
20485
20511
|
children: [jsxRuntime.jsx("span", {
|
|
20486
|
-
className: "font-medium text-primary-800 text-sm",
|
|
20512
|
+
className: "font-medium text-primary-800 dark:text-primary-100 text-sm",
|
|
20487
20513
|
children: "Notifications"
|
|
20488
20514
|
}), jsxRuntime.jsx("button", {
|
|
20489
20515
|
className: "text-xs text-primary-400 hover:text-error-600",
|
|
@@ -20499,16 +20525,16 @@ var NotificationsDropdown = function NotificationsDropdown(_ref) {
|
|
|
20499
20525
|
children: "No notifications"
|
|
20500
20526
|
}) : notifications.map(function (n) {
|
|
20501
20527
|
return jsxRuntime.jsxs("div", {
|
|
20502
|
-
className: cn$1("flex items-start gap-3 px-4 py-2 hover:bg-gray-50 cursor-pointer group", !n.read ? "bg-primary-50" : ""),
|
|
20528
|
+
className: cn$1("flex items-start gap-3 px-4 py-2 hover:bg-gray-50 dark:hover:bg-gray-800 cursor-pointer group", !n.read ? "bg-primary-50 dark:bg-primary-900/40" : ""),
|
|
20503
20529
|
onClick: function onClick() {
|
|
20504
20530
|
return onView();
|
|
20505
20531
|
},
|
|
20506
20532
|
children: [jsxRuntime.jsx("span", {
|
|
20507
|
-
className: cn$1("h-2 w-2 mt-2 rounded-full", !n.read ? "bg-primary-500" : "bg-gray-300")
|
|
20533
|
+
className: cn$1("h-2 w-2 mt-2 rounded-full", !n.read ? "bg-primary-500" : "bg-gray-300 dark:bg-gray-600")
|
|
20508
20534
|
}), jsxRuntime.jsxs("div", {
|
|
20509
20535
|
className: "flex-1",
|
|
20510
20536
|
children: [jsxRuntime.jsx("div", {
|
|
20511
|
-
className: "text-sm text-primary-800",
|
|
20537
|
+
className: "text-sm text-primary-800 dark:text-primary-100",
|
|
20512
20538
|
children: n.title
|
|
20513
20539
|
}), n.message && jsxRuntime.jsx("div", {
|
|
20514
20540
|
className: "text-xs text-primary-500",
|
|
@@ -20560,10 +20586,10 @@ var RightMenuContent = function RightMenuContent(_ref2) {
|
|
|
20560
20586
|
});
|
|
20561
20587
|
};
|
|
20562
20588
|
var styledClassNames = {
|
|
20563
|
-
button: "rounded-md p-2 text-primary-400 hover:text-primary-500 hover:bg-gray-100",
|
|
20589
|
+
button: "rounded-md p-2 text-primary-400 hover:text-primary-500 hover:bg-gray-100 dark:hover:bg-gray-800",
|
|
20564
20590
|
mobileItem: "md:hidden",
|
|
20565
20591
|
icon: "h-6 w-6",
|
|
20566
|
-
dropdown: "w-56 rounded-md border border-
|
|
20592
|
+
dropdown: "w-56 rounded-md border border-line bg-surface py-1 shadow-lg"
|
|
20567
20593
|
};
|
|
20568
20594
|
var Navbar = /*#__PURE__*/React.forwardRef(function (_ref3, ref) {
|
|
20569
20595
|
var emitter = _ref3.emitter,
|
|
@@ -20648,7 +20674,7 @@ var Navbar = /*#__PURE__*/React.forwardRef(function (_ref3, ref) {
|
|
|
20648
20674
|
},
|
|
20649
20675
|
className: cn$1("block w-full text-left px-4 py-2 text-sm", {
|
|
20650
20676
|
"text-primary-600": item.active,
|
|
20651
|
-
"hover:bg-gray-50": !item.active
|
|
20677
|
+
"hover:bg-gray-50 dark:hover:bg-gray-800": !item.active
|
|
20652
20678
|
}),
|
|
20653
20679
|
children: item.label
|
|
20654
20680
|
}, item.id);
|
|
@@ -20663,7 +20689,7 @@ var Navbar = /*#__PURE__*/React.forwardRef(function (_ref3, ref) {
|
|
|
20663
20689
|
};
|
|
20664
20690
|
return jsxRuntime.jsxs("nav", _objectSpread$p(_objectSpread$p({
|
|
20665
20691
|
ref: ref,
|
|
20666
|
-
className: cn$1("bg-
|
|
20692
|
+
className: cn$1("bg-surface text-foreground border-b border-line px-4 sm:px-6 lg:px-8", className)
|
|
20667
20693
|
}, props), {}, {
|
|
20668
20694
|
children: [jsxRuntime.jsxs("div", {
|
|
20669
20695
|
className: "flex h-16 min-w-0 items-center justify-between gap-2 sm:gap-4",
|
|
@@ -20676,7 +20702,7 @@ var Navbar = /*#__PURE__*/React.forwardRef(function (_ref3, ref) {
|
|
|
20676
20702
|
className: "flex min-w-0 items-center",
|
|
20677
20703
|
children: [leftIcon !== false && jsxRuntime.jsx("button", {
|
|
20678
20704
|
onClick: onLeftIconClick,
|
|
20679
|
-
className: "shrink-0 md:hidden rounded-md p-2 text-primary-400 hover:text-primary-500 hover:bg-gray-100",
|
|
20705
|
+
className: "shrink-0 md:hidden rounded-md p-2 text-primary-400 hover:text-primary-500 hover:bg-gray-100 dark:hover:bg-gray-800",
|
|
20680
20706
|
"aria-label": "back",
|
|
20681
20707
|
children: leftIcon
|
|
20682
20708
|
}), logo && jsxRuntime.jsx("div", {
|
|
@@ -20703,7 +20729,7 @@ var Navbar = /*#__PURE__*/React.forwardRef(function (_ref3, ref) {
|
|
|
20703
20729
|
}), jsxRuntime.jsx("input", {
|
|
20704
20730
|
type: "text",
|
|
20705
20731
|
placeholder: "Search...",
|
|
20706
|
-
className: "w-64 rounded-md border border-gray-300 bg-
|
|
20732
|
+
className: "w-64 rounded-md border border-gray-300 bg-surface text-foreground dark:border-gray-700 pl-10 pr-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-transparent",
|
|
20707
20733
|
value: searchTerm,
|
|
20708
20734
|
onChange: function onChange(e) {
|
|
20709
20735
|
return setSearchTerm(e.target.value);
|
|
@@ -20766,9 +20792,9 @@ var Navbar = /*#__PURE__*/React.forwardRef(function (_ref3, ref) {
|
|
|
20766
20792
|
children: jsxRuntime.jsxs("div", {
|
|
20767
20793
|
className: styledClassNames.dropdown,
|
|
20768
20794
|
children: [jsxRuntime.jsxs("div", {
|
|
20769
|
-
className: "px-4 py-2 border-b border-
|
|
20795
|
+
className: "px-4 py-2 border-b border-line",
|
|
20770
20796
|
children: [jsxRuntime.jsx("p", {
|
|
20771
|
-
className: "text-sm font-medium text-primary-900",
|
|
20797
|
+
className: "text-sm font-medium text-primary-900 dark:text-primary-100",
|
|
20772
20798
|
children: user.name
|
|
20773
20799
|
}), jsxRuntime.jsx("p", {
|
|
20774
20800
|
className: "text-xs text-primary-500",
|
|
@@ -20778,23 +20804,23 @@ var Navbar = /*#__PURE__*/React.forwardRef(function (_ref3, ref) {
|
|
|
20778
20804
|
className: "py-1",
|
|
20779
20805
|
children: renderNavItems(true)
|
|
20780
20806
|
}), user.menuItems && user.menuItems.length > 0 && jsxRuntime.jsx("div", {
|
|
20781
|
-
className: "border-t border-
|
|
20807
|
+
className: "border-t border-line",
|
|
20782
20808
|
children: user.menuItems.map(function (mi) {
|
|
20783
20809
|
return jsxRuntime.jsx("button", {
|
|
20784
20810
|
onClick: function onClick(e) {
|
|
20785
20811
|
var _mi$onClick;
|
|
20786
20812
|
return mi === null || mi === void 0 || (_mi$onClick = mi.onClick) === null || _mi$onClick === void 0 ? void 0 : _mi$onClick.call(mi, e);
|
|
20787
20813
|
},
|
|
20788
|
-
className: "block w-full px-4 py-2 text-left text-sm hover:bg-gray-100",
|
|
20814
|
+
className: "block w-full px-4 py-2 text-left text-sm hover:bg-gray-100 dark:hover:bg-gray-800",
|
|
20789
20815
|
children: mi.label
|
|
20790
20816
|
}, mi.id);
|
|
20791
20817
|
})
|
|
20792
20818
|
}), jsxRuntime.jsx("div", {
|
|
20793
|
-
className: "border-t border-
|
|
20819
|
+
className: "border-t border-line sm:hidden",
|
|
20794
20820
|
children: jsxRuntime.jsxs("button", {
|
|
20795
20821
|
type: "button",
|
|
20796
20822
|
onClick: handleLogoutClick,
|
|
20797
|
-
className: "flex w-full items-center gap-2 px-4 py-2 text-left text-sm hover:bg-gray-100",
|
|
20823
|
+
className: "flex w-full items-center gap-2 px-4 py-2 text-left text-sm hover:bg-gray-100 dark:hover:bg-gray-800",
|
|
20798
20824
|
children: [jsxRuntime.jsx(LogOut, {
|
|
20799
20825
|
className: "h-4 w-4",
|
|
20800
20826
|
"aria-hidden": "true"
|
|
@@ -20808,13 +20834,13 @@ var Navbar = /*#__PURE__*/React.forwardRef(function (_ref3, ref) {
|
|
|
20808
20834
|
}), isMobileMenuOpen && !user && jsxRuntime.jsx("div", {
|
|
20809
20835
|
className: "md:hidden h-full",
|
|
20810
20836
|
children: jsxRuntime.jsx("div", {
|
|
20811
|
-
className: "space-y-1 border-t border-
|
|
20837
|
+
className: "space-y-1 border-t border-line px-2 pt-4 pb-3",
|
|
20812
20838
|
children: items.map(function (item) {
|
|
20813
20839
|
return jsxRuntime.jsx("a", {
|
|
20814
20840
|
href: item.href,
|
|
20815
20841
|
className: cn$1("block rounded-md px-3 py-2 text-base font-medium", {
|
|
20816
|
-
"bg-primary-50 text-primary-700": item.active,
|
|
20817
|
-
"hover:bg-gray-50": !item.active
|
|
20842
|
+
"bg-primary-50 text-primary-700 dark:bg-primary-900/40 dark:text-primary-300": item.active,
|
|
20843
|
+
"hover:bg-gray-50 dark:hover:bg-gray-800": !item.active
|
|
20818
20844
|
}),
|
|
20819
20845
|
children: item.label
|
|
20820
20846
|
}, item.id);
|
|
@@ -22180,7 +22206,7 @@ var Card = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
22180
22206
|
props = _objectWithoutProperties$1(_ref, _excluded$c);
|
|
22181
22207
|
return jsxRuntime.jsx("div", _objectSpread$g(_objectSpread$g({
|
|
22182
22208
|
ref: ref,
|
|
22183
|
-
className: cn$1('rounded-lg border border-
|
|
22209
|
+
className: cn$1('rounded-lg border border-line bg-surface shadow-sm', {
|
|
22184
22210
|
'hover:shadow-md transition-shadow': hover
|
|
22185
22211
|
}, className)
|
|
22186
22212
|
}, props), {}, {
|
|
@@ -22193,7 +22219,7 @@ var CardHeader = function CardHeader(_ref2) {
|
|
|
22193
22219
|
className = _ref2.className,
|
|
22194
22220
|
props = _objectWithoutProperties$1(_ref2, _excluded2);
|
|
22195
22221
|
return jsxRuntime.jsx("div", _objectSpread$g(_objectSpread$g({
|
|
22196
|
-
className: cn$1('px-6 py-4 border-b border-
|
|
22222
|
+
className: cn$1('px-6 py-4 border-b border-line', className)
|
|
22197
22223
|
}, props), {}, {
|
|
22198
22224
|
children: children
|
|
22199
22225
|
}));
|
|
@@ -22203,7 +22229,7 @@ var CardTitle = function CardTitle(_ref3) {
|
|
|
22203
22229
|
className = _ref3.className,
|
|
22204
22230
|
props = _objectWithoutProperties$1(_ref3, _excluded3);
|
|
22205
22231
|
return jsxRuntime.jsx("h3", _objectSpread$g(_objectSpread$g({
|
|
22206
|
-
className: cn$1('text-lg font-semibold text-primary-900', className)
|
|
22232
|
+
className: cn$1('text-lg font-semibold text-primary-900 dark:text-primary-100', className)
|
|
22207
22233
|
}, props), {}, {
|
|
22208
22234
|
children: children
|
|
22209
22235
|
}));
|
|
@@ -22213,7 +22239,7 @@ var CardDescription = function CardDescription(_ref4) {
|
|
|
22213
22239
|
className = _ref4.className,
|
|
22214
22240
|
props = _objectWithoutProperties$1(_ref4, _excluded4);
|
|
22215
22241
|
return jsxRuntime.jsx("p", _objectSpread$g(_objectSpread$g({
|
|
22216
|
-
className: cn$1('text-sm text-primary-600', className)
|
|
22242
|
+
className: cn$1('text-sm text-primary-600 dark:text-primary-300', className)
|
|
22217
22243
|
}, props), {}, {
|
|
22218
22244
|
children: children
|
|
22219
22245
|
}));
|
|
@@ -22233,7 +22259,7 @@ var CardFooter = function CardFooter(_ref6) {
|
|
|
22233
22259
|
className = _ref6.className,
|
|
22234
22260
|
props = _objectWithoutProperties$1(_ref6, _excluded6);
|
|
22235
22261
|
return jsxRuntime.jsx("div", _objectSpread$g(_objectSpread$g({
|
|
22236
|
-
className: cn$1('px-6 py-4 border-t border-
|
|
22262
|
+
className: cn$1('px-6 py-4 border-t border-line', className)
|
|
22237
22263
|
}, props), {}, {
|
|
22238
22264
|
children: children
|
|
22239
22265
|
}));
|
|
@@ -22380,9 +22406,9 @@ var Stepper = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
22380
22406
|
text: 'text-primary-600'
|
|
22381
22407
|
},
|
|
22382
22408
|
upcoming: {
|
|
22383
|
-
circle: 'bg-gray-300 text-
|
|
22409
|
+
circle: 'bg-gray-300 text-gray-700',
|
|
22384
22410
|
line: 'bg-gray-300',
|
|
22385
|
-
text: 'text-
|
|
22411
|
+
text: 'text-muted'
|
|
22386
22412
|
}
|
|
22387
22413
|
};
|
|
22388
22414
|
return jsxRuntime.jsx("nav", _objectSpread$e(_objectSpread$e({
|
|
@@ -22416,8 +22442,10 @@ var Stepper = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
22416
22442
|
},
|
|
22417
22443
|
disabled: !onStepClick || stepIndex > currentStep,
|
|
22418
22444
|
"aria-current": status === 'current' ? 'step' : undefined,
|
|
22445
|
+
"aria-label": "Step ".concat(stepIndex + 1).concat(step.title ? ": ".concat(step.title) : '').concat(status === 'completed' ? ' (completed)' : ''),
|
|
22419
22446
|
children: status === 'completed' ? jsxRuntime.jsx(Check, {
|
|
22420
|
-
className: "h-4 w-4"
|
|
22447
|
+
className: "h-4 w-4",
|
|
22448
|
+
"aria-hidden": "true"
|
|
22421
22449
|
}) : stepIndex + 1
|
|
22422
22450
|
}), !isLast && jsxRuntime.jsx("div", {
|
|
22423
22451
|
className: cn$1('bg-gray-300', {
|
|
@@ -22434,7 +22462,7 @@ var Stepper = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
22434
22462
|
className: cn$1('text-sm font-medium', colors.text),
|
|
22435
22463
|
children: step.title
|
|
22436
22464
|
}), step.description && jsxRuntime.jsx("span", {
|
|
22437
|
-
className: "text-xs text-
|
|
22465
|
+
className: "text-xs text-muted",
|
|
22438
22466
|
children: step.description
|
|
22439
22467
|
})]
|
|
22440
22468
|
})]
|
|
@@ -23506,7 +23534,7 @@ var StatCard = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
23506
23534
|
}), change && !loading && jsxRuntime.jsxs("p", {
|
|
23507
23535
|
className: "mt-1 flex items-center gap-1 text-xs text-muted",
|
|
23508
23536
|
children: [jsxRuntime.jsxs("span", {
|
|
23509
|
-
className: cn$1('inline-flex items-center gap-0.5 font-semibold', good ? 'text-success-
|
|
23537
|
+
className: cn$1('inline-flex items-center gap-0.5 font-semibold', good ? 'text-success-700 dark:text-success-400' : 'text-error-700 dark:text-error-400'),
|
|
23510
23538
|
children: [up ? jsxRuntime.jsx(ArrowUp, {
|
|
23511
23539
|
className: "h-3.5 w-3.5",
|
|
23512
23540
|
"aria-hidden": "true"
|