@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.
Files changed (120) hide show
  1. package/dist/{DataTable-H2WIR2DN.js → DataTable-WFCHVWTY.js} +2 -2
  2. package/dist/{PublicLoadingSpinner-48ewSMKK.d.ts → PublicLoadingSpinner-DgDWTFqn.d.ts} +4 -2
  3. package/dist/{chunk-EWKCROSF.js → chunk-B3QX32P5.js} +47 -8
  4. package/dist/chunk-B3QX32P5.js.map +1 -0
  5. package/dist/{chunk-5JJCXTVE.js → chunk-IMZGJ2X7.js} +105 -83
  6. package/dist/{chunk-5JJCXTVE.js.map → chunk-IMZGJ2X7.js.map} +1 -1
  7. package/dist/components.d.ts +1 -1
  8. package/dist/components.js +2 -2
  9. package/dist/index.d.ts +1 -1
  10. package/dist/index.js +2 -2
  11. package/dist/utils.js +1 -1
  12. package/docs/api/classes/ColumnFactory.md +1 -1
  13. package/docs/api/classes/ErrorBoundary.md +1 -1
  14. package/docs/api/classes/InvalidScopeError.md +1 -1
  15. package/docs/api/classes/MissingUserContextError.md +1 -1
  16. package/docs/api/classes/OrganisationContextRequiredError.md +1 -1
  17. package/docs/api/classes/PermissionDeniedError.md +1 -1
  18. package/docs/api/classes/PublicErrorBoundary.md +1 -1
  19. package/docs/api/classes/RBACAuditManager.md +1 -1
  20. package/docs/api/classes/RBACCache.md +1 -1
  21. package/docs/api/classes/RBACEngine.md +1 -1
  22. package/docs/api/classes/RBACError.md +1 -1
  23. package/docs/api/classes/RBACNotInitializedError.md +1 -1
  24. package/docs/api/classes/SecureSupabaseClient.md +1 -1
  25. package/docs/api/classes/StorageUtils.md +1 -1
  26. package/docs/api/enums/FileCategory.md +1 -1
  27. package/docs/api/interfaces/AggregateConfig.md +1 -1
  28. package/docs/api/interfaces/ButtonProps.md +1 -1
  29. package/docs/api/interfaces/CardProps.md +1 -1
  30. package/docs/api/interfaces/ColorPalette.md +1 -1
  31. package/docs/api/interfaces/ColorShade.md +1 -1
  32. package/docs/api/interfaces/DataAccessRecord.md +1 -1
  33. package/docs/api/interfaces/DataRecord.md +1 -1
  34. package/docs/api/interfaces/DataTableAction.md +1 -1
  35. package/docs/api/interfaces/DataTableColumn.md +1 -1
  36. package/docs/api/interfaces/DataTableProps.md +1 -1
  37. package/docs/api/interfaces/DataTableToolbarButton.md +1 -1
  38. package/docs/api/interfaces/EmptyStateConfig.md +1 -1
  39. package/docs/api/interfaces/EnhancedNavigationMenuProps.md +1 -1
  40. package/docs/api/interfaces/FileDisplayProps.md +1 -1
  41. package/docs/api/interfaces/FileMetadata.md +1 -1
  42. package/docs/api/interfaces/FileReference.md +1 -1
  43. package/docs/api/interfaces/FileSizeLimits.md +1 -1
  44. package/docs/api/interfaces/FileUploadOptions.md +1 -1
  45. package/docs/api/interfaces/FileUploadProps.md +1 -1
  46. package/docs/api/interfaces/FooterProps.md +1 -1
  47. package/docs/api/interfaces/InactivityWarningModalProps.md +1 -1
  48. package/docs/api/interfaces/InputProps.md +1 -1
  49. package/docs/api/interfaces/LabelProps.md +1 -1
  50. package/docs/api/interfaces/LoginFormProps.md +1 -1
  51. package/docs/api/interfaces/NavigationAccessRecord.md +1 -1
  52. package/docs/api/interfaces/NavigationContextType.md +1 -1
  53. package/docs/api/interfaces/NavigationGuardProps.md +1 -1
  54. package/docs/api/interfaces/NavigationItem.md +1 -1
  55. package/docs/api/interfaces/NavigationMenuProps.md +1 -1
  56. package/docs/api/interfaces/NavigationProviderProps.md +1 -1
  57. package/docs/api/interfaces/Organisation.md +1 -1
  58. package/docs/api/interfaces/OrganisationContextType.md +1 -1
  59. package/docs/api/interfaces/OrganisationMembership.md +1 -1
  60. package/docs/api/interfaces/OrganisationProviderProps.md +1 -1
  61. package/docs/api/interfaces/OrganisationSecurityError.md +1 -1
  62. package/docs/api/interfaces/PaceAppLayoutProps.md +1 -1
  63. package/docs/api/interfaces/PaceLoginPageProps.md +1 -1
  64. package/docs/api/interfaces/PageAccessRecord.md +1 -1
  65. package/docs/api/interfaces/PagePermissionContextType.md +1 -1
  66. package/docs/api/interfaces/PagePermissionGuardProps.md +1 -1
  67. package/docs/api/interfaces/PagePermissionProviderProps.md +1 -1
  68. package/docs/api/interfaces/PaletteData.md +1 -1
  69. package/docs/api/interfaces/PermissionEnforcerProps.md +1 -1
  70. package/docs/api/interfaces/ProtectedRouteProps.md +1 -1
  71. package/docs/api/interfaces/PublicErrorBoundaryProps.md +1 -1
  72. package/docs/api/interfaces/PublicErrorBoundaryState.md +1 -1
  73. package/docs/api/interfaces/PublicLoadingSpinnerProps.md +1 -1
  74. package/docs/api/interfaces/PublicPageFooterProps.md +1 -1
  75. package/docs/api/interfaces/PublicPageHeaderProps.md +1 -1
  76. package/docs/api/interfaces/PublicPageLayoutProps.md +1 -1
  77. package/docs/api/interfaces/RBACConfig.md +1 -1
  78. package/docs/api/interfaces/RBACLogger.md +1 -1
  79. package/docs/api/interfaces/RoleBasedRouterContextType.md +1 -1
  80. package/docs/api/interfaces/RoleBasedRouterProps.md +1 -1
  81. package/docs/api/interfaces/RouteAccessRecord.md +1 -1
  82. package/docs/api/interfaces/RouteConfig.md +1 -1
  83. package/docs/api/interfaces/SecureDataContextType.md +1 -1
  84. package/docs/api/interfaces/SecureDataProviderProps.md +1 -1
  85. package/docs/api/interfaces/StorageConfig.md +1 -1
  86. package/docs/api/interfaces/StorageFileInfo.md +1 -1
  87. package/docs/api/interfaces/StorageFileMetadata.md +1 -1
  88. package/docs/api/interfaces/StorageListOptions.md +1 -1
  89. package/docs/api/interfaces/StorageListResult.md +1 -1
  90. package/docs/api/interfaces/StorageUploadOptions.md +1 -1
  91. package/docs/api/interfaces/StorageUploadResult.md +1 -1
  92. package/docs/api/interfaces/StorageUrlOptions.md +1 -1
  93. package/docs/api/interfaces/StyleImport.md +1 -1
  94. package/docs/api/interfaces/SwitchProps.md +1 -1
  95. package/docs/api/interfaces/ToastActionElement.md +1 -1
  96. package/docs/api/interfaces/ToastProps.md +1 -1
  97. package/docs/api/interfaces/UnifiedAuthContextType.md +1 -1
  98. package/docs/api/interfaces/UnifiedAuthProviderProps.md +1 -1
  99. package/docs/api/interfaces/UseInactivityTrackerOptions.md +1 -1
  100. package/docs/api/interfaces/UseInactivityTrackerReturn.md +1 -1
  101. package/docs/api/interfaces/UsePublicEventOptions.md +1 -1
  102. package/docs/api/interfaces/UsePublicEventReturn.md +1 -1
  103. package/docs/api/interfaces/UsePublicFileDisplayOptions.md +1 -1
  104. package/docs/api/interfaces/UsePublicFileDisplayReturn.md +1 -1
  105. package/docs/api/interfaces/UsePublicRouteParamsReturn.md +1 -1
  106. package/docs/api/interfaces/UseResolvedScopeOptions.md +1 -1
  107. package/docs/api/interfaces/UseResolvedScopeReturn.md +1 -1
  108. package/docs/api/interfaces/UserEventAccess.md +1 -1
  109. package/docs/api/interfaces/UserMenuProps.md +1 -1
  110. package/docs/api/interfaces/UserProfile.md +1 -1
  111. package/docs/api/modules.md +7 -5
  112. package/package.json +1 -1
  113. package/src/components/DataTable/components/ColumnFilter.tsx +2 -1
  114. package/src/components/DataTable/components/EditableRow.tsx +7 -2
  115. package/src/components/DataTable/components/FilterRow.tsx +22 -11
  116. package/src/components/DataTable/components/PaginationControls.tsx +1 -1
  117. package/src/components/DataTable/components/UnifiedTableBody.tsx +39 -10
  118. package/src/components/PaceAppLayout/PaceAppLayout.tsx +79 -10
  119. package/dist/chunk-EWKCROSF.js.map +0 -1
  120. /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 React19 from "react";
5505
+ import React20 from "react";
5506
5506
 
5507
5507
  // src/components/DataTable/components/DataTableCore.tsx
5508
- import React18, { useMemo as useMemo14, useCallback as useCallback11, useEffect as useEffect12, useRef as useRef7 } from "react";
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 React9, { useRef as useRef3, useEffect as useEffect3 } from "react";
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
- if (columnDef.filterType) {
6822
- return columnDef.filterType;
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 React7, { useMemo as useMemo2 } from "react";
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 = React7.memo(ActionButtonsComponent);
7112
+ var ActionButtons = React8.memo(ActionButtonsComponent);
7109
7113
 
7110
7114
  // src/components/DataTable/components/EditableRow.tsx
7111
- import React8 from "react";
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 = React8.useRef(null);
7126
- const [searchTerm, setSearchTerm] = React8.useState("");
7127
- const [isOpen, setIsOpen] = React8.useState(false);
7128
- const [showCreateOption, setShowCreateOption] = React8.useState(false);
7129
- React8.useEffect(() => {
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 = React8.useCallback(async () => {
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 = React8.useRef(null);
7306
- const hasAssignedRef = React8.useRef(false);
7307
- React8.useEffect(() => {
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 = React9.useRef(null);
7586
- const [searchTerm, setSearchTerm] = React9.useState("");
7587
- const [isOpen, setIsOpen] = React9.useState(false);
7588
- const [showCreateOption, setShowCreateOption] = React9.useState(false);
7589
- React9.useEffect(() => {
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 = React9.useCallback(async () => {
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 = React9.memo(({
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: renderEditField2(header.column, creationData[header.column.id], (value) => {
8139
- if (typeof value === "object" && value !== null && !Array.isArray(value) && !(value instanceof Date)) {
8140
- onCreationDataChange({ ...creationData, ...value });
8141
- } else {
8142
- onCreationDataChange({ ...creationData, [header.column.id]: value });
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
- }, creationData)
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 React10 from "react";
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] = React10.useState("");
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 React11 from "react";
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 = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx17(
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 = React11.forwardRef(({
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 = React11.useCallback((event) => {
8773
+ const handleEscapeKeyDown = React12.useCallback((event) => {
8752
8774
  if (preventCloseOnEscape) {
8753
8775
  event.preventDefault();
8754
8776
  }
8755
8777
  }, [preventCloseOnEscape]);
8756
- const handlePointerDownOutside = React11.useCallback((event) => {
8778
+ const handlePointerDownOutside = React12.useCallback((event) => {
8757
8779
  if (preventCloseOnOutsideClick) {
8758
8780
  event.preventDefault();
8759
8781
  }
8760
8782
  }, [preventCloseOnOutsideClick]);
8761
- const mergedStyle = React11.useMemo(() => {
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 = React11.useMemo(() => {
8861
+ const mergedStyle = React12.useMemo(() => {
8840
8862
  return {
8841
8863
  ...maxHeight && { maxHeight },
8842
8864
  ...style
8843
8865
  };
8844
8866
  }, [maxHeight, style]);
8845
- const processedHtmlContent = React11.useMemo(() => {
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 = React11.forwardRef(({ className, htmlContent, allowHtml = true, children, ...props }, ref) => {
8909
- const processedHtmlContent = React11.useMemo(() => {
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 = React11.forwardRef(({ className, htmlContent, allowHtml = true, children, ...props }, ref) => {
8933
- const processedHtmlContent = React11.useMemo(() => {
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 React15, { Component } from "react";
9317
+ import React16, { Component } from "react";
9296
9318
 
9297
9319
  // src/components/Alert/Alert.tsx
9298
- import * as React14 from "react";
9320
+ import * as React15 from "react";
9299
9321
  import { jsx as jsx20 } from "react/jsx-runtime";
9300
- var AlertContext = React14.createContext({ variant: "default" });
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 = React14.forwardRef(({ className, variant = "default", ...props }, ref) => {
9312
- const contextValue = React14.useMemo(() => ({ variant }), [variant]);
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(React14.Fragment, { ...props }) });
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 = React14.forwardRef(({ className, ...props }, ref) => {
9328
- const { variant } = React14.useContext(AlertContext);
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 = React14.forwardRef(({ className, ...props }, ref) => {
9343
- const { variant } = React14.useContext(AlertContext);
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 React16 from "react";
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 = React16.forwardRef(({ className, variant, size, ...props }, ref) => /* @__PURE__ */ jsx22(
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 = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx22(
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 = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx22(
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 = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx22(
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 = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx22(
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 = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx22(
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 = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx22(
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 = React16.forwardRef(({ children, className, ...props }, ref) => {
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 = React16.forwardRef(({ className, asChild, children, ...props }, ref) => {
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 = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx22(
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 React17, { useMemo as useMemo13 } from "react";
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 React17.createElement(Checkbox, {
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 React17.createElement(Checkbox, {
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: React18.isValidElement(emptyState) ? void 0 : 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 = React19.useMemo(() => createLogger("DataTable"), []);
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 = React19.useMemo(
12477
+ const normalizedFeatures = React20.useMemo(
12456
12478
  () => normalizeDataTableFeatures(features),
12457
12479
  [features]
12458
12480
  );
12459
- React19.useEffect(() => {
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
- React19.useEffect(() => {
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 = React19.memo(DataTable);
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-5JJCXTVE.js.map
12706
+ //# sourceMappingURL=chunk-IMZGJ2X7.js.map