@dreamtree-org/twreact-ui 1.1.71 → 1.1.73
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/README.md +15 -4
- package/dist/components/core/Checkbox.d.ts.map +1 -1
- package/dist/components/core/Switch.d.ts.map +1 -1
- package/dist/components/core/Table/FieldInput.d.ts +3 -2
- package/dist/components/core/Table/FieldInput.d.ts.map +1 -1
- package/dist/components/core/Table/Table.d.ts.map +1 -1
- package/dist/components/core/Table/TableRow.d.ts +2 -1
- package/dist/components/core/Table/TableRow.d.ts.map +1 -1
- package/dist/components/feedback/Toast.d.ts +6 -8
- package/dist/components/feedback/Toast.d.ts.map +1 -1
- package/dist/index.css +1 -1
- package/dist/index.esm.css +1 -1
- package/dist/index.esm.js +643 -175
- package/dist/index.js +642 -174
- package/mcp/catalog.snapshot.json +54 -12
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -247,6 +247,22 @@ const Calendar = createLucideIcon$1("Calendar", [
|
|
|
247
247
|
*/
|
|
248
248
|
|
|
249
249
|
|
|
250
|
+
const CheckCircle2 = createLucideIcon$1("CheckCircle2", [
|
|
251
|
+
[
|
|
252
|
+
"path",
|
|
253
|
+
{
|
|
254
|
+
d: "M12 22c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10z",
|
|
255
|
+
key: "14v8dr"
|
|
256
|
+
}
|
|
257
|
+
],
|
|
258
|
+
["path", { d: "m9 12 2 2 4-4", key: "dzmm74" }]
|
|
259
|
+
]);
|
|
260
|
+
|
|
261
|
+
/**
|
|
262
|
+
* lucide-react v0.0.1 - ISC
|
|
263
|
+
*/
|
|
264
|
+
|
|
265
|
+
|
|
250
266
|
const CheckCircle = createLucideIcon$1("CheckCircle", [
|
|
251
267
|
["path", { d: "M22 11.08V12a10 10 0 1 1-5.93-9.14", key: "g774vq" }],
|
|
252
268
|
["polyline", { points: "22 4 12 14.01 9 11.01", key: "6xbx8j" }]
|
|
@@ -657,6 +673,17 @@ const User = createLucideIcon$1("User", [
|
|
|
657
673
|
*/
|
|
658
674
|
|
|
659
675
|
|
|
676
|
+
const XCircle = createLucideIcon$1("XCircle", [
|
|
677
|
+
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
678
|
+
["path", { d: "m15 9-6 6", key: "1uzhvr" }],
|
|
679
|
+
["path", { d: "m9 9 6 6", key: "z0biqf" }]
|
|
680
|
+
]);
|
|
681
|
+
|
|
682
|
+
/**
|
|
683
|
+
* lucide-react v0.0.1 - ISC
|
|
684
|
+
*/
|
|
685
|
+
|
|
686
|
+
|
|
660
687
|
const X = createLucideIcon$1("X", [
|
|
661
688
|
["path", { d: "M18 6 6 18", key: "1bl5f8" }],
|
|
662
689
|
["path", { d: "m6 6 12 12", key: "d8bk6v" }]
|
|
@@ -3191,8 +3218,8 @@ function cn$1() {
|
|
|
3191
3218
|
}
|
|
3192
3219
|
|
|
3193
3220
|
var _excluded$A = ["id", "className", "type", "label", "placeholder", "error", "success", "disabled", "required", "clearable", "icon", "iconPosition", "onClear", "showCount", "maxLength", "readOnly", "onChange", "value", "defaultValue"];
|
|
3194
|
-
function ownKeys$
|
|
3195
|
-
function _objectSpread$
|
|
3221
|
+
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; }
|
|
3222
|
+
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), true).forEach(function (r) { _defineProperty$4(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; }
|
|
3196
3223
|
var Input = /*#__PURE__*/React.forwardRef(function (props, forwardedRef) {
|
|
3197
3224
|
var _ref$current$value2, _ref$current;
|
|
3198
3225
|
var id = props.id,
|
|
@@ -3307,7 +3334,7 @@ var Input = /*#__PURE__*/React.forwardRef(function (props, forwardedRef) {
|
|
|
3307
3334
|
className: "text-primary-400",
|
|
3308
3335
|
children: icon
|
|
3309
3336
|
})
|
|
3310
|
-
}), jsxRuntime.jsx("input", _objectSpread$
|
|
3337
|
+
}), jsxRuntime.jsx("input", _objectSpread$G({
|
|
3311
3338
|
id: inputId,
|
|
3312
3339
|
ref: ref,
|
|
3313
3340
|
type: inputType,
|
|
@@ -3368,8 +3395,8 @@ var Input = /*#__PURE__*/React.forwardRef(function (props, forwardedRef) {
|
|
|
3368
3395
|
});
|
|
3369
3396
|
|
|
3370
3397
|
var _excluded$z = ["className", "variant", "size", "disabled", "loading", "children", "leftIcon", "rightIcon", "fullWidth"];
|
|
3371
|
-
function ownKeys$
|
|
3372
|
-
function _objectSpread$
|
|
3398
|
+
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; }
|
|
3399
|
+
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), true).forEach(function (r) { _defineProperty$4(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; }
|
|
3373
3400
|
var Button = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
3374
3401
|
var className = _ref.className,
|
|
3375
3402
|
_ref$variant = _ref.variant,
|
|
@@ -3399,7 +3426,7 @@ var Button = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
3399
3426
|
// Full width
|
|
3400
3427
|
'w-full': fullWidth
|
|
3401
3428
|
}, className);
|
|
3402
|
-
return jsxRuntime.jsxs("button", _objectSpread$
|
|
3429
|
+
return jsxRuntime.jsxs("button", _objectSpread$F(_objectSpread$F({
|
|
3403
3430
|
ref: ref,
|
|
3404
3431
|
className: baseClasses,
|
|
3405
3432
|
disabled: disabled || loading
|
|
@@ -3434,8 +3461,8 @@ function _toConsumableArray$1(r) {
|
|
|
3434
3461
|
}
|
|
3435
3462
|
|
|
3436
3463
|
var _excluded$y = ["options", "value", "onChange", "placeholder", "label", "error", "disabled", "required", "multiSelect", "searchable", "grouped", "onMenuItemRender", "className", "allowClear", "creatable", "onCreateOption", "onSearch", "loading", "selectAllOption", "closeOnSelect", "maxTagCount", "renderGroupLabel", "name"];
|
|
3437
|
-
function ownKeys$
|
|
3438
|
-
function _objectSpread$
|
|
3464
|
+
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; }
|
|
3465
|
+
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), true).forEach(function (r) { _defineProperty$4(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; }
|
|
3439
3466
|
/**
|
|
3440
3467
|
* Enhanced Select component (debounce removed)
|
|
3441
3468
|
* - Supports single and multi select
|
|
@@ -3456,7 +3483,7 @@ var flattenGroups = function flattenGroups() {
|
|
|
3456
3483
|
return groups.reduce(function (acc, g) {
|
|
3457
3484
|
var groupLabel = g.label;
|
|
3458
3485
|
g.options.forEach(function (opt) {
|
|
3459
|
-
return acc.push(_objectSpread$
|
|
3486
|
+
return acc.push(_objectSpread$E(_objectSpread$E({}, opt), {}, {
|
|
3460
3487
|
_group: groupLabel
|
|
3461
3488
|
}));
|
|
3462
3489
|
});
|
|
@@ -3552,7 +3579,7 @@ var Select = /*#__PURE__*/React.forwardRef(function (_ref, forwardedRef) {
|
|
|
3552
3579
|
var flatOptions = React.useMemo(function () {
|
|
3553
3580
|
if (grouped) return flattenGroups(options);
|
|
3554
3581
|
return options.map(function (opt) {
|
|
3555
|
-
return _objectSpread$
|
|
3582
|
+
return _objectSpread$E({}, opt);
|
|
3556
3583
|
});
|
|
3557
3584
|
}, [options, grouped]);
|
|
3558
3585
|
var selectedValues = multiSelect ? Array.isArray(value) ? value : [] : value;
|
|
@@ -3577,7 +3604,7 @@ var Select = /*#__PURE__*/React.forwardRef(function (_ref, forwardedRef) {
|
|
|
3577
3604
|
}
|
|
3578
3605
|
if (grouped) {
|
|
3579
3606
|
return options.map(function (g) {
|
|
3580
|
-
return _objectSpread$
|
|
3607
|
+
return _objectSpread$E(_objectSpread$E({}, g), {}, {
|
|
3581
3608
|
options: g.options.filter(function (o) {
|
|
3582
3609
|
return o.label.toLowerCase().includes(searchTerm.toLowerCase());
|
|
3583
3610
|
})
|
|
@@ -3847,7 +3874,7 @@ var Select = /*#__PURE__*/React.forwardRef(function (_ref, forwardedRef) {
|
|
|
3847
3874
|
className: "text-xs border border-slate-200 p-0.5 rounded-md cursor-pointer hover:bg-gray-100",
|
|
3848
3875
|
onClick: function onClick() {
|
|
3849
3876
|
return setCollapsedGroups(function (prev) {
|
|
3850
|
-
return _objectSpread$
|
|
3877
|
+
return _objectSpread$E(_objectSpread$E({}, prev), {}, _defineProperty$4({}, group.label, !prev[group.label]));
|
|
3851
3878
|
});
|
|
3852
3879
|
},
|
|
3853
3880
|
children: jsxRuntime.jsx(ChevronDown, {
|
|
@@ -3941,7 +3968,7 @@ var Select = /*#__PURE__*/React.forwardRef(function (_ref, forwardedRef) {
|
|
|
3941
3968
|
}), jsxRuntime.jsxs("div", {
|
|
3942
3969
|
ref: selectRef,
|
|
3943
3970
|
className: "relative",
|
|
3944
|
-
children: [jsxRuntime.jsxs("button", _objectSpread$
|
|
3971
|
+
children: [jsxRuntime.jsxs("button", _objectSpread$E(_objectSpread$E({
|
|
3945
3972
|
type: "button",
|
|
3946
3973
|
"aria-haspopup": "listbox",
|
|
3947
3974
|
"aria-expanded": isOpen,
|
|
@@ -4008,7 +4035,7 @@ var Select = /*#__PURE__*/React.forwardRef(function (_ref, forwardedRef) {
|
|
|
4008
4035
|
// escapes any ancestor overflow:hidden|auto|scroll. Coordinates
|
|
4009
4036
|
// are anchored to the trigger's viewport rect; width matches the
|
|
4010
4037
|
// trigger; maxHeight is driven by available space.
|
|
4011
|
-
style: _objectSpread$
|
|
4038
|
+
style: _objectSpread$E({
|
|
4012
4039
|
left: menuCoords ? "".concat(menuCoords.left, "px") : undefined,
|
|
4013
4040
|
top: menuCoords ? "".concat(menuCoords.top, "px") : undefined,
|
|
4014
4041
|
width: menuCoords ? "".concat(menuCoords.width, "px") : undefined
|
|
@@ -4490,8 +4517,8 @@ var DEFAULT_ACTIONS = [{
|
|
|
4490
4517
|
})
|
|
4491
4518
|
}];
|
|
4492
4519
|
|
|
4493
|
-
function ownKeys$
|
|
4494
|
-
function _objectSpread$
|
|
4520
|
+
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; }
|
|
4521
|
+
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), true).forEach(function (r) { _defineProperty$4(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; }
|
|
4495
4522
|
function _createForOfIteratorHelper$1(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$1(r)) || e) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: true } : { done: false, 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 = true, u = false; 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 = true, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
4496
4523
|
function _unsupportedIterableToArray$1(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$1(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$1(r, a) : void 0; } }
|
|
4497
4524
|
function _arrayLikeToArray$1(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; }
|
|
@@ -4555,7 +4582,7 @@ var mergeDefaultActions = function mergeDefaultActions(overrides, defaults) {
|
|
|
4555
4582
|
_iterator.f();
|
|
4556
4583
|
}
|
|
4557
4584
|
var merged = defaults.map(function (d) {
|
|
4558
|
-
return d !== null && d !== void 0 && d.name && byName.has(d.name) ? _objectSpread$
|
|
4585
|
+
return d !== null && d !== void 0 && d.name && byName.has(d.name) ? _objectSpread$D(_objectSpread$D({}, d), byName.get(d.name)) : d;
|
|
4559
4586
|
});
|
|
4560
4587
|
var defaultNames = new Set(defaults.map(function (d) {
|
|
4561
4588
|
return d === null || d === void 0 ? void 0 : d.name;
|
|
@@ -4597,7 +4624,7 @@ var resolveActions = function resolveActions(actions, row, index) {
|
|
|
4597
4624
|
var action = _step2.value;
|
|
4598
4625
|
if (!action || _typeof$4(action) !== "object") continue;
|
|
4599
4626
|
if (callIfFn(action.hidden, row, index)) continue;
|
|
4600
|
-
var resolved = _objectSpread$
|
|
4627
|
+
var resolved = _objectSpread$D(_objectSpread$D({}, action), {}, {
|
|
4601
4628
|
label: callIfFn(action.label, row, index),
|
|
4602
4629
|
icon: callIfFn(action.icon, row, index),
|
|
4603
4630
|
disabled: !!callIfFn(action.disabled, row, index),
|
|
@@ -5134,6 +5161,8 @@ function ActionMenu(_ref) {
|
|
|
5134
5161
|
}), document.body);
|
|
5135
5162
|
}
|
|
5136
5163
|
|
|
5164
|
+
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; }
|
|
5165
|
+
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), true).forEach(function (r) { _defineProperty$4(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; }
|
|
5137
5166
|
/**
|
|
5138
5167
|
* Desktop table row component
|
|
5139
5168
|
*/
|
|
@@ -5182,6 +5211,8 @@ function TableRow(_ref) {
|
|
|
5182
5211
|
renderInteractiveCellInput = _ref$renderInteractiv === void 0 ? null : _ref$renderInteractiv,
|
|
5183
5212
|
_ref$invalidCellSet = _ref.invalidCellSet,
|
|
5184
5213
|
invalidCellSet = _ref$invalidCellSet === void 0 ? null : _ref$invalidCellSet,
|
|
5214
|
+
_ref$pendingEdits = _ref.pendingEdits,
|
|
5215
|
+
pendingEdits = _ref$pendingEdits === void 0 ? null : _ref$pendingEdits,
|
|
5185
5216
|
_ref$isNewRow = _ref.isNewRow,
|
|
5186
5217
|
isNewRow = _ref$isNewRow === void 0 ? false : _ref$isNewRow,
|
|
5187
5218
|
_ref$onDeleteNewRow = _ref.onDeleteNewRow,
|
|
@@ -5209,6 +5240,10 @@ function TableRow(_ref) {
|
|
|
5209
5240
|
var stripeBg = stripedRows && !isSelected && Array.isArray(stripeColors) && stripeColors.length > 0 ? stripeColors[globalIndex % stripeColors.length] : undefined;
|
|
5210
5241
|
var rowKey = isNewRow ? row._key : key;
|
|
5211
5242
|
var isRowActive = interactive && (activeCell === null || activeCell === void 0 ? void 0 : activeCell.rowKey) === rowKey;
|
|
5243
|
+
var effectiveRow = React.useMemo(function () {
|
|
5244
|
+
if (!interactive || !pendingEdits || !pendingEdits[rowKey]) return row;
|
|
5245
|
+
return _objectSpread$C(_objectSpread$C({}, row), pendingEdits[rowKey]);
|
|
5246
|
+
}, [interactive, pendingEdits, rowKey, row]);
|
|
5212
5247
|
return jsxRuntime.jsxs(React.Fragment, {
|
|
5213
5248
|
children: [jsxRuntime.jsxs("tr", {
|
|
5214
5249
|
style: stripeBg ? {
|
|
@@ -5221,7 +5256,7 @@ function TableRow(_ref) {
|
|
|
5221
5256
|
"bg-amber-50/40": isNewRow && !isSelected && !isRowActive
|
|
5222
5257
|
}, safeExtraRowClass),
|
|
5223
5258
|
onClick: function onClick() {
|
|
5224
|
-
return onRowClick === null || onRowClick === void 0 ? void 0 : onRowClick(
|
|
5259
|
+
return onRowClick === null || onRowClick === void 0 ? void 0 : onRowClick(effectiveRow, globalIndex);
|
|
5225
5260
|
},
|
|
5226
5261
|
children: [hasDetailsColumn && jsxRuntime.jsx("td", {
|
|
5227
5262
|
className: "px-4 py-4 text-sm",
|
|
@@ -5229,7 +5264,7 @@ function TableRow(_ref) {
|
|
|
5229
5264
|
type: "button",
|
|
5230
5265
|
onClick: function onClick(e) {
|
|
5231
5266
|
e.stopPropagation();
|
|
5232
|
-
toggleExpandRow(
|
|
5267
|
+
toggleExpandRow(effectiveRow, rowIndexInPage);
|
|
5233
5268
|
},
|
|
5234
5269
|
"aria-expanded": isExpanded,
|
|
5235
5270
|
"aria-label": isExpanded ? "Collapse row details" : "Expand row details",
|
|
@@ -5249,12 +5284,12 @@ function TableRow(_ref) {
|
|
|
5249
5284
|
className: "rounded border-gray-300",
|
|
5250
5285
|
checked: isSelected,
|
|
5251
5286
|
onChange: function onChange() {
|
|
5252
|
-
return handleSelectRow(
|
|
5287
|
+
return handleSelectRow(effectiveRow, rowIndexInPage);
|
|
5253
5288
|
}
|
|
5254
5289
|
})
|
|
5255
5290
|
}), visibleColumns.map(function (column, columnIndex) {
|
|
5256
5291
|
var extraCellClass = typeof cellClass === "function" ? cellClass({
|
|
5257
|
-
row:
|
|
5292
|
+
row: effectiveRow,
|
|
5258
5293
|
rowIndex: globalIndex,
|
|
5259
5294
|
column: column,
|
|
5260
5295
|
columnIndex: columnIndex
|
|
@@ -5273,15 +5308,15 @@ function TableRow(_ref) {
|
|
|
5273
5308
|
}, safeExtraCellClass),
|
|
5274
5309
|
onClick: function onClick(e) {
|
|
5275
5310
|
if (interactive && onCellClick) {
|
|
5276
|
-
onCellClick(rowKey, column.key,
|
|
5311
|
+
onCellClick(rowKey, column.key, effectiveRow, column, globalIndex);
|
|
5277
5312
|
}
|
|
5278
5313
|
},
|
|
5279
5314
|
onDoubleClick: function onDoubleClick(e) {
|
|
5280
5315
|
if (interactive && onCellDoubleClick && column.editable !== false) {
|
|
5281
|
-
onCellDoubleClick(rowKey, column.key,
|
|
5316
|
+
onCellDoubleClick(rowKey, column.key, effectiveRow, column, globalIndex);
|
|
5282
5317
|
}
|
|
5283
5318
|
},
|
|
5284
|
-
children: isCellEditing && renderInteractiveCellInput ? renderInteractiveCellInput(column,
|
|
5319
|
+
children: isCellEditing && renderInteractiveCellInput ? renderInteractiveCellInput(column, effectiveRow, globalIndex, rowKey) : renderCell(column, effectiveRow, globalIndex)
|
|
5285
5320
|
}, column.key);
|
|
5286
5321
|
}), jsxRuntime.jsx("td", {
|
|
5287
5322
|
className: "px-4 py-4"
|
|
@@ -5552,6 +5587,7 @@ function FieldInput(_ref) {
|
|
|
5552
5587
|
var column = _ref.column,
|
|
5553
5588
|
value = _ref.value,
|
|
5554
5589
|
_onChange = _ref.onChange,
|
|
5590
|
+
onKeyDown = _ref.onKeyDown,
|
|
5555
5591
|
_ref$isEditing = _ref.isEditing,
|
|
5556
5592
|
isEditing = _ref$isEditing === void 0 ? true : _ref$isEditing,
|
|
5557
5593
|
_ref$row = _ref.row,
|
|
@@ -5564,14 +5600,22 @@ function FieldInput(_ref) {
|
|
|
5564
5600
|
autoFocus = _ref$autoFocus === void 0 ? false : _ref$autoFocus;
|
|
5565
5601
|
var currentValue = value !== null && value !== void 0 ? value : "";
|
|
5566
5602
|
var inputType = column.type || column.inputType || "text";
|
|
5603
|
+
var stopProp = function stopProp(e) {
|
|
5604
|
+
e.stopPropagation();
|
|
5605
|
+
};
|
|
5567
5606
|
// Check if custom onRender renderer is provided on the column definition
|
|
5568
5607
|
if (typeof column.onRender === "function") {
|
|
5569
|
-
return
|
|
5570
|
-
|
|
5571
|
-
|
|
5572
|
-
|
|
5573
|
-
|
|
5574
|
-
|
|
5608
|
+
return jsxRuntime.jsx("div", {
|
|
5609
|
+
onClick: stopProp,
|
|
5610
|
+
onMouseDown: stopProp,
|
|
5611
|
+
children: column.onRender(row, rowIndex, column, {
|
|
5612
|
+
value: currentValue,
|
|
5613
|
+
onChange: function onChange(newVal) {
|
|
5614
|
+
return _onChange === null || _onChange === void 0 ? void 0 : _onChange(newVal);
|
|
5615
|
+
},
|
|
5616
|
+
onKeyDown: onKeyDown,
|
|
5617
|
+
isEditing: isEditing
|
|
5618
|
+
})
|
|
5575
5619
|
});
|
|
5576
5620
|
}
|
|
5577
5621
|
// Textarea / Longtext
|
|
@@ -5583,6 +5627,9 @@ function FieldInput(_ref) {
|
|
|
5583
5627
|
onChange: function onChange(e) {
|
|
5584
5628
|
return _onChange === null || _onChange === void 0 ? void 0 : _onChange(e.target.value);
|
|
5585
5629
|
},
|
|
5630
|
+
onKeyDown: onKeyDown,
|
|
5631
|
+
onClick: stopProp,
|
|
5632
|
+
onMouseDown: stopProp,
|
|
5586
5633
|
placeholder: "Enter ".concat(column.label || column.key, "..."),
|
|
5587
5634
|
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-white resize-y min-h-[2.5rem]", className)
|
|
5588
5635
|
});
|
|
@@ -5601,6 +5648,9 @@ function FieldInput(_ref) {
|
|
|
5601
5648
|
onChange: function onChange(e) {
|
|
5602
5649
|
return _onChange === null || _onChange === void 0 ? void 0 : _onChange(e.target.value);
|
|
5603
5650
|
},
|
|
5651
|
+
onKeyDown: onKeyDown,
|
|
5652
|
+
onClick: stopProp,
|
|
5653
|
+
onMouseDown: stopProp,
|
|
5604
5654
|
className: cn$1("w-full px-2 py-1 text-sm border rounded outline-none focus:ring-2 focus:ring-primary-500 bg-white", className),
|
|
5605
5655
|
children: [jsxRuntime.jsxs("option", {
|
|
5606
5656
|
value: "",
|
|
@@ -5618,6 +5668,8 @@ function FieldInput(_ref) {
|
|
|
5618
5668
|
var checked = Boolean(currentValue);
|
|
5619
5669
|
return jsxRuntime.jsx("div", {
|
|
5620
5670
|
className: cn$1("flex items-center justify-center py-1", className),
|
|
5671
|
+
onClick: stopProp,
|
|
5672
|
+
onMouseDown: stopProp,
|
|
5621
5673
|
children: jsxRuntime.jsx("input", {
|
|
5622
5674
|
type: "checkbox",
|
|
5623
5675
|
autoFocus: autoFocus,
|
|
@@ -5625,6 +5677,7 @@ function FieldInput(_ref) {
|
|
|
5625
5677
|
onChange: function onChange(e) {
|
|
5626
5678
|
return _onChange === null || _onChange === void 0 ? void 0 : _onChange(e.target.checked);
|
|
5627
5679
|
},
|
|
5680
|
+
onKeyDown: onKeyDown,
|
|
5628
5681
|
className: "w-4 h-4 text-primary-600 border-gray-300 rounded focus:ring-primary-500 cursor-pointer"
|
|
5629
5682
|
})
|
|
5630
5683
|
});
|
|
@@ -5638,6 +5691,9 @@ function FieldInput(_ref) {
|
|
|
5638
5691
|
onChange: function onChange(e) {
|
|
5639
5692
|
return _onChange === null || _onChange === void 0 ? void 0 : _onChange(e.target.value);
|
|
5640
5693
|
},
|
|
5694
|
+
onKeyDown: onKeyDown,
|
|
5695
|
+
onClick: stopProp,
|
|
5696
|
+
onMouseDown: stopProp,
|
|
5641
5697
|
className: cn$1("w-full px-2 py-1 text-sm border rounded outline-none focus:ring-2 focus:ring-primary-500 bg-white", className)
|
|
5642
5698
|
});
|
|
5643
5699
|
}
|
|
@@ -5650,6 +5706,9 @@ function FieldInput(_ref) {
|
|
|
5650
5706
|
onChange: function onChange(e) {
|
|
5651
5707
|
return _onChange === null || _onChange === void 0 ? void 0 : _onChange(e.target.value === "" ? "" : Number(e.target.value));
|
|
5652
5708
|
},
|
|
5709
|
+
onKeyDown: onKeyDown,
|
|
5710
|
+
onClick: stopProp,
|
|
5711
|
+
onMouseDown: stopProp,
|
|
5653
5712
|
placeholder: "Enter ".concat(column.label || column.key, "..."),
|
|
5654
5713
|
className: cn$1("w-full px-2 py-1 text-sm border rounded outline-none focus:ring-2 focus:ring-primary-500 bg-white", className)
|
|
5655
5714
|
});
|
|
@@ -5662,6 +5721,9 @@ function FieldInput(_ref) {
|
|
|
5662
5721
|
onChange: function onChange(e) {
|
|
5663
5722
|
return _onChange === null || _onChange === void 0 ? void 0 : _onChange(e.target.value);
|
|
5664
5723
|
},
|
|
5724
|
+
onKeyDown: onKeyDown,
|
|
5725
|
+
onClick: stopProp,
|
|
5726
|
+
onMouseDown: stopProp,
|
|
5665
5727
|
placeholder: "Enter ".concat(column.label || column.key, "..."),
|
|
5666
5728
|
className: cn$1("w-full px-2 py-1 text-sm border rounded outline-none focus:ring-2 focus:ring-primary-500 bg-white", className)
|
|
5667
5729
|
});
|
|
@@ -6136,13 +6198,24 @@ var Table = function Table(_ref) {
|
|
|
6136
6198
|
}
|
|
6137
6199
|
}, _callee, null, [[2, 5, 6, 7]]);
|
|
6138
6200
|
})), [isDirty, isSaving, tableData, dirtyEdits, newRows, onSave]);
|
|
6201
|
+
var handleClearChanges = React.useCallback(function () {
|
|
6202
|
+
setPendingEdits({});
|
|
6203
|
+
setNewRows([]);
|
|
6204
|
+
setEditingCell(null);
|
|
6205
|
+
setActiveCell(null);
|
|
6206
|
+
}, []);
|
|
6139
6207
|
var handleCellClick = React.useCallback(function (rowKey, colKey, row, column, globalIndex) {
|
|
6140
6208
|
setActiveCell({
|
|
6141
6209
|
rowKey: rowKey,
|
|
6142
6210
|
colKey: colKey,
|
|
6143
6211
|
rowIndex: globalIndex
|
|
6144
6212
|
});
|
|
6145
|
-
setEditingCell(
|
|
6213
|
+
setEditingCell(function (prev) {
|
|
6214
|
+
if (prev && prev.rowKey === rowKey && prev.colKey === colKey) {
|
|
6215
|
+
return prev;
|
|
6216
|
+
}
|
|
6217
|
+
return null;
|
|
6218
|
+
});
|
|
6146
6219
|
}, []);
|
|
6147
6220
|
var handleCellDoubleClick = React.useCallback(function (rowKey, colKey, row, column, globalIndex) {
|
|
6148
6221
|
setActiveCell({
|
|
@@ -6158,21 +6231,6 @@ var Table = function Table(_ref) {
|
|
|
6158
6231
|
});
|
|
6159
6232
|
}
|
|
6160
6233
|
}, []);
|
|
6161
|
-
var renderInteractiveCellInput = React.useCallback(function (column, row, globalIndex, rowKey) {
|
|
6162
|
-
var _row$column$key;
|
|
6163
|
-
var value = pendingEdits[rowKey] && pendingEdits[rowKey][column.key] !== undefined ? pendingEdits[rowKey][column.key] : (_row$column$key = row[column.key]) !== null && _row$column$key !== void 0 ? _row$column$key : "";
|
|
6164
|
-
return jsxRuntime.jsx(FieldInput, {
|
|
6165
|
-
column: column,
|
|
6166
|
-
value: value,
|
|
6167
|
-
onChange: function onChange(newVal) {
|
|
6168
|
-
return handleCellValueChange(rowKey, column.key, newVal);
|
|
6169
|
-
},
|
|
6170
|
-
isEditing: true,
|
|
6171
|
-
row: row,
|
|
6172
|
-
rowIndex: globalIndex,
|
|
6173
|
-
autoFocus: (editingCell === null || editingCell === void 0 ? void 0 : editingCell.rowKey) === rowKey && (editingCell === null || editingCell === void 0 ? void 0 : editingCell.colKey) === column.key
|
|
6174
|
-
});
|
|
6175
|
-
}, [pendingEdits, handleCellValueChange, editingCell]);
|
|
6176
6234
|
useClickOutside([tableContainerRef], interactive && Boolean(editingCell), function () {
|
|
6177
6235
|
setEditingCell(null);
|
|
6178
6236
|
});
|
|
@@ -6323,6 +6381,129 @@ var Table = function Table(_ref) {
|
|
|
6323
6381
|
};
|
|
6324
6382
|
});
|
|
6325
6383
|
}, [limitOptions]);
|
|
6384
|
+
var handleTableKeyDown = React.useCallback(function (e) {
|
|
6385
|
+
if (!interactive) return;
|
|
6386
|
+
var key = e.key,
|
|
6387
|
+
shiftKey = e.shiftKey;
|
|
6388
|
+
// Escape: stop editing
|
|
6389
|
+
if (key === "Escape") {
|
|
6390
|
+
if (editingCell) {
|
|
6391
|
+
e.preventDefault();
|
|
6392
|
+
setEditingCell(null);
|
|
6393
|
+
}
|
|
6394
|
+
return;
|
|
6395
|
+
}
|
|
6396
|
+
// Enter: Save changes only when there are modified changes (isDirty)
|
|
6397
|
+
if (key === "Enter") {
|
|
6398
|
+
var _e$target;
|
|
6399
|
+
if (((_e$target = e.target) === null || _e$target === void 0 ? void 0 : _e$target.tagName) === "TEXTAREA" && shiftKey) {
|
|
6400
|
+
return;
|
|
6401
|
+
}
|
|
6402
|
+
if (isDirty) {
|
|
6403
|
+
e.preventDefault();
|
|
6404
|
+
setEditingCell(null);
|
|
6405
|
+
if (isValid && !isSaving) {
|
|
6406
|
+
handleSave();
|
|
6407
|
+
}
|
|
6408
|
+
}
|
|
6409
|
+
return;
|
|
6410
|
+
}
|
|
6411
|
+
var currentCell = activeCell || editingCell;
|
|
6412
|
+
if (!currentCell) return;
|
|
6413
|
+
var allRows = [].concat(_toConsumableArray$1(paginatedData), _toConsumableArray$1(newRows));
|
|
6414
|
+
if (allRows.length === 0 || visibleColumns.length === 0) return;
|
|
6415
|
+
var rIdx = allRows.findIndex(function (r, idx) {
|
|
6416
|
+
var rKey = r._key || getRowKey(r, startIndex + idx);
|
|
6417
|
+
return rKey === currentCell.rowKey;
|
|
6418
|
+
});
|
|
6419
|
+
var cIdx = visibleColumns.findIndex(function (c) {
|
|
6420
|
+
return c.key === currentCell.colKey;
|
|
6421
|
+
});
|
|
6422
|
+
if (rIdx === -1 || cIdx === -1) return;
|
|
6423
|
+
var nextRIdx = rIdx;
|
|
6424
|
+
var nextCIdx = cIdx;
|
|
6425
|
+
if (key === "Tab") {
|
|
6426
|
+
e.preventDefault();
|
|
6427
|
+
if (shiftKey) {
|
|
6428
|
+
if (cIdx > 0) {
|
|
6429
|
+
nextCIdx = cIdx - 1;
|
|
6430
|
+
} else if (rIdx > 0) {
|
|
6431
|
+
nextRIdx = rIdx - 1;
|
|
6432
|
+
nextCIdx = visibleColumns.length - 1;
|
|
6433
|
+
}
|
|
6434
|
+
} else {
|
|
6435
|
+
if (cIdx < visibleColumns.length - 1) {
|
|
6436
|
+
nextCIdx = cIdx + 1;
|
|
6437
|
+
} else if (rIdx < allRows.length - 1) {
|
|
6438
|
+
nextRIdx = rIdx + 1;
|
|
6439
|
+
nextCIdx = 0;
|
|
6440
|
+
}
|
|
6441
|
+
}
|
|
6442
|
+
} else if (key === "ArrowRight") {
|
|
6443
|
+
var _e$target2, _e$target$value;
|
|
6444
|
+
if (editingCell && ((_e$target2 = e.target) === null || _e$target2 === void 0 ? void 0 : _e$target2.selectionStart) !== undefined && e.target.selectionStart < String((_e$target$value = e.target.value) !== null && _e$target$value !== void 0 ? _e$target$value : "").length) {
|
|
6445
|
+
return;
|
|
6446
|
+
}
|
|
6447
|
+
if (cIdx < visibleColumns.length - 1) {
|
|
6448
|
+
e.preventDefault();
|
|
6449
|
+
nextCIdx = cIdx + 1;
|
|
6450
|
+
}
|
|
6451
|
+
} else if (key === "ArrowLeft") {
|
|
6452
|
+
var _e$target3;
|
|
6453
|
+
if (editingCell && ((_e$target3 = e.target) === null || _e$target3 === void 0 ? void 0 : _e$target3.selectionStart) !== undefined && e.target.selectionStart > 0) {
|
|
6454
|
+
return;
|
|
6455
|
+
}
|
|
6456
|
+
if (cIdx > 0) {
|
|
6457
|
+
e.preventDefault();
|
|
6458
|
+
nextCIdx = cIdx - 1;
|
|
6459
|
+
}
|
|
6460
|
+
} else if (key === "ArrowDown") {
|
|
6461
|
+
var _e$target4;
|
|
6462
|
+
if (((_e$target4 = e.target) === null || _e$target4 === void 0 ? void 0 : _e$target4.tagName) === "SELECT") return;
|
|
6463
|
+
if (rIdx < allRows.length - 1) {
|
|
6464
|
+
e.preventDefault();
|
|
6465
|
+
nextRIdx = rIdx + 1;
|
|
6466
|
+
}
|
|
6467
|
+
} else if (key === "ArrowUp") {
|
|
6468
|
+
var _e$target5;
|
|
6469
|
+
if (((_e$target5 = e.target) === null || _e$target5 === void 0 ? void 0 : _e$target5.tagName) === "SELECT") return;
|
|
6470
|
+
if (rIdx > 0) {
|
|
6471
|
+
e.preventDefault();
|
|
6472
|
+
nextRIdx = rIdx - 1;
|
|
6473
|
+
}
|
|
6474
|
+
} else {
|
|
6475
|
+
return;
|
|
6476
|
+
}
|
|
6477
|
+
var targetRow = allRows[nextRIdx];
|
|
6478
|
+
var targetCol = visibleColumns[nextCIdx];
|
|
6479
|
+
if (!targetRow || !targetCol) return;
|
|
6480
|
+
var targetRowKey = targetRow._key || getRowKey(targetRow, startIndex + nextRIdx);
|
|
6481
|
+
var nextCellObj = {
|
|
6482
|
+
rowKey: targetRowKey,
|
|
6483
|
+
colKey: targetCol.key,
|
|
6484
|
+
rowIndex: startIndex + nextRIdx
|
|
6485
|
+
};
|
|
6486
|
+
setActiveCell(nextCellObj);
|
|
6487
|
+
if (editingCell && targetCol.editable !== false) {
|
|
6488
|
+
setEditingCell(nextCellObj);
|
|
6489
|
+
}
|
|
6490
|
+
}, [interactive, editingCell, activeCell, isDirty, isValid, isSaving, handleSave, paginatedData, newRows, visibleColumns, startIndex]);
|
|
6491
|
+
var renderInteractiveCellInput = React.useCallback(function (column, row, globalIndex, rowKey) {
|
|
6492
|
+
var _row$column$key;
|
|
6493
|
+
var value = pendingEdits[rowKey] && pendingEdits[rowKey][column.key] !== undefined ? pendingEdits[rowKey][column.key] : (_row$column$key = row[column.key]) !== null && _row$column$key !== void 0 ? _row$column$key : "";
|
|
6494
|
+
return jsxRuntime.jsx(FieldInput, {
|
|
6495
|
+
column: column,
|
|
6496
|
+
value: value,
|
|
6497
|
+
onChange: function onChange(newVal) {
|
|
6498
|
+
return handleCellValueChange(rowKey, column.key, newVal);
|
|
6499
|
+
},
|
|
6500
|
+
onKeyDown: handleTableKeyDown,
|
|
6501
|
+
isEditing: true,
|
|
6502
|
+
row: row,
|
|
6503
|
+
rowIndex: globalIndex,
|
|
6504
|
+
autoFocus: (editingCell === null || editingCell === void 0 ? void 0 : editingCell.rowKey) === rowKey && (editingCell === null || editingCell === void 0 ? void 0 : editingCell.colKey) === column.key
|
|
6505
|
+
});
|
|
6506
|
+
}, [pendingEdits, handleCellValueChange, handleTableKeyDown, editingCell]);
|
|
6326
6507
|
// Callbacks
|
|
6327
6508
|
var toggleColumnVisibility = React.useCallback(function (key) {
|
|
6328
6509
|
setColumnsState(function (prev) {
|
|
@@ -6545,11 +6726,14 @@ var Table = function Table(_ref) {
|
|
|
6545
6726
|
onCellClick: handleCellClick,
|
|
6546
6727
|
onCellDoubleClick: handleCellDoubleClick,
|
|
6547
6728
|
renderInteractiveCellInput: renderInteractiveCellInput,
|
|
6548
|
-
invalidCellSet: invalidCellSet
|
|
6729
|
+
invalidCellSet: invalidCellSet,
|
|
6730
|
+
pendingEdits: pendingEdits
|
|
6549
6731
|
};
|
|
6550
6732
|
return jsxRuntime.jsxs("div", {
|
|
6551
6733
|
ref: tableContainerRef,
|
|
6552
|
-
|
|
6734
|
+
tabIndex: interactive ? 0 : undefined,
|
|
6735
|
+
onKeyDown: handleTableKeyDown,
|
|
6736
|
+
className: cn$1("w-full border rounded-lg md:rounded-md outline-none focus:ring-1 focus:ring-primary-400", className),
|
|
6553
6737
|
children: [TheadComponent && typeof TheadComponent === "function" ? jsxRuntime.jsx(TheadComponent, {
|
|
6554
6738
|
columns: columnsState,
|
|
6555
6739
|
data: filteredData
|
|
@@ -6596,15 +6780,26 @@ var Table = function Table(_ref) {
|
|
|
6596
6780
|
onClick: handleSave,
|
|
6597
6781
|
disabled: !isValid || isSaving,
|
|
6598
6782
|
title: !isValid ? "Cannot save: ".concat(((_validationErrors$ = validationErrors[0]) === null || _validationErrors$ === void 0 ? void 0 : _validationErrors$.message) || "Validation failed") : "Save changes",
|
|
6599
|
-
className: cn$1("px-4 py-2 font-medium rounded-lg text-sm flex items-center gap-2 transition-all shadow-sm", isValid ? "bg-
|
|
6783
|
+
className: cn$1("px-4 py-2 font-medium rounded-lg text-sm flex items-center gap-2 transition-all shadow-sm", isValid ? "bg-primary-600 hover:bg-primary-700 active:bg-primary-800 text-white cursor-pointer" : "bg-gray-200 text-gray-400 border border-gray-300 cursor-not-allowed opacity-75"),
|
|
6600
6784
|
children: [jsxRuntime.jsx(Save, {
|
|
6601
6785
|
className: "w-4 h-4"
|
|
6602
6786
|
}), jsxRuntime.jsx("span", {
|
|
6603
6787
|
children: isSaving ? "Saving..." : "Save Changes"
|
|
6604
6788
|
}), pendingCount > 0 && jsxRuntime.jsx("span", {
|
|
6605
|
-
className: cn$1("ml-1 px-2 py-0.5 text-xs rounded-full font-bold", isValid ? "bg-
|
|
6789
|
+
className: cn$1("ml-1 px-2 py-0.5 text-xs rounded-full font-bold", isValid ? "bg-primary-700 text-white" : "bg-gray-300 text-gray-600"),
|
|
6606
6790
|
children: pendingCount
|
|
6607
6791
|
})]
|
|
6792
|
+
}), jsxRuntime.jsxs("button", {
|
|
6793
|
+
type: "button",
|
|
6794
|
+
onClick: handleClearChanges,
|
|
6795
|
+
disabled: isSaving,
|
|
6796
|
+
title: "Discard all pending modifications",
|
|
6797
|
+
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-white hover:bg-primary-50 active:bg-primary-100 cursor-pointer shadow-sm disabled:opacity-50",
|
|
6798
|
+
children: [jsxRuntime.jsx(X, {
|
|
6799
|
+
className: "w-4 h-4 text-primary-600"
|
|
6800
|
+
}), jsxRuntime.jsx("span", {
|
|
6801
|
+
children: "Clear Changes"
|
|
6802
|
+
})]
|
|
6608
6803
|
}), !isValid && validationErrors.length > 0 && jsxRuntime.jsxs("div", {
|
|
6609
6804
|
className: "flex items-center gap-1.5 px-3 py-1.5 bg-warning-50 border border-warning-200 text-warning-800 rounded-md text-xs font-medium",
|
|
6610
6805
|
children: [jsxRuntime.jsx(AlertCircle, {
|
|
@@ -12657,7 +12852,7 @@ var DatePicker = /*#__PURE__*/React.forwardRef(function (_ref, forwardedRef) {
|
|
|
12657
12852
|
});
|
|
12658
12853
|
});
|
|
12659
12854
|
|
|
12660
|
-
var _excluded$v = ["id", "name", "checked", "defaultChecked", "onChange", "disabled", "size", "trackClass", "thumbClass", "className", "topLabel", "bottomLabel", "rightLabel", "leftLabel", "ariaLabel"];
|
|
12855
|
+
var _excluded$v = ["id", "name", "checked", "defaultChecked", "onChange", "disabled", "size", "color", "trackClass", "thumbClass", "className", "topLabel", "bottomLabel", "rightLabel", "leftLabel", "ariaLabel"];
|
|
12661
12856
|
function ownKeys$z(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; }
|
|
12662
12857
|
function _objectSpread$z(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$z(Object(t), true).forEach(function (r) { _defineProperty$4(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$z(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
12663
12858
|
/**
|
|
@@ -12689,6 +12884,52 @@ var SIZE_MAP$2 = {
|
|
|
12689
12884
|
knobTranslate: "translate-x-6"
|
|
12690
12885
|
}
|
|
12691
12886
|
};
|
|
12887
|
+
var COLOR_PRESETS$1 = {
|
|
12888
|
+
primary: {
|
|
12889
|
+
bg: "bg-primary-600",
|
|
12890
|
+
ring: "focus-visible:ring-primary-300"
|
|
12891
|
+
},
|
|
12892
|
+
secondary: {
|
|
12893
|
+
bg: "bg-secondary-600",
|
|
12894
|
+
ring: "focus-visible:ring-secondary-300"
|
|
12895
|
+
},
|
|
12896
|
+
success: {
|
|
12897
|
+
bg: "bg-success-600",
|
|
12898
|
+
ring: "focus-visible:ring-success-300"
|
|
12899
|
+
},
|
|
12900
|
+
green: {
|
|
12901
|
+
bg: "bg-success-600",
|
|
12902
|
+
ring: "focus-visible:ring-success-300"
|
|
12903
|
+
},
|
|
12904
|
+
error: {
|
|
12905
|
+
bg: "bg-error-600",
|
|
12906
|
+
ring: "focus-visible:ring-error-300"
|
|
12907
|
+
},
|
|
12908
|
+
danger: {
|
|
12909
|
+
bg: "bg-error-600",
|
|
12910
|
+
ring: "focus-visible:ring-error-300"
|
|
12911
|
+
},
|
|
12912
|
+
red: {
|
|
12913
|
+
bg: "bg-error-600",
|
|
12914
|
+
ring: "focus-visible:ring-error-300"
|
|
12915
|
+
},
|
|
12916
|
+
warning: {
|
|
12917
|
+
bg: "bg-warning-600",
|
|
12918
|
+
ring: "focus-visible:ring-warning-300"
|
|
12919
|
+
},
|
|
12920
|
+
blue: {
|
|
12921
|
+
bg: "bg-blue-600",
|
|
12922
|
+
ring: "focus-visible:ring-blue-300"
|
|
12923
|
+
},
|
|
12924
|
+
indigo: {
|
|
12925
|
+
bg: "bg-indigo-600",
|
|
12926
|
+
ring: "focus-visible:ring-indigo-300"
|
|
12927
|
+
},
|
|
12928
|
+
purple: {
|
|
12929
|
+
bg: "bg-purple-600",
|
|
12930
|
+
ring: "focus-visible:ring-purple-300"
|
|
12931
|
+
}
|
|
12932
|
+
};
|
|
12692
12933
|
var Switch = /*#__PURE__*/React.forwardRef(function Switch(props, ref) {
|
|
12693
12934
|
var id = props.id,
|
|
12694
12935
|
name = props.name,
|
|
@@ -12700,6 +12941,8 @@ var Switch = /*#__PURE__*/React.forwardRef(function Switch(props, ref) {
|
|
|
12700
12941
|
disabled = _props$disabled === void 0 ? false : _props$disabled,
|
|
12701
12942
|
_props$size = props.size,
|
|
12702
12943
|
size = _props$size === void 0 ? "md" : _props$size,
|
|
12944
|
+
_props$color = props.color,
|
|
12945
|
+
color = _props$color === void 0 ? "primary" : _props$color,
|
|
12703
12946
|
trackClass = props.trackClass,
|
|
12704
12947
|
thumbClass = props.thumbClass,
|
|
12705
12948
|
_props$className = props.className,
|
|
@@ -12735,16 +12978,18 @@ var Switch = /*#__PURE__*/React.forwardRef(function Switch(props, ref) {
|
|
|
12735
12978
|
}
|
|
12736
12979
|
};
|
|
12737
12980
|
var sizeStuff = SIZE_MAP$2[size] || SIZE_MAP$2.md;
|
|
12981
|
+
var isPreset = COLOR_PRESETS$1[color];
|
|
12738
12982
|
// Classes for the track (we use inline style for arbitrary trackClass when ON)
|
|
12739
|
-
var trackClasses = cn$1("relative inline-flex items-center rounded-full transition-colors duration-200 ease-in-out", sizeStuff.track, isOn ? "" : "bg-gray-100", disabled ? "opacity-50 cursor-not-allowed" : "cursor-pointer", trackClass // Accepting trackClass as a class name
|
|
12983
|
+
var trackClasses = cn$1("relative inline-flex items-center rounded-full transition-colors duration-200 ease-in-out", sizeStuff.track, isOn ? trackClass ? "" : isPreset ? isPreset.bg : "" : "bg-gray-100", disabled ? "opacity-50 cursor-not-allowed" : "cursor-pointer", trackClass // Accepting trackClass as a class name
|
|
12740
12984
|
);
|
|
12741
12985
|
// Knob classes (thumb)
|
|
12742
12986
|
var knobBase = cn$1("inline-block rounded-full bg-white shadow transform ring-0 transition-transform duration-200 ease-in-out", sizeStuff.knob, thumbClass // Accepting thumbClass as a class name
|
|
12743
12987
|
);
|
|
12744
12988
|
var knobTransform = isOn ? sizeStuff.knobTranslate : "translate-x-1";
|
|
12745
|
-
var
|
|
12746
|
-
var
|
|
12747
|
-
|
|
12989
|
+
var ringClass = isPreset ? isPreset.ring : "focus-visible:ring-primary-300";
|
|
12990
|
+
var focusClasses = disabled ? "" : "focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 ".concat(ringClass);
|
|
12991
|
+
var trackStyle = isOn && !trackClass && !isPreset ? {
|
|
12992
|
+
backgroundColor: color
|
|
12748
12993
|
} : undefined; // Fallback to default trackClass if trackClass is not a class
|
|
12749
12994
|
var accessibleLabel = ariaLabel || rightLabel || leftLabel || topLabel || bottomLabel || "Toggle";
|
|
12750
12995
|
var containerIsColumn = Boolean(topLabel || bottomLabel);
|
|
@@ -13459,7 +13704,7 @@ var Accordion = /*#__PURE__*/React.forwardRef(function Accordion(_ref, ref) {
|
|
|
13459
13704
|
});
|
|
13460
13705
|
Accordion.displayName = "Accordion";
|
|
13461
13706
|
|
|
13462
|
-
var _excluded$s = ["id", "name", "label", "checked", "defaultChecked", "onChange", "disabled", "required", "className", "size", "labelPosition", "value", "ariaLabel", "variant", "indeterminate", "borderColor", "iconClass", "checkedClass"];
|
|
13707
|
+
var _excluded$s = ["id", "name", "label", "checked", "defaultChecked", "onChange", "disabled", "required", "className", "size", "labelPosition", "value", "ariaLabel", "variant", "indeterminate", "borderColor", "color", "iconClass", "checkedClass"];
|
|
13463
13708
|
function ownKeys$w(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; }
|
|
13464
13709
|
function _objectSpread$w(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$w(Object(t), true).forEach(function (r) { _defineProperty$4(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$w(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
13465
13710
|
var SIZE_CLASSES = {
|
|
@@ -13479,6 +13724,52 @@ var SIZE_CLASSES = {
|
|
|
13479
13724
|
icon: "w-4 h-4"
|
|
13480
13725
|
}
|
|
13481
13726
|
};
|
|
13727
|
+
var COLOR_PRESETS = {
|
|
13728
|
+
primary: {
|
|
13729
|
+
checked: "peer-checked:bg-primary-600 peer-checked:border-primary-600 peer-checked:text-white",
|
|
13730
|
+
ring: "peer-focus:ring-primary-300"
|
|
13731
|
+
},
|
|
13732
|
+
secondary: {
|
|
13733
|
+
checked: "peer-checked:bg-secondary-600 peer-checked:border-secondary-600 peer-checked:text-white",
|
|
13734
|
+
ring: "peer-focus:ring-secondary-300"
|
|
13735
|
+
},
|
|
13736
|
+
success: {
|
|
13737
|
+
checked: "peer-checked:bg-success-600 peer-checked:border-success-600 peer-checked:text-white",
|
|
13738
|
+
ring: "peer-focus:ring-success-300"
|
|
13739
|
+
},
|
|
13740
|
+
green: {
|
|
13741
|
+
checked: "peer-checked:bg-success-600 peer-checked:border-success-600 peer-checked:text-white",
|
|
13742
|
+
ring: "peer-focus:ring-success-300"
|
|
13743
|
+
},
|
|
13744
|
+
error: {
|
|
13745
|
+
checked: "peer-checked:bg-error-600 peer-checked:border-error-600 peer-checked:text-white",
|
|
13746
|
+
ring: "peer-focus:ring-error-300"
|
|
13747
|
+
},
|
|
13748
|
+
danger: {
|
|
13749
|
+
checked: "peer-checked:bg-error-600 peer-checked:border-error-600 peer-checked:text-white",
|
|
13750
|
+
ring: "peer-focus:ring-error-300"
|
|
13751
|
+
},
|
|
13752
|
+
red: {
|
|
13753
|
+
checked: "peer-checked:bg-error-600 peer-checked:border-error-600 peer-checked:text-white",
|
|
13754
|
+
ring: "peer-focus:ring-error-300"
|
|
13755
|
+
},
|
|
13756
|
+
warning: {
|
|
13757
|
+
checked: "peer-checked:bg-warning-600 peer-checked:border-warning-600 peer-checked:text-white",
|
|
13758
|
+
ring: "peer-focus:ring-warning-300"
|
|
13759
|
+
},
|
|
13760
|
+
blue: {
|
|
13761
|
+
checked: "peer-checked:bg-blue-600 peer-checked:border-blue-600 peer-checked:text-white",
|
|
13762
|
+
ring: "peer-focus:ring-blue-300"
|
|
13763
|
+
},
|
|
13764
|
+
indigo: {
|
|
13765
|
+
checked: "peer-checked:bg-indigo-600 peer-checked:border-indigo-600 peer-checked:text-white",
|
|
13766
|
+
ring: "peer-focus:ring-indigo-300"
|
|
13767
|
+
},
|
|
13768
|
+
purple: {
|
|
13769
|
+
checked: "peer-checked:bg-purple-600 peer-checked:border-purple-600 peer-checked:text-white",
|
|
13770
|
+
ring: "peer-focus:ring-purple-300"
|
|
13771
|
+
}
|
|
13772
|
+
};
|
|
13482
13773
|
var Checkbox = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
13483
13774
|
var _props$wrapperProps;
|
|
13484
13775
|
var id = _ref.id,
|
|
@@ -13504,6 +13795,8 @@ var Checkbox = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
13504
13795
|
indeterminate = _ref$indeterminate === void 0 ? false : _ref$indeterminate,
|
|
13505
13796
|
_ref$borderColor = _ref.borderColor,
|
|
13506
13797
|
borderColor = _ref$borderColor === void 0 ? "#ccc" : _ref$borderColor,
|
|
13798
|
+
_ref$color = _ref.color,
|
|
13799
|
+
color = _ref$color === void 0 ? "primary" : _ref$color,
|
|
13507
13800
|
iconClass = _ref.iconClass,
|
|
13508
13801
|
checkedClass = _ref.checkedClass,
|
|
13509
13802
|
props = _objectWithoutProperties$1(_ref, _excluded$s);
|
|
@@ -13537,6 +13830,13 @@ var Checkbox = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
13537
13830
|
var iconBase = "pointer-events-none transform transition-all duration-150 ease-out";
|
|
13538
13831
|
var iconShown = "opacity-100 scale-100";
|
|
13539
13832
|
var iconHidden = "opacity-0 scale-75";
|
|
13833
|
+
var isPreset = COLOR_PRESETS[color];
|
|
13834
|
+
var colorClasses = isPreset ? "".concat(isPreset.checked, " peer-focus:ring-2 peer-focus:ring-offset-1 ").concat(isPreset.ring) : "peer-focus:ring-2 peer-focus:ring-offset-1 peer-focus:ring-primary-300";
|
|
13835
|
+
var customColorStyle = currentChecked && !isPreset && !checkedClass ? {
|
|
13836
|
+
backgroundColor: color,
|
|
13837
|
+
borderColor: color,
|
|
13838
|
+
color: "#ffffff"
|
|
13839
|
+
} : {};
|
|
13540
13840
|
return jsxRuntime.jsxs("div", _objectSpread$w(_objectSpread$w({
|
|
13541
13841
|
className: wrapperCls
|
|
13542
13842
|
}, (_props$wrapperProps = props === null || props === void 0 ? void 0 : props.wrapperProps) !== null && _props$wrapperProps !== void 0 ? _props$wrapperProps : {}), {}, {
|
|
@@ -13547,7 +13847,7 @@ var Checkbox = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
13547
13847
|
}), jsxRuntime.jsxs("div", {
|
|
13548
13848
|
className: boxOuterCls,
|
|
13549
13849
|
style: disabled ? {} : {
|
|
13550
|
-
borderColor: borderColor
|
|
13850
|
+
borderColor: currentChecked && (isPreset || customColorStyle.borderColor) ? undefined : borderColor
|
|
13551
13851
|
},
|
|
13552
13852
|
"aria-disabled": disabled,
|
|
13553
13853
|
children: [jsxRuntime.jsx("input", _objectSpread$w({
|
|
@@ -13566,11 +13866,11 @@ var Checkbox = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
13566
13866
|
"aria-label": ariaLabel,
|
|
13567
13867
|
"aria-checked": Boolean(currentChecked)
|
|
13568
13868
|
}, props)), jsxRuntime.jsx("div", {
|
|
13569
|
-
className: "pointer-events-none z-0 flex items-center justify-center rounded-sm w-full h-full transition-colors duration-150 ease-in-out " + "
|
|
13869
|
+
className: "pointer-events-none z-0 flex items-center justify-center rounded-sm w-full h-full transition-colors duration-150 ease-in-out " + "".concat(colorClasses, " ") + "".concat(disabled ? "bg-gray-100 border-gray-400 text-primary-400" : "bg-white border-gray-500", " ").concat(checkedClass ? checkedClass : ""),
|
|
13570
13870
|
style: currentChecked && checkedClass ? {
|
|
13571
13871
|
backgroundColor: "",
|
|
13572
13872
|
borderColor: ""
|
|
13573
|
-
} :
|
|
13873
|
+
} : customColorStyle,
|
|
13574
13874
|
"aria-hidden": "true",
|
|
13575
13875
|
children: jsxRuntime.jsx(Check, {
|
|
13576
13876
|
className: "".concat(sizeClass.icon, " ").concat(iconBase, " ").concat(currentChecked ? iconShown : iconHidden, " ").concat(iconClass || ""),
|
|
@@ -18947,13 +19247,57 @@ Dialog.Footer = function (_ref6) {
|
|
|
18947
19247
|
}));
|
|
18948
19248
|
};
|
|
18949
19249
|
|
|
18950
|
-
var _excluded$7 = ["id", "title", "message", "type", "duration", "onClose", "position"];
|
|
19250
|
+
var _excluded$7 = ["id", "title", "message", "description", "type", "duration", "onClose", "position", "statusIcon", "actions", "color", "footerNote", "showFooterNote", "portal", "className"];
|
|
18951
19251
|
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; }
|
|
18952
19252
|
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), true).forEach(function (r) { _defineProperty$4(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; }
|
|
19253
|
+
var STATUS_CONFIG = {
|
|
19254
|
+
success: {
|
|
19255
|
+
icon: CheckCircle2,
|
|
19256
|
+
iconClass: 'text-emerald-500 dark:text-emerald-400',
|
|
19257
|
+
progressClass: 'bg-emerald-500 dark:bg-emerald-400'
|
|
19258
|
+
},
|
|
19259
|
+
error: {
|
|
19260
|
+
icon: XCircle,
|
|
19261
|
+
iconClass: 'text-rose-500 dark:text-rose-400',
|
|
19262
|
+
progressClass: 'bg-rose-500 dark:bg-rose-400'
|
|
19263
|
+
},
|
|
19264
|
+
warning: {
|
|
19265
|
+
icon: AlertTriangle,
|
|
19266
|
+
iconClass: 'text-amber-500 dark:text-amber-400',
|
|
19267
|
+
progressClass: 'bg-amber-500 dark:bg-amber-400'
|
|
19268
|
+
},
|
|
19269
|
+
info: {
|
|
19270
|
+
icon: Info,
|
|
19271
|
+
iconClass: 'text-sky-500 dark:text-sky-400',
|
|
19272
|
+
progressClass: 'bg-sky-500 dark:bg-sky-400'
|
|
19273
|
+
},
|
|
19274
|
+
"default": {
|
|
19275
|
+
icon: Bell,
|
|
19276
|
+
iconClass: 'text-primary-500 dark:text-primary-400',
|
|
19277
|
+
progressClass: 'bg-primary-500 dark:bg-primary-400'
|
|
19278
|
+
}
|
|
19279
|
+
};
|
|
19280
|
+
var POSITION_CLASSES = {
|
|
19281
|
+
'top-right': 'top-4 right-4 items-end',
|
|
19282
|
+
'top-left': 'top-4 left-4 items-start',
|
|
19283
|
+
'bottom-right': 'bottom-4 right-4 items-end',
|
|
19284
|
+
'bottom-left': 'bottom-4 left-4 items-start',
|
|
19285
|
+
'top-center': 'top-4 left-1/2 transform -translate-x-1/2 items-center',
|
|
19286
|
+
'bottom-center': 'bottom-4 left-1/2 transform -translate-x-1/2 items-center'
|
|
19287
|
+
};
|
|
19288
|
+
var STANDALONE_POSITION_CLASSES = {
|
|
19289
|
+
'top-right': 'top-4 right-4',
|
|
19290
|
+
'top-left': 'top-4 left-4',
|
|
19291
|
+
'bottom-right': 'bottom-4 right-4',
|
|
19292
|
+
'bottom-left': 'bottom-4 left-4',
|
|
19293
|
+
'top-center': 'top-4 left-1/2 transform -translate-x-1/2',
|
|
19294
|
+
'bottom-center': 'bottom-4 left-1/2 transform -translate-x-1/2'
|
|
19295
|
+
};
|
|
18953
19296
|
var Toast = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
18954
19297
|
var id = _ref.id,
|
|
18955
19298
|
title = _ref.title,
|
|
18956
19299
|
message = _ref.message,
|
|
19300
|
+
description = _ref.description,
|
|
18957
19301
|
_ref$type = _ref.type,
|
|
18958
19302
|
type = _ref$type === void 0 ? 'info' : _ref$type,
|
|
18959
19303
|
_ref$duration = _ref.duration,
|
|
@@ -18961,153 +19305,277 @@ var Toast = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
18961
19305
|
onClose = _ref.onClose,
|
|
18962
19306
|
_ref$position = _ref.position,
|
|
18963
19307
|
position = _ref$position === void 0 ? 'top-right' : _ref$position,
|
|
19308
|
+
statusIcon = _ref.statusIcon,
|
|
19309
|
+
_ref$actions = _ref.actions,
|
|
19310
|
+
actions = _ref$actions === void 0 ? [] : _ref$actions,
|
|
19311
|
+
color = _ref.color,
|
|
19312
|
+
footerNote = _ref.footerNote,
|
|
19313
|
+
_ref$showFooterNote = _ref.showFooterNote,
|
|
19314
|
+
showFooterNote = _ref$showFooterNote === void 0 ? false : _ref$showFooterNote,
|
|
19315
|
+
_ref$portal = _ref.portal,
|
|
19316
|
+
portal = _ref$portal === void 0 ? true : _ref$portal,
|
|
19317
|
+
_ref$className = _ref.className,
|
|
19318
|
+
className = _ref$className === void 0 ? '' : _ref$className,
|
|
18964
19319
|
props = _objectWithoutProperties$1(_ref, _excluded$7);
|
|
18965
19320
|
var _useState = React.useState(true),
|
|
18966
19321
|
_useState2 = _slicedToArray(_useState, 2),
|
|
18967
19322
|
isVisible = _useState2[0],
|
|
18968
19323
|
setIsVisible = _useState2[1];
|
|
18969
|
-
React.
|
|
18970
|
-
|
|
18971
|
-
|
|
18972
|
-
|
|
18973
|
-
|
|
18974
|
-
|
|
18975
|
-
|
|
18976
|
-
|
|
18977
|
-
|
|
18978
|
-
|
|
18979
|
-
var
|
|
18980
|
-
|
|
19324
|
+
var _useState3 = React.useState(false),
|
|
19325
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
19326
|
+
isLeaving = _useState4[0],
|
|
19327
|
+
setIsLeaving = _useState4[1];
|
|
19328
|
+
var _useState5 = React.useState(false),
|
|
19329
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
19330
|
+
isPaused = _useState6[0],
|
|
19331
|
+
setIsPaused = _useState6[1];
|
|
19332
|
+
var progressBarRef = React.useRef(null);
|
|
19333
|
+
var timerTextRef = React.useRef(null);
|
|
19334
|
+
var startTimeRef = React.useRef(null);
|
|
19335
|
+
var remainingRef = React.useRef(duration);
|
|
19336
|
+
var timerRef = React.useRef(null);
|
|
19337
|
+
var animFrameRef = React.useRef(null);
|
|
19338
|
+
var handleClose = React.useCallback(function () {
|
|
19339
|
+
if (isLeaving) return;
|
|
19340
|
+
setIsLeaving(true);
|
|
18981
19341
|
setTimeout(function () {
|
|
19342
|
+
setIsVisible(false);
|
|
18982
19343
|
onClose === null || onClose === void 0 || onClose(id);
|
|
18983
19344
|
}, 300);
|
|
18984
|
-
};
|
|
18985
|
-
var
|
|
18986
|
-
|
|
18987
|
-
|
|
18988
|
-
|
|
18989
|
-
|
|
18990
|
-
|
|
18991
|
-
|
|
18992
|
-
|
|
18993
|
-
|
|
18994
|
-
|
|
18995
|
-
|
|
18996
|
-
|
|
18997
|
-
|
|
18998
|
-
|
|
18999
|
-
|
|
19000
|
-
|
|
19001
|
-
|
|
19002
|
-
|
|
19003
|
-
|
|
19004
|
-
|
|
19005
|
-
|
|
19006
|
-
|
|
19345
|
+
}, [id, onClose, isLeaving]);
|
|
19346
|
+
var handleStopTimer = React.useCallback(function (e) {
|
|
19347
|
+
e === null || e === void 0 || e.stopPropagation();
|
|
19348
|
+
setIsPaused(true);
|
|
19349
|
+
if (timerRef.current) clearTimeout(timerRef.current);
|
|
19350
|
+
if (animFrameRef.current) cancelAnimationFrame(animFrameRef.current);
|
|
19351
|
+
}, []);
|
|
19352
|
+
// Direct DOM-based progress updates to prevent 60 FPS React re-renders and glitches
|
|
19353
|
+
React.useEffect(function () {
|
|
19354
|
+
if (duration <= 0) return;
|
|
19355
|
+
if (isPaused) {
|
|
19356
|
+
if (timerRef.current) clearTimeout(timerRef.current);
|
|
19357
|
+
if (animFrameRef.current) cancelAnimationFrame(animFrameRef.current);
|
|
19358
|
+
return;
|
|
19359
|
+
}
|
|
19360
|
+
startTimeRef.current = Date.now();
|
|
19361
|
+
timerRef.current = setTimeout(function () {
|
|
19362
|
+
handleClose();
|
|
19363
|
+
}, remainingRef.current);
|
|
19364
|
+
var _updateProgress = function updateProgress() {
|
|
19365
|
+
var elapsed = startTimeRef.current ? Date.now() - startTimeRef.current : 0;
|
|
19366
|
+
var currentRemaining = Math.max(0, remainingRef.current - elapsed);
|
|
19367
|
+
var pct = currentRemaining / duration * 100;
|
|
19368
|
+
if (progressBarRef.current) {
|
|
19369
|
+
progressBarRef.current.style.width = "".concat(pct, "%");
|
|
19370
|
+
}
|
|
19371
|
+
if (timerTextRef.current) {
|
|
19372
|
+
var secs = Math.ceil(currentRemaining / 1000);
|
|
19373
|
+
timerTextRef.current.textContent = "This message will close in ".concat(secs, " seconds. ");
|
|
19374
|
+
}
|
|
19375
|
+
if (currentRemaining > 0 && !isPaused) {
|
|
19376
|
+
animFrameRef.current = requestAnimationFrame(_updateProgress);
|
|
19377
|
+
}
|
|
19378
|
+
};
|
|
19379
|
+
animFrameRef.current = requestAnimationFrame(_updateProgress);
|
|
19380
|
+
return function () {
|
|
19381
|
+
if (timerRef.current) clearTimeout(timerRef.current);
|
|
19382
|
+
if (animFrameRef.current) cancelAnimationFrame(animFrameRef.current);
|
|
19383
|
+
if (!isPaused && startTimeRef.current) {
|
|
19384
|
+
var elapsed = Date.now() - startTimeRef.current;
|
|
19385
|
+
remainingRef.current = Math.max(0, remainingRef.current - elapsed);
|
|
19386
|
+
}
|
|
19387
|
+
};
|
|
19388
|
+
}, [duration, isPaused, handleClose]);
|
|
19007
19389
|
if (!isVisible) return null;
|
|
19008
|
-
|
|
19390
|
+
var statusStyle = STATUS_CONFIG[type] || STATUS_CONFIG.info || STATUS_CONFIG["default"];
|
|
19391
|
+
var StatusIconComponent = statusStyle.icon;
|
|
19392
|
+
var bodyText = description || message;
|
|
19393
|
+
var toastContent = jsxRuntime.jsxs("div", _objectSpread$b(_objectSpread$b({
|
|
19009
19394
|
ref: ref,
|
|
19010
|
-
|
|
19395
|
+
onMouseEnter: function onMouseEnter() {
|
|
19396
|
+
return setIsPaused(true);
|
|
19397
|
+
},
|
|
19398
|
+
onMouseLeave: function onMouseLeave() {
|
|
19399
|
+
return setIsPaused(false);
|
|
19400
|
+
},
|
|
19401
|
+
className: cn$1('relative overflow-hidden rounded-xl border border-slate-200/90 bg-white/95 shadow-xl backdrop-blur-md transition-all duration-300', 'dark:border-slate-800/80 dark:bg-[#18181b] dark:text-slate-100 dark:shadow-2xl', 'max-w-md w-full', isLeaving ? 'opacity-0 scale-95 translate-y-1' : 'animate-slide-up opacity-100 scale-100', portal ? ['fixed z-50', STANDALONE_POSITION_CLASSES[position] || STANDALONE_POSITION_CLASSES['top-right']] : '', className)
|
|
19011
19402
|
}, props), {}, {
|
|
19012
|
-
children: jsxRuntime.
|
|
19013
|
-
className: "
|
|
19014
|
-
children:
|
|
19015
|
-
className: "flex-
|
|
19016
|
-
children:
|
|
19017
|
-
|
|
19018
|
-
|
|
19019
|
-
|
|
19020
|
-
|
|
19021
|
-
|
|
19022
|
-
|
|
19023
|
-
|
|
19024
|
-
|
|
19403
|
+
children: [jsxRuntime.jsx("div", {
|
|
19404
|
+
className: "p-4",
|
|
19405
|
+
children: jsxRuntime.jsxs("div", {
|
|
19406
|
+
className: "flex items-start gap-3 justify-between",
|
|
19407
|
+
children: [jsxRuntime.jsx("span", {
|
|
19408
|
+
className: "flex-shrink-0 mt-0.5",
|
|
19409
|
+
children: statusIcon ? statusIcon : jsxRuntime.jsx(StatusIconComponent, {
|
|
19410
|
+
className: cn$1('h-5 w-5', statusStyle.iconClass)
|
|
19411
|
+
})
|
|
19412
|
+
}), jsxRuntime.jsxs("div", {
|
|
19413
|
+
className: "flex-1 min-w-0 pr-2",
|
|
19414
|
+
children: [title && jsxRuntime.jsx("h4", {
|
|
19415
|
+
className: "text-sm font-semibold text-slate-900 dark:text-slate-100 leading-snug",
|
|
19416
|
+
children: title
|
|
19417
|
+
}), bodyText && jsxRuntime.jsx("p", {
|
|
19418
|
+
className: "mt-1 text-xs text-slate-600 dark:text-slate-400 leading-relaxed whitespace-pre-line",
|
|
19419
|
+
children: bodyText
|
|
19420
|
+
}), actions && actions.length > 0 && jsxRuntime.jsx("div", {
|
|
19421
|
+
className: "mt-3 flex items-center gap-2 flex-wrap",
|
|
19422
|
+
children: actions.map(function (actItem, idx) {
|
|
19423
|
+
return jsxRuntime.jsx("button", {
|
|
19424
|
+
type: "button",
|
|
19425
|
+
onClick: function onClick(e) {
|
|
19426
|
+
var _actItem$onClick;
|
|
19427
|
+
(_actItem$onClick = actItem.onClick) === null || _actItem$onClick === void 0 || _actItem$onClick.call(actItem, e);
|
|
19428
|
+
if (actItem.dismiss !== false) {
|
|
19429
|
+
handleClose();
|
|
19430
|
+
}
|
|
19431
|
+
},
|
|
19432
|
+
className: cn$1('px-3 py-1.5 text-xs font-medium rounded-lg transition-colors border shadow-xs', actItem.variant === 'primary' ? 'bg-primary-600 hover:bg-primary-700 text-white border-primary-600' : 'bg-slate-100 dark:bg-zinc-800/80 text-slate-700 dark:text-zinc-200 border-slate-200 dark:border-zinc-700 hover:bg-slate-200 dark:hover:bg-zinc-700', actItem.className),
|
|
19433
|
+
children: actItem.label
|
|
19434
|
+
}, actItem.id || actItem.label || "act-".concat(idx));
|
|
19435
|
+
})
|
|
19436
|
+
})]
|
|
19437
|
+
}), jsxRuntime.jsx("button", {
|
|
19438
|
+
type: "button",
|
|
19439
|
+
"aria-label": "Close notification",
|
|
19440
|
+
className: "flex-shrink-0 rounded-lg p-1 text-slate-400 hover:text-slate-600 dark:hover:text-slate-200 hover:bg-slate-100 dark:hover:bg-zinc-800/70 transition-colors outline-none focus:ring-2 focus:ring-primary-500",
|
|
19441
|
+
onClick: handleClose,
|
|
19442
|
+
children: jsxRuntime.jsx(X, {
|
|
19443
|
+
className: "h-4 w-4"
|
|
19444
|
+
})
|
|
19025
19445
|
})]
|
|
19026
|
-
})
|
|
19027
|
-
|
|
19028
|
-
|
|
19029
|
-
|
|
19030
|
-
children: jsxRuntime.
|
|
19031
|
-
|
|
19446
|
+
})
|
|
19447
|
+
}), (showFooterNote || footerNote) && duration > 0 && jsxRuntime.jsx("div", {
|
|
19448
|
+
className: "px-4 py-2 bg-slate-50 dark:bg-zinc-950/40 border-t border-slate-100 dark:border-zinc-800/50 text-[11px] text-slate-500 dark:text-zinc-400 flex items-center justify-between",
|
|
19449
|
+
children: jsxRuntime.jsx("span", {
|
|
19450
|
+
children: footerNote ? footerNote : jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
19451
|
+
children: [jsxRuntime.jsxs("span", {
|
|
19452
|
+
ref: timerTextRef,
|
|
19453
|
+
children: ["This message will close in ", Math.ceil(duration / 1000), " seconds.", ' ']
|
|
19454
|
+
}), jsxRuntime.jsx("button", {
|
|
19455
|
+
type: "button",
|
|
19456
|
+
onClick: handleStopTimer,
|
|
19457
|
+
className: "font-medium text-slate-700 dark:text-zinc-200 hover:underline inline",
|
|
19458
|
+
children: "Click to stop."
|
|
19459
|
+
})]
|
|
19032
19460
|
})
|
|
19033
|
-
})
|
|
19034
|
-
})
|
|
19035
|
-
|
|
19461
|
+
})
|
|
19462
|
+
}), duration > 0 && jsxRuntime.jsx("div", {
|
|
19463
|
+
className: "absolute bottom-0 left-0 right-0 h-0.5 bg-slate-100 dark:bg-zinc-800/80 overflow-hidden rounded-b-xl",
|
|
19464
|
+
children: jsxRuntime.jsx("div", {
|
|
19465
|
+
ref: progressBarRef,
|
|
19466
|
+
className: cn$1('h-full transition-all ease-linear', color ? '' : statusStyle.progressClass),
|
|
19467
|
+
style: {
|
|
19468
|
+
width: '100%',
|
|
19469
|
+
backgroundColor: color || undefined
|
|
19470
|
+
}
|
|
19471
|
+
})
|
|
19472
|
+
})]
|
|
19473
|
+
}));
|
|
19474
|
+
if (portal) {
|
|
19475
|
+
return /*#__PURE__*/ReactDOM.createPortal(toastContent, document.body);
|
|
19476
|
+
}
|
|
19477
|
+
return toastContent;
|
|
19036
19478
|
});
|
|
19037
19479
|
Toast.displayName = 'Toast';
|
|
19038
|
-
// Toast Container Component
|
|
19480
|
+
// Toast Container Component for vertical stacking & scrollable overflow without visible scrollbars
|
|
19039
19481
|
var ToastContainer = function ToastContainer(_ref2) {
|
|
19040
19482
|
var _ref2$toasts = _ref2.toasts,
|
|
19041
19483
|
toasts = _ref2$toasts === void 0 ? [] : _ref2$toasts,
|
|
19042
19484
|
_ref2$position = _ref2.position,
|
|
19043
19485
|
position = _ref2$position === void 0 ? 'top-right' : _ref2$position,
|
|
19044
|
-
onRemove = _ref2.onRemove
|
|
19045
|
-
|
|
19046
|
-
className
|
|
19047
|
-
|
|
19048
|
-
|
|
19049
|
-
|
|
19050
|
-
|
|
19051
|
-
|
|
19052
|
-
|
|
19486
|
+
onRemove = _ref2.onRemove,
|
|
19487
|
+
_ref2$className = _ref2.className,
|
|
19488
|
+
className = _ref2$className === void 0 ? '' : _ref2$className;
|
|
19489
|
+
if (!toasts || toasts.length === 0) {
|
|
19490
|
+
return null;
|
|
19491
|
+
}
|
|
19492
|
+
var posClass = POSITION_CLASSES[position] || POSITION_CLASSES['top-right'];
|
|
19493
|
+
return /*#__PURE__*/ReactDOM.createPortal(jsxRuntime.jsx("div", {
|
|
19494
|
+
className: cn$1('fixed z-50 flex flex-col gap-3 max-h-[calc(100vh-2rem)] overflow-y-auto overflow-x-hidden p-2 pointer-events-none', '[scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden', posClass, className),
|
|
19495
|
+
children: toasts.map(function (t) {
|
|
19496
|
+
return jsxRuntime.jsx("div", {
|
|
19497
|
+
className: "pointer-events-auto w-full max-w-md",
|
|
19498
|
+
children: jsxRuntime.jsx(Toast, _objectSpread$b(_objectSpread$b({}, t), {}, {
|
|
19499
|
+
portal: false,
|
|
19500
|
+
position: position,
|
|
19501
|
+
onClose: onRemove
|
|
19502
|
+
}))
|
|
19503
|
+
}, t.id);
|
|
19053
19504
|
})
|
|
19054
|
-
});
|
|
19505
|
+
}), document.body);
|
|
19055
19506
|
};
|
|
19056
19507
|
// Toast Hook
|
|
19057
19508
|
var useToast = function useToast() {
|
|
19058
|
-
var
|
|
19059
|
-
|
|
19060
|
-
toasts =
|
|
19061
|
-
setToasts =
|
|
19062
|
-
var addToast = function
|
|
19063
|
-
var id = Date.now().toString();
|
|
19509
|
+
var _useState7 = React.useState([]),
|
|
19510
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
19511
|
+
toasts = _useState8[0],
|
|
19512
|
+
setToasts = _useState8[1];
|
|
19513
|
+
var addToast = React.useCallback(function (toastOptions) {
|
|
19514
|
+
var id = toastOptions.id || "".concat(Date.now(), "-").concat(Math.random().toString(36).slice(2, 7));
|
|
19515
|
+
var newToast = _objectSpread$b(_objectSpread$b({}, toastOptions), {}, {
|
|
19516
|
+
id: id
|
|
19517
|
+
});
|
|
19064
19518
|
setToasts(function (prev) {
|
|
19065
|
-
return [].concat(_toConsumableArray$1(prev), [
|
|
19066
|
-
id: id
|
|
19067
|
-
})]);
|
|
19519
|
+
return [].concat(_toConsumableArray$1(prev), [newToast]);
|
|
19068
19520
|
});
|
|
19069
|
-
|
|
19070
|
-
|
|
19521
|
+
return id;
|
|
19522
|
+
}, []);
|
|
19523
|
+
var removeToast = React.useCallback(function (id) {
|
|
19071
19524
|
setToasts(function (prev) {
|
|
19072
|
-
return prev.filter(function (
|
|
19073
|
-
return
|
|
19525
|
+
return prev.filter(function (t) {
|
|
19526
|
+
return t.id !== id;
|
|
19074
19527
|
});
|
|
19075
19528
|
});
|
|
19529
|
+
}, []);
|
|
19530
|
+
var clearToasts = React.useCallback(function () {
|
|
19531
|
+
setToasts([]);
|
|
19532
|
+
}, []);
|
|
19533
|
+
var toast = React.useCallback(function (options) {
|
|
19534
|
+
return addToast(typeof options === 'string' ? {
|
|
19535
|
+
message: options
|
|
19536
|
+
} : options);
|
|
19537
|
+
}, [addToast]);
|
|
19538
|
+
toast.success = function (title, message, options) {
|
|
19539
|
+
return addToast(_objectSpread$b({
|
|
19540
|
+
title: title,
|
|
19541
|
+
message: message,
|
|
19542
|
+
type: 'success'
|
|
19543
|
+
}, _typeof$4(options) === 'object' ? options : {}));
|
|
19076
19544
|
};
|
|
19077
|
-
|
|
19078
|
-
|
|
19079
|
-
|
|
19080
|
-
|
|
19081
|
-
|
|
19082
|
-
|
|
19083
|
-
|
|
19084
|
-
|
|
19085
|
-
|
|
19086
|
-
|
|
19087
|
-
|
|
19088
|
-
|
|
19089
|
-
|
|
19090
|
-
|
|
19091
|
-
|
|
19092
|
-
|
|
19093
|
-
|
|
19094
|
-
|
|
19095
|
-
|
|
19096
|
-
|
|
19097
|
-
|
|
19098
|
-
|
|
19099
|
-
|
|
19100
|
-
|
|
19101
|
-
|
|
19102
|
-
|
|
19103
|
-
|
|
19104
|
-
}, options));
|
|
19105
|
-
}
|
|
19545
|
+
toast.error = function (title, message, options) {
|
|
19546
|
+
return addToast(_objectSpread$b({
|
|
19547
|
+
title: title,
|
|
19548
|
+
message: message,
|
|
19549
|
+
type: 'error'
|
|
19550
|
+
}, _typeof$4(options) === 'object' ? options : {}));
|
|
19551
|
+
};
|
|
19552
|
+
toast.warning = function (title, message, options) {
|
|
19553
|
+
return addToast(_objectSpread$b({
|
|
19554
|
+
title: title,
|
|
19555
|
+
message: message,
|
|
19556
|
+
type: 'warning'
|
|
19557
|
+
}, _typeof$4(options) === 'object' ? options : {}));
|
|
19558
|
+
};
|
|
19559
|
+
toast.info = function (title, message, options) {
|
|
19560
|
+
return addToast(_objectSpread$b({
|
|
19561
|
+
title: title,
|
|
19562
|
+
message: message,
|
|
19563
|
+
type: 'info'
|
|
19564
|
+
}, _typeof$4(options) === 'object' ? options : {}));
|
|
19565
|
+
};
|
|
19566
|
+
toast["default"] = function (title, message, options) {
|
|
19567
|
+
return addToast(_objectSpread$b({
|
|
19568
|
+
title: title,
|
|
19569
|
+
message: message,
|
|
19570
|
+
type: 'default'
|
|
19571
|
+
}, _typeof$4(options) === 'object' ? options : {}));
|
|
19106
19572
|
};
|
|
19107
19573
|
return {
|
|
19108
19574
|
toast: toast,
|
|
19109
19575
|
toasts: toasts,
|
|
19110
|
-
removeToast: removeToast
|
|
19576
|
+
removeToast: removeToast,
|
|
19577
|
+
clearToasts: clearToasts,
|
|
19578
|
+
addToast: addToast
|
|
19111
19579
|
};
|
|
19112
19580
|
};
|
|
19113
19581
|
|