@dreamtree-org/twreact-ui 2.0.2 → 2.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -3
- package/ai-skills/dreamtree-ui.md +15 -3
- package/dist/ai-schema.json +25 -1
- package/dist/components/core/DatePicker.d.ts.map +1 -1
- package/dist/components/core/DateRangePicker.d.ts.map +1 -1
- package/dist/components/core/Select.d.ts.map +1 -1
- package/dist/components/core/Table/Table.d.ts.map +1 -1
- package/dist/components/navigation/Navbar.d.ts.map +1 -1
- package/dist/components/navigation/Sidebar.d.ts +2 -0
- package/dist/components/navigation/Sidebar.d.ts.map +1 -1
- package/dist/esm/components/core/DatePicker.js +4 -1
- package/dist/esm/components/core/DateRangePicker.js +6 -2
- package/dist/esm/components/core/Select.js +6 -2
- package/dist/esm/components/core/Table/Table.js +11 -3
- package/dist/esm/components/navigation/Navbar.js +23 -6
- package/dist/esm/components/navigation/Sidebar.js +9 -2
- package/dist/esm/hooks/useApi.js +37 -16
- package/dist/esm/hooks/useFocusTrap.js +21 -9
- package/dist/hooks/useApi.d.ts +18 -1
- package/dist/hooks/useApi.d.ts.map +1 -1
- package/dist/hooks/useFocusTrap.d.ts.map +1 -1
- package/dist/index.esm.js +121 -45
- package/dist/index.js +121 -45
- package/dist/types/index.d.ts +8 -1
- package/dist/types/index.d.ts.map +1 -1
- package/mcp/catalog.snapshot.json +51 -15
- package/package.json +1 -1
package/dist/index.esm.js
CHANGED
|
@@ -5976,9 +5976,29 @@ function Portal(_ref) {
|
|
|
5976
5976
|
// Internal (not exported from the package). Shared focus management for the
|
|
5977
5977
|
// overlay primitives (Drawer, Dialog, Popover, Tour, Sidebar, AppShell).
|
|
5978
5978
|
var FOCUSABLE_SELECTOR = ["a[href]", "button:not([disabled])", "textarea:not([disabled])", "input:not([disabled])", "select:not([disabled])", '[tabindex]:not([tabindex="-1"])'].join(",");
|
|
5979
|
+
// A responsive drawer (Sidebar's `md:hidden`, AppShell's `lg:hidden`) can be
|
|
5980
|
+
// "open" while CSS hides it on wide viewports; there is nothing to trap then.
|
|
5981
|
+
// `stopAt` (exclusive) bounds the walk, so getFocusable checks only the
|
|
5982
|
+
// elements between a candidate and its root.
|
|
5983
|
+
var isDisplayNone = function isDisplayNone(el) {
|
|
5984
|
+
var stopAt = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
5985
|
+
for (var node = el; node && node.nodeType === 1 && node !== stopAt; node = node.parentElement) {
|
|
5986
|
+
if (window.getComputedStyle(node).display === "none") return true;
|
|
5987
|
+
}
|
|
5988
|
+
return false;
|
|
5989
|
+
};
|
|
5990
|
+
// `.focus()` silently fails on an element that is not rendered (`display:none`
|
|
5991
|
+
// on it or an ancestor) or is `visibility:hidden` (inherited, so the element's
|
|
5992
|
+
// own computed value covers its ancestors). getClientRects() is not used:
|
|
5993
|
+
// jsdom reports empty rects for every element.
|
|
5994
|
+
var isRendered = function isRendered(el, root) {
|
|
5995
|
+
return window.getComputedStyle(el).visibility !== "hidden" && !isDisplayNone(el, root);
|
|
5996
|
+
};
|
|
5997
|
+
// Tabbable, rendered descendants of `root`, in DOM order. Used for the initial
|
|
5998
|
+
// focus and for the Tab trap's first/last items.
|
|
5979
5999
|
var getFocusable = function getFocusable(root) {
|
|
5980
6000
|
return root ? Array.from(root.querySelectorAll(FOCUSABLE_SELECTOR)).filter(function (el) {
|
|
5981
|
-
return el.getAttribute("aria-hidden") !== "true";
|
|
6001
|
+
return el.getAttribute("aria-hidden") !== "true" && isRendered(el, root);
|
|
5982
6002
|
}) : [];
|
|
5983
6003
|
};
|
|
5984
6004
|
// Only the most recently opened overlay reacts to Escape / Tab, so a Popover
|
|
@@ -5987,14 +6007,6 @@ var layerStack = [];
|
|
|
5987
6007
|
var isTopLayer = function isTopLayer(token) {
|
|
5988
6008
|
return layerStack[layerStack.length - 1] === token;
|
|
5989
6009
|
};
|
|
5990
|
-
// A responsive drawer (Sidebar's `md:hidden`, AppShell's `lg:hidden`) can be
|
|
5991
|
-
// "open" while CSS hides it on wide viewports; there is nothing to trap then.
|
|
5992
|
-
var isDisplayNone = function isDisplayNone(el) {
|
|
5993
|
-
for (var node = el; node && node.nodeType === 1; node = node.parentElement) {
|
|
5994
|
-
if (window.getComputedStyle(node).display === "none") return true;
|
|
5995
|
-
}
|
|
5996
|
-
return false;
|
|
5997
|
-
};
|
|
5998
6010
|
function cycleFocus(e, panel) {
|
|
5999
6011
|
if (isDisplayNone(panel)) return;
|
|
6000
6012
|
var focusables = getFocusable(panel);
|
|
@@ -6899,7 +6911,7 @@ var SheetCloseButton = function SheetCloseButton(_ref5) {
|
|
|
6899
6911
|
|
|
6900
6912
|
var _excluded$Y = ["open", "isOpen", "placement", "title", "description", "showCloseButton", "haptics", "onSnapChange"],
|
|
6901
6913
|
_excluded2$9 = ["className"],
|
|
6902
|
-
_excluded3$
|
|
6914
|
+
_excluded3$5 = ["className"],
|
|
6903
6915
|
_excluded4$3 = ["className"];
|
|
6904
6916
|
function ownKeys$16(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; }
|
|
6905
6917
|
function _objectSpread$16(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$16(Object(t), true).forEach(function (r) { _defineProperty$4(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$16(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
@@ -6987,7 +6999,7 @@ var SheetHeader = /*#__PURE__*/React__default.forwardRef(function (_ref3, ref) {
|
|
|
6987
6999
|
});
|
|
6988
7000
|
var SheetBody = /*#__PURE__*/React__default.forwardRef(function (_ref4, _ref5) {
|
|
6989
7001
|
var className = _ref4.className,
|
|
6990
|
-
props = _objectWithoutProperties$1(_ref4, _excluded3$
|
|
7002
|
+
props = _objectWithoutProperties$1(_ref4, _excluded3$5);
|
|
6991
7003
|
var ctx = useContext(SheetContext);
|
|
6992
7004
|
var dragProps = ctx ? mergeHandlers(ctx.bodyDragProps, props) : {};
|
|
6993
7005
|
return jsx("div", _objectSpread$16(_objectSpread$16(_objectSpread$16({
|
|
@@ -7497,7 +7509,8 @@ var Select = /*#__PURE__*/React__default.forwardRef(function (_ref, forwardedRef
|
|
|
7497
7509
|
return document.removeEventListener("mousedown", handleClickOutside);
|
|
7498
7510
|
};
|
|
7499
7511
|
}, []);
|
|
7500
|
-
var
|
|
7512
|
+
var isEmpty = selectedOptions.length === 0;
|
|
7513
|
+
var showClearButton = allowClear && !disabled && !isEmpty;
|
|
7501
7514
|
var displayValue = function displayValue() {
|
|
7502
7515
|
var _selectedOptions$;
|
|
7503
7516
|
if (multiSelect) {
|
|
@@ -7755,9 +7768,12 @@ var Select = /*#__PURE__*/React__default.forwardRef(function (_ref, forwardedRef
|
|
|
7755
7768
|
"aria-invalid": error ? true : undefined,
|
|
7756
7769
|
className: cn("flex w-full items-center justify-between rounded-md border border-gray-300 focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-transparent disabled:cursor-not-allowed disabled:opacity-50", SIZE_CLASSES$3[size] || SIZE_CLASSES$3.md, {
|
|
7757
7770
|
"border-error-500 focus:ring-error-500": error,
|
|
7758
|
-
|
|
7771
|
+
// Empty: the placeholder reads muted, like Input's
|
|
7772
|
+
// ::placeholder (#159). `className` still merges last.
|
|
7773
|
+
"text-muted": isEmpty,
|
|
7759
7774
|
"pr-14": showClearButton
|
|
7760
7775
|
}, className),
|
|
7776
|
+
"data-empty": isEmpty ? "" : undefined,
|
|
7761
7777
|
onClick: function onClick() {
|
|
7762
7778
|
if (!disabled) {
|
|
7763
7779
|
setIsOpen(function (prev) {
|
|
@@ -10646,7 +10662,7 @@ function FieldInput(_ref) {
|
|
|
10646
10662
|
});
|
|
10647
10663
|
}
|
|
10648
10664
|
|
|
10649
|
-
var _excluded$U = ["data", "columns", "sortable", "filterable", "selectable", "pagination", "pageSize", "onSort", "onFilter", "onFetch", "onFilterChange", "onSelectionChange", "onRowClick", "hasDetails", "DetailsComponent", "className", "withAction", "onAction", "actions", "replaceDefaultActions", "showSerial", "cellClass", "rowClass", "globalSearch", "limitOptions", "showLimitSelector", "onLimitChange", "showReloadButton", "renderReloadButton", "onReload", "stripedRows", "theme", "responsiveBreakpoint", "showToolbar", "showColumnPicker", "wrapCells", "mobileMaxFields", "serverSide", "totalRecords", "pageNumber", "onPageChange", "TheadComponent", "TfootComponent", "interactive", "onSave", "onEdit", "onRowAdd", "onRowDelete", "editKeyBinding", "newRowPosition", "addRowRef", "onInitAddRow", "renderAddRowButton", "renderExternalAddRow", "actionMenuPresentation", "defaultMobileView", "mobileFiltersPresentation", "swipeActions", "stickyHeader"],
|
|
10665
|
+
var _excluded$U = ["data", "columns", "sortable", "filterable", "selectable", "pagination", "paginationPosition", "pageSize", "onSort", "onFilter", "onFetch", "onFilterChange", "onSelectionChange", "onRowClick", "hasDetails", "DetailsComponent", "className", "withAction", "onAction", "actions", "replaceDefaultActions", "showSerial", "cellClass", "rowClass", "globalSearch", "limitOptions", "showLimitSelector", "onLimitChange", "showReloadButton", "renderReloadButton", "onReload", "stripedRows", "theme", "responsiveBreakpoint", "showToolbar", "showColumnPicker", "wrapCells", "mobileMaxFields", "serverSide", "totalRecords", "pageNumber", "onPageChange", "TheadComponent", "TfootComponent", "interactive", "onSave", "onEdit", "onRowAdd", "onRowDelete", "editKeyBinding", "newRowPosition", "addRowRef", "onInitAddRow", "renderAddRowButton", "renderExternalAddRow", "actionMenuPresentation", "defaultMobileView", "mobileFiltersPresentation", "swipeActions", "stickyHeader"],
|
|
10650
10666
|
_excluded2$8 = ["_key", "_isNew"];
|
|
10651
10667
|
function ownKeys$_(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; }
|
|
10652
10668
|
function _objectSpread$_(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$_(Object(t), true).forEach(function (r) { _defineProperty$4(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$_(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
@@ -10673,6 +10689,8 @@ var Table = /*#__PURE__*/forwardRef(function Table(_ref, ref) {
|
|
|
10673
10689
|
selectable = _ref$selectable === void 0 ? false : _ref$selectable,
|
|
10674
10690
|
_ref$pagination = _ref.pagination,
|
|
10675
10691
|
pagination = _ref$pagination === void 0 ? false : _ref$pagination,
|
|
10692
|
+
_ref$paginationPositi = _ref.paginationPosition,
|
|
10693
|
+
paginationPosition = _ref$paginationPositi === void 0 ? "both" : _ref$paginationPositi,
|
|
10676
10694
|
_ref$pageSize = _ref.pageSize,
|
|
10677
10695
|
pageSize = _ref$pageSize === void 0 ? 25 : _ref$pageSize,
|
|
10678
10696
|
onSort = _ref.onSort,
|
|
@@ -11810,6 +11828,12 @@ var Table = /*#__PURE__*/forwardRef(function Table(_ref, ref) {
|
|
|
11810
11828
|
openSwipe: openSwipe,
|
|
11811
11829
|
setOpenSwipe: setOpenSwipe
|
|
11812
11830
|
};
|
|
11831
|
+
// Which pager(s) render when `pagination` is on: the toolbar's compact
|
|
11832
|
+
// PaginationHeader ("top"), the PaginationFooter ("bottom"), or both
|
|
11833
|
+
// (default). Unknown values fall back to "both" (#135).
|
|
11834
|
+
var pagerPosition = paginationPosition === "top" || paginationPosition === "bottom" ? paginationPosition : "both";
|
|
11835
|
+
var showHeaderPager = pagination && pagerPosition !== "bottom";
|
|
11836
|
+
var showFooterPager = pagination && pagerPosition !== "top";
|
|
11813
11837
|
var showToolbarBar = showToolbar || interactive && (isDirty || !!renderAddRowButton || !!renderExternalAddRow);
|
|
11814
11838
|
var renderAddRowClickableRow = useCallback(function () {
|
|
11815
11839
|
return jsx("tr", {
|
|
@@ -11926,7 +11950,7 @@ var Table = /*#__PURE__*/forwardRef(function Table(_ref, ref) {
|
|
|
11926
11950
|
}), showToolbar && jsxs("div", {
|
|
11927
11951
|
className: "text-sm whitespace-nowrap",
|
|
11928
11952
|
children: [resultRange.start, " - ", resultRange.end, " of ", resultRange.total, " ", "results"]
|
|
11929
|
-
}), showToolbar &&
|
|
11953
|
+
}), showToolbar && showHeaderPager && jsx(PaginationHeader, {
|
|
11930
11954
|
currentPage: pageIndex,
|
|
11931
11955
|
totalPages: totalPages,
|
|
11932
11956
|
onPageChange: handlePageChange,
|
|
@@ -12207,7 +12231,7 @@ var Table = /*#__PURE__*/forwardRef(function Table(_ref, ref) {
|
|
|
12207
12231
|
}), TfootComponent && typeof TfootComponent === "function" ? jsx(TfootComponent, {
|
|
12208
12232
|
columns: columnsState,
|
|
12209
12233
|
data: filteredData
|
|
12210
|
-
}) : TfootComponent,
|
|
12234
|
+
}) : TfootComponent, showFooterPager && jsx(PaginationFooter, {
|
|
12211
12235
|
currentPage: pageIndex,
|
|
12212
12236
|
totalPages: totalPages,
|
|
12213
12237
|
onPageChange: handlePageChange,
|
|
@@ -18193,10 +18217,13 @@ var DatePicker = /*#__PURE__*/React__default.forwardRef(function (_ref, forwarde
|
|
|
18193
18217
|
"aria-invalid": error ? true : undefined,
|
|
18194
18218
|
className: cn("flex w-full items-center justify-between rounded-md border border-gray-300 bg-white px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-transparent disabled:cursor-not-allowed disabled:opacity-50", {
|
|
18195
18219
|
"border-error-500 focus:ring-error-500": error,
|
|
18196
|
-
|
|
18220
|
+
// Empty: the placeholder reads muted, like Input's
|
|
18221
|
+
// ::placeholder (#159). `className` still merges last.
|
|
18222
|
+
"text-muted": !selected,
|
|
18197
18223
|
// leave room for the sibling clear button overlaid on the field
|
|
18198
18224
|
"pr-16": showClear && selected
|
|
18199
18225
|
}, className),
|
|
18226
|
+
"data-empty": selected ? undefined : "",
|
|
18200
18227
|
onClick: function onClick() {
|
|
18201
18228
|
return setIsOpen(function (open) {
|
|
18202
18229
|
return !open;
|
|
@@ -19164,7 +19191,7 @@ ColorPicker.displayName = "ColorPicker";
|
|
|
19164
19191
|
|
|
19165
19192
|
var _excluded$P = ["fields", "onSubmit", "defaultValues", "validationSchema", "className", "submitText", "resetText", "submitButtonClass", "resetButtonClass", "showReset", "submitDisabled"],
|
|
19166
19193
|
_excluded2$7 = ["type", "name", "label", "required", "options", "placeholder", "helperText"],
|
|
19167
|
-
_excluded3$
|
|
19194
|
+
_excluded3$4 = ["onChange", "ref", "value"];
|
|
19168
19195
|
function ownKeys$U(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; }
|
|
19169
19196
|
function _objectSpread$U(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$U(Object(t), true).forEach(function (r) { _defineProperty$4(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$U(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
19170
19197
|
/**
|
|
@@ -19494,7 +19521,7 @@ var Form = /*#__PURE__*/forwardRef(function Form(_ref2, ref) {
|
|
|
19494
19521
|
_onChange3 = _ref9$field.onChange,
|
|
19495
19522
|
ref = _ref9$field.ref,
|
|
19496
19523
|
value = _ref9$field.value,
|
|
19497
|
-
field = _objectWithoutProperties$1(_ref9$field, _excluded3$
|
|
19524
|
+
field = _objectWithoutProperties$1(_ref9$field, _excluded3$4);
|
|
19498
19525
|
return jsxs("div", {
|
|
19499
19526
|
className: "w-full",
|
|
19500
19527
|
children: [label && jsxs("label", {
|
|
@@ -20460,7 +20487,8 @@ var DateRangePicker = /*#__PURE__*/forwardRef(function DateRangePicker(_ref, ref
|
|
|
20460
20487
|
}));
|
|
20461
20488
|
};
|
|
20462
20489
|
// Display placeholder until both start and end are committed (mandatory range).
|
|
20463
|
-
var
|
|
20490
|
+
var isEmpty = !committed.start || !committed.end;
|
|
20491
|
+
var triggerText = isEmpty ? placeholder : formatRange(committed.start, committed.end);
|
|
20464
20492
|
var draftText = localStart && localEnd ? formatRange(localStart, localEnd) : placeholder;
|
|
20465
20493
|
var presetList = Array.isArray(presets) && presets.length > 0 ? presets : null;
|
|
20466
20494
|
var presetChips = presetList ? jsx("div", {
|
|
@@ -20540,9 +20568,12 @@ var DateRangePicker = /*#__PURE__*/forwardRef(function DateRangePicker(_ref, ref
|
|
|
20540
20568
|
"aria-invalid": error ? true : undefined,
|
|
20541
20569
|
className: cn("flex w-full items-center justify-between rounded-md border border-gray-300 bg-white px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-transparent disabled:cursor-not-allowed disabled:opacity-50", {
|
|
20542
20570
|
"border-error-500 focus:ring-error-500": error,
|
|
20543
|
-
|
|
20571
|
+
// Empty: the placeholder reads muted, like Input's
|
|
20572
|
+
// ::placeholder (#159). `className` still merges last.
|
|
20573
|
+
"text-muted": isEmpty,
|
|
20544
20574
|
"pr-16": showClearButton
|
|
20545
20575
|
}, className),
|
|
20576
|
+
"data-empty": isEmpty ? "" : undefined,
|
|
20546
20577
|
onClick: function onClick() {
|
|
20547
20578
|
// The trigger always toggles, even mid-pick (DTUI-35): closing
|
|
20548
20579
|
// drops the uncommitted start, reopening starts from the last
|
|
@@ -25459,7 +25490,7 @@ var SearchField = /*#__PURE__*/React__default.forwardRef(function (_ref, ref) {
|
|
|
25459
25490
|
});
|
|
25460
25491
|
SearchField.displayName = "SearchField";
|
|
25461
25492
|
|
|
25462
|
-
var _excluded$u = ["items", "collapsed", "onToggle", "className", "containerClassName", "stickyOffset", "logo", "footer", "user", "onUserClick", "drawerPosition", "isMobileOpen", "setIsMobileOpen", "showCollapsedTooltips", "tooltipOptions", "linkAs", "expandedIds", "defaultExpandedIds", "onExpandedChange", "swipeable"];
|
|
25493
|
+
var _excluded$u = ["items", "collapsed", "collapsible", "onToggle", "className", "containerClassName", "stickyOffset", "logo", "footer", "user", "onUserClick", "drawerPosition", "isMobileOpen", "setIsMobileOpen", "showCollapsedTooltips", "tooltipOptions", "linkAs", "expandedIds", "defaultExpandedIds", "onExpandedChange", "swipeable"];
|
|
25463
25494
|
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; }
|
|
25464
25495
|
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; }
|
|
25465
25496
|
// From `md` up the sidebar is an in-flow sticky column; below it, the same
|
|
@@ -25628,6 +25659,8 @@ var hasBadge$1 = function hasBadge(item) {
|
|
|
25628
25659
|
* - linkAs: element type used for items with `href` (default "a"; pass Next.js Link etc.)
|
|
25629
25660
|
* - collapsed: boolean (desktop collapsed)
|
|
25630
25661
|
* - onToggle: function to toggle collapse
|
|
25662
|
+
* - collapsible: boolean (default true) — false hides the md+ collapse/expand
|
|
25663
|
+
* toggle (the drawer keeps its "Close navigation" button)
|
|
25631
25664
|
* - expandedIds / defaultExpandedIds / onExpandedChange: open groups (ids)
|
|
25632
25665
|
* - className, containerClassName, stickyOffset, logo, footer, user, onUserClick
|
|
25633
25666
|
* - drawerPosition: 'left' | 'right'
|
|
@@ -25644,6 +25677,8 @@ var Sidebar = /*#__PURE__*/React__default.forwardRef(function (_ref2, ref) {
|
|
|
25644
25677
|
items = _ref2$items === void 0 ? [] : _ref2$items,
|
|
25645
25678
|
_ref2$collapsed = _ref2.collapsed,
|
|
25646
25679
|
collapsed = _ref2$collapsed === void 0 ? false : _ref2$collapsed,
|
|
25680
|
+
_ref2$collapsible = _ref2.collapsible,
|
|
25681
|
+
collapsible = _ref2$collapsible === void 0 ? true : _ref2$collapsible,
|
|
25647
25682
|
onToggle = _ref2.onToggle,
|
|
25648
25683
|
className = _ref2.className,
|
|
25649
25684
|
containerClassName = _ref2.containerClassName,
|
|
@@ -25975,6 +26010,9 @@ var Sidebar = /*#__PURE__*/React__default.forwardRef(function (_ref2, ref) {
|
|
|
25975
26010
|
if (drawerMode && mobileOpen && setIsMobileOpen) setIsMobileOpen(false);else onToggle === null || onToggle === void 0 || onToggle();
|
|
25976
26011
|
};
|
|
25977
26012
|
var toggleLabel = drawerMode ? "Close navigation" : effectiveCollapsed ? "Expand sidebar" : "Collapse sidebar";
|
|
26013
|
+
// `collapsible={false}`: no collapse/expand toggle on md+. The drawer keeps
|
|
26014
|
+
// its close button (44px touch target, the drawer's only visible close).
|
|
26015
|
+
var showToggle = drawerMode || collapsible;
|
|
25978
26016
|
var CloseChevron = isRight ? ChevronRight : ChevronLeft;
|
|
25979
26017
|
var toggleIcon = drawerMode ? jsx(CloseChevron, {
|
|
25980
26018
|
className: "h-5 w-5",
|
|
@@ -26041,7 +26079,7 @@ var Sidebar = /*#__PURE__*/React__default.forwardRef(function (_ref2, ref) {
|
|
|
26041
26079
|
children: [!effectiveCollapsed && logo && jsx("div", {
|
|
26042
26080
|
className: "flex min-w-0 items-center",
|
|
26043
26081
|
children: logo
|
|
26044
|
-
}), jsx("button", {
|
|
26082
|
+
}), showToggle && jsx("button", {
|
|
26045
26083
|
type: "button",
|
|
26046
26084
|
onClick: handleToggleClick,
|
|
26047
26085
|
className: cn("inline-flex h-11 w-11 shrink-0 items-center justify-center rounded-md", "hover:bg-gray-100 dark:hover:bg-gray-800", "focus:outline-none focus-visible:ring-2 focus-visible:ring-primary-500"),
|
|
@@ -26266,7 +26304,8 @@ var Avatar = /*#__PURE__*/React__default.forwardRef(function (_ref, ref) {
|
|
|
26266
26304
|
Avatar.displayName = 'Avatar';
|
|
26267
26305
|
|
|
26268
26306
|
var _excluded$r = ["emitter", "content", "notifications"],
|
|
26269
|
-
_excluded2$5 = ["emitter", "logo", "center", "items", "user", "notifications", "searchable", "onSearch", "leftIcon", "rightMenuContent", "onLeftIconClick", "onLoginClick", "onLogoutClick", "className", "onFetch", "isMobileOpen", "setIsMobileOpen", "sticky", "largeTitle"]
|
|
26307
|
+
_excluded2$5 = ["emitter", "logo", "center", "items", "user", "notifications", "searchable", "onSearch", "leftIcon", "rightMenuContent", "onLeftIconClick", "leftIconLabel", "leftIconProps", "onLoginClick", "onLogoutClick", "className", "onFetch", "isMobileOpen", "setIsMobileOpen", "sticky", "largeTitle"],
|
|
26308
|
+
_excluded3$3 = ["className", "onClick"];
|
|
26270
26309
|
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; }
|
|
26271
26310
|
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; }
|
|
26272
26311
|
var NO_NOTIFICATIONS = [];
|
|
@@ -26497,6 +26536,9 @@ var Navbar = /*#__PURE__*/React__default.forwardRef(function (_ref3, ref) {
|
|
|
26497
26536
|
leftIcon = _ref3$leftIcon === void 0 ? jsx(ChevronLeft, {}) : _ref3$leftIcon,
|
|
26498
26537
|
RightMenuContentProp = _ref3.rightMenuContent,
|
|
26499
26538
|
onLeftIconClick = _ref3.onLeftIconClick,
|
|
26539
|
+
_ref3$leftIconLabel = _ref3.leftIconLabel,
|
|
26540
|
+
leftIconLabel = _ref3$leftIconLabel === void 0 ? "Go back" : _ref3$leftIconLabel,
|
|
26541
|
+
leftIconProps = _ref3.leftIconProps,
|
|
26500
26542
|
_ref3$onLoginClick = _ref3.onLoginClick,
|
|
26501
26543
|
onLoginClick = _ref3$onLoginClick === void 0 ? function () {
|
|
26502
26544
|
return console.log("invoked onLoginClick");
|
|
@@ -26543,6 +26585,18 @@ var Navbar = /*#__PURE__*/React__default.forwardRef(function (_ref3, ref) {
|
|
|
26543
26585
|
window.removeEventListener("resize", handleResize);
|
|
26544
26586
|
};
|
|
26545
26587
|
}, [handleResize]);
|
|
26588
|
+
// Left button: `leftIconLabel` names it ("Go back" by default; e.g. "Open
|
|
26589
|
+
// menu" when it opens a Sidebar drawer). `leftIconProps` lands on the
|
|
26590
|
+
// <button> (aria-expanded, aria-controls, data-*, …); its className merges
|
|
26591
|
+
// last and its onClick runs after `onLeftIconClick`.
|
|
26592
|
+
var _ref4 = leftIconProps || {},
|
|
26593
|
+
leftIconClassName = _ref4.className,
|
|
26594
|
+
leftIconOnClick = _ref4.onClick,
|
|
26595
|
+
leftIconRest = _objectWithoutProperties$1(_ref4, _excluded3$3);
|
|
26596
|
+
var handleLeftIconClick = function handleLeftIconClick(e) {
|
|
26597
|
+
onLeftIconClick === null || onLeftIconClick === void 0 || onLeftIconClick(e);
|
|
26598
|
+
leftIconOnClick === null || leftIconOnClick === void 0 || leftIconOnClick(e);
|
|
26599
|
+
};
|
|
26546
26600
|
// Handle search submit
|
|
26547
26601
|
var handleSearch = function handleSearch(e) {
|
|
26548
26602
|
e.preventDefault();
|
|
@@ -26612,13 +26666,14 @@ var Navbar = /*#__PURE__*/React__default.forwardRef(function (_ref3, ref) {
|
|
|
26612
26666
|
"aria-hidden": true
|
|
26613
26667
|
}), jsxs("div", {
|
|
26614
26668
|
className: "flex min-w-0 items-center",
|
|
26615
|
-
children: [leftIcon !== false && jsx("button", {
|
|
26616
|
-
onClick: onLeftIconClick,
|
|
26669
|
+
children: [leftIcon !== false && jsx("button", _objectSpread$w(_objectSpread$w({
|
|
26617
26670
|
type: "button",
|
|
26618
|
-
|
|
26619
|
-
|
|
26671
|
+
"aria-label": leftIconLabel
|
|
26672
|
+
}, leftIconRest), {}, {
|
|
26673
|
+
onClick: handleLeftIconClick,
|
|
26674
|
+
className: cn(ICON_BUTTON, "shrink-0 md:hidden", leftIconClassName),
|
|
26620
26675
|
children: leftIcon
|
|
26621
|
-
}), logo && jsx("div", {
|
|
26676
|
+
})), logo && jsx("div", {
|
|
26622
26677
|
className: "ml-2 min-w-0 truncate sm:ml-4 md:ml-0",
|
|
26623
26678
|
children: logo
|
|
26624
26679
|
})]
|
|
@@ -38858,6 +38913,10 @@ const {
|
|
|
38858
38913
|
mergeConfig
|
|
38859
38914
|
} = axios;
|
|
38860
38915
|
|
|
38916
|
+
var defaultIsUnauthorized = function defaultIsUnauthorized(error) {
|
|
38917
|
+
var _error$response;
|
|
38918
|
+
return (error === null || error === void 0 || (_error$response = error.response) === null || _error$response === void 0 ? void 0 : _error$response.status) === 401;
|
|
38919
|
+
};
|
|
38861
38920
|
var useApi = function useApi() {
|
|
38862
38921
|
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
38863
38922
|
var _props$BASE_URL = props.BASE_URL,
|
|
@@ -38892,7 +38951,10 @@ var useApi = function useApi() {
|
|
|
38892
38951
|
headers: headers
|
|
38893
38952
|
});
|
|
38894
38953
|
}
|
|
38895
|
-
} : _props$sendRequest
|
|
38954
|
+
} : _props$sendRequest,
|
|
38955
|
+
onUnauthorized = props.onUnauthorized,
|
|
38956
|
+
_props$isUnauthorized = props.isUnauthorized,
|
|
38957
|
+
isUnauthorized = _props$isUnauthorized === void 0 ? defaultIsUnauthorized : _props$isUnauthorized;
|
|
38896
38958
|
var _useState = useState(null),
|
|
38897
38959
|
_useState2 = _slicedToArray(_useState, 2),
|
|
38898
38960
|
data = _useState2[0],
|
|
@@ -38909,20 +38971,25 @@ var useApi = function useApi() {
|
|
|
38909
38971
|
_useState8 = _slicedToArray(_useState7, 2),
|
|
38910
38972
|
lastRequest = _useState8[0],
|
|
38911
38973
|
setLastRequest = _useState8[1];
|
|
38912
|
-
|
|
38913
|
-
|
|
38914
|
-
|
|
38915
|
-
|
|
38916
|
-
|
|
38917
|
-
|
|
38918
|
-
|
|
38919
|
-
|
|
38920
|
-
|
|
38921
|
-
|
|
38974
|
+
// Runs `onUnauthorized` for a failed request. Never throws: a failing
|
|
38975
|
+
// predicate or handler must not replace the request's own error.
|
|
38976
|
+
var notifyUnauthorized = function notifyUnauthorized(error, request) {
|
|
38977
|
+
if (!onUnauthorized) return;
|
|
38978
|
+
try {
|
|
38979
|
+
if (isUnauthorized(error)) onUnauthorized(error, request);
|
|
38980
|
+
} catch (handlerError) {
|
|
38981
|
+
// eslint-disable-next-line no-console
|
|
38982
|
+
console.error('useApi: onUnauthorized / isUnauthorized threw', handlerError);
|
|
38983
|
+
}
|
|
38984
|
+
};
|
|
38985
|
+
// Single send path for fetchData and callApi, so `onUnauthorized` fires
|
|
38986
|
+
// exactly once per failing request and sees the `apiKey` when there is one.
|
|
38987
|
+
var request = /*#__PURE__*/function () {
|
|
38988
|
+
var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(url, method, data, headers, options, apiKey) {
|
|
38989
|
+
var _options$needLoading, needLoading, requestInstance, response, _error, _t;
|
|
38922
38990
|
return _regeneratorRuntime.wrap(function (_context) {
|
|
38923
38991
|
while (1) switch (_context.prev = _context.next) {
|
|
38924
38992
|
case 0:
|
|
38925
|
-
options = _args.length > 4 && _args[4] !== undefined ? _args[4] : {};
|
|
38926
38993
|
_options$needLoading = options.needLoading, needLoading = _options$needLoading === void 0 ? true : _options$needLoading;
|
|
38927
38994
|
requestInstance = createRequestInstance(BASE_URL, DEFAULT_HEADERS);
|
|
38928
38995
|
if (needLoading) setLoading(true);
|
|
@@ -38938,6 +39005,11 @@ var useApi = function useApi() {
|
|
|
38938
39005
|
_t = _context["catch"](1);
|
|
38939
39006
|
_error = _t;
|
|
38940
39007
|
setError(_error);
|
|
39008
|
+
notifyUnauthorized(_error, {
|
|
39009
|
+
apiKey: apiKey,
|
|
39010
|
+
url: url,
|
|
39011
|
+
method: String(method).toUpperCase()
|
|
39012
|
+
});
|
|
38941
39013
|
throw _error;
|
|
38942
39014
|
case 4:
|
|
38943
39015
|
_context.prev = 4;
|
|
@@ -38949,10 +39021,14 @@ var useApi = function useApi() {
|
|
|
38949
39021
|
}
|
|
38950
39022
|
}, _callee, null, [[1, 3, 4, 5]]);
|
|
38951
39023
|
}));
|
|
38952
|
-
return function
|
|
39024
|
+
return function request(_x, _x2, _x3, _x4, _x5, _x6) {
|
|
38953
39025
|
return _ref.apply(this, arguments);
|
|
38954
39026
|
};
|
|
38955
39027
|
}();
|
|
39028
|
+
var fetchData = function fetchData(url, method, data, headers) {
|
|
39029
|
+
var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};
|
|
39030
|
+
return request(url, method, data, headers, options);
|
|
39031
|
+
};
|
|
38956
39032
|
var callApi = /*#__PURE__*/function () {
|
|
38957
39033
|
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(apiKey, args, needLoading) {
|
|
38958
39034
|
var apiResolve, _apiResolve, url, method, headers, payload;
|
|
@@ -38969,9 +39045,9 @@ var useApi = function useApi() {
|
|
|
38969
39045
|
_apiResolve = apiResolve.apply(void 0, _toConsumableArray$1(args)), url = _apiResolve.url, method = _apiResolve.method, headers = _apiResolve.headers, payload = _apiResolve.data;
|
|
38970
39046
|
_context2.prev = 2;
|
|
38971
39047
|
_context2.next = 3;
|
|
38972
|
-
return
|
|
39048
|
+
return request(url, method, payload, headers, {
|
|
38973
39049
|
needLoading: needLoading
|
|
38974
|
-
});
|
|
39050
|
+
}, apiKey);
|
|
38975
39051
|
case 3:
|
|
38976
39052
|
return _context2.abrupt("return", _context2.sent);
|
|
38977
39053
|
case 4:
|
|
@@ -38984,7 +39060,7 @@ var useApi = function useApi() {
|
|
|
38984
39060
|
}
|
|
38985
39061
|
}, _callee2, null, [[2,, 4, 5]]);
|
|
38986
39062
|
}));
|
|
38987
|
-
return function callApi(
|
|
39063
|
+
return function callApi(_x7, _x8, _x9) {
|
|
38988
39064
|
return _ref2.apply(this, arguments);
|
|
38989
39065
|
};
|
|
38990
39066
|
}();
|