@jmruthers/pace-core 0.5.107 → 0.5.108
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{DataTable-H2WIR2DN.js → DataTable-WFCHVWTY.js} +2 -2
- package/dist/{PublicLoadingSpinner-48ewSMKK.d.ts → PublicLoadingSpinner-DgDWTFqn.d.ts} +4 -2
- package/dist/{chunk-EWKCROSF.js → chunk-B3QX32P5.js} +47 -8
- package/dist/chunk-B3QX32P5.js.map +1 -0
- package/dist/{chunk-5JJCXTVE.js → chunk-IMZGJ2X7.js} +105 -83
- package/dist/{chunk-5JJCXTVE.js.map → chunk-IMZGJ2X7.js.map} +1 -1
- package/dist/components.d.ts +1 -1
- package/dist/components.js +2 -2
- package/dist/index.d.ts +1 -1
- package/dist/index.js +2 -2
- package/dist/utils.js +1 -1
- package/docs/api/classes/ColumnFactory.md +1 -1
- package/docs/api/classes/ErrorBoundary.md +1 -1
- package/docs/api/classes/InvalidScopeError.md +1 -1
- package/docs/api/classes/MissingUserContextError.md +1 -1
- package/docs/api/classes/OrganisationContextRequiredError.md +1 -1
- package/docs/api/classes/PermissionDeniedError.md +1 -1
- package/docs/api/classes/PublicErrorBoundary.md +1 -1
- package/docs/api/classes/RBACAuditManager.md +1 -1
- package/docs/api/classes/RBACCache.md +1 -1
- package/docs/api/classes/RBACEngine.md +1 -1
- package/docs/api/classes/RBACError.md +1 -1
- package/docs/api/classes/RBACNotInitializedError.md +1 -1
- package/docs/api/classes/SecureSupabaseClient.md +1 -1
- package/docs/api/classes/StorageUtils.md +1 -1
- package/docs/api/enums/FileCategory.md +1 -1
- package/docs/api/interfaces/AggregateConfig.md +1 -1
- package/docs/api/interfaces/ButtonProps.md +1 -1
- package/docs/api/interfaces/CardProps.md +1 -1
- package/docs/api/interfaces/ColorPalette.md +1 -1
- package/docs/api/interfaces/ColorShade.md +1 -1
- package/docs/api/interfaces/DataAccessRecord.md +1 -1
- package/docs/api/interfaces/DataRecord.md +1 -1
- package/docs/api/interfaces/DataTableAction.md +1 -1
- package/docs/api/interfaces/DataTableColumn.md +1 -1
- package/docs/api/interfaces/DataTableProps.md +1 -1
- package/docs/api/interfaces/DataTableToolbarButton.md +1 -1
- package/docs/api/interfaces/EmptyStateConfig.md +1 -1
- package/docs/api/interfaces/EnhancedNavigationMenuProps.md +1 -1
- package/docs/api/interfaces/FileDisplayProps.md +1 -1
- package/docs/api/interfaces/FileMetadata.md +1 -1
- package/docs/api/interfaces/FileReference.md +1 -1
- package/docs/api/interfaces/FileSizeLimits.md +1 -1
- package/docs/api/interfaces/FileUploadOptions.md +1 -1
- package/docs/api/interfaces/FileUploadProps.md +1 -1
- package/docs/api/interfaces/FooterProps.md +1 -1
- package/docs/api/interfaces/InactivityWarningModalProps.md +1 -1
- package/docs/api/interfaces/InputProps.md +1 -1
- package/docs/api/interfaces/LabelProps.md +1 -1
- package/docs/api/interfaces/LoginFormProps.md +1 -1
- package/docs/api/interfaces/NavigationAccessRecord.md +1 -1
- package/docs/api/interfaces/NavigationContextType.md +1 -1
- package/docs/api/interfaces/NavigationGuardProps.md +1 -1
- package/docs/api/interfaces/NavigationItem.md +1 -1
- package/docs/api/interfaces/NavigationMenuProps.md +1 -1
- package/docs/api/interfaces/NavigationProviderProps.md +1 -1
- package/docs/api/interfaces/Organisation.md +1 -1
- package/docs/api/interfaces/OrganisationContextType.md +1 -1
- package/docs/api/interfaces/OrganisationMembership.md +1 -1
- package/docs/api/interfaces/OrganisationProviderProps.md +1 -1
- package/docs/api/interfaces/OrganisationSecurityError.md +1 -1
- package/docs/api/interfaces/PaceAppLayoutProps.md +1 -1
- package/docs/api/interfaces/PaceLoginPageProps.md +1 -1
- package/docs/api/interfaces/PageAccessRecord.md +1 -1
- package/docs/api/interfaces/PagePermissionContextType.md +1 -1
- package/docs/api/interfaces/PagePermissionGuardProps.md +1 -1
- package/docs/api/interfaces/PagePermissionProviderProps.md +1 -1
- package/docs/api/interfaces/PaletteData.md +1 -1
- package/docs/api/interfaces/PermissionEnforcerProps.md +1 -1
- package/docs/api/interfaces/ProtectedRouteProps.md +1 -1
- package/docs/api/interfaces/PublicErrorBoundaryProps.md +1 -1
- package/docs/api/interfaces/PublicErrorBoundaryState.md +1 -1
- package/docs/api/interfaces/PublicLoadingSpinnerProps.md +1 -1
- package/docs/api/interfaces/PublicPageFooterProps.md +1 -1
- package/docs/api/interfaces/PublicPageHeaderProps.md +1 -1
- package/docs/api/interfaces/PublicPageLayoutProps.md +1 -1
- package/docs/api/interfaces/RBACConfig.md +1 -1
- package/docs/api/interfaces/RBACLogger.md +1 -1
- package/docs/api/interfaces/RoleBasedRouterContextType.md +1 -1
- package/docs/api/interfaces/RoleBasedRouterProps.md +1 -1
- package/docs/api/interfaces/RouteAccessRecord.md +1 -1
- package/docs/api/interfaces/RouteConfig.md +1 -1
- package/docs/api/interfaces/SecureDataContextType.md +1 -1
- package/docs/api/interfaces/SecureDataProviderProps.md +1 -1
- package/docs/api/interfaces/StorageConfig.md +1 -1
- package/docs/api/interfaces/StorageFileInfo.md +1 -1
- package/docs/api/interfaces/StorageFileMetadata.md +1 -1
- package/docs/api/interfaces/StorageListOptions.md +1 -1
- package/docs/api/interfaces/StorageListResult.md +1 -1
- package/docs/api/interfaces/StorageUploadOptions.md +1 -1
- package/docs/api/interfaces/StorageUploadResult.md +1 -1
- package/docs/api/interfaces/StorageUrlOptions.md +1 -1
- package/docs/api/interfaces/StyleImport.md +1 -1
- package/docs/api/interfaces/SwitchProps.md +1 -1
- package/docs/api/interfaces/ToastActionElement.md +1 -1
- package/docs/api/interfaces/ToastProps.md +1 -1
- package/docs/api/interfaces/UnifiedAuthContextType.md +1 -1
- package/docs/api/interfaces/UnifiedAuthProviderProps.md +1 -1
- package/docs/api/interfaces/UseInactivityTrackerOptions.md +1 -1
- package/docs/api/interfaces/UseInactivityTrackerReturn.md +1 -1
- package/docs/api/interfaces/UsePublicEventOptions.md +1 -1
- package/docs/api/interfaces/UsePublicEventReturn.md +1 -1
- package/docs/api/interfaces/UsePublicFileDisplayOptions.md +1 -1
- package/docs/api/interfaces/UsePublicFileDisplayReturn.md +1 -1
- package/docs/api/interfaces/UsePublicRouteParamsReturn.md +1 -1
- package/docs/api/interfaces/UseResolvedScopeOptions.md +1 -1
- package/docs/api/interfaces/UseResolvedScopeReturn.md +1 -1
- package/docs/api/interfaces/UserEventAccess.md +1 -1
- package/docs/api/interfaces/UserMenuProps.md +1 -1
- package/docs/api/interfaces/UserProfile.md +1 -1
- package/docs/api/modules.md +7 -5
- package/package.json +1 -1
- package/src/components/DataTable/components/ColumnFilter.tsx +2 -1
- package/src/components/DataTable/components/EditableRow.tsx +7 -2
- package/src/components/DataTable/components/FilterRow.tsx +22 -11
- package/src/components/DataTable/components/PaginationControls.tsx +1 -1
- package/src/components/DataTable/components/UnifiedTableBody.tsx +39 -10
- package/src/components/PaceAppLayout/PaceAppLayout.tsx +79 -10
- package/dist/chunk-EWKCROSF.js.map +0 -1
- /package/dist/{DataTable-H2WIR2DN.js.map → DataTable-WFCHVWTY.js.map} +0 -0
|
@@ -5502,10 +5502,10 @@ var require_lodash = __commonJS({
|
|
|
5502
5502
|
});
|
|
5503
5503
|
|
|
5504
5504
|
// src/components/DataTable/DataTable.tsx
|
|
5505
|
-
import
|
|
5505
|
+
import React20 from "react";
|
|
5506
5506
|
|
|
5507
5507
|
// src/components/DataTable/components/DataTableCore.tsx
|
|
5508
|
-
import
|
|
5508
|
+
import React19, { useMemo as useMemo14, useCallback as useCallback11, useEffect as useEffect12, useRef as useRef7 } from "react";
|
|
5509
5509
|
import { useReactTable } from "@tanstack/react-table";
|
|
5510
5510
|
import { Edit, Trash, ChevronUp as ChevronUp2, ChevronDown as ChevronDown3, ChevronsUpDown } from "lucide-react";
|
|
5511
5511
|
|
|
@@ -6649,7 +6649,7 @@ function DataTableToolbar({
|
|
|
6649
6649
|
}
|
|
6650
6650
|
|
|
6651
6651
|
// src/components/DataTable/components/UnifiedTableBody.tsx
|
|
6652
|
-
import
|
|
6652
|
+
import React10, { useRef as useRef3, useEffect as useEffect3 } from "react";
|
|
6653
6653
|
import { flexRender as flexRender2 } from "@tanstack/react-table";
|
|
6654
6654
|
import { useVirtualizer } from "@tanstack/react-virtual";
|
|
6655
6655
|
import { ChevronDown as ChevronDown2, ChevronRight } from "lucide-react";
|
|
@@ -6700,6 +6700,9 @@ function EmptyState({
|
|
|
6700
6700
|
);
|
|
6701
6701
|
}
|
|
6702
6702
|
|
|
6703
|
+
// src/components/DataTable/components/FilterRow.tsx
|
|
6704
|
+
import React7 from "react";
|
|
6705
|
+
|
|
6703
6706
|
// src/components/DataTable/components/ColumnFilter.tsx
|
|
6704
6707
|
import { X as X2 } from "lucide-react";
|
|
6705
6708
|
import { jsx as jsx10, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
@@ -6750,7 +6753,7 @@ function ColumnFilter({
|
|
|
6750
6753
|
value: columnFilterValue || "",
|
|
6751
6754
|
onChange: (e) => handleFilterChange(e.target.value ? Number(e.target.value) : void 0),
|
|
6752
6755
|
placeholder: placeholder || `Filter ${column.id}...`,
|
|
6753
|
-
className: "h-8"
|
|
6756
|
+
className: "h-8 datatable-number-no-spinners"
|
|
6754
6757
|
}
|
|
6755
6758
|
);
|
|
6756
6759
|
case "date":
|
|
@@ -6795,7 +6798,7 @@ import { jsx as jsx11 } from "react/jsx-runtime";
|
|
|
6795
6798
|
function FilterRow({ table, visibleColumns }) {
|
|
6796
6799
|
const { getState } = table;
|
|
6797
6800
|
const { columnFilters } = getState();
|
|
6798
|
-
const getColumnOptions = (columnId) => {
|
|
6801
|
+
const getColumnOptions = React7.useCallback((columnId) => {
|
|
6799
6802
|
const column = table.getColumn(columnId);
|
|
6800
6803
|
if (!column) return [];
|
|
6801
6804
|
const columnDef = column.columnDef;
|
|
@@ -6813,13 +6816,14 @@ function FilterRow({ table, visibleColumns }) {
|
|
|
6813
6816
|
}
|
|
6814
6817
|
});
|
|
6815
6818
|
return Array.from(uniqueValues).sort().map((value) => ({ value, label: value }));
|
|
6816
|
-
};
|
|
6817
|
-
const getFilterType = (columnId) => {
|
|
6819
|
+
}, [table]);
|
|
6820
|
+
const getFilterType = React7.useCallback((columnId) => {
|
|
6818
6821
|
const column = table.getColumn(columnId);
|
|
6819
6822
|
if (!column) return "text";
|
|
6820
6823
|
const columnDef = column.columnDef;
|
|
6821
|
-
|
|
6822
|
-
|
|
6824
|
+
const explicitFilterType = columnDef.filterType;
|
|
6825
|
+
if (explicitFilterType !== void 0 && explicitFilterType !== null && explicitFilterType !== "") {
|
|
6826
|
+
return explicitFilterType;
|
|
6823
6827
|
}
|
|
6824
6828
|
if (columnDef.filterSelectOptions && Array.isArray(columnDef.filterSelectOptions)) {
|
|
6825
6829
|
return "select";
|
|
@@ -6836,7 +6840,7 @@ function FilterRow({ table, visibleColumns }) {
|
|
|
6836
6840
|
return "select";
|
|
6837
6841
|
}
|
|
6838
6842
|
return "text";
|
|
6839
|
-
};
|
|
6843
|
+
}, [table, getColumnOptions]);
|
|
6840
6844
|
return /* @__PURE__ */ jsx11("tr", { className: "border-b bg-sec-50/50", children: visibleColumns.map((header) => {
|
|
6841
6845
|
const column = header.column;
|
|
6842
6846
|
const canFilter = column.getCanFilter();
|
|
@@ -6862,7 +6866,7 @@ function FilterRow({ table, visibleColumns }) {
|
|
|
6862
6866
|
}
|
|
6863
6867
|
|
|
6864
6868
|
// src/components/DataTable/components/ActionButtons.tsx
|
|
6865
|
-
import
|
|
6869
|
+
import React8, { useMemo as useMemo2 } from "react";
|
|
6866
6870
|
import { MoreHorizontal } from "lucide-react";
|
|
6867
6871
|
|
|
6868
6872
|
// src/utils/logger.ts
|
|
@@ -7105,10 +7109,10 @@ function ActionButtonsComponent({
|
|
|
7105
7109
|
}) })
|
|
7106
7110
|
] });
|
|
7107
7111
|
}
|
|
7108
|
-
var ActionButtons =
|
|
7112
|
+
var ActionButtons = React8.memo(ActionButtonsComponent);
|
|
7109
7113
|
|
|
7110
7114
|
// src/components/DataTable/components/EditableRow.tsx
|
|
7111
|
-
import
|
|
7115
|
+
import React9 from "react";
|
|
7112
7116
|
import { flexRender } from "@tanstack/react-table";
|
|
7113
7117
|
import { X as X3, Check as Check3 } from "lucide-react";
|
|
7114
7118
|
import { jsx as jsx13, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
@@ -7122,11 +7126,11 @@ function SelectEditField({
|
|
|
7122
7126
|
}) {
|
|
7123
7127
|
const isSearchable = columnDef.selectSearchable !== false;
|
|
7124
7128
|
const isCreatable = columnDef.creatable === true;
|
|
7125
|
-
const selectRef =
|
|
7126
|
-
const [searchTerm, setSearchTerm] =
|
|
7127
|
-
const [isOpen, setIsOpen] =
|
|
7128
|
-
const [showCreateOption, setShowCreateOption] =
|
|
7129
|
-
|
|
7129
|
+
const selectRef = React9.useRef(null);
|
|
7130
|
+
const [searchTerm, setSearchTerm] = React9.useState("");
|
|
7131
|
+
const [isOpen, setIsOpen] = React9.useState(false);
|
|
7132
|
+
const [showCreateOption, setShowCreateOption] = React9.useState(false);
|
|
7133
|
+
React9.useEffect(() => {
|
|
7130
7134
|
if (!isOpen || !isSearchable || !isCreatable || !selectRef.current) return;
|
|
7131
7135
|
const searchInput = selectRef.current.querySelector('[data-testid="select-search-input"]');
|
|
7132
7136
|
if (!searchInput) return;
|
|
@@ -7156,7 +7160,7 @@ function SelectEditField({
|
|
|
7156
7160
|
searchInput.removeEventListener("input", handleInput);
|
|
7157
7161
|
};
|
|
7158
7162
|
}, [isOpen, isSearchable, isCreatable, columnDef.fieldOptions]);
|
|
7159
|
-
const handleCreateNew =
|
|
7163
|
+
const handleCreateNew = React9.useCallback(async () => {
|
|
7160
7164
|
if (!isCreatable || !columnDef.onCreateNew || !searchTerm.trim()) return;
|
|
7161
7165
|
try {
|
|
7162
7166
|
const newValue = await columnDef.onCreateNew(searchTerm.trim());
|
|
@@ -7191,7 +7195,7 @@ function SelectEditField({
|
|
|
7191
7195
|
/* @__PURE__ */ jsxs9(
|
|
7192
7196
|
SelectContent,
|
|
7193
7197
|
{
|
|
7194
|
-
searchable: isSearchable,
|
|
7198
|
+
searchable: Boolean(isSearchable),
|
|
7195
7199
|
searchPlaceholder: `Search ${columnDef.header || "options"}...`,
|
|
7196
7200
|
maxHeight: columnDef.selectMaxHeight,
|
|
7197
7201
|
className: columnDef.selectContentClassName,
|
|
@@ -7302,9 +7306,9 @@ function EditableRow({
|
|
|
7302
7306
|
hierarchical = false
|
|
7303
7307
|
}) {
|
|
7304
7308
|
const rowId = getRowId ? getRowId(row.original, row.index) : String(row.id);
|
|
7305
|
-
const firstInputRef =
|
|
7306
|
-
const hasAssignedRef =
|
|
7307
|
-
|
|
7309
|
+
const firstInputRef = React9.useRef(null);
|
|
7310
|
+
const hasAssignedRef = React9.useRef(false);
|
|
7311
|
+
React9.useEffect(() => {
|
|
7308
7312
|
if (firstInputRef.current) {
|
|
7309
7313
|
firstInputRef.current.focus();
|
|
7310
7314
|
firstInputRef.current.select();
|
|
@@ -7582,11 +7586,11 @@ function SelectEditField2({
|
|
|
7582
7586
|
}) {
|
|
7583
7587
|
const isSearchable = columnDef.selectSearchable !== false;
|
|
7584
7588
|
const isCreatable = columnDef.creatable === true;
|
|
7585
|
-
const selectRef =
|
|
7586
|
-
const [searchTerm, setSearchTerm] =
|
|
7587
|
-
const [isOpen, setIsOpen] =
|
|
7588
|
-
const [showCreateOption, setShowCreateOption] =
|
|
7589
|
-
|
|
7589
|
+
const selectRef = React10.useRef(null);
|
|
7590
|
+
const [searchTerm, setSearchTerm] = React10.useState("");
|
|
7591
|
+
const [isOpen, setIsOpen] = React10.useState(false);
|
|
7592
|
+
const [showCreateOption, setShowCreateOption] = React10.useState(false);
|
|
7593
|
+
React10.useEffect(() => {
|
|
7590
7594
|
if (!isOpen || !isSearchable || !isCreatable || !selectRef.current) return;
|
|
7591
7595
|
const searchInput = selectRef.current.querySelector('[data-testid="select-search-input"]');
|
|
7592
7596
|
if (!searchInput) return;
|
|
@@ -7616,7 +7620,7 @@ function SelectEditField2({
|
|
|
7616
7620
|
searchInput.removeEventListener("input", handleInput);
|
|
7617
7621
|
};
|
|
7618
7622
|
}, [isOpen, isSearchable, isCreatable, columnDef.fieldOptions]);
|
|
7619
|
-
const handleCreateNew =
|
|
7623
|
+
const handleCreateNew = React10.useCallback(async () => {
|
|
7620
7624
|
if (!isCreatable || !columnDef.onCreateNew || !searchTerm.trim()) return;
|
|
7621
7625
|
try {
|
|
7622
7626
|
const newValue = await columnDef.onCreateNew(searchTerm.trim());
|
|
@@ -7651,7 +7655,7 @@ function SelectEditField2({
|
|
|
7651
7655
|
/* @__PURE__ */ jsxs10(
|
|
7652
7656
|
SelectContent,
|
|
7653
7657
|
{
|
|
7654
|
-
searchable: isSearchable,
|
|
7658
|
+
searchable: Boolean(isSearchable),
|
|
7655
7659
|
searchPlaceholder: `Search ${columnDef.header || "options"}...`,
|
|
7656
7660
|
maxHeight: columnDef.selectMaxHeight,
|
|
7657
7661
|
className: columnDef.selectContentClassName,
|
|
@@ -7747,7 +7751,7 @@ var renderEditField2 = (column, value, onChange, editingData = {}, placeholder)
|
|
|
7747
7751
|
}
|
|
7748
7752
|
);
|
|
7749
7753
|
};
|
|
7750
|
-
var RowComponent =
|
|
7754
|
+
var RowComponent = React10.memo(({
|
|
7751
7755
|
row,
|
|
7752
7756
|
style,
|
|
7753
7757
|
isEditing,
|
|
@@ -8128,6 +8132,20 @@ function UnifiedTableBody({
|
|
|
8128
8132
|
header.column.id
|
|
8129
8133
|
);
|
|
8130
8134
|
}
|
|
8135
|
+
const columnDef = header.column.columnDef;
|
|
8136
|
+
const dataKey = columnDef.editAccessorKey || columnDef.accessorKey || header.column.id;
|
|
8137
|
+
const editField = renderEditField2(
|
|
8138
|
+
header.column,
|
|
8139
|
+
creationData[dataKey] ?? creationData[header.column.id] ?? "",
|
|
8140
|
+
(value) => {
|
|
8141
|
+
if (typeof value === "object" && value !== null && !Array.isArray(value) && !(value instanceof Date)) {
|
|
8142
|
+
onCreationDataChange({ ...creationData, ...value });
|
|
8143
|
+
} else {
|
|
8144
|
+
onCreationDataChange({ ...creationData, [dataKey]: value });
|
|
8145
|
+
}
|
|
8146
|
+
},
|
|
8147
|
+
creationData
|
|
8148
|
+
);
|
|
8131
8149
|
return /* @__PURE__ */ jsx14(
|
|
8132
8150
|
"td",
|
|
8133
8151
|
{
|
|
@@ -8135,13 +8153,17 @@ function UnifiedTableBody({
|
|
|
8135
8153
|
isCompact: true,
|
|
8136
8154
|
className: "px-3 py-2"
|
|
8137
8155
|
}),
|
|
8138
|
-
children:
|
|
8139
|
-
|
|
8140
|
-
|
|
8141
|
-
|
|
8142
|
-
|
|
8156
|
+
children: editField || // Fallback: render a text input if renderEditField somehow returns nothing
|
|
8157
|
+
/* @__PURE__ */ jsx14(
|
|
8158
|
+
Input,
|
|
8159
|
+
{
|
|
8160
|
+
type: "text",
|
|
8161
|
+
value: String(creationData[dataKey] ?? creationData[header.column.id] ?? ""),
|
|
8162
|
+
onChange: (e) => onCreationDataChange({ ...creationData, [dataKey]: e.target.value }),
|
|
8163
|
+
placeholder: `Enter ${columnDef.header || header.column.id}...`,
|
|
8164
|
+
className: "h-8"
|
|
8143
8165
|
}
|
|
8144
|
-
|
|
8166
|
+
)
|
|
8145
8167
|
},
|
|
8146
8168
|
header.column.id
|
|
8147
8169
|
);
|
|
@@ -8188,7 +8210,7 @@ function UnifiedTableBody({
|
|
|
8188
8210
|
}
|
|
8189
8211
|
|
|
8190
8212
|
// src/components/DataTable/components/PaginationControls.tsx
|
|
8191
|
-
import
|
|
8213
|
+
import React11 from "react";
|
|
8192
8214
|
import {
|
|
8193
8215
|
ChevronLeft,
|
|
8194
8216
|
ChevronRight as ChevronRight2,
|
|
@@ -8511,7 +8533,7 @@ function EnhancedPaginationControls({
|
|
|
8511
8533
|
showJumpToPage = false,
|
|
8512
8534
|
...props
|
|
8513
8535
|
}) {
|
|
8514
|
-
const [jumpToPage, setJumpToPage] =
|
|
8536
|
+
const [jumpToPage, setJumpToPage] = React11.useState("");
|
|
8515
8537
|
const { table, paginationMode = "client", serverData, onPageChange, totalCount } = props;
|
|
8516
8538
|
const pagination = getPaginationBinding({
|
|
8517
8539
|
mode: paginationMode,
|
|
@@ -8543,7 +8565,7 @@ function EnhancedPaginationControls({
|
|
|
8543
8565
|
max: pageCount,
|
|
8544
8566
|
value: jumpToPage,
|
|
8545
8567
|
onChange: (e) => setJumpToPage(e.target.value),
|
|
8546
|
-
className: "w-16 h-6 px-2 border rounded text-xs",
|
|
8568
|
+
className: "w-16 h-6 px-2 border rounded text-xs datatable-number-no-spinners",
|
|
8547
8569
|
placeholder: "1"
|
|
8548
8570
|
}
|
|
8549
8571
|
),
|
|
@@ -8568,7 +8590,7 @@ import { useEffect as useEffect6 } from "react";
|
|
|
8568
8590
|
import { useState as useState4, useRef as useRef4, useEffect as useEffect5 } from "react";
|
|
8569
8591
|
|
|
8570
8592
|
// src/components/Dialog/Dialog.tsx
|
|
8571
|
-
import * as
|
|
8593
|
+
import * as React12 from "react";
|
|
8572
8594
|
import * as DialogPrimitive from "@radix-ui/react-dialog";
|
|
8573
8595
|
import { X as X4 } from "lucide-react";
|
|
8574
8596
|
|
|
@@ -8644,7 +8666,7 @@ var Dialog = DialogPrimitive.Root;
|
|
|
8644
8666
|
var DialogTrigger = DialogPrimitive.Trigger;
|
|
8645
8667
|
var DialogPortal = DialogPrimitive.Portal;
|
|
8646
8668
|
var DialogClose = DialogPrimitive.Close;
|
|
8647
|
-
var DialogOverlay =
|
|
8669
|
+
var DialogOverlay = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx17(
|
|
8648
8670
|
DialogPrimitive.Overlay,
|
|
8649
8671
|
{
|
|
8650
8672
|
ref,
|
|
@@ -8721,7 +8743,7 @@ var useSmartDimensions = ({
|
|
|
8721
8743
|
}
|
|
8722
8744
|
return result;
|
|
8723
8745
|
};
|
|
8724
|
-
var DialogContent =
|
|
8746
|
+
var DialogContent = React12.forwardRef(({
|
|
8725
8747
|
className,
|
|
8726
8748
|
children,
|
|
8727
8749
|
size = "md",
|
|
@@ -8748,17 +8770,17 @@ var DialogContent = React11.forwardRef(({
|
|
|
8748
8770
|
minWidth,
|
|
8749
8771
|
enableScrolling
|
|
8750
8772
|
});
|
|
8751
|
-
const handleEscapeKeyDown =
|
|
8773
|
+
const handleEscapeKeyDown = React12.useCallback((event) => {
|
|
8752
8774
|
if (preventCloseOnEscape) {
|
|
8753
8775
|
event.preventDefault();
|
|
8754
8776
|
}
|
|
8755
8777
|
}, [preventCloseOnEscape]);
|
|
8756
|
-
const handlePointerDownOutside =
|
|
8778
|
+
const handlePointerDownOutside = React12.useCallback((event) => {
|
|
8757
8779
|
if (preventCloseOnOutsideClick) {
|
|
8758
8780
|
event.preventDefault();
|
|
8759
8781
|
}
|
|
8760
8782
|
}, [preventCloseOnOutsideClick]);
|
|
8761
|
-
const mergedStyle =
|
|
8783
|
+
const mergedStyle = React12.useMemo(() => {
|
|
8762
8784
|
if (Object.keys(smartDimensions).length === 0) {
|
|
8763
8785
|
return style;
|
|
8764
8786
|
}
|
|
@@ -8836,13 +8858,13 @@ var DialogBody = ({
|
|
|
8836
8858
|
children,
|
|
8837
8859
|
...props
|
|
8838
8860
|
}) => {
|
|
8839
|
-
const mergedStyle =
|
|
8861
|
+
const mergedStyle = React12.useMemo(() => {
|
|
8840
8862
|
return {
|
|
8841
8863
|
...maxHeight && { maxHeight },
|
|
8842
8864
|
...style
|
|
8843
8865
|
};
|
|
8844
8866
|
}, [maxHeight, style]);
|
|
8845
|
-
const processedHtmlContent =
|
|
8867
|
+
const processedHtmlContent = React12.useMemo(() => {
|
|
8846
8868
|
if (!htmlContent || !allowHtml) {
|
|
8847
8869
|
return null;
|
|
8848
8870
|
}
|
|
@@ -8905,8 +8927,8 @@ var DialogFooter = ({
|
|
|
8905
8927
|
}
|
|
8906
8928
|
);
|
|
8907
8929
|
DialogFooter.displayName = "DialogFooter";
|
|
8908
|
-
var DialogTitle =
|
|
8909
|
-
const processedHtmlContent =
|
|
8930
|
+
var DialogTitle = React12.forwardRef(({ className, htmlContent, allowHtml = true, children, ...props }, ref) => {
|
|
8931
|
+
const processedHtmlContent = React12.useMemo(() => {
|
|
8910
8932
|
if (!htmlContent || !allowHtml) {
|
|
8911
8933
|
return null;
|
|
8912
8934
|
}
|
|
@@ -8929,8 +8951,8 @@ var DialogTitle = React11.forwardRef(({ className, htmlContent, allowHtml = true
|
|
|
8929
8951
|
);
|
|
8930
8952
|
});
|
|
8931
8953
|
DialogTitle.displayName = DialogPrimitive.Title.displayName;
|
|
8932
|
-
var DialogDescription =
|
|
8933
|
-
const processedHtmlContent =
|
|
8954
|
+
var DialogDescription = React12.forwardRef(({ className, htmlContent, allowHtml = true, children, ...props }, ref) => {
|
|
8955
|
+
const processedHtmlContent = React12.useMemo(() => {
|
|
8934
8956
|
if (!htmlContent || !allowHtml) {
|
|
8935
8957
|
return null;
|
|
8936
8958
|
}
|
|
@@ -9292,12 +9314,12 @@ function DataTableModals({
|
|
|
9292
9314
|
}
|
|
9293
9315
|
|
|
9294
9316
|
// src/components/DataTable/components/DataTableErrorBoundary.tsx
|
|
9295
|
-
import
|
|
9317
|
+
import React16, { Component } from "react";
|
|
9296
9318
|
|
|
9297
9319
|
// src/components/Alert/Alert.tsx
|
|
9298
|
-
import * as
|
|
9320
|
+
import * as React15 from "react";
|
|
9299
9321
|
import { jsx as jsx20 } from "react/jsx-runtime";
|
|
9300
|
-
var AlertContext =
|
|
9322
|
+
var AlertContext = React15.createContext({ variant: "default" });
|
|
9301
9323
|
var getAlertClasses = (variant = "default") => {
|
|
9302
9324
|
const baseClasses = "relative w-full rounded-lg border p-4";
|
|
9303
9325
|
const variantClasses = {
|
|
@@ -9308,10 +9330,10 @@ var getAlertClasses = (variant = "default") => {
|
|
|
9308
9330
|
};
|
|
9309
9331
|
return `${baseClasses} ${variantClasses[variant]}`;
|
|
9310
9332
|
};
|
|
9311
|
-
var Alert =
|
|
9312
|
-
const contextValue =
|
|
9333
|
+
var Alert = React15.forwardRef(({ className, variant = "default", ...props }, ref) => {
|
|
9334
|
+
const contextValue = React15.useMemo(() => ({ variant }), [variant]);
|
|
9313
9335
|
if (variant === "inline") {
|
|
9314
|
-
return /* @__PURE__ */ jsx20(AlertContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx20(
|
|
9336
|
+
return /* @__PURE__ */ jsx20(AlertContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx20(React15.Fragment, { ...props }) });
|
|
9315
9337
|
}
|
|
9316
9338
|
return /* @__PURE__ */ jsx20(AlertContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx20(
|
|
9317
9339
|
"div",
|
|
@@ -9324,8 +9346,8 @@ var Alert = React14.forwardRef(({ className, variant = "default", ...props }, re
|
|
|
9324
9346
|
) });
|
|
9325
9347
|
});
|
|
9326
9348
|
Alert.displayName = "Alert";
|
|
9327
|
-
var AlertTitle =
|
|
9328
|
-
const { variant } =
|
|
9349
|
+
var AlertTitle = React15.forwardRef(({ className, ...props }, ref) => {
|
|
9350
|
+
const { variant } = React15.useContext(AlertContext);
|
|
9329
9351
|
if (variant === "inline") {
|
|
9330
9352
|
return /* @__PURE__ */ jsx20("strong", { ...props });
|
|
9331
9353
|
}
|
|
@@ -9339,8 +9361,8 @@ var AlertTitle = React14.forwardRef(({ className, ...props }, ref) => {
|
|
|
9339
9361
|
);
|
|
9340
9362
|
});
|
|
9341
9363
|
AlertTitle.displayName = "AlertTitle";
|
|
9342
|
-
var AlertDescription =
|
|
9343
|
-
const { variant } =
|
|
9364
|
+
var AlertDescription = React15.forwardRef(({ className, ...props }, ref) => {
|
|
9365
|
+
const { variant } = React15.useContext(AlertContext);
|
|
9344
9366
|
if (variant === "inline") {
|
|
9345
9367
|
return /* @__PURE__ */ jsx20("span", { ...props });
|
|
9346
9368
|
}
|
|
@@ -10314,7 +10336,7 @@ function useDataTableConfiguration({
|
|
|
10314
10336
|
}
|
|
10315
10337
|
|
|
10316
10338
|
// src/components/Card/Card.tsx
|
|
10317
|
-
import * as
|
|
10339
|
+
import * as React17 from "react";
|
|
10318
10340
|
import { jsx as jsx22 } from "react/jsx-runtime";
|
|
10319
10341
|
function getCardClasses(variant = "default", size = "default") {
|
|
10320
10342
|
const baseClasses = "rounded-lg border bg-card text-card-foreground shadow-sm";
|
|
@@ -10330,7 +10352,7 @@ function getCardClasses(variant = "default", size = "default") {
|
|
|
10330
10352
|
};
|
|
10331
10353
|
return `${baseClasses} ${variantClasses[variant]} ${sizeClasses2[size]}`;
|
|
10332
10354
|
}
|
|
10333
|
-
var Card =
|
|
10355
|
+
var Card = React17.forwardRef(({ className, variant, size, ...props }, ref) => /* @__PURE__ */ jsx22(
|
|
10334
10356
|
"article",
|
|
10335
10357
|
{
|
|
10336
10358
|
ref,
|
|
@@ -10343,7 +10365,7 @@ var Card = React16.forwardRef(({ className, variant, size, ...props }, ref) => /
|
|
|
10343
10365
|
}
|
|
10344
10366
|
));
|
|
10345
10367
|
Card.displayName = "Card";
|
|
10346
|
-
var CardHeader =
|
|
10368
|
+
var CardHeader = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx22(
|
|
10347
10369
|
"header",
|
|
10348
10370
|
{
|
|
10349
10371
|
ref,
|
|
@@ -10352,7 +10374,7 @@ var CardHeader = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE
|
|
|
10352
10374
|
}
|
|
10353
10375
|
));
|
|
10354
10376
|
CardHeader.displayName = "CardHeader";
|
|
10355
|
-
var CardTitle =
|
|
10377
|
+
var CardTitle = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx22(
|
|
10356
10378
|
"h3",
|
|
10357
10379
|
{
|
|
10358
10380
|
ref,
|
|
@@ -10364,7 +10386,7 @@ var CardTitle = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE_
|
|
|
10364
10386
|
}
|
|
10365
10387
|
));
|
|
10366
10388
|
CardTitle.displayName = "CardTitle";
|
|
10367
|
-
var CardDescription =
|
|
10389
|
+
var CardDescription = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx22(
|
|
10368
10390
|
"p",
|
|
10369
10391
|
{
|
|
10370
10392
|
ref,
|
|
@@ -10373,7 +10395,7 @@ var CardDescription = React16.forwardRef(({ className, ...props }, ref) => /* @_
|
|
|
10373
10395
|
}
|
|
10374
10396
|
));
|
|
10375
10397
|
CardDescription.displayName = "CardDescription";
|
|
10376
|
-
var CardContent =
|
|
10398
|
+
var CardContent = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx22(
|
|
10377
10399
|
"main",
|
|
10378
10400
|
{
|
|
10379
10401
|
ref,
|
|
@@ -10382,7 +10404,7 @@ var CardContent = React16.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
10382
10404
|
}
|
|
10383
10405
|
));
|
|
10384
10406
|
CardContent.displayName = "CardContent";
|
|
10385
|
-
var CardFooter =
|
|
10407
|
+
var CardFooter = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx22(
|
|
10386
10408
|
"footer",
|
|
10387
10409
|
{
|
|
10388
10410
|
ref,
|
|
@@ -10391,7 +10413,7 @@ var CardFooter = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE
|
|
|
10391
10413
|
}
|
|
10392
10414
|
));
|
|
10393
10415
|
CardFooter.displayName = "CardFooter";
|
|
10394
|
-
var CardActions =
|
|
10416
|
+
var CardActions = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx22(
|
|
10395
10417
|
"nav",
|
|
10396
10418
|
{
|
|
10397
10419
|
ref,
|
|
@@ -10402,7 +10424,7 @@ var CardActions = React16.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
10402
10424
|
}
|
|
10403
10425
|
));
|
|
10404
10426
|
CardActions.displayName = "CardActions";
|
|
10405
|
-
var HoverCard =
|
|
10427
|
+
var HoverCard = React17.forwardRef(({ children, className, ...props }, ref) => {
|
|
10406
10428
|
return /* @__PURE__ */ jsx22(
|
|
10407
10429
|
"section",
|
|
10408
10430
|
{
|
|
@@ -10414,7 +10436,7 @@ var HoverCard = React16.forwardRef(({ children, className, ...props }, ref) => {
|
|
|
10414
10436
|
);
|
|
10415
10437
|
});
|
|
10416
10438
|
HoverCard.displayName = "HoverCard";
|
|
10417
|
-
var HoverCardTrigger =
|
|
10439
|
+
var HoverCardTrigger = React17.forwardRef(({ className, asChild, children, ...props }, ref) => {
|
|
10418
10440
|
if (asChild) {
|
|
10419
10441
|
return /* @__PURE__ */ jsx22("span", { className: cn("cursor-pointer", className), children });
|
|
10420
10442
|
}
|
|
@@ -10433,7 +10455,7 @@ var HoverCardTrigger = React16.forwardRef(({ className, asChild, children, ...pr
|
|
|
10433
10455
|
);
|
|
10434
10456
|
});
|
|
10435
10457
|
HoverCardTrigger.displayName = "HoverCardTrigger";
|
|
10436
|
-
var HoverCardContent =
|
|
10458
|
+
var HoverCardContent = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx22(
|
|
10437
10459
|
"aside",
|
|
10438
10460
|
{
|
|
10439
10461
|
ref,
|
|
@@ -10819,7 +10841,7 @@ function useDataTablePermissions(rbac, features = {}) {
|
|
|
10819
10841
|
}
|
|
10820
10842
|
|
|
10821
10843
|
// src/components/DataTable/hooks/useTableColumns.ts
|
|
10822
|
-
import
|
|
10844
|
+
import React18, { useMemo as useMemo13 } from "react";
|
|
10823
10845
|
|
|
10824
10846
|
// src/components/DataTable/core/ColumnFactory.ts
|
|
10825
10847
|
var ColumnFactory = class {
|
|
@@ -11025,14 +11047,14 @@ function useTableColumns({
|
|
|
11025
11047
|
header: ({ table }) => {
|
|
11026
11048
|
const isAllSelected = table.getIsAllPageRowsSelected();
|
|
11027
11049
|
const isSomeSelected = table.getIsSomePageRowsSelected();
|
|
11028
|
-
return
|
|
11050
|
+
return React18.createElement(Checkbox, {
|
|
11029
11051
|
checked: isAllSelected ? true : isSomeSelected ? "indeterminate" : false,
|
|
11030
11052
|
onCheckedChange: (value) => table.toggleAllPageRowsSelected(!!value),
|
|
11031
11053
|
"aria-label": "Select all"
|
|
11032
11054
|
});
|
|
11033
11055
|
},
|
|
11034
11056
|
cell: ({ row }) => {
|
|
11035
|
-
return
|
|
11057
|
+
return React18.createElement(Checkbox, {
|
|
11036
11058
|
checked: row.getIsSelected(),
|
|
11037
11059
|
onCheckedChange: (value) => row.toggleSelected(!!value),
|
|
11038
11060
|
"aria-label": "Select row"
|
|
@@ -12350,7 +12372,7 @@ function DataTableInternal({
|
|
|
12350
12372
|
grouping: state.grouping,
|
|
12351
12373
|
aggregates,
|
|
12352
12374
|
getRowId: resolvedGetRowId,
|
|
12353
|
-
emptyState:
|
|
12375
|
+
emptyState: React19.isValidElement(emptyState) ? void 0 : emptyState,
|
|
12354
12376
|
isFiltered: searchQuery !== "" || state.columnFilters.length > 0,
|
|
12355
12377
|
onClearFilters: () => {
|
|
12356
12378
|
stateActions.setSearchQuery("");
|
|
@@ -12445,30 +12467,30 @@ function DataTableCore(props) {
|
|
|
12445
12467
|
// src/components/DataTable/DataTable.tsx
|
|
12446
12468
|
import { jsx as jsx25 } from "react/jsx-runtime";
|
|
12447
12469
|
function DataTable(props) {
|
|
12448
|
-
const logger =
|
|
12470
|
+
const logger = React20.useMemo(() => createLogger("DataTable"), []);
|
|
12449
12471
|
const { features, ...rest } = props;
|
|
12450
12472
|
console.log("[DataTable] \u{1F3AF} DataTable WRAPPER called:", {
|
|
12451
12473
|
dataLength: props.data?.length || 0,
|
|
12452
12474
|
columnsCount: props.columns?.length || 0,
|
|
12453
12475
|
pageName: props.rbac?.pageName || props.rbac?.pageId
|
|
12454
12476
|
});
|
|
12455
|
-
const normalizedFeatures =
|
|
12477
|
+
const normalizedFeatures = React20.useMemo(
|
|
12456
12478
|
() => normalizeDataTableFeatures(features),
|
|
12457
12479
|
[features]
|
|
12458
12480
|
);
|
|
12459
|
-
|
|
12481
|
+
React20.useEffect(() => {
|
|
12460
12482
|
if (!features && import.meta.env?.MODE === "development") {
|
|
12461
12483
|
logger.info("DataTable: no features provided; all capabilities default to disabled. Pass a features object to enable functionality.");
|
|
12462
12484
|
}
|
|
12463
12485
|
}, [features, logger]);
|
|
12464
|
-
|
|
12486
|
+
React20.useEffect(() => {
|
|
12465
12487
|
if (normalizedFeatures.deleteSelected && !normalizedFeatures.deletion) {
|
|
12466
12488
|
logger.warn("deleteSelected requires deletion to be enabled");
|
|
12467
12489
|
}
|
|
12468
12490
|
}, [normalizedFeatures.deleteSelected, normalizedFeatures.deletion, logger]);
|
|
12469
12491
|
return /* @__PURE__ */ jsx25(DataTableCore, { ...rest, features: normalizedFeatures });
|
|
12470
12492
|
}
|
|
12471
|
-
var DataTableComponent =
|
|
12493
|
+
var DataTableComponent = React20.memo(DataTable);
|
|
12472
12494
|
|
|
12473
12495
|
// src/components/DataTable/components/BulkOperationsDropdown.tsx
|
|
12474
12496
|
import {
|
|
@@ -12681,4 +12703,4 @@ lodash/lodash.js:
|
|
|
12681
12703
|
* Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
|
12682
12704
|
*)
|
|
12683
12705
|
*/
|
|
12684
|
-
//# sourceMappingURL=chunk-
|
|
12706
|
+
//# sourceMappingURL=chunk-IMZGJ2X7.js.map
|