@jmruthers/pace-core 0.6.6 → 0.6.8
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/{scripts/audit/audit-dependencies.cjs → audit-tool/00-dependencies.cjs} +227 -22
- package/audit-tool/audits/01-pace-core-compliance.cjs +556 -0
- package/audit-tool/audits/02-project-structure.cjs +240 -0
- package/audit-tool/audits/03-architecture.cjs +224 -0
- package/audit-tool/audits/04-code-quality.cjs +149 -0
- package/audit-tool/audits/05-styling.cjs +224 -0
- package/audit-tool/audits/06-security-rbac.cjs +554 -0
- package/audit-tool/audits/07-api-tech-stack.cjs +355 -0
- package/audit-tool/audits/08-testing-documentation.cjs +202 -0
- package/audit-tool/audits/09-operations.cjs +208 -0
- package/audit-tool/index.cjs +295 -0
- package/audit-tool/utils/code-utils.cjs +218 -0
- package/audit-tool/utils/file-utils.cjs +230 -0
- package/audit-tool/utils/report-utils.cjs +380 -0
- package/cursor-rules/00-standards-overview.mdc +156 -0
- package/cursor-rules/{00-pace-core-compliance.mdc → 01-pace-core-compliance.mdc} +187 -34
- package/cursor-rules/02-project-structure.mdc +37 -5
- package/cursor-rules/{03-solid-principles.mdc → 03-architecture.mdc} +125 -11
- package/cursor-rules/04-code-quality.mdc +419 -0
- package/cursor-rules/{08-markup-quality.mdc → 05-styling.mdc} +55 -10
- package/cursor-rules/{09-rbac-compliance.mdc → 06-security-rbac.mdc} +62 -6
- package/cursor-rules/07-api-tech-stack.mdc +377 -0
- package/cursor-rules/08-testing-documentation.mdc +324 -0
- package/cursor-rules/09-operations.mdc +365 -0
- package/dist/DataTable-6RMSCQJ6.js +15 -0
- package/dist/{DataTable-2N_tqbfq.d.ts → DataTable-DRUIgtUH.d.ts} +1 -1
- package/dist/{PublicPageProvider-BBH6Vqg7.d.ts → PublicPageProvider-CIGSujI2.d.ts} +40 -24
- package/dist/{UnifiedAuthProvider-ZT6TIGM7.js → UnifiedAuthProvider-7SNDOWYD.js} +2 -2
- package/dist/{api-Y4MQWOFW.js → api-7P7DI652.js} +1 -1
- package/dist/{chunk-MAGBIDNS.js → chunk-4DDCYDQ3.js} +8 -7
- package/dist/{chunk-BVP2BCJF.js → chunk-5W2A3DRC.js} +10 -9
- package/dist/{chunk-SD6WQY43.js → chunk-7ILTDCL2.js} +9 -1
- package/dist/{chunk-3QC3KRHK.js → chunk-A3W6LW53.js} +16 -1
- package/dist/{chunk-3O3WHILE.js → chunk-EF2UGZWY.js} +239 -63
- package/dist/{chunk-LAZMKTTF.js → chunk-EURB7QFZ.js} +341 -337
- package/dist/{chunk-2HGJFNAH.js → chunk-FEJLJNWA.js} +1 -15
- package/dist/{chunk-7TYHROIV.js → chunk-GS5672WG.js} +55 -13
- package/dist/{chunk-UIYSCEV7.js → chunk-IUBRCBSY.js} +1 -1
- package/dist/{chunk-ZFYPMX46.js → chunk-LX6U42O3.js} +1 -1
- package/dist/{chunk-FENMYN2U.js → chunk-MPBLMWVR.js} +3 -3
- package/dist/{chunk-ZS5VO5JB.js → chunk-NKHKXPI4.js} +408 -453
- package/dist/{chunk-A55DK444.js → chunk-OJ4SKRSV.js} +1 -7
- package/dist/{chunk-4T7OBVTU.js → chunk-S6ZQKDY6.js} +1 -1
- package/dist/{chunk-FTCRZOG2.js → chunk-T5CVK4R3.js} +5 -5
- package/dist/{chunk-OHIK3MIO.js → chunk-Z2FNRKF3.js} +13 -13
- package/dist/components.d.ts +5 -4
- package/dist/components.js +29 -34
- package/dist/eslint-rules/index.cjs +22 -9
- package/{src/eslint-rules/rules/compliance.cjs → dist/eslint-rules/rules/01-pace-core-compliance.cjs} +184 -23
- package/dist/eslint-rules/rules/04-code-quality.cjs +346 -0
- package/dist/eslint-rules/rules/05-styling.cjs +61 -0
- package/dist/eslint-rules/rules/{rbac.cjs → 06-security-rbac.cjs} +34 -13
- package/dist/eslint-rules/rules/07-api-tech-stack.cjs +385 -0
- package/dist/eslint-rules/rules/08-testing.cjs +94 -0
- package/dist/{functions-DHebl8-F.d.ts → functions-lBy5L2ry.d.ts} +1 -1
- package/dist/hooks.d.ts +5 -5
- package/dist/hooks.js +8 -8
- package/dist/index.d.ts +7 -7
- package/dist/index.js +21 -20
- package/dist/providers.js +2 -2
- package/dist/rbac/index.d.ts +1 -1
- package/dist/rbac/index.js +8 -8
- package/dist/theming/runtime.d.ts +61 -1
- package/dist/theming/runtime.js +1 -1
- package/dist/{types-B-K_5VnO.d.ts → types-DXstZpNI.d.ts} +0 -17
- package/dist/types.d.ts +2 -2
- package/dist/{usePublicRouteParams-COZ28Mvq.d.ts → usePublicRouteParams-MamNgwqe.d.ts} +19 -19
- package/dist/utils.d.ts +2 -2
- package/dist/utils.js +8 -8
- package/docs/README.md +1 -1
- package/docs/api/modules.md +106 -41
- package/docs/api-reference/components.md +18 -20
- package/docs/api-reference/hooks.md +80 -80
- package/docs/api-reference/types.md +1 -1
- package/docs/api-reference/utilities.md +1 -1
- package/docs/architecture/README.md +1 -1
- package/docs/core-concepts/events.md +3 -3
- package/docs/core-concepts/organisations.md +6 -6
- package/docs/core-concepts/permissions.md +6 -6
- package/docs/documentation-index.md +12 -18
- package/docs/getting-started/dependencies.md +23 -0
- package/docs/getting-started/documentation-index.md +1 -1
- package/docs/getting-started/examples/README.md +4 -4
- package/docs/getting-started/examples/full-featured-app.md +1 -1
- package/docs/getting-started/faq.md +2 -2
- package/docs/getting-started/quick-reference.md +4 -4
- package/docs/implementation-guides/app-layout.md +1 -1
- package/docs/implementation-guides/authentication.md +15 -15
- package/docs/implementation-guides/component-styling.md +1 -1
- package/docs/implementation-guides/data-tables.md +127 -34
- package/docs/implementation-guides/datatable-rbac-usage.md +1 -1
- package/docs/implementation-guides/dynamic-colors.md +3 -3
- package/docs/implementation-guides/file-upload-storage.md +2 -2
- package/docs/implementation-guides/hierarchical-datatable.md +40 -60
- package/docs/implementation-guides/inactivity-tracking.md +3 -3
- package/docs/implementation-guides/large-datasets.md +3 -2
- package/docs/implementation-guides/organisation-security.md +2 -2
- package/docs/implementation-guides/performance.md +2 -2
- package/docs/implementation-guides/permission-enforcement.md +1 -1
- package/docs/migration/V0.3.44_organisation-context-timing-fix.md +1 -1
- package/docs/migration/V0.4.0_rbac-migration.md +6 -6
- package/docs/rbac/README.md +5 -5
- package/docs/rbac/advanced-patterns.md +6 -6
- package/docs/rbac/api-reference.md +20 -20
- package/docs/rbac/event-based-apps.md +3 -3
- package/docs/rbac/examples.md +41 -41
- package/docs/rbac/getting-started.md +37 -37
- package/docs/rbac/performance.md +1 -1
- package/docs/rbac/quick-start.md +52 -52
- package/docs/rbac/secure-client-protection.md +1 -1
- package/docs/rbac/troubleshooting.md +1 -1
- package/docs/security/README.md +5 -5
- package/docs/standards/0-standards-overview.md +220 -0
- package/docs/standards/{00-pace-core-compliance.md → 1-pace-core-compliance-standards.md} +241 -185
- package/docs/standards/{02-project-structure.md → 2-project-structure-standards.md} +11 -47
- package/docs/standards/3-architecture-standards.md +606 -0
- package/docs/standards/4-code-quality-standards.md +728 -0
- package/docs/standards/{08-markup-quality.md → 5-styling-standards.md} +12 -9
- package/docs/standards/{09-rbac-compliance.md → 6-security-rbac-standards.md} +126 -18
- package/docs/standards/7-api-tech-stack-standards.md +662 -0
- package/docs/standards/8-testing-documentation-standards.md +401 -0
- package/docs/standards/9-operations-standards.md +1102 -0
- package/docs/standards/README.md +203 -104
- package/docs/troubleshooting/README.md +4 -4
- package/docs/troubleshooting/common-issues.md +2 -2
- package/docs/troubleshooting/debugging.md +9 -9
- package/docs/troubleshooting/migration.md +4 -4
- package/eslint-config-pace-core.cjs +50 -20
- package/package.json +50 -19
- package/scripts/eslint-audit.cjs +123 -0
- package/scripts/install-cursor-rules.cjs +11 -243
- package/scripts/install-eslint-config.cjs +349 -0
- package/scripts/validate-dependencies.cjs +248 -0
- package/src/__tests__/helpers/__tests__/component-test-utils.test.tsx +2 -2
- package/src/__tests__/helpers/__tests__/test-providers.test.tsx +2 -2
- package/src/__tests__/helpers/__tests__/test-utils.test.tsx +30 -18
- package/src/__tests__/integration/UserProfile.test.tsx +14 -14
- package/src/__tests__/rbac/PagePermissionGuard.test.tsx +6 -6
- package/src/__tests__/templates/accessibility.test.template.tsx +10 -9
- package/src/__tests__/templates/component.test.template.tsx +18 -15
- package/src/components/AddressField/AddressField.tsx +26 -1
- package/src/components/Alert/Alert.test.tsx +86 -22
- package/src/components/Alert/Alert.tsx +19 -11
- package/src/components/Badge/Badge.tsx +1 -1
- package/src/components/Calendar/Calendar.tsx +201 -47
- package/src/components/Checkbox/Checkbox.test.tsx +2 -1
- package/src/components/ContextSelector/ContextSelector.tsx +108 -126
- package/src/components/DataTable/AUDIT_REPORT.md +293 -0
- package/src/components/DataTable/DataTable.tsx +1 -19
- package/src/components/DataTable/__tests__/DataTableCore.test.tsx +6 -2
- package/src/components/DataTable/__tests__/a11y.basic.test.tsx +21 -6
- package/src/components/DataTable/__tests__/pagination.modes.test.tsx +3 -2
- package/src/components/DataTable/__tests__/test-utils/sharedTestUtils.tsx +9 -9
- package/src/components/DataTable/components/ColumnFilter.tsx +63 -74
- package/src/components/DataTable/components/ColumnVisibilityDropdown.tsx +43 -41
- package/src/components/DataTable/components/DataTableErrorBoundary.tsx +9 -11
- package/src/components/DataTable/components/DataTableLayout.tsx +5 -16
- package/src/components/DataTable/components/EditableRow.tsx +5 -7
- package/src/components/DataTable/components/EmptyState.tsx +11 -10
- package/src/components/DataTable/components/FilterRow.tsx +2 -4
- package/src/components/DataTable/components/ImportModal.tsx +124 -126
- package/src/components/DataTable/components/LoadingState.tsx +5 -6
- package/src/components/DataTable/components/SortIndicator.tsx +50 -0
- package/src/components/DataTable/components/__tests__/COVERAGE_NOTE.md +4 -4
- package/src/components/DataTable/components/__tests__/ColumnFilter.test.tsx +23 -82
- package/src/components/DataTable/components/__tests__/DataTableErrorBoundary.test.tsx +37 -9
- package/src/components/DataTable/components/__tests__/EmptyState.test.tsx +7 -4
- package/src/components/DataTable/components/__tests__/FilterRow.test.tsx +12 -4
- package/src/components/DataTable/components/__tests__/LoadingState.test.tsx +45 -27
- package/src/components/DataTable/components/index.ts +2 -1
- package/src/components/DataTable/types.ts +0 -18
- package/src/components/DataTable/utils/a11yUtils.ts +17 -0
- package/src/components/DatePickerWithTimezone/DatePickerWithTimezone.test.tsx +1 -1
- package/src/components/DatePickerWithTimezone/DatePickerWithTimezone.tsx +11 -15
- package/src/components/DateTimeField/DateTimeField.tsx +7 -8
- package/src/components/Dialog/Dialog.test.tsx +1 -0
- package/src/components/Dialog/Dialog.tsx +25 -8
- package/src/components/ErrorBoundary/ErrorBoundary.tsx +77 -79
- package/src/components/FileUpload/FileUpload.test.tsx +45 -16
- package/src/components/FileUpload/FileUpload.tsx +141 -130
- package/src/components/NavigationMenu/NavigationMenu.test.tsx +48 -12
- package/src/components/PaceAppLayout/PaceAppLayout.performance.test.tsx +9 -9
- package/src/components/PaceAppLayout/PaceAppLayout.security.test.tsx +30 -30
- package/src/components/PaceAppLayout/PaceAppLayout.test.tsx +4 -4
- package/src/components/PaceLoginPage/PaceLoginPage.test.tsx +7 -1
- package/src/components/Progress/Progress.tsx +2 -4
- package/src/components/ProtectedRoute/ProtectedRoute.tsx +8 -8
- package/src/components/Select/Select.tsx +86 -77
- package/src/components/Select/types.ts +3 -0
- package/src/hooks/__tests__/ServiceHooks.test.tsx +16 -16
- package/src/hooks/__tests__/hooks.integration.test.tsx +49 -49
- package/src/hooks/__tests__/useDataTablePerformance.unit.test.ts +8 -5
- package/src/hooks/__tests__/useFileUrl.unit.test.ts +4 -0
- package/src/hooks/__tests__/useFocusTrap.unit.test.tsx +99 -99
- package/src/hooks/__tests__/useInactivityTracker.unit.test.ts +45 -8
- package/src/hooks/__tests__/usePerformanceMonitor.unit.test.ts +22 -2
- package/src/hooks/public/usePublicEvent.ts +5 -5
- package/src/hooks/public/usePublicEventLogo.ts +5 -5
- package/src/hooks/public/usePublicFileDisplay.ts +2 -2
- package/src/hooks/public/usePublicRouteParams.ts +13 -9
- package/src/hooks/useAddressAutocomplete.test.ts +18 -18
- package/src/hooks/useAppConfig.ts +2 -2
- package/src/hooks/useEventTheme.test.ts +7 -7
- package/src/hooks/useEventTheme.ts +2 -1
- package/src/hooks/useFileDisplay.ts +2 -2
- package/src/hooks/useFileUrl.ts +52 -8
- package/src/hooks/useOrganisationSecurity.test.ts +2 -1
- package/src/providers/UnifiedAuthProvider.smoke.test.tsx +21 -21
- package/src/providers/__tests__/AuthProvider.test.tsx +21 -21
- package/src/providers/__tests__/EventProvider.test.tsx +61 -61
- package/src/providers/__tests__/InactivityProvider.test.tsx +56 -56
- package/src/providers/__tests__/OrganisationProvider.test.tsx +75 -75
- package/src/providers/__tests__/ProviderLifecycle.test.tsx +38 -38
- package/src/providers/__tests__/UnifiedAuthProvider.test.tsx +103 -103
- package/src/providers/services/__tests__/AuthServiceProvider.integration.test.tsx +7 -7
- package/src/providers/services/__tests__/UnifiedAuthProvider.integration.test.tsx +10 -10
- package/src/rbac/__tests__/auth-rbac.e2e.test.tsx +15 -6
- package/src/rbac/__tests__/rbac-functions.test.ts +3 -3
- package/src/rbac/api.test.ts +104 -0
- package/src/rbac/engine.ts +1 -1
- package/src/rbac/hooks/useCan.test.ts +2 -2
- package/src/rbac/secureClient.ts +1 -1
- package/src/rbac/types/functions.ts +1 -1
- package/src/styles/core.css +7 -0
- package/src/theming/__tests__/parseEventColours.test.ts +118 -3
- package/src/theming/parseEventColours.ts +77 -11
- package/src/types/supabase.ts +2 -3
- package/src/utils/__tests__/bundleAnalysis.unit.test.ts +9 -9
- package/src/utils/__tests__/lazyLoad.unit.test.tsx +42 -39
- package/src/utils/file-reference/__tests__/file-reference.test.ts +4 -0
- package/src/utils/formatting/formatDate.test.ts +3 -2
- package/src/utils/formatting/formatDateTime.test.ts +2 -2
- package/src/utils/google-places/googlePlacesUtils.test.ts +36 -24
- package/src/utils/storage/README.md +1 -1
- package/src/utils/storage/__tests__/helpers.unit.test.ts +19 -12
- package/src/utils/storage/helpers.test.ts +69 -3
- package/cursor-rules/01-standards-compliance.mdc +0 -285
- package/cursor-rules/04-testing-standards.mdc +0 -270
- package/cursor-rules/05-bug-reports-and-features.mdc +0 -248
- package/cursor-rules/06-code-quality.mdc +0 -311
- package/cursor-rules/07-tech-stack-compliance.mdc +0 -216
- package/cursor-rules/10-error-handling-patterns.mdc +0 -179
- package/cursor-rules/11-performance-optimization.mdc +0 -169
- package/cursor-rules/12-ci-cd-integration.mdc +0 -150
- package/dist/DataTable-LRJL4IRV.js +0 -15
- package/dist/eslint-rules/rules/compliance.cjs +0 -348
- package/dist/eslint-rules/rules/components.cjs +0 -113
- package/dist/eslint-rules/rules/imports.cjs +0 -102
- package/docs/best-practices/README.md +0 -472
- package/docs/best-practices/accessibility.md +0 -604
- package/docs/best-practices/common-patterns.md +0 -516
- package/docs/best-practices/deployment.md +0 -1103
- package/docs/best-practices/performance.md +0 -1328
- package/docs/best-practices/security.md +0 -940
- package/docs/best-practices/testing.md +0 -1034
- package/docs/rbac/compliance/compliance-guide.md +0 -544
- package/docs/standards/01-standards-compliance.md +0 -188
- package/docs/standards/03-solid-principles.md +0 -39
- package/docs/standards/04-testing-standards.md +0 -36
- package/docs/standards/05-bug-reports-and-features.md +0 -27
- package/docs/standards/06-code-quality.md +0 -34
- package/docs/standards/07-tech-stack-compliance.md +0 -30
- package/docs/standards/10-error-handling-patterns.md +0 -401
- package/docs/standards/11-performance-optimization.md +0 -348
- package/docs/standards/12-ci-cd-integration.md +0 -370
- package/docs/standards/ALIGNMENT_REVIEW_SUMMARY.md +0 -192
- package/scripts/audit/audit-compliance.cjs +0 -1295
- package/scripts/audit/audit-components.cjs +0 -260
- package/scripts/audit/audit-rbac.cjs +0 -954
- package/scripts/audit/audit-standards.cjs +0 -1268
- package/scripts/audit/index.cjs +0 -1927
- package/src/components/DataTable/components/DataTableBody.tsx +0 -478
- package/src/components/DataTable/components/DraggableColumnHeader.tsx +0 -156
- package/src/components/DataTable/components/ExpandButton.tsx +0 -113
- package/src/components/DataTable/components/GroupHeader.tsx +0 -54
- package/src/components/DataTable/components/ViewRowModal.tsx +0 -68
- package/src/components/DataTable/components/VirtualizedDataTable.tsx +0 -525
- package/src/components/DataTable/components/__tests__/ExpandButton.test.tsx +0 -462
- package/src/components/DataTable/components/__tests__/GroupHeader.test.tsx +0 -393
- package/src/components/DataTable/components/__tests__/ViewRowModal.test.tsx +0 -476
- package/src/components/DataTable/components/__tests__/VirtualizedDataTable.test.tsx +0 -128
- package/src/components/DataTable/core/DataTableContext.tsx +0 -216
- package/src/components/DataTable/core/__tests__/DataTableContext.test.tsx +0 -136
- package/src/components/DataTable/hooks/__tests__/useColumnReordering.test.ts +0 -570
- package/src/components/DataTable/hooks/useColumnReordering.ts +0 -123
- package/src/components/DataTable/utils/debugTools.ts +0 -514
- package/src/eslint-rules/index.cjs +0 -22
- package/src/eslint-rules/rules/components.cjs +0 -113
- package/src/eslint-rules/rules/imports.cjs +0 -102
- package/src/eslint-rules/rules/rbac.cjs +0 -790
- package/src/eslint-rules/utils/helpers.cjs +0 -42
- package/src/eslint-rules/utils/manifest-loader.cjs +0 -75
|
@@ -1,21 +1,7 @@
|
|
|
1
1
|
import { createLogger } from './chunk-TTRFSOKR.js';
|
|
2
|
-
import { jsx } from 'react/jsx-runtime';
|
|
3
2
|
import { parseISO, isValid, addMinutes, differenceInHours } from 'date-fns';
|
|
4
3
|
import { formatInTimeZone as formatInTimeZone$1, toZonedTime as toZonedTime$1, fromZonedTime as fromZonedTime$1 } from 'date-fns-tz';
|
|
5
4
|
|
|
6
|
-
var LoadingSpinner = ({
|
|
7
|
-
size = "md",
|
|
8
|
-
className = ""
|
|
9
|
-
}) => {
|
|
10
|
-
const sizeClasses = {
|
|
11
|
-
sm: "size-4",
|
|
12
|
-
md: "size-6",
|
|
13
|
-
lg: "size-8"
|
|
14
|
-
};
|
|
15
|
-
const validSize = size && size in sizeClasses ? size : "md";
|
|
16
|
-
const sizeClass = sizeClasses[validSize];
|
|
17
|
-
return /* @__PURE__ */ jsx("canvas", { className: `inline-block animate-spin rounded-full border-2 border-solid border-current border-r-transparent motion-reduce:animate-[spin_1.5s_linear_infinite] ${sizeClass} ${className}`.trim(), role: "status", children: /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Loading..." }) });
|
|
18
|
-
};
|
|
19
5
|
function formatInTimeZone(date, timeZone, formatStr) {
|
|
20
6
|
try {
|
|
21
7
|
if (!timeZone || typeof timeZone !== "string") {
|
|
@@ -192,4 +178,4 @@ var CachedAppIdResolver = class {
|
|
|
192
178
|
};
|
|
193
179
|
var cachedAppIdResolver = new CachedAppIdResolver();
|
|
194
180
|
|
|
195
|
-
export { CachedAppIdResolver,
|
|
181
|
+
export { CachedAppIdResolver, cachedAppIdResolver, formatInTimeZone, formatTimeInTimeZone, fromZonedTime, getAppId, getAppIds, getTimeZoneDifference, getTimezoneAbbreviation, getUserTimeZone, roundToNearestMinutes, toZonedTime };
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { useAppConfig, useOrganisationSecurity } from './chunk-
|
|
2
|
-
import { useEventService, useUnifiedAuth, useOrganisations } from './chunk-
|
|
3
|
-
import { OrganisationContextRequiredError, getRBACLogger, resolveAppContext, getPageScopeType, ContextValidator, getPermissionMap, getRoleContext, getAccessLevel, isPermittedCached, isPermitted, isSuperAdmin } from './chunk-
|
|
4
|
-
import {
|
|
1
|
+
import { useAppConfig, useOrganisationSecurity } from './chunk-EF2UGZWY.js';
|
|
2
|
+
import { useEventService, useUnifiedAuth, useOrganisations } from './chunk-T5CVK4R3.js';
|
|
3
|
+
import { OrganisationContextRequiredError, getRBACLogger, resolveAppContext, getPageScopeType, ContextValidator, getPermissionMap, getRoleContext, getAccessLevel, isPermittedCached, isPermitted, isSuperAdmin } from './chunk-LX6U42O3.js';
|
|
4
|
+
import { getCurrentAppName } from './chunk-OJ4SKRSV.js';
|
|
5
|
+
import { cn } from './chunk-7ILTDCL2.js';
|
|
5
6
|
import { createLogger, logger } from './chunk-TTRFSOKR.js';
|
|
6
|
-
import * as
|
|
7
|
+
import * as React2 from 'react';
|
|
7
8
|
import { useRef, useMemo, useState, useCallback, useEffect } from 'react';
|
|
8
9
|
import * as TooltipPrimitive from '@radix-ui/react-tooltip';
|
|
9
10
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
@@ -52,7 +53,7 @@ function useEvents() {
|
|
|
52
53
|
var TooltipProvider = TooltipPrimitive.Provider;
|
|
53
54
|
var TooltipRoot = TooltipPrimitive.Root;
|
|
54
55
|
var TooltipTrigger = TooltipPrimitive.Trigger;
|
|
55
|
-
var TooltipContent =
|
|
56
|
+
var TooltipContent = React2.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
56
57
|
TooltipPrimitive.Content,
|
|
57
58
|
{
|
|
58
59
|
ref,
|
|
@@ -65,7 +66,7 @@ var TooltipContent = React.forwardRef(({ className, sideOffset = 4, ...props },
|
|
|
65
66
|
}
|
|
66
67
|
));
|
|
67
68
|
TooltipContent.displayName = TooltipPrimitive.Content.displayName;
|
|
68
|
-
var Tooltip =
|
|
69
|
+
var Tooltip = React2.forwardRef(({ children, content, delayDuration = 200 }, ref) => /* @__PURE__ */ jsx(TooltipProvider, { children: /* @__PURE__ */ jsxs(TooltipRoot, { delayDuration, children: [
|
|
69
70
|
/* @__PURE__ */ jsx(TooltipTrigger, { ref, asChild: true, children: /* @__PURE__ */ jsx("span", { children }) }),
|
|
70
71
|
/* @__PURE__ */ jsx(TooltipContent, { children: content })
|
|
71
72
|
] }) }));
|
|
@@ -88,7 +89,7 @@ function getButtonClasses(variant = "default", size = "default") {
|
|
|
88
89
|
};
|
|
89
90
|
return `${baseClasses} ${variantClasses[variant]} ${sizeClasses[size]}`;
|
|
90
91
|
}
|
|
91
|
-
var Button =
|
|
92
|
+
var Button = React2.forwardRef(
|
|
92
93
|
({ className, variant, size, asChild = false, type = "button", disabled, ...props }, ref) => {
|
|
93
94
|
const Comp = asChild ? Slot : "button";
|
|
94
95
|
return /* @__PURE__ */ jsx(
|
|
@@ -105,7 +106,48 @@ var Button = React.forwardRef(
|
|
|
105
106
|
}
|
|
106
107
|
);
|
|
107
108
|
Button.displayName = "Button";
|
|
108
|
-
|
|
109
|
+
function ButtonGroup({
|
|
110
|
+
children,
|
|
111
|
+
orientation = "horizontal",
|
|
112
|
+
variant,
|
|
113
|
+
size,
|
|
114
|
+
className,
|
|
115
|
+
spacing = "sm"
|
|
116
|
+
}) {
|
|
117
|
+
const spacingClasses = {
|
|
118
|
+
none: "",
|
|
119
|
+
sm: orientation === "horizontal" ? "space-x-1" : "space-y-1",
|
|
120
|
+
md: orientation === "horizontal" ? "space-x-2" : "space-y-2",
|
|
121
|
+
lg: orientation === "horizontal" ? "space-x-4" : "space-y-4"
|
|
122
|
+
};
|
|
123
|
+
return /* @__PURE__ */ jsx(
|
|
124
|
+
"fieldset",
|
|
125
|
+
{
|
|
126
|
+
className: cn(
|
|
127
|
+
"flex",
|
|
128
|
+
orientation === "horizontal" ? "flex-row items-center" : "flex-col",
|
|
129
|
+
spacingClasses[spacing],
|
|
130
|
+
className
|
|
131
|
+
),
|
|
132
|
+
role: "group",
|
|
133
|
+
children: React2.Children.map(children, (child) => {
|
|
134
|
+
if (React2.isValidElement(child) && child.type) {
|
|
135
|
+
const componentType = child.type;
|
|
136
|
+
if (componentType.displayName === "Button") {
|
|
137
|
+
const childProps = child.props;
|
|
138
|
+
return React2.cloneElement(child, {
|
|
139
|
+
variant: childProps.variant || variant,
|
|
140
|
+
size: childProps.size || size,
|
|
141
|
+
...childProps
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
return child;
|
|
146
|
+
})
|
|
147
|
+
}
|
|
148
|
+
);
|
|
149
|
+
}
|
|
150
|
+
var IconButton = React2.forwardRef(
|
|
109
151
|
({ icon, className, size = "icon", "aria-label": ariaLabel, tooltip, ...props }, ref) => {
|
|
110
152
|
const button = /* @__PURE__ */ jsx(
|
|
111
153
|
Button,
|
|
@@ -488,7 +530,7 @@ var _SecureSupabaseClient = class _SecureSupabaseClient {
|
|
|
488
530
|
}
|
|
489
531
|
const rpcContextWhitelist = {
|
|
490
532
|
// RPCs that accept all three context parameters
|
|
491
|
-
"
|
|
533
|
+
"data_rbac_roles_list": /* @__PURE__ */ new Set(["p_organisation_id", "p_event_id", "p_app_id"]),
|
|
492
534
|
// RPCs that accept only p_organisation_id (not p_app_id or p_event_id)
|
|
493
535
|
"data_file_reference_by_category_list": /* @__PURE__ */ new Set(["p_organisation_id"])
|
|
494
536
|
// Add more RPCs here as we discover them
|
|
@@ -839,7 +881,7 @@ function useAccessLevel(userId, scope) {
|
|
|
839
881
|
try {
|
|
840
882
|
setIsLoading(true);
|
|
841
883
|
setError(null);
|
|
842
|
-
const { isSuperAdmin: checkSuperAdmin } = await import('./api-
|
|
884
|
+
const { isSuperAdmin: checkSuperAdmin } = await import('./api-7P7DI652.js');
|
|
843
885
|
const isSuperAdminUser = await checkSuperAdmin(userId);
|
|
844
886
|
if (isSuperAdminUser) {
|
|
845
887
|
setAccessLevel("super");
|
|
@@ -917,7 +959,7 @@ function useCan(userId, scope, permission, pageId, useCache = true, precomputedS
|
|
|
917
959
|
const checkSuperAdmin = async () => {
|
|
918
960
|
const startTime = Date.now();
|
|
919
961
|
try {
|
|
920
|
-
const { isSuperAdmin: checkSuperAdmin2 } = await import('./api-
|
|
962
|
+
const { isSuperAdmin: checkSuperAdmin2 } = await import('./api-7P7DI652.js');
|
|
921
963
|
const timeoutWarning = setTimeout(() => {
|
|
922
964
|
if (!cancelled) {
|
|
923
965
|
console.warn("[useCan] Super admin check taking longer than 5 seconds", {
|
|
@@ -1958,4 +2000,4 @@ function useSecureSupabase(baseClient) {
|
|
|
1958
2000
|
]);
|
|
1959
2001
|
}
|
|
1960
2002
|
|
|
1961
|
-
export { Button, SECURE_CLIENT_SYMBOL, SecureSupabaseClient, Tooltip, TooltipContent, TooltipProvider, TooltipRoot, TooltipTrigger, createSecureClient, fromSupabaseClient, isSecureClient, scopeEqual, useAccessLevel, useCan, useEvents, useMultiplePermissions, usePermissions, useRBAC, useResolvedScope, useResourcePermissions, useRoleManagement, useSecureSupabase, warnIfInsecureClient };
|
|
2003
|
+
export { Button, ButtonGroup, SECURE_CLIENT_SYMBOL, SecureSupabaseClient, Tooltip, TooltipContent, TooltipProvider, TooltipRoot, TooltipTrigger, createSecureClient, fromSupabaseClient, isSecureClient, scopeEqual, useAccessLevel, useCan, useEvents, useMultiplePermissions, usePermissions, useRBAC, useResolvedScope, useResourcePermissions, useRoleManagement, useSecureSupabase, warnIfInsecureClient };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { formatInTimeZone, getTimezoneAbbreviation } from './chunk-
|
|
1
|
+
import { formatInTimeZone, getTimezoneAbbreviation } from './chunk-FEJLJNWA.js';
|
|
2
2
|
import { createLogger } from './chunk-TTRFSOKR.js';
|
|
3
3
|
import { z } from 'zod';
|
|
4
4
|
import { createClient } from '@supabase/supabase-js';
|
|
@@ -1349,7 +1349,7 @@ var RBACEngine = class {
|
|
|
1349
1349
|
async resolveAppContext(input) {
|
|
1350
1350
|
try {
|
|
1351
1351
|
const { userId, appName } = input;
|
|
1352
|
-
const { data, error } = await this.supabase.rpc("
|
|
1352
|
+
const { data, error } = await this.supabase.rpc("data_app_resolve", {
|
|
1353
1353
|
p_user_id: userId,
|
|
1354
1354
|
p_app_name: appName
|
|
1355
1355
|
});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { clearPalette, parseAndNormalizeEventColours, applyPalette } from './chunk-
|
|
2
|
-
import { EventServiceContext } from './chunk-
|
|
1
|
+
import { clearPalette, parseAndNormalizeEventColours, applyPalette } from './chunk-5W2A3DRC.js';
|
|
2
|
+
import { EventServiceContext } from './chunk-T5CVK4R3.js';
|
|
3
3
|
import { assertAppId } from './chunk-4SXLQIZO.js';
|
|
4
4
|
import { fetchPlaceDetails, createAddressFromPlaceResult, getAddressByPlaceId, fetchPlaceAutocomplete, setOrganisationContext } from './chunk-FYHN4DD5.js';
|
|
5
5
|
import { createLogger, logger } from './chunk-TTRFSOKR.js';
|
|
@@ -1238,7 +1238,7 @@ var FileReferenceServiceImpl = class {
|
|
|
1238
1238
|
const userIdForCheck = authenticatedUserId || options.userId;
|
|
1239
1239
|
if (userIdForCheck) {
|
|
1240
1240
|
try {
|
|
1241
|
-
const { isSuperAdmin } = await import('./api-
|
|
1241
|
+
const { isSuperAdmin } = await import('./api-7P7DI652.js');
|
|
1242
1242
|
isSuperAdminUser = await isSuperAdmin(userIdForCheck);
|
|
1243
1243
|
if (isSuperAdminUser) {
|
|
1244
1244
|
log3.debug("Super admin detected - bypassing permission checks", { userId: userIdForCheck });
|