@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.esm.js
CHANGED
|
@@ -227,6 +227,22 @@ const Calendar = createLucideIcon$1("Calendar", [
|
|
|
227
227
|
*/
|
|
228
228
|
|
|
229
229
|
|
|
230
|
+
const CheckCircle2 = createLucideIcon$1("CheckCircle2", [
|
|
231
|
+
[
|
|
232
|
+
"path",
|
|
233
|
+
{
|
|
234
|
+
d: "M12 22c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10z",
|
|
235
|
+
key: "14v8dr"
|
|
236
|
+
}
|
|
237
|
+
],
|
|
238
|
+
["path", { d: "m9 12 2 2 4-4", key: "dzmm74" }]
|
|
239
|
+
]);
|
|
240
|
+
|
|
241
|
+
/**
|
|
242
|
+
* lucide-react v0.0.1 - ISC
|
|
243
|
+
*/
|
|
244
|
+
|
|
245
|
+
|
|
230
246
|
const CheckCircle = createLucideIcon$1("CheckCircle", [
|
|
231
247
|
["path", { d: "M22 11.08V12a10 10 0 1 1-5.93-9.14", key: "g774vq" }],
|
|
232
248
|
["polyline", { points: "22 4 12 14.01 9 11.01", key: "6xbx8j" }]
|
|
@@ -637,6 +653,17 @@ const User = createLucideIcon$1("User", [
|
|
|
637
653
|
*/
|
|
638
654
|
|
|
639
655
|
|
|
656
|
+
const XCircle = createLucideIcon$1("XCircle", [
|
|
657
|
+
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
658
|
+
["path", { d: "m15 9-6 6", key: "1uzhvr" }],
|
|
659
|
+
["path", { d: "m9 9 6 6", key: "z0biqf" }]
|
|
660
|
+
]);
|
|
661
|
+
|
|
662
|
+
/**
|
|
663
|
+
* lucide-react v0.0.1 - ISC
|
|
664
|
+
*/
|
|
665
|
+
|
|
666
|
+
|
|
640
667
|
const X = createLucideIcon$1("X", [
|
|
641
668
|
["path", { d: "M18 6 6 18", key: "1bl5f8" }],
|
|
642
669
|
["path", { d: "m6 6 12 12", key: "d8bk6v" }]
|
|
@@ -3171,8 +3198,8 @@ function cn$1() {
|
|
|
3171
3198
|
}
|
|
3172
3199
|
|
|
3173
3200
|
var _excluded$A = ["id", "className", "type", "label", "placeholder", "error", "success", "disabled", "required", "clearable", "icon", "iconPosition", "onClear", "showCount", "maxLength", "readOnly", "onChange", "value", "defaultValue"];
|
|
3174
|
-
function ownKeys$
|
|
3175
|
-
function _objectSpread$
|
|
3201
|
+
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; }
|
|
3202
|
+
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; }
|
|
3176
3203
|
var Input = /*#__PURE__*/forwardRef(function (props, forwardedRef) {
|
|
3177
3204
|
var _ref$current$value2, _ref$current;
|
|
3178
3205
|
var id = props.id,
|
|
@@ -3287,7 +3314,7 @@ var Input = /*#__PURE__*/forwardRef(function (props, forwardedRef) {
|
|
|
3287
3314
|
className: "text-primary-400",
|
|
3288
3315
|
children: icon
|
|
3289
3316
|
})
|
|
3290
|
-
}), jsx("input", _objectSpread$
|
|
3317
|
+
}), jsx("input", _objectSpread$G({
|
|
3291
3318
|
id: inputId,
|
|
3292
3319
|
ref: ref,
|
|
3293
3320
|
type: inputType,
|
|
@@ -3348,8 +3375,8 @@ var Input = /*#__PURE__*/forwardRef(function (props, forwardedRef) {
|
|
|
3348
3375
|
});
|
|
3349
3376
|
|
|
3350
3377
|
var _excluded$z = ["className", "variant", "size", "disabled", "loading", "children", "leftIcon", "rightIcon", "fullWidth"];
|
|
3351
|
-
function ownKeys$
|
|
3352
|
-
function _objectSpread$
|
|
3378
|
+
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; }
|
|
3379
|
+
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; }
|
|
3353
3380
|
var Button = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
3354
3381
|
var className = _ref.className,
|
|
3355
3382
|
_ref$variant = _ref.variant,
|
|
@@ -3379,7 +3406,7 @@ var Button = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
3379
3406
|
// Full width
|
|
3380
3407
|
'w-full': fullWidth
|
|
3381
3408
|
}, className);
|
|
3382
|
-
return jsxs("button", _objectSpread$
|
|
3409
|
+
return jsxs("button", _objectSpread$F(_objectSpread$F({
|
|
3383
3410
|
ref: ref,
|
|
3384
3411
|
className: baseClasses,
|
|
3385
3412
|
disabled: disabled || loading
|
|
@@ -3414,8 +3441,8 @@ function _toConsumableArray$1(r) {
|
|
|
3414
3441
|
}
|
|
3415
3442
|
|
|
3416
3443
|
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"];
|
|
3417
|
-
function ownKeys$
|
|
3418
|
-
function _objectSpread$
|
|
3444
|
+
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; }
|
|
3445
|
+
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; }
|
|
3419
3446
|
/**
|
|
3420
3447
|
* Enhanced Select component (debounce removed)
|
|
3421
3448
|
* - Supports single and multi select
|
|
@@ -3436,7 +3463,7 @@ var flattenGroups = function flattenGroups() {
|
|
|
3436
3463
|
return groups.reduce(function (acc, g) {
|
|
3437
3464
|
var groupLabel = g.label;
|
|
3438
3465
|
g.options.forEach(function (opt) {
|
|
3439
|
-
return acc.push(_objectSpread$
|
|
3466
|
+
return acc.push(_objectSpread$E(_objectSpread$E({}, opt), {}, {
|
|
3440
3467
|
_group: groupLabel
|
|
3441
3468
|
}));
|
|
3442
3469
|
});
|
|
@@ -3532,7 +3559,7 @@ var Select = /*#__PURE__*/React__default.forwardRef(function (_ref, forwardedRef
|
|
|
3532
3559
|
var flatOptions = useMemo(function () {
|
|
3533
3560
|
if (grouped) return flattenGroups(options);
|
|
3534
3561
|
return options.map(function (opt) {
|
|
3535
|
-
return _objectSpread$
|
|
3562
|
+
return _objectSpread$E({}, opt);
|
|
3536
3563
|
});
|
|
3537
3564
|
}, [options, grouped]);
|
|
3538
3565
|
var selectedValues = multiSelect ? Array.isArray(value) ? value : [] : value;
|
|
@@ -3557,7 +3584,7 @@ var Select = /*#__PURE__*/React__default.forwardRef(function (_ref, forwardedRef
|
|
|
3557
3584
|
}
|
|
3558
3585
|
if (grouped) {
|
|
3559
3586
|
return options.map(function (g) {
|
|
3560
|
-
return _objectSpread$
|
|
3587
|
+
return _objectSpread$E(_objectSpread$E({}, g), {}, {
|
|
3561
3588
|
options: g.options.filter(function (o) {
|
|
3562
3589
|
return o.label.toLowerCase().includes(searchTerm.toLowerCase());
|
|
3563
3590
|
})
|
|
@@ -3827,7 +3854,7 @@ var Select = /*#__PURE__*/React__default.forwardRef(function (_ref, forwardedRef
|
|
|
3827
3854
|
className: "text-xs border border-slate-200 p-0.5 rounded-md cursor-pointer hover:bg-gray-100",
|
|
3828
3855
|
onClick: function onClick() {
|
|
3829
3856
|
return setCollapsedGroups(function (prev) {
|
|
3830
|
-
return _objectSpread$
|
|
3857
|
+
return _objectSpread$E(_objectSpread$E({}, prev), {}, _defineProperty$4({}, group.label, !prev[group.label]));
|
|
3831
3858
|
});
|
|
3832
3859
|
},
|
|
3833
3860
|
children: jsx(ChevronDown, {
|
|
@@ -3921,7 +3948,7 @@ var Select = /*#__PURE__*/React__default.forwardRef(function (_ref, forwardedRef
|
|
|
3921
3948
|
}), jsxs("div", {
|
|
3922
3949
|
ref: selectRef,
|
|
3923
3950
|
className: "relative",
|
|
3924
|
-
children: [jsxs("button", _objectSpread$
|
|
3951
|
+
children: [jsxs("button", _objectSpread$E(_objectSpread$E({
|
|
3925
3952
|
type: "button",
|
|
3926
3953
|
"aria-haspopup": "listbox",
|
|
3927
3954
|
"aria-expanded": isOpen,
|
|
@@ -3988,7 +4015,7 @@ var Select = /*#__PURE__*/React__default.forwardRef(function (_ref, forwardedRef
|
|
|
3988
4015
|
// escapes any ancestor overflow:hidden|auto|scroll. Coordinates
|
|
3989
4016
|
// are anchored to the trigger's viewport rect; width matches the
|
|
3990
4017
|
// trigger; maxHeight is driven by available space.
|
|
3991
|
-
style: _objectSpread$
|
|
4018
|
+
style: _objectSpread$E({
|
|
3992
4019
|
left: menuCoords ? "".concat(menuCoords.left, "px") : undefined,
|
|
3993
4020
|
top: menuCoords ? "".concat(menuCoords.top, "px") : undefined,
|
|
3994
4021
|
width: menuCoords ? "".concat(menuCoords.width, "px") : undefined
|
|
@@ -4470,8 +4497,8 @@ var DEFAULT_ACTIONS = [{
|
|
|
4470
4497
|
})
|
|
4471
4498
|
}];
|
|
4472
4499
|
|
|
4473
|
-
function ownKeys$
|
|
4474
|
-
function _objectSpread$
|
|
4500
|
+
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; }
|
|
4501
|
+
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; }
|
|
4475
4502
|
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; } } }; }
|
|
4476
4503
|
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; } }
|
|
4477
4504
|
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; }
|
|
@@ -4535,7 +4562,7 @@ var mergeDefaultActions = function mergeDefaultActions(overrides, defaults) {
|
|
|
4535
4562
|
_iterator.f();
|
|
4536
4563
|
}
|
|
4537
4564
|
var merged = defaults.map(function (d) {
|
|
4538
|
-
return d !== null && d !== void 0 && d.name && byName.has(d.name) ? _objectSpread$
|
|
4565
|
+
return d !== null && d !== void 0 && d.name && byName.has(d.name) ? _objectSpread$D(_objectSpread$D({}, d), byName.get(d.name)) : d;
|
|
4539
4566
|
});
|
|
4540
4567
|
var defaultNames = new Set(defaults.map(function (d) {
|
|
4541
4568
|
return d === null || d === void 0 ? void 0 : d.name;
|
|
@@ -4577,7 +4604,7 @@ var resolveActions = function resolveActions(actions, row, index) {
|
|
|
4577
4604
|
var action = _step2.value;
|
|
4578
4605
|
if (!action || _typeof$4(action) !== "object") continue;
|
|
4579
4606
|
if (callIfFn(action.hidden, row, index)) continue;
|
|
4580
|
-
var resolved = _objectSpread$
|
|
4607
|
+
var resolved = _objectSpread$D(_objectSpread$D({}, action), {}, {
|
|
4581
4608
|
label: callIfFn(action.label, row, index),
|
|
4582
4609
|
icon: callIfFn(action.icon, row, index),
|
|
4583
4610
|
disabled: !!callIfFn(action.disabled, row, index),
|
|
@@ -5114,6 +5141,8 @@ function ActionMenu(_ref) {
|
|
|
5114
5141
|
}), document.body);
|
|
5115
5142
|
}
|
|
5116
5143
|
|
|
5144
|
+
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; }
|
|
5145
|
+
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; }
|
|
5117
5146
|
/**
|
|
5118
5147
|
* Desktop table row component
|
|
5119
5148
|
*/
|
|
@@ -5162,6 +5191,8 @@ function TableRow(_ref) {
|
|
|
5162
5191
|
renderInteractiveCellInput = _ref$renderInteractiv === void 0 ? null : _ref$renderInteractiv,
|
|
5163
5192
|
_ref$invalidCellSet = _ref.invalidCellSet,
|
|
5164
5193
|
invalidCellSet = _ref$invalidCellSet === void 0 ? null : _ref$invalidCellSet,
|
|
5194
|
+
_ref$pendingEdits = _ref.pendingEdits,
|
|
5195
|
+
pendingEdits = _ref$pendingEdits === void 0 ? null : _ref$pendingEdits,
|
|
5165
5196
|
_ref$isNewRow = _ref.isNewRow,
|
|
5166
5197
|
isNewRow = _ref$isNewRow === void 0 ? false : _ref$isNewRow,
|
|
5167
5198
|
_ref$onDeleteNewRow = _ref.onDeleteNewRow,
|
|
@@ -5189,6 +5220,10 @@ function TableRow(_ref) {
|
|
|
5189
5220
|
var stripeBg = stripedRows && !isSelected && Array.isArray(stripeColors) && stripeColors.length > 0 ? stripeColors[globalIndex % stripeColors.length] : undefined;
|
|
5190
5221
|
var rowKey = isNewRow ? row._key : key;
|
|
5191
5222
|
var isRowActive = interactive && (activeCell === null || activeCell === void 0 ? void 0 : activeCell.rowKey) === rowKey;
|
|
5223
|
+
var effectiveRow = React__default.useMemo(function () {
|
|
5224
|
+
if (!interactive || !pendingEdits || !pendingEdits[rowKey]) return row;
|
|
5225
|
+
return _objectSpread$C(_objectSpread$C({}, row), pendingEdits[rowKey]);
|
|
5226
|
+
}, [interactive, pendingEdits, rowKey, row]);
|
|
5192
5227
|
return jsxs(React__default.Fragment, {
|
|
5193
5228
|
children: [jsxs("tr", {
|
|
5194
5229
|
style: stripeBg ? {
|
|
@@ -5201,7 +5236,7 @@ function TableRow(_ref) {
|
|
|
5201
5236
|
"bg-amber-50/40": isNewRow && !isSelected && !isRowActive
|
|
5202
5237
|
}, safeExtraRowClass),
|
|
5203
5238
|
onClick: function onClick() {
|
|
5204
|
-
return onRowClick === null || onRowClick === void 0 ? void 0 : onRowClick(
|
|
5239
|
+
return onRowClick === null || onRowClick === void 0 ? void 0 : onRowClick(effectiveRow, globalIndex);
|
|
5205
5240
|
},
|
|
5206
5241
|
children: [hasDetailsColumn && jsx("td", {
|
|
5207
5242
|
className: "px-4 py-4 text-sm",
|
|
@@ -5209,7 +5244,7 @@ function TableRow(_ref) {
|
|
|
5209
5244
|
type: "button",
|
|
5210
5245
|
onClick: function onClick(e) {
|
|
5211
5246
|
e.stopPropagation();
|
|
5212
|
-
toggleExpandRow(
|
|
5247
|
+
toggleExpandRow(effectiveRow, rowIndexInPage);
|
|
5213
5248
|
},
|
|
5214
5249
|
"aria-expanded": isExpanded,
|
|
5215
5250
|
"aria-label": isExpanded ? "Collapse row details" : "Expand row details",
|
|
@@ -5229,12 +5264,12 @@ function TableRow(_ref) {
|
|
|
5229
5264
|
className: "rounded border-gray-300",
|
|
5230
5265
|
checked: isSelected,
|
|
5231
5266
|
onChange: function onChange() {
|
|
5232
|
-
return handleSelectRow(
|
|
5267
|
+
return handleSelectRow(effectiveRow, rowIndexInPage);
|
|
5233
5268
|
}
|
|
5234
5269
|
})
|
|
5235
5270
|
}), visibleColumns.map(function (column, columnIndex) {
|
|
5236
5271
|
var extraCellClass = typeof cellClass === "function" ? cellClass({
|
|
5237
|
-
row:
|
|
5272
|
+
row: effectiveRow,
|
|
5238
5273
|
rowIndex: globalIndex,
|
|
5239
5274
|
column: column,
|
|
5240
5275
|
columnIndex: columnIndex
|
|
@@ -5253,15 +5288,15 @@ function TableRow(_ref) {
|
|
|
5253
5288
|
}, safeExtraCellClass),
|
|
5254
5289
|
onClick: function onClick(e) {
|
|
5255
5290
|
if (interactive && onCellClick) {
|
|
5256
|
-
onCellClick(rowKey, column.key,
|
|
5291
|
+
onCellClick(rowKey, column.key, effectiveRow, column, globalIndex);
|
|
5257
5292
|
}
|
|
5258
5293
|
},
|
|
5259
5294
|
onDoubleClick: function onDoubleClick(e) {
|
|
5260
5295
|
if (interactive && onCellDoubleClick && column.editable !== false) {
|
|
5261
|
-
onCellDoubleClick(rowKey, column.key,
|
|
5296
|
+
onCellDoubleClick(rowKey, column.key, effectiveRow, column, globalIndex);
|
|
5262
5297
|
}
|
|
5263
5298
|
},
|
|
5264
|
-
children: isCellEditing && renderInteractiveCellInput ? renderInteractiveCellInput(column,
|
|
5299
|
+
children: isCellEditing && renderInteractiveCellInput ? renderInteractiveCellInput(column, effectiveRow, globalIndex, rowKey) : renderCell(column, effectiveRow, globalIndex)
|
|
5265
5300
|
}, column.key);
|
|
5266
5301
|
}), jsx("td", {
|
|
5267
5302
|
className: "px-4 py-4"
|
|
@@ -5532,6 +5567,7 @@ function FieldInput(_ref) {
|
|
|
5532
5567
|
var column = _ref.column,
|
|
5533
5568
|
value = _ref.value,
|
|
5534
5569
|
_onChange = _ref.onChange,
|
|
5570
|
+
onKeyDown = _ref.onKeyDown,
|
|
5535
5571
|
_ref$isEditing = _ref.isEditing,
|
|
5536
5572
|
isEditing = _ref$isEditing === void 0 ? true : _ref$isEditing,
|
|
5537
5573
|
_ref$row = _ref.row,
|
|
@@ -5544,14 +5580,22 @@ function FieldInput(_ref) {
|
|
|
5544
5580
|
autoFocus = _ref$autoFocus === void 0 ? false : _ref$autoFocus;
|
|
5545
5581
|
var currentValue = value !== null && value !== void 0 ? value : "";
|
|
5546
5582
|
var inputType = column.type || column.inputType || "text";
|
|
5583
|
+
var stopProp = function stopProp(e) {
|
|
5584
|
+
e.stopPropagation();
|
|
5585
|
+
};
|
|
5547
5586
|
// Check if custom onRender renderer is provided on the column definition
|
|
5548
5587
|
if (typeof column.onRender === "function") {
|
|
5549
|
-
return
|
|
5550
|
-
|
|
5551
|
-
|
|
5552
|
-
|
|
5553
|
-
|
|
5554
|
-
|
|
5588
|
+
return jsx("div", {
|
|
5589
|
+
onClick: stopProp,
|
|
5590
|
+
onMouseDown: stopProp,
|
|
5591
|
+
children: column.onRender(row, rowIndex, column, {
|
|
5592
|
+
value: currentValue,
|
|
5593
|
+
onChange: function onChange(newVal) {
|
|
5594
|
+
return _onChange === null || _onChange === void 0 ? void 0 : _onChange(newVal);
|
|
5595
|
+
},
|
|
5596
|
+
onKeyDown: onKeyDown,
|
|
5597
|
+
isEditing: isEditing
|
|
5598
|
+
})
|
|
5555
5599
|
});
|
|
5556
5600
|
}
|
|
5557
5601
|
// Textarea / Longtext
|
|
@@ -5563,6 +5607,9 @@ function FieldInput(_ref) {
|
|
|
5563
5607
|
onChange: function onChange(e) {
|
|
5564
5608
|
return _onChange === null || _onChange === void 0 ? void 0 : _onChange(e.target.value);
|
|
5565
5609
|
},
|
|
5610
|
+
onKeyDown: onKeyDown,
|
|
5611
|
+
onClick: stopProp,
|
|
5612
|
+
onMouseDown: stopProp,
|
|
5566
5613
|
placeholder: "Enter ".concat(column.label || column.key, "..."),
|
|
5567
5614
|
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)
|
|
5568
5615
|
});
|
|
@@ -5581,6 +5628,9 @@ function FieldInput(_ref) {
|
|
|
5581
5628
|
onChange: function onChange(e) {
|
|
5582
5629
|
return _onChange === null || _onChange === void 0 ? void 0 : _onChange(e.target.value);
|
|
5583
5630
|
},
|
|
5631
|
+
onKeyDown: onKeyDown,
|
|
5632
|
+
onClick: stopProp,
|
|
5633
|
+
onMouseDown: stopProp,
|
|
5584
5634
|
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),
|
|
5585
5635
|
children: [jsxs("option", {
|
|
5586
5636
|
value: "",
|
|
@@ -5598,6 +5648,8 @@ function FieldInput(_ref) {
|
|
|
5598
5648
|
var checked = Boolean(currentValue);
|
|
5599
5649
|
return jsx("div", {
|
|
5600
5650
|
className: cn$1("flex items-center justify-center py-1", className),
|
|
5651
|
+
onClick: stopProp,
|
|
5652
|
+
onMouseDown: stopProp,
|
|
5601
5653
|
children: jsx("input", {
|
|
5602
5654
|
type: "checkbox",
|
|
5603
5655
|
autoFocus: autoFocus,
|
|
@@ -5605,6 +5657,7 @@ function FieldInput(_ref) {
|
|
|
5605
5657
|
onChange: function onChange(e) {
|
|
5606
5658
|
return _onChange === null || _onChange === void 0 ? void 0 : _onChange(e.target.checked);
|
|
5607
5659
|
},
|
|
5660
|
+
onKeyDown: onKeyDown,
|
|
5608
5661
|
className: "w-4 h-4 text-primary-600 border-gray-300 rounded focus:ring-primary-500 cursor-pointer"
|
|
5609
5662
|
})
|
|
5610
5663
|
});
|
|
@@ -5618,6 +5671,9 @@ function FieldInput(_ref) {
|
|
|
5618
5671
|
onChange: function onChange(e) {
|
|
5619
5672
|
return _onChange === null || _onChange === void 0 ? void 0 : _onChange(e.target.value);
|
|
5620
5673
|
},
|
|
5674
|
+
onKeyDown: onKeyDown,
|
|
5675
|
+
onClick: stopProp,
|
|
5676
|
+
onMouseDown: stopProp,
|
|
5621
5677
|
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)
|
|
5622
5678
|
});
|
|
5623
5679
|
}
|
|
@@ -5630,6 +5686,9 @@ function FieldInput(_ref) {
|
|
|
5630
5686
|
onChange: function onChange(e) {
|
|
5631
5687
|
return _onChange === null || _onChange === void 0 ? void 0 : _onChange(e.target.value === "" ? "" : Number(e.target.value));
|
|
5632
5688
|
},
|
|
5689
|
+
onKeyDown: onKeyDown,
|
|
5690
|
+
onClick: stopProp,
|
|
5691
|
+
onMouseDown: stopProp,
|
|
5633
5692
|
placeholder: "Enter ".concat(column.label || column.key, "..."),
|
|
5634
5693
|
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)
|
|
5635
5694
|
});
|
|
@@ -5642,6 +5701,9 @@ function FieldInput(_ref) {
|
|
|
5642
5701
|
onChange: function onChange(e) {
|
|
5643
5702
|
return _onChange === null || _onChange === void 0 ? void 0 : _onChange(e.target.value);
|
|
5644
5703
|
},
|
|
5704
|
+
onKeyDown: onKeyDown,
|
|
5705
|
+
onClick: stopProp,
|
|
5706
|
+
onMouseDown: stopProp,
|
|
5645
5707
|
placeholder: "Enter ".concat(column.label || column.key, "..."),
|
|
5646
5708
|
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)
|
|
5647
5709
|
});
|
|
@@ -6116,13 +6178,24 @@ var Table = function Table(_ref) {
|
|
|
6116
6178
|
}
|
|
6117
6179
|
}, _callee, null, [[2, 5, 6, 7]]);
|
|
6118
6180
|
})), [isDirty, isSaving, tableData, dirtyEdits, newRows, onSave]);
|
|
6181
|
+
var handleClearChanges = useCallback(function () {
|
|
6182
|
+
setPendingEdits({});
|
|
6183
|
+
setNewRows([]);
|
|
6184
|
+
setEditingCell(null);
|
|
6185
|
+
setActiveCell(null);
|
|
6186
|
+
}, []);
|
|
6119
6187
|
var handleCellClick = useCallback(function (rowKey, colKey, row, column, globalIndex) {
|
|
6120
6188
|
setActiveCell({
|
|
6121
6189
|
rowKey: rowKey,
|
|
6122
6190
|
colKey: colKey,
|
|
6123
6191
|
rowIndex: globalIndex
|
|
6124
6192
|
});
|
|
6125
|
-
setEditingCell(
|
|
6193
|
+
setEditingCell(function (prev) {
|
|
6194
|
+
if (prev && prev.rowKey === rowKey && prev.colKey === colKey) {
|
|
6195
|
+
return prev;
|
|
6196
|
+
}
|
|
6197
|
+
return null;
|
|
6198
|
+
});
|
|
6126
6199
|
}, []);
|
|
6127
6200
|
var handleCellDoubleClick = useCallback(function (rowKey, colKey, row, column, globalIndex) {
|
|
6128
6201
|
setActiveCell({
|
|
@@ -6138,21 +6211,6 @@ var Table = function Table(_ref) {
|
|
|
6138
6211
|
});
|
|
6139
6212
|
}
|
|
6140
6213
|
}, []);
|
|
6141
|
-
var renderInteractiveCellInput = useCallback(function (column, row, globalIndex, rowKey) {
|
|
6142
|
-
var _row$column$key;
|
|
6143
|
-
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 : "";
|
|
6144
|
-
return jsx(FieldInput, {
|
|
6145
|
-
column: column,
|
|
6146
|
-
value: value,
|
|
6147
|
-
onChange: function onChange(newVal) {
|
|
6148
|
-
return handleCellValueChange(rowKey, column.key, newVal);
|
|
6149
|
-
},
|
|
6150
|
-
isEditing: true,
|
|
6151
|
-
row: row,
|
|
6152
|
-
rowIndex: globalIndex,
|
|
6153
|
-
autoFocus: (editingCell === null || editingCell === void 0 ? void 0 : editingCell.rowKey) === rowKey && (editingCell === null || editingCell === void 0 ? void 0 : editingCell.colKey) === column.key
|
|
6154
|
-
});
|
|
6155
|
-
}, [pendingEdits, handleCellValueChange, editingCell]);
|
|
6156
6214
|
useClickOutside([tableContainerRef], interactive && Boolean(editingCell), function () {
|
|
6157
6215
|
setEditingCell(null);
|
|
6158
6216
|
});
|
|
@@ -6303,6 +6361,129 @@ var Table = function Table(_ref) {
|
|
|
6303
6361
|
};
|
|
6304
6362
|
});
|
|
6305
6363
|
}, [limitOptions]);
|
|
6364
|
+
var handleTableKeyDown = useCallback(function (e) {
|
|
6365
|
+
if (!interactive) return;
|
|
6366
|
+
var key = e.key,
|
|
6367
|
+
shiftKey = e.shiftKey;
|
|
6368
|
+
// Escape: stop editing
|
|
6369
|
+
if (key === "Escape") {
|
|
6370
|
+
if (editingCell) {
|
|
6371
|
+
e.preventDefault();
|
|
6372
|
+
setEditingCell(null);
|
|
6373
|
+
}
|
|
6374
|
+
return;
|
|
6375
|
+
}
|
|
6376
|
+
// Enter: Save changes only when there are modified changes (isDirty)
|
|
6377
|
+
if (key === "Enter") {
|
|
6378
|
+
var _e$target;
|
|
6379
|
+
if (((_e$target = e.target) === null || _e$target === void 0 ? void 0 : _e$target.tagName) === "TEXTAREA" && shiftKey) {
|
|
6380
|
+
return;
|
|
6381
|
+
}
|
|
6382
|
+
if (isDirty) {
|
|
6383
|
+
e.preventDefault();
|
|
6384
|
+
setEditingCell(null);
|
|
6385
|
+
if (isValid && !isSaving) {
|
|
6386
|
+
handleSave();
|
|
6387
|
+
}
|
|
6388
|
+
}
|
|
6389
|
+
return;
|
|
6390
|
+
}
|
|
6391
|
+
var currentCell = activeCell || editingCell;
|
|
6392
|
+
if (!currentCell) return;
|
|
6393
|
+
var allRows = [].concat(_toConsumableArray$1(paginatedData), _toConsumableArray$1(newRows));
|
|
6394
|
+
if (allRows.length === 0 || visibleColumns.length === 0) return;
|
|
6395
|
+
var rIdx = allRows.findIndex(function (r, idx) {
|
|
6396
|
+
var rKey = r._key || getRowKey(r, startIndex + idx);
|
|
6397
|
+
return rKey === currentCell.rowKey;
|
|
6398
|
+
});
|
|
6399
|
+
var cIdx = visibleColumns.findIndex(function (c) {
|
|
6400
|
+
return c.key === currentCell.colKey;
|
|
6401
|
+
});
|
|
6402
|
+
if (rIdx === -1 || cIdx === -1) return;
|
|
6403
|
+
var nextRIdx = rIdx;
|
|
6404
|
+
var nextCIdx = cIdx;
|
|
6405
|
+
if (key === "Tab") {
|
|
6406
|
+
e.preventDefault();
|
|
6407
|
+
if (shiftKey) {
|
|
6408
|
+
if (cIdx > 0) {
|
|
6409
|
+
nextCIdx = cIdx - 1;
|
|
6410
|
+
} else if (rIdx > 0) {
|
|
6411
|
+
nextRIdx = rIdx - 1;
|
|
6412
|
+
nextCIdx = visibleColumns.length - 1;
|
|
6413
|
+
}
|
|
6414
|
+
} else {
|
|
6415
|
+
if (cIdx < visibleColumns.length - 1) {
|
|
6416
|
+
nextCIdx = cIdx + 1;
|
|
6417
|
+
} else if (rIdx < allRows.length - 1) {
|
|
6418
|
+
nextRIdx = rIdx + 1;
|
|
6419
|
+
nextCIdx = 0;
|
|
6420
|
+
}
|
|
6421
|
+
}
|
|
6422
|
+
} else if (key === "ArrowRight") {
|
|
6423
|
+
var _e$target2, _e$target$value;
|
|
6424
|
+
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) {
|
|
6425
|
+
return;
|
|
6426
|
+
}
|
|
6427
|
+
if (cIdx < visibleColumns.length - 1) {
|
|
6428
|
+
e.preventDefault();
|
|
6429
|
+
nextCIdx = cIdx + 1;
|
|
6430
|
+
}
|
|
6431
|
+
} else if (key === "ArrowLeft") {
|
|
6432
|
+
var _e$target3;
|
|
6433
|
+
if (editingCell && ((_e$target3 = e.target) === null || _e$target3 === void 0 ? void 0 : _e$target3.selectionStart) !== undefined && e.target.selectionStart > 0) {
|
|
6434
|
+
return;
|
|
6435
|
+
}
|
|
6436
|
+
if (cIdx > 0) {
|
|
6437
|
+
e.preventDefault();
|
|
6438
|
+
nextCIdx = cIdx - 1;
|
|
6439
|
+
}
|
|
6440
|
+
} else if (key === "ArrowDown") {
|
|
6441
|
+
var _e$target4;
|
|
6442
|
+
if (((_e$target4 = e.target) === null || _e$target4 === void 0 ? void 0 : _e$target4.tagName) === "SELECT") return;
|
|
6443
|
+
if (rIdx < allRows.length - 1) {
|
|
6444
|
+
e.preventDefault();
|
|
6445
|
+
nextRIdx = rIdx + 1;
|
|
6446
|
+
}
|
|
6447
|
+
} else if (key === "ArrowUp") {
|
|
6448
|
+
var _e$target5;
|
|
6449
|
+
if (((_e$target5 = e.target) === null || _e$target5 === void 0 ? void 0 : _e$target5.tagName) === "SELECT") return;
|
|
6450
|
+
if (rIdx > 0) {
|
|
6451
|
+
e.preventDefault();
|
|
6452
|
+
nextRIdx = rIdx - 1;
|
|
6453
|
+
}
|
|
6454
|
+
} else {
|
|
6455
|
+
return;
|
|
6456
|
+
}
|
|
6457
|
+
var targetRow = allRows[nextRIdx];
|
|
6458
|
+
var targetCol = visibleColumns[nextCIdx];
|
|
6459
|
+
if (!targetRow || !targetCol) return;
|
|
6460
|
+
var targetRowKey = targetRow._key || getRowKey(targetRow, startIndex + nextRIdx);
|
|
6461
|
+
var nextCellObj = {
|
|
6462
|
+
rowKey: targetRowKey,
|
|
6463
|
+
colKey: targetCol.key,
|
|
6464
|
+
rowIndex: startIndex + nextRIdx
|
|
6465
|
+
};
|
|
6466
|
+
setActiveCell(nextCellObj);
|
|
6467
|
+
if (editingCell && targetCol.editable !== false) {
|
|
6468
|
+
setEditingCell(nextCellObj);
|
|
6469
|
+
}
|
|
6470
|
+
}, [interactive, editingCell, activeCell, isDirty, isValid, isSaving, handleSave, paginatedData, newRows, visibleColumns, startIndex]);
|
|
6471
|
+
var renderInteractiveCellInput = useCallback(function (column, row, globalIndex, rowKey) {
|
|
6472
|
+
var _row$column$key;
|
|
6473
|
+
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 : "";
|
|
6474
|
+
return jsx(FieldInput, {
|
|
6475
|
+
column: column,
|
|
6476
|
+
value: value,
|
|
6477
|
+
onChange: function onChange(newVal) {
|
|
6478
|
+
return handleCellValueChange(rowKey, column.key, newVal);
|
|
6479
|
+
},
|
|
6480
|
+
onKeyDown: handleTableKeyDown,
|
|
6481
|
+
isEditing: true,
|
|
6482
|
+
row: row,
|
|
6483
|
+
rowIndex: globalIndex,
|
|
6484
|
+
autoFocus: (editingCell === null || editingCell === void 0 ? void 0 : editingCell.rowKey) === rowKey && (editingCell === null || editingCell === void 0 ? void 0 : editingCell.colKey) === column.key
|
|
6485
|
+
});
|
|
6486
|
+
}, [pendingEdits, handleCellValueChange, handleTableKeyDown, editingCell]);
|
|
6306
6487
|
// Callbacks
|
|
6307
6488
|
var toggleColumnVisibility = useCallback(function (key) {
|
|
6308
6489
|
setColumnsState(function (prev) {
|
|
@@ -6525,11 +6706,14 @@ var Table = function Table(_ref) {
|
|
|
6525
6706
|
onCellClick: handleCellClick,
|
|
6526
6707
|
onCellDoubleClick: handleCellDoubleClick,
|
|
6527
6708
|
renderInteractiveCellInput: renderInteractiveCellInput,
|
|
6528
|
-
invalidCellSet: invalidCellSet
|
|
6709
|
+
invalidCellSet: invalidCellSet,
|
|
6710
|
+
pendingEdits: pendingEdits
|
|
6529
6711
|
};
|
|
6530
6712
|
return jsxs("div", {
|
|
6531
6713
|
ref: tableContainerRef,
|
|
6532
|
-
|
|
6714
|
+
tabIndex: interactive ? 0 : undefined,
|
|
6715
|
+
onKeyDown: handleTableKeyDown,
|
|
6716
|
+
className: cn$1("w-full border rounded-lg md:rounded-md outline-none focus:ring-1 focus:ring-primary-400", className),
|
|
6533
6717
|
children: [TheadComponent && typeof TheadComponent === "function" ? jsx(TheadComponent, {
|
|
6534
6718
|
columns: columnsState,
|
|
6535
6719
|
data: filteredData
|
|
@@ -6576,15 +6760,26 @@ var Table = function Table(_ref) {
|
|
|
6576
6760
|
onClick: handleSave,
|
|
6577
6761
|
disabled: !isValid || isSaving,
|
|
6578
6762
|
title: !isValid ? "Cannot save: ".concat(((_validationErrors$ = validationErrors[0]) === null || _validationErrors$ === void 0 ? void 0 : _validationErrors$.message) || "Validation failed") : "Save changes",
|
|
6579
|
-
className: cn$1("px-4 py-2 font-medium rounded-lg text-sm flex items-center gap-2 transition-all shadow-sm", isValid ? "bg-
|
|
6763
|
+
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"),
|
|
6580
6764
|
children: [jsx(Save, {
|
|
6581
6765
|
className: "w-4 h-4"
|
|
6582
6766
|
}), jsx("span", {
|
|
6583
6767
|
children: isSaving ? "Saving..." : "Save Changes"
|
|
6584
6768
|
}), pendingCount > 0 && jsx("span", {
|
|
6585
|
-
className: cn$1("ml-1 px-2 py-0.5 text-xs rounded-full font-bold", isValid ? "bg-
|
|
6769
|
+
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"),
|
|
6586
6770
|
children: pendingCount
|
|
6587
6771
|
})]
|
|
6772
|
+
}), jsxs("button", {
|
|
6773
|
+
type: "button",
|
|
6774
|
+
onClick: handleClearChanges,
|
|
6775
|
+
disabled: isSaving,
|
|
6776
|
+
title: "Discard all pending modifications",
|
|
6777
|
+
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",
|
|
6778
|
+
children: [jsx(X, {
|
|
6779
|
+
className: "w-4 h-4 text-primary-600"
|
|
6780
|
+
}), jsx("span", {
|
|
6781
|
+
children: "Clear Changes"
|
|
6782
|
+
})]
|
|
6588
6783
|
}), !isValid && validationErrors.length > 0 && jsxs("div", {
|
|
6589
6784
|
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",
|
|
6590
6785
|
children: [jsx(AlertCircle, {
|
|
@@ -12637,7 +12832,7 @@ var DatePicker = /*#__PURE__*/React__default.forwardRef(function (_ref, forwarde
|
|
|
12637
12832
|
});
|
|
12638
12833
|
});
|
|
12639
12834
|
|
|
12640
|
-
var _excluded$v = ["id", "name", "checked", "defaultChecked", "onChange", "disabled", "size", "trackClass", "thumbClass", "className", "topLabel", "bottomLabel", "rightLabel", "leftLabel", "ariaLabel"];
|
|
12835
|
+
var _excluded$v = ["id", "name", "checked", "defaultChecked", "onChange", "disabled", "size", "color", "trackClass", "thumbClass", "className", "topLabel", "bottomLabel", "rightLabel", "leftLabel", "ariaLabel"];
|
|
12641
12836
|
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; }
|
|
12642
12837
|
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; }
|
|
12643
12838
|
/**
|
|
@@ -12669,6 +12864,52 @@ var SIZE_MAP$2 = {
|
|
|
12669
12864
|
knobTranslate: "translate-x-6"
|
|
12670
12865
|
}
|
|
12671
12866
|
};
|
|
12867
|
+
var COLOR_PRESETS$1 = {
|
|
12868
|
+
primary: {
|
|
12869
|
+
bg: "bg-primary-600",
|
|
12870
|
+
ring: "focus-visible:ring-primary-300"
|
|
12871
|
+
},
|
|
12872
|
+
secondary: {
|
|
12873
|
+
bg: "bg-secondary-600",
|
|
12874
|
+
ring: "focus-visible:ring-secondary-300"
|
|
12875
|
+
},
|
|
12876
|
+
success: {
|
|
12877
|
+
bg: "bg-success-600",
|
|
12878
|
+
ring: "focus-visible:ring-success-300"
|
|
12879
|
+
},
|
|
12880
|
+
green: {
|
|
12881
|
+
bg: "bg-success-600",
|
|
12882
|
+
ring: "focus-visible:ring-success-300"
|
|
12883
|
+
},
|
|
12884
|
+
error: {
|
|
12885
|
+
bg: "bg-error-600",
|
|
12886
|
+
ring: "focus-visible:ring-error-300"
|
|
12887
|
+
},
|
|
12888
|
+
danger: {
|
|
12889
|
+
bg: "bg-error-600",
|
|
12890
|
+
ring: "focus-visible:ring-error-300"
|
|
12891
|
+
},
|
|
12892
|
+
red: {
|
|
12893
|
+
bg: "bg-error-600",
|
|
12894
|
+
ring: "focus-visible:ring-error-300"
|
|
12895
|
+
},
|
|
12896
|
+
warning: {
|
|
12897
|
+
bg: "bg-warning-600",
|
|
12898
|
+
ring: "focus-visible:ring-warning-300"
|
|
12899
|
+
},
|
|
12900
|
+
blue: {
|
|
12901
|
+
bg: "bg-blue-600",
|
|
12902
|
+
ring: "focus-visible:ring-blue-300"
|
|
12903
|
+
},
|
|
12904
|
+
indigo: {
|
|
12905
|
+
bg: "bg-indigo-600",
|
|
12906
|
+
ring: "focus-visible:ring-indigo-300"
|
|
12907
|
+
},
|
|
12908
|
+
purple: {
|
|
12909
|
+
bg: "bg-purple-600",
|
|
12910
|
+
ring: "focus-visible:ring-purple-300"
|
|
12911
|
+
}
|
|
12912
|
+
};
|
|
12672
12913
|
var Switch = /*#__PURE__*/forwardRef(function Switch(props, ref) {
|
|
12673
12914
|
var id = props.id,
|
|
12674
12915
|
name = props.name,
|
|
@@ -12680,6 +12921,8 @@ var Switch = /*#__PURE__*/forwardRef(function Switch(props, ref) {
|
|
|
12680
12921
|
disabled = _props$disabled === void 0 ? false : _props$disabled,
|
|
12681
12922
|
_props$size = props.size,
|
|
12682
12923
|
size = _props$size === void 0 ? "md" : _props$size,
|
|
12924
|
+
_props$color = props.color,
|
|
12925
|
+
color = _props$color === void 0 ? "primary" : _props$color,
|
|
12683
12926
|
trackClass = props.trackClass,
|
|
12684
12927
|
thumbClass = props.thumbClass,
|
|
12685
12928
|
_props$className = props.className,
|
|
@@ -12715,16 +12958,18 @@ var Switch = /*#__PURE__*/forwardRef(function Switch(props, ref) {
|
|
|
12715
12958
|
}
|
|
12716
12959
|
};
|
|
12717
12960
|
var sizeStuff = SIZE_MAP$2[size] || SIZE_MAP$2.md;
|
|
12961
|
+
var isPreset = COLOR_PRESETS$1[color];
|
|
12718
12962
|
// Classes for the track (we use inline style for arbitrary trackClass when ON)
|
|
12719
|
-
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
|
|
12963
|
+
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
|
|
12720
12964
|
);
|
|
12721
12965
|
// Knob classes (thumb)
|
|
12722
12966
|
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
|
|
12723
12967
|
);
|
|
12724
12968
|
var knobTransform = isOn ? sizeStuff.knobTranslate : "translate-x-1";
|
|
12725
|
-
var
|
|
12726
|
-
var
|
|
12727
|
-
|
|
12969
|
+
var ringClass = isPreset ? isPreset.ring : "focus-visible:ring-primary-300";
|
|
12970
|
+
var focusClasses = disabled ? "" : "focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 ".concat(ringClass);
|
|
12971
|
+
var trackStyle = isOn && !trackClass && !isPreset ? {
|
|
12972
|
+
backgroundColor: color
|
|
12728
12973
|
} : undefined; // Fallback to default trackClass if trackClass is not a class
|
|
12729
12974
|
var accessibleLabel = ariaLabel || rightLabel || leftLabel || topLabel || bottomLabel || "Toggle";
|
|
12730
12975
|
var containerIsColumn = Boolean(topLabel || bottomLabel);
|
|
@@ -13439,7 +13684,7 @@ var Accordion = /*#__PURE__*/forwardRef(function Accordion(_ref, ref) {
|
|
|
13439
13684
|
});
|
|
13440
13685
|
Accordion.displayName = "Accordion";
|
|
13441
13686
|
|
|
13442
|
-
var _excluded$s = ["id", "name", "label", "checked", "defaultChecked", "onChange", "disabled", "required", "className", "size", "labelPosition", "value", "ariaLabel", "variant", "indeterminate", "borderColor", "iconClass", "checkedClass"];
|
|
13687
|
+
var _excluded$s = ["id", "name", "label", "checked", "defaultChecked", "onChange", "disabled", "required", "className", "size", "labelPosition", "value", "ariaLabel", "variant", "indeterminate", "borderColor", "color", "iconClass", "checkedClass"];
|
|
13443
13688
|
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; }
|
|
13444
13689
|
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; }
|
|
13445
13690
|
var SIZE_CLASSES = {
|
|
@@ -13459,6 +13704,52 @@ var SIZE_CLASSES = {
|
|
|
13459
13704
|
icon: "w-4 h-4"
|
|
13460
13705
|
}
|
|
13461
13706
|
};
|
|
13707
|
+
var COLOR_PRESETS = {
|
|
13708
|
+
primary: {
|
|
13709
|
+
checked: "peer-checked:bg-primary-600 peer-checked:border-primary-600 peer-checked:text-white",
|
|
13710
|
+
ring: "peer-focus:ring-primary-300"
|
|
13711
|
+
},
|
|
13712
|
+
secondary: {
|
|
13713
|
+
checked: "peer-checked:bg-secondary-600 peer-checked:border-secondary-600 peer-checked:text-white",
|
|
13714
|
+
ring: "peer-focus:ring-secondary-300"
|
|
13715
|
+
},
|
|
13716
|
+
success: {
|
|
13717
|
+
checked: "peer-checked:bg-success-600 peer-checked:border-success-600 peer-checked:text-white",
|
|
13718
|
+
ring: "peer-focus:ring-success-300"
|
|
13719
|
+
},
|
|
13720
|
+
green: {
|
|
13721
|
+
checked: "peer-checked:bg-success-600 peer-checked:border-success-600 peer-checked:text-white",
|
|
13722
|
+
ring: "peer-focus:ring-success-300"
|
|
13723
|
+
},
|
|
13724
|
+
error: {
|
|
13725
|
+
checked: "peer-checked:bg-error-600 peer-checked:border-error-600 peer-checked:text-white",
|
|
13726
|
+
ring: "peer-focus:ring-error-300"
|
|
13727
|
+
},
|
|
13728
|
+
danger: {
|
|
13729
|
+
checked: "peer-checked:bg-error-600 peer-checked:border-error-600 peer-checked:text-white",
|
|
13730
|
+
ring: "peer-focus:ring-error-300"
|
|
13731
|
+
},
|
|
13732
|
+
red: {
|
|
13733
|
+
checked: "peer-checked:bg-error-600 peer-checked:border-error-600 peer-checked:text-white",
|
|
13734
|
+
ring: "peer-focus:ring-error-300"
|
|
13735
|
+
},
|
|
13736
|
+
warning: {
|
|
13737
|
+
checked: "peer-checked:bg-warning-600 peer-checked:border-warning-600 peer-checked:text-white",
|
|
13738
|
+
ring: "peer-focus:ring-warning-300"
|
|
13739
|
+
},
|
|
13740
|
+
blue: {
|
|
13741
|
+
checked: "peer-checked:bg-blue-600 peer-checked:border-blue-600 peer-checked:text-white",
|
|
13742
|
+
ring: "peer-focus:ring-blue-300"
|
|
13743
|
+
},
|
|
13744
|
+
indigo: {
|
|
13745
|
+
checked: "peer-checked:bg-indigo-600 peer-checked:border-indigo-600 peer-checked:text-white",
|
|
13746
|
+
ring: "peer-focus:ring-indigo-300"
|
|
13747
|
+
},
|
|
13748
|
+
purple: {
|
|
13749
|
+
checked: "peer-checked:bg-purple-600 peer-checked:border-purple-600 peer-checked:text-white",
|
|
13750
|
+
ring: "peer-focus:ring-purple-300"
|
|
13751
|
+
}
|
|
13752
|
+
};
|
|
13462
13753
|
var Checkbox = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
13463
13754
|
var _props$wrapperProps;
|
|
13464
13755
|
var id = _ref.id,
|
|
@@ -13484,6 +13775,8 @@ var Checkbox = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
13484
13775
|
indeterminate = _ref$indeterminate === void 0 ? false : _ref$indeterminate,
|
|
13485
13776
|
_ref$borderColor = _ref.borderColor,
|
|
13486
13777
|
borderColor = _ref$borderColor === void 0 ? "#ccc" : _ref$borderColor,
|
|
13778
|
+
_ref$color = _ref.color,
|
|
13779
|
+
color = _ref$color === void 0 ? "primary" : _ref$color,
|
|
13487
13780
|
iconClass = _ref.iconClass,
|
|
13488
13781
|
checkedClass = _ref.checkedClass,
|
|
13489
13782
|
props = _objectWithoutProperties$1(_ref, _excluded$s);
|
|
@@ -13517,6 +13810,13 @@ var Checkbox = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
13517
13810
|
var iconBase = "pointer-events-none transform transition-all duration-150 ease-out";
|
|
13518
13811
|
var iconShown = "opacity-100 scale-100";
|
|
13519
13812
|
var iconHidden = "opacity-0 scale-75";
|
|
13813
|
+
var isPreset = COLOR_PRESETS[color];
|
|
13814
|
+
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";
|
|
13815
|
+
var customColorStyle = currentChecked && !isPreset && !checkedClass ? {
|
|
13816
|
+
backgroundColor: color,
|
|
13817
|
+
borderColor: color,
|
|
13818
|
+
color: "#ffffff"
|
|
13819
|
+
} : {};
|
|
13520
13820
|
return jsxs("div", _objectSpread$w(_objectSpread$w({
|
|
13521
13821
|
className: wrapperCls
|
|
13522
13822
|
}, (_props$wrapperProps = props === null || props === void 0 ? void 0 : props.wrapperProps) !== null && _props$wrapperProps !== void 0 ? _props$wrapperProps : {}), {}, {
|
|
@@ -13527,7 +13827,7 @@ var Checkbox = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
13527
13827
|
}), jsxs("div", {
|
|
13528
13828
|
className: boxOuterCls,
|
|
13529
13829
|
style: disabled ? {} : {
|
|
13530
|
-
borderColor: borderColor
|
|
13830
|
+
borderColor: currentChecked && (isPreset || customColorStyle.borderColor) ? undefined : borderColor
|
|
13531
13831
|
},
|
|
13532
13832
|
"aria-disabled": disabled,
|
|
13533
13833
|
children: [jsx("input", _objectSpread$w({
|
|
@@ -13546,11 +13846,11 @@ var Checkbox = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
13546
13846
|
"aria-label": ariaLabel,
|
|
13547
13847
|
"aria-checked": Boolean(currentChecked)
|
|
13548
13848
|
}, props)), jsx("div", {
|
|
13549
|
-
className: "pointer-events-none z-0 flex items-center justify-center rounded-sm w-full h-full transition-colors duration-150 ease-in-out " + "
|
|
13849
|
+
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 : ""),
|
|
13550
13850
|
style: currentChecked && checkedClass ? {
|
|
13551
13851
|
backgroundColor: "",
|
|
13552
13852
|
borderColor: ""
|
|
13553
|
-
} :
|
|
13853
|
+
} : customColorStyle,
|
|
13554
13854
|
"aria-hidden": "true",
|
|
13555
13855
|
children: jsx(Check, {
|
|
13556
13856
|
className: "".concat(sizeClass.icon, " ").concat(iconBase, " ").concat(currentChecked ? iconShown : iconHidden, " ").concat(iconClass || ""),
|
|
@@ -18927,13 +19227,57 @@ Dialog.Footer = function (_ref6) {
|
|
|
18927
19227
|
}));
|
|
18928
19228
|
};
|
|
18929
19229
|
|
|
18930
|
-
var _excluded$7 = ["id", "title", "message", "type", "duration", "onClose", "position"];
|
|
19230
|
+
var _excluded$7 = ["id", "title", "message", "description", "type", "duration", "onClose", "position", "statusIcon", "actions", "color", "footerNote", "showFooterNote", "portal", "className"];
|
|
18931
19231
|
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; }
|
|
18932
19232
|
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; }
|
|
18933
|
-
var
|
|
19233
|
+
var STATUS_CONFIG = {
|
|
19234
|
+
success: {
|
|
19235
|
+
icon: CheckCircle2,
|
|
19236
|
+
iconClass: 'text-emerald-500 dark:text-emerald-400',
|
|
19237
|
+
progressClass: 'bg-emerald-500 dark:bg-emerald-400'
|
|
19238
|
+
},
|
|
19239
|
+
error: {
|
|
19240
|
+
icon: XCircle,
|
|
19241
|
+
iconClass: 'text-rose-500 dark:text-rose-400',
|
|
19242
|
+
progressClass: 'bg-rose-500 dark:bg-rose-400'
|
|
19243
|
+
},
|
|
19244
|
+
warning: {
|
|
19245
|
+
icon: AlertTriangle,
|
|
19246
|
+
iconClass: 'text-amber-500 dark:text-amber-400',
|
|
19247
|
+
progressClass: 'bg-amber-500 dark:bg-amber-400'
|
|
19248
|
+
},
|
|
19249
|
+
info: {
|
|
19250
|
+
icon: Info,
|
|
19251
|
+
iconClass: 'text-sky-500 dark:text-sky-400',
|
|
19252
|
+
progressClass: 'bg-sky-500 dark:bg-sky-400'
|
|
19253
|
+
},
|
|
19254
|
+
"default": {
|
|
19255
|
+
icon: Bell,
|
|
19256
|
+
iconClass: 'text-primary-500 dark:text-primary-400',
|
|
19257
|
+
progressClass: 'bg-primary-500 dark:bg-primary-400'
|
|
19258
|
+
}
|
|
19259
|
+
};
|
|
19260
|
+
var POSITION_CLASSES = {
|
|
19261
|
+
'top-right': 'top-4 right-4 items-end',
|
|
19262
|
+
'top-left': 'top-4 left-4 items-start',
|
|
19263
|
+
'bottom-right': 'bottom-4 right-4 items-end',
|
|
19264
|
+
'bottom-left': 'bottom-4 left-4 items-start',
|
|
19265
|
+
'top-center': 'top-4 left-1/2 transform -translate-x-1/2 items-center',
|
|
19266
|
+
'bottom-center': 'bottom-4 left-1/2 transform -translate-x-1/2 items-center'
|
|
19267
|
+
};
|
|
19268
|
+
var STANDALONE_POSITION_CLASSES = {
|
|
19269
|
+
'top-right': 'top-4 right-4',
|
|
19270
|
+
'top-left': 'top-4 left-4',
|
|
19271
|
+
'bottom-right': 'bottom-4 right-4',
|
|
19272
|
+
'bottom-left': 'bottom-4 left-4',
|
|
19273
|
+
'top-center': 'top-4 left-1/2 transform -translate-x-1/2',
|
|
19274
|
+
'bottom-center': 'bottom-4 left-1/2 transform -translate-x-1/2'
|
|
19275
|
+
};
|
|
19276
|
+
var Toast = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
18934
19277
|
var id = _ref.id,
|
|
18935
19278
|
title = _ref.title,
|
|
18936
19279
|
message = _ref.message,
|
|
19280
|
+
description = _ref.description,
|
|
18937
19281
|
_ref$type = _ref.type,
|
|
18938
19282
|
type = _ref$type === void 0 ? 'info' : _ref$type,
|
|
18939
19283
|
_ref$duration = _ref.duration,
|
|
@@ -18941,153 +19285,277 @@ var Toast = /*#__PURE__*/React__default.forwardRef(function (_ref, ref) {
|
|
|
18941
19285
|
onClose = _ref.onClose,
|
|
18942
19286
|
_ref$position = _ref.position,
|
|
18943
19287
|
position = _ref$position === void 0 ? 'top-right' : _ref$position,
|
|
19288
|
+
statusIcon = _ref.statusIcon,
|
|
19289
|
+
_ref$actions = _ref.actions,
|
|
19290
|
+
actions = _ref$actions === void 0 ? [] : _ref$actions,
|
|
19291
|
+
color = _ref.color,
|
|
19292
|
+
footerNote = _ref.footerNote,
|
|
19293
|
+
_ref$showFooterNote = _ref.showFooterNote,
|
|
19294
|
+
showFooterNote = _ref$showFooterNote === void 0 ? false : _ref$showFooterNote,
|
|
19295
|
+
_ref$portal = _ref.portal,
|
|
19296
|
+
portal = _ref$portal === void 0 ? true : _ref$portal,
|
|
19297
|
+
_ref$className = _ref.className,
|
|
19298
|
+
className = _ref$className === void 0 ? '' : _ref$className,
|
|
18944
19299
|
props = _objectWithoutProperties$1(_ref, _excluded$7);
|
|
18945
19300
|
var _useState = useState(true),
|
|
18946
19301
|
_useState2 = _slicedToArray(_useState, 2),
|
|
18947
19302
|
isVisible = _useState2[0],
|
|
18948
19303
|
setIsVisible = _useState2[1];
|
|
18949
|
-
|
|
18950
|
-
|
|
18951
|
-
|
|
18952
|
-
|
|
18953
|
-
|
|
18954
|
-
|
|
18955
|
-
|
|
18956
|
-
|
|
18957
|
-
|
|
18958
|
-
|
|
18959
|
-
var
|
|
18960
|
-
|
|
19304
|
+
var _useState3 = useState(false),
|
|
19305
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
19306
|
+
isLeaving = _useState4[0],
|
|
19307
|
+
setIsLeaving = _useState4[1];
|
|
19308
|
+
var _useState5 = useState(false),
|
|
19309
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
19310
|
+
isPaused = _useState6[0],
|
|
19311
|
+
setIsPaused = _useState6[1];
|
|
19312
|
+
var progressBarRef = useRef(null);
|
|
19313
|
+
var timerTextRef = useRef(null);
|
|
19314
|
+
var startTimeRef = useRef(null);
|
|
19315
|
+
var remainingRef = useRef(duration);
|
|
19316
|
+
var timerRef = useRef(null);
|
|
19317
|
+
var animFrameRef = useRef(null);
|
|
19318
|
+
var handleClose = useCallback(function () {
|
|
19319
|
+
if (isLeaving) return;
|
|
19320
|
+
setIsLeaving(true);
|
|
18961
19321
|
setTimeout(function () {
|
|
19322
|
+
setIsVisible(false);
|
|
18962
19323
|
onClose === null || onClose === void 0 || onClose(id);
|
|
18963
19324
|
}, 300);
|
|
18964
|
-
};
|
|
18965
|
-
var
|
|
18966
|
-
|
|
18967
|
-
|
|
18968
|
-
|
|
18969
|
-
|
|
18970
|
-
|
|
18971
|
-
|
|
18972
|
-
|
|
18973
|
-
|
|
18974
|
-
|
|
18975
|
-
|
|
18976
|
-
|
|
18977
|
-
|
|
18978
|
-
|
|
18979
|
-
|
|
18980
|
-
|
|
18981
|
-
|
|
18982
|
-
|
|
18983
|
-
|
|
18984
|
-
|
|
18985
|
-
|
|
18986
|
-
|
|
19325
|
+
}, [id, onClose, isLeaving]);
|
|
19326
|
+
var handleStopTimer = useCallback(function (e) {
|
|
19327
|
+
e === null || e === void 0 || e.stopPropagation();
|
|
19328
|
+
setIsPaused(true);
|
|
19329
|
+
if (timerRef.current) clearTimeout(timerRef.current);
|
|
19330
|
+
if (animFrameRef.current) cancelAnimationFrame(animFrameRef.current);
|
|
19331
|
+
}, []);
|
|
19332
|
+
// Direct DOM-based progress updates to prevent 60 FPS React re-renders and glitches
|
|
19333
|
+
useEffect(function () {
|
|
19334
|
+
if (duration <= 0) return;
|
|
19335
|
+
if (isPaused) {
|
|
19336
|
+
if (timerRef.current) clearTimeout(timerRef.current);
|
|
19337
|
+
if (animFrameRef.current) cancelAnimationFrame(animFrameRef.current);
|
|
19338
|
+
return;
|
|
19339
|
+
}
|
|
19340
|
+
startTimeRef.current = Date.now();
|
|
19341
|
+
timerRef.current = setTimeout(function () {
|
|
19342
|
+
handleClose();
|
|
19343
|
+
}, remainingRef.current);
|
|
19344
|
+
var _updateProgress = function updateProgress() {
|
|
19345
|
+
var elapsed = startTimeRef.current ? Date.now() - startTimeRef.current : 0;
|
|
19346
|
+
var currentRemaining = Math.max(0, remainingRef.current - elapsed);
|
|
19347
|
+
var pct = currentRemaining / duration * 100;
|
|
19348
|
+
if (progressBarRef.current) {
|
|
19349
|
+
progressBarRef.current.style.width = "".concat(pct, "%");
|
|
19350
|
+
}
|
|
19351
|
+
if (timerTextRef.current) {
|
|
19352
|
+
var secs = Math.ceil(currentRemaining / 1000);
|
|
19353
|
+
timerTextRef.current.textContent = "This message will close in ".concat(secs, " seconds. ");
|
|
19354
|
+
}
|
|
19355
|
+
if (currentRemaining > 0 && !isPaused) {
|
|
19356
|
+
animFrameRef.current = requestAnimationFrame(_updateProgress);
|
|
19357
|
+
}
|
|
19358
|
+
};
|
|
19359
|
+
animFrameRef.current = requestAnimationFrame(_updateProgress);
|
|
19360
|
+
return function () {
|
|
19361
|
+
if (timerRef.current) clearTimeout(timerRef.current);
|
|
19362
|
+
if (animFrameRef.current) cancelAnimationFrame(animFrameRef.current);
|
|
19363
|
+
if (!isPaused && startTimeRef.current) {
|
|
19364
|
+
var elapsed = Date.now() - startTimeRef.current;
|
|
19365
|
+
remainingRef.current = Math.max(0, remainingRef.current - elapsed);
|
|
19366
|
+
}
|
|
19367
|
+
};
|
|
19368
|
+
}, [duration, isPaused, handleClose]);
|
|
18987
19369
|
if (!isVisible) return null;
|
|
18988
|
-
|
|
19370
|
+
var statusStyle = STATUS_CONFIG[type] || STATUS_CONFIG.info || STATUS_CONFIG["default"];
|
|
19371
|
+
var StatusIconComponent = statusStyle.icon;
|
|
19372
|
+
var bodyText = description || message;
|
|
19373
|
+
var toastContent = jsxs("div", _objectSpread$b(_objectSpread$b({
|
|
18989
19374
|
ref: ref,
|
|
18990
|
-
|
|
19375
|
+
onMouseEnter: function onMouseEnter() {
|
|
19376
|
+
return setIsPaused(true);
|
|
19377
|
+
},
|
|
19378
|
+
onMouseLeave: function onMouseLeave() {
|
|
19379
|
+
return setIsPaused(false);
|
|
19380
|
+
},
|
|
19381
|
+
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)
|
|
18991
19382
|
}, props), {}, {
|
|
18992
|
-
children:
|
|
18993
|
-
className: "
|
|
18994
|
-
children:
|
|
18995
|
-
className: "flex-
|
|
18996
|
-
children:
|
|
18997
|
-
|
|
18998
|
-
|
|
18999
|
-
|
|
19000
|
-
|
|
19001
|
-
|
|
19002
|
-
|
|
19003
|
-
|
|
19004
|
-
|
|
19383
|
+
children: [jsx("div", {
|
|
19384
|
+
className: "p-4",
|
|
19385
|
+
children: jsxs("div", {
|
|
19386
|
+
className: "flex items-start gap-3 justify-between",
|
|
19387
|
+
children: [jsx("span", {
|
|
19388
|
+
className: "flex-shrink-0 mt-0.5",
|
|
19389
|
+
children: statusIcon ? statusIcon : jsx(StatusIconComponent, {
|
|
19390
|
+
className: cn$1('h-5 w-5', statusStyle.iconClass)
|
|
19391
|
+
})
|
|
19392
|
+
}), jsxs("div", {
|
|
19393
|
+
className: "flex-1 min-w-0 pr-2",
|
|
19394
|
+
children: [title && jsx("h4", {
|
|
19395
|
+
className: "text-sm font-semibold text-slate-900 dark:text-slate-100 leading-snug",
|
|
19396
|
+
children: title
|
|
19397
|
+
}), bodyText && jsx("p", {
|
|
19398
|
+
className: "mt-1 text-xs text-slate-600 dark:text-slate-400 leading-relaxed whitespace-pre-line",
|
|
19399
|
+
children: bodyText
|
|
19400
|
+
}), actions && actions.length > 0 && jsx("div", {
|
|
19401
|
+
className: "mt-3 flex items-center gap-2 flex-wrap",
|
|
19402
|
+
children: actions.map(function (actItem, idx) {
|
|
19403
|
+
return jsx("button", {
|
|
19404
|
+
type: "button",
|
|
19405
|
+
onClick: function onClick(e) {
|
|
19406
|
+
var _actItem$onClick;
|
|
19407
|
+
(_actItem$onClick = actItem.onClick) === null || _actItem$onClick === void 0 || _actItem$onClick.call(actItem, e);
|
|
19408
|
+
if (actItem.dismiss !== false) {
|
|
19409
|
+
handleClose();
|
|
19410
|
+
}
|
|
19411
|
+
},
|
|
19412
|
+
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),
|
|
19413
|
+
children: actItem.label
|
|
19414
|
+
}, actItem.id || actItem.label || "act-".concat(idx));
|
|
19415
|
+
})
|
|
19416
|
+
})]
|
|
19417
|
+
}), jsx("button", {
|
|
19418
|
+
type: "button",
|
|
19419
|
+
"aria-label": "Close notification",
|
|
19420
|
+
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",
|
|
19421
|
+
onClick: handleClose,
|
|
19422
|
+
children: jsx(X, {
|
|
19423
|
+
className: "h-4 w-4"
|
|
19424
|
+
})
|
|
19005
19425
|
})]
|
|
19006
|
-
})
|
|
19007
|
-
|
|
19008
|
-
|
|
19009
|
-
|
|
19010
|
-
children:
|
|
19011
|
-
|
|
19426
|
+
})
|
|
19427
|
+
}), (showFooterNote || footerNote) && duration > 0 && jsx("div", {
|
|
19428
|
+
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",
|
|
19429
|
+
children: jsx("span", {
|
|
19430
|
+
children: footerNote ? footerNote : jsxs(Fragment, {
|
|
19431
|
+
children: [jsxs("span", {
|
|
19432
|
+
ref: timerTextRef,
|
|
19433
|
+
children: ["This message will close in ", Math.ceil(duration / 1000), " seconds.", ' ']
|
|
19434
|
+
}), jsx("button", {
|
|
19435
|
+
type: "button",
|
|
19436
|
+
onClick: handleStopTimer,
|
|
19437
|
+
className: "font-medium text-slate-700 dark:text-zinc-200 hover:underline inline",
|
|
19438
|
+
children: "Click to stop."
|
|
19439
|
+
})]
|
|
19012
19440
|
})
|
|
19013
|
-
})
|
|
19014
|
-
})
|
|
19015
|
-
|
|
19441
|
+
})
|
|
19442
|
+
}), duration > 0 && jsx("div", {
|
|
19443
|
+
className: "absolute bottom-0 left-0 right-0 h-0.5 bg-slate-100 dark:bg-zinc-800/80 overflow-hidden rounded-b-xl",
|
|
19444
|
+
children: jsx("div", {
|
|
19445
|
+
ref: progressBarRef,
|
|
19446
|
+
className: cn$1('h-full transition-all ease-linear', color ? '' : statusStyle.progressClass),
|
|
19447
|
+
style: {
|
|
19448
|
+
width: '100%',
|
|
19449
|
+
backgroundColor: color || undefined
|
|
19450
|
+
}
|
|
19451
|
+
})
|
|
19452
|
+
})]
|
|
19453
|
+
}));
|
|
19454
|
+
if (portal) {
|
|
19455
|
+
return /*#__PURE__*/createPortal(toastContent, document.body);
|
|
19456
|
+
}
|
|
19457
|
+
return toastContent;
|
|
19016
19458
|
});
|
|
19017
19459
|
Toast.displayName = 'Toast';
|
|
19018
|
-
// Toast Container Component
|
|
19460
|
+
// Toast Container Component for vertical stacking & scrollable overflow without visible scrollbars
|
|
19019
19461
|
var ToastContainer = function ToastContainer(_ref2) {
|
|
19020
19462
|
var _ref2$toasts = _ref2.toasts,
|
|
19021
19463
|
toasts = _ref2$toasts === void 0 ? [] : _ref2$toasts,
|
|
19022
19464
|
_ref2$position = _ref2.position,
|
|
19023
19465
|
position = _ref2$position === void 0 ? 'top-right' : _ref2$position,
|
|
19024
|
-
onRemove = _ref2.onRemove
|
|
19025
|
-
|
|
19026
|
-
className
|
|
19027
|
-
|
|
19028
|
-
|
|
19029
|
-
|
|
19030
|
-
|
|
19031
|
-
|
|
19032
|
-
|
|
19466
|
+
onRemove = _ref2.onRemove,
|
|
19467
|
+
_ref2$className = _ref2.className,
|
|
19468
|
+
className = _ref2$className === void 0 ? '' : _ref2$className;
|
|
19469
|
+
if (!toasts || toasts.length === 0) {
|
|
19470
|
+
return null;
|
|
19471
|
+
}
|
|
19472
|
+
var posClass = POSITION_CLASSES[position] || POSITION_CLASSES['top-right'];
|
|
19473
|
+
return /*#__PURE__*/createPortal(jsx("div", {
|
|
19474
|
+
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),
|
|
19475
|
+
children: toasts.map(function (t) {
|
|
19476
|
+
return jsx("div", {
|
|
19477
|
+
className: "pointer-events-auto w-full max-w-md",
|
|
19478
|
+
children: jsx(Toast, _objectSpread$b(_objectSpread$b({}, t), {}, {
|
|
19479
|
+
portal: false,
|
|
19480
|
+
position: position,
|
|
19481
|
+
onClose: onRemove
|
|
19482
|
+
}))
|
|
19483
|
+
}, t.id);
|
|
19033
19484
|
})
|
|
19034
|
-
});
|
|
19485
|
+
}), document.body);
|
|
19035
19486
|
};
|
|
19036
19487
|
// Toast Hook
|
|
19037
19488
|
var useToast = function useToast() {
|
|
19038
|
-
var
|
|
19039
|
-
|
|
19040
|
-
toasts =
|
|
19041
|
-
setToasts =
|
|
19042
|
-
var addToast = function
|
|
19043
|
-
var id = Date.now().toString();
|
|
19489
|
+
var _useState7 = useState([]),
|
|
19490
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
19491
|
+
toasts = _useState8[0],
|
|
19492
|
+
setToasts = _useState8[1];
|
|
19493
|
+
var addToast = useCallback(function (toastOptions) {
|
|
19494
|
+
var id = toastOptions.id || "".concat(Date.now(), "-").concat(Math.random().toString(36).slice(2, 7));
|
|
19495
|
+
var newToast = _objectSpread$b(_objectSpread$b({}, toastOptions), {}, {
|
|
19496
|
+
id: id
|
|
19497
|
+
});
|
|
19044
19498
|
setToasts(function (prev) {
|
|
19045
|
-
return [].concat(_toConsumableArray$1(prev), [
|
|
19046
|
-
id: id
|
|
19047
|
-
})]);
|
|
19499
|
+
return [].concat(_toConsumableArray$1(prev), [newToast]);
|
|
19048
19500
|
});
|
|
19049
|
-
|
|
19050
|
-
|
|
19501
|
+
return id;
|
|
19502
|
+
}, []);
|
|
19503
|
+
var removeToast = useCallback(function (id) {
|
|
19051
19504
|
setToasts(function (prev) {
|
|
19052
|
-
return prev.filter(function (
|
|
19053
|
-
return
|
|
19505
|
+
return prev.filter(function (t) {
|
|
19506
|
+
return t.id !== id;
|
|
19054
19507
|
});
|
|
19055
19508
|
});
|
|
19509
|
+
}, []);
|
|
19510
|
+
var clearToasts = useCallback(function () {
|
|
19511
|
+
setToasts([]);
|
|
19512
|
+
}, []);
|
|
19513
|
+
var toast = useCallback(function (options) {
|
|
19514
|
+
return addToast(typeof options === 'string' ? {
|
|
19515
|
+
message: options
|
|
19516
|
+
} : options);
|
|
19517
|
+
}, [addToast]);
|
|
19518
|
+
toast.success = function (title, message, options) {
|
|
19519
|
+
return addToast(_objectSpread$b({
|
|
19520
|
+
title: title,
|
|
19521
|
+
message: message,
|
|
19522
|
+
type: 'success'
|
|
19523
|
+
}, _typeof$4(options) === 'object' ? options : {}));
|
|
19056
19524
|
};
|
|
19057
|
-
|
|
19058
|
-
|
|
19059
|
-
|
|
19060
|
-
|
|
19061
|
-
|
|
19062
|
-
|
|
19063
|
-
|
|
19064
|
-
|
|
19065
|
-
|
|
19066
|
-
|
|
19067
|
-
|
|
19068
|
-
|
|
19069
|
-
|
|
19070
|
-
|
|
19071
|
-
|
|
19072
|
-
|
|
19073
|
-
|
|
19074
|
-
|
|
19075
|
-
|
|
19076
|
-
|
|
19077
|
-
|
|
19078
|
-
|
|
19079
|
-
|
|
19080
|
-
|
|
19081
|
-
|
|
19082
|
-
|
|
19083
|
-
|
|
19084
|
-
}, options));
|
|
19085
|
-
}
|
|
19525
|
+
toast.error = function (title, message, options) {
|
|
19526
|
+
return addToast(_objectSpread$b({
|
|
19527
|
+
title: title,
|
|
19528
|
+
message: message,
|
|
19529
|
+
type: 'error'
|
|
19530
|
+
}, _typeof$4(options) === 'object' ? options : {}));
|
|
19531
|
+
};
|
|
19532
|
+
toast.warning = function (title, message, options) {
|
|
19533
|
+
return addToast(_objectSpread$b({
|
|
19534
|
+
title: title,
|
|
19535
|
+
message: message,
|
|
19536
|
+
type: 'warning'
|
|
19537
|
+
}, _typeof$4(options) === 'object' ? options : {}));
|
|
19538
|
+
};
|
|
19539
|
+
toast.info = function (title, message, options) {
|
|
19540
|
+
return addToast(_objectSpread$b({
|
|
19541
|
+
title: title,
|
|
19542
|
+
message: message,
|
|
19543
|
+
type: 'info'
|
|
19544
|
+
}, _typeof$4(options) === 'object' ? options : {}));
|
|
19545
|
+
};
|
|
19546
|
+
toast["default"] = function (title, message, options) {
|
|
19547
|
+
return addToast(_objectSpread$b({
|
|
19548
|
+
title: title,
|
|
19549
|
+
message: message,
|
|
19550
|
+
type: 'default'
|
|
19551
|
+
}, _typeof$4(options) === 'object' ? options : {}));
|
|
19086
19552
|
};
|
|
19087
19553
|
return {
|
|
19088
19554
|
toast: toast,
|
|
19089
19555
|
toasts: toasts,
|
|
19090
|
-
removeToast: removeToast
|
|
19556
|
+
removeToast: removeToast,
|
|
19557
|
+
clearToasts: clearToasts,
|
|
19558
|
+
addToast: addToast
|
|
19091
19559
|
};
|
|
19092
19560
|
};
|
|
19093
19561
|
|