@elevasis/ui 2.25.0 → 2.25.1

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 (101) hide show
  1. package/dist/app/index.css +11 -0
  2. package/dist/app/index.d.ts +457 -357
  3. package/dist/app/index.js +8 -7
  4. package/dist/auth/index.js +4 -4
  5. package/dist/charts/index.js +7 -7
  6. package/dist/{chunk-DDZOHLHB.js → chunk-26HQMR7S.js} +1 -1
  7. package/dist/{chunk-ZMXZ476Y.js → chunk-3AHEHVJ6.js} +3 -3
  8. package/dist/{chunk-LJWV4TWV.js → chunk-4ZFBVND2.js} +2 -2
  9. package/dist/{chunk-7D2HSSIW.js → chunk-7LJUTTXU.js} +5 -5
  10. package/dist/{chunk-ABV5LDDC.js → chunk-AZQY7AJR.js} +13 -24
  11. package/dist/{chunk-BIWHHWCJ.js → chunk-DWK2QIAK.js} +2 -1
  12. package/dist/{chunk-ZDKQNQ4X.js → chunk-GESXCQWY.js} +1 -1
  13. package/dist/{chunk-Z6FAH4XV.js → chunk-HKBEURCV.js} +1 -1
  14. package/dist/{chunk-HC2KV6BU.js → chunk-HOIT677G.js} +1 -1
  15. package/dist/chunk-IS53MXE4.js +230 -0
  16. package/dist/{chunk-WSC5LU3U.js → chunk-IX7LWINC.js} +6 -5
  17. package/dist/{chunk-AXXTN44Z.js → chunk-IYIZYMIE.js} +2 -2
  18. package/dist/{chunk-WWVSPOJY.js → chunk-JDQSCEEF.js} +1237 -642
  19. package/dist/{chunk-AZXSFDG2.js → chunk-JMI7L7Y7.js} +113 -63
  20. package/dist/{chunk-TSSKOQBX.js → chunk-KMAXFJPH.js} +2 -2
  21. package/dist/{chunk-HQ7M6PBW.js → chunk-KU7ZDWQ7.js} +1 -1
  22. package/dist/{chunk-ZGZZIR6K.js → chunk-L4RT57WU.js} +7 -7
  23. package/dist/{chunk-LK4MPIMK.js → chunk-MU4VPAMR.js} +2 -2
  24. package/dist/{chunk-3JCMO7SD.js → chunk-N55DVMAG.js} +1 -1
  25. package/dist/{chunk-EIOJNUPL.js → chunk-PNLJIPV5.js} +1 -1
  26. package/dist/{chunk-6Z3G4U2R.js → chunk-Q5BEODAT.js} +3 -2
  27. package/dist/{chunk-HVC2BTFO.js → chunk-QB2CC4VH.js} +1979 -257
  28. package/dist/{chunk-QJLRDTYS.js → chunk-RSG2O3HF.js} +932 -707
  29. package/dist/{chunk-M25JL54Z.js → chunk-RYTEQBAO.js} +1 -1
  30. package/dist/{chunk-XUYBOO32.js → chunk-U36X6NZM.js} +15 -7
  31. package/dist/{chunk-QSTH6T77.js → chunk-VKMNWHTL.js} +1 -1
  32. package/dist/{chunk-V3UOW2HG.js → chunk-VOVZLL23.js} +4 -4
  33. package/dist/{chunk-SLH2QLKV.js → chunk-WFTNY755.js} +1 -1
  34. package/dist/{chunk-DK2HVHCY.js → chunk-WKJ47GIW.js} +1 -1
  35. package/dist/chunk-X4WBGKJQ.js +138 -0
  36. package/dist/{chunk-QHSW4WHM.js → chunk-XTVZFT7U.js} +1 -1
  37. package/dist/components/index.css +11 -0
  38. package/dist/components/index.d.ts +478 -386
  39. package/dist/components/index.js +138 -336
  40. package/dist/components/navigation/index.css +11 -0
  41. package/dist/components/navigation/index.js +8 -8
  42. package/dist/features/auth/index.css +11 -0
  43. package/dist/features/auth/index.d.ts +369 -363
  44. package/dist/features/auth/index.js +7 -7
  45. package/dist/features/crm/index.css +11 -0
  46. package/dist/features/crm/index.d.ts +551 -360
  47. package/dist/features/crm/index.js +19 -19
  48. package/dist/features/dashboard/index.css +11 -0
  49. package/dist/features/dashboard/index.js +20 -20
  50. package/dist/features/delivery/index.css +11 -0
  51. package/dist/features/delivery/index.d.ts +363 -357
  52. package/dist/features/delivery/index.js +19 -19
  53. package/dist/features/lead-gen/index.css +11 -0
  54. package/dist/features/lead-gen/index.d.ts +160 -2
  55. package/dist/features/lead-gen/index.js +20 -19
  56. package/dist/features/monitoring/index.css +11 -0
  57. package/dist/features/monitoring/index.js +21 -21
  58. package/dist/features/monitoring/requests/index.css +11 -0
  59. package/dist/features/monitoring/requests/index.js +17 -17
  60. package/dist/features/operations/index.css +11 -0
  61. package/dist/features/operations/index.js +24 -23
  62. package/dist/features/seo/index.js +2 -2
  63. package/dist/features/settings/index.css +11 -0
  64. package/dist/features/settings/index.d.ts +369 -363
  65. package/dist/features/settings/index.js +19 -19
  66. package/dist/hooks/delivery/index.css +11 -0
  67. package/dist/hooks/delivery/index.d.ts +363 -357
  68. package/dist/hooks/delivery/index.js +2 -2
  69. package/dist/hooks/index.css +11 -0
  70. package/dist/hooks/index.d.ts +746 -399
  71. package/dist/hooks/index.js +17 -17
  72. package/dist/hooks/published.css +11 -0
  73. package/dist/hooks/published.d.ts +746 -399
  74. package/dist/hooks/published.js +17 -17
  75. package/dist/index.css +11 -0
  76. package/dist/index.d.ts +862 -381
  77. package/dist/index.js +17 -17
  78. package/dist/initialization/index.d.ts +369 -363
  79. package/dist/initialization/index.js +4 -4
  80. package/dist/layout/index.d.ts +6 -0
  81. package/dist/layout/index.js +5 -5
  82. package/dist/organization/index.css +11 -0
  83. package/dist/organization/index.js +4 -4
  84. package/dist/profile/index.d.ts +369 -363
  85. package/dist/profile/index.js +2 -2
  86. package/dist/provider/ElevasisServiceContext.d.ts +1 -0
  87. package/dist/provider/ElevasisServiceContext.js +1 -1
  88. package/dist/provider/index.css +11 -0
  89. package/dist/provider/index.d.ts +503 -362
  90. package/dist/provider/index.js +14 -14
  91. package/dist/provider/published.css +11 -0
  92. package/dist/provider/published.d.ts +494 -359
  93. package/dist/provider/published.js +12 -12
  94. package/dist/supabase/index.d.ts +369 -357
  95. package/dist/test-utils/index.js +1 -1
  96. package/dist/typeform/index.js +49 -20
  97. package/dist/types/index.d.ts +382 -363
  98. package/package.json +4 -4
  99. package/dist/chunk-CEWTOKE7.js +0 -109
  100. /package/dist/{chunk-IRW7JMQ4.js → chunk-5WWZXCS5.js} +0 -0
  101. /package/dist/{chunk-QJ2KCHKX.js → chunk-E565XMTQ.js} +0 -0
@@ -1,10 +1,10 @@
1
1
  import { ApiClientProvider, useApiClient } from './chunk-T6INEVX6.js';
2
- import { OrganizationProvider } from './chunk-HC2KV6BU.js';
2
+ import { OrganizationProvider } from './chunk-HOIT677G.js';
3
3
  import { getErrorInfo, getErrorTitle, formatErrorMessage } from './chunk-SGXXJE52.js';
4
- import { InitializationProvider } from './chunk-DK2HVHCY.js';
4
+ import { InitializationProvider } from './chunk-WKJ47GIW.js';
5
5
  import { useOrganization } from './chunk-DD3CCMCZ.js';
6
- import { ProfileProvider } from './chunk-QHSW4WHM.js';
7
- import { ElevasisServiceProvider } from './chunk-IRW7JMQ4.js';
6
+ import { ProfileProvider } from './chunk-XTVZFT7U.js';
7
+ import { ElevasisServiceProvider } from './chunk-5WWZXCS5.js';
8
8
  import { useAuthContext } from './chunk-BRJ3QZ4E.js';
9
9
  import { createContext, lazy, useContext, Suspense, useRef } from 'react';
10
10
  import { jsx } from 'react/jsx-runtime';
@@ -104,66 +104,33 @@ var OrganizationModelSalesSchema = z.object({
104
104
  function findPipeline(definitions, pipelineKey) {
105
105
  return definitions.find((def) => def.pipelineKey === pipelineKey);
106
106
  }
107
- function getValidStatesForStage(definition, stageKey) {
108
- return definition.stages.find((s) => s.stageKey === stageKey)?.states ?? [];
109
- }
110
107
  var CRM_DISCOVERY_REPLIED_STATE = {
111
- stateKey: "discovery_replied",
112
- label: "Discovery Replied"
113
- };
108
+ stateKey: "discovery_replied"};
114
109
  var CRM_DISCOVERY_LINK_SENT_STATE = {
115
- stateKey: "discovery_link_sent",
116
- label: "Discovery Link Sent"
117
- };
110
+ stateKey: "discovery_link_sent"};
118
111
  var CRM_DISCOVERY_NUDGING_STATE = {
119
- stateKey: "discovery_nudging",
120
- label: "Discovery Nudging"
121
- };
112
+ stateKey: "discovery_nudging"};
122
113
  var CRM_DISCOVERY_BOOKING_CANCELLED_STATE = {
123
- stateKey: "discovery_booking_cancelled",
124
- label: "Discovery Booking Cancelled"
125
- };
126
- var CRM_REPLY_SENT_STATE = {
127
- stateKey: "reply_sent",
128
- label: "Reply Sent"
129
- };
130
- var CRM_FOLLOWUP_1_SENT_STATE = {
131
- stateKey: "followup_1_sent",
132
- label: "Follow-up 1 Sent"
133
- };
134
- var CRM_FOLLOWUP_2_SENT_STATE = {
135
- stateKey: "followup_2_sent",
136
- label: "Follow-up 2 Sent"
137
- };
138
- var CRM_FOLLOWUP_3_SENT_STATE = {
139
- stateKey: "followup_3_sent",
140
- label: "Follow-up 3 Sent"
141
- };
142
- var CRM_PIPELINE_DEFINITION = {
143
- pipelineKey: "crm",
144
- label: "CRM",
145
- entityKey: "crm.deal",
146
- stages: [
147
- {
148
- stageKey: "interested",
149
- label: "Interested",
150
- states: [
151
- CRM_DISCOVERY_REPLIED_STATE,
152
- CRM_DISCOVERY_LINK_SENT_STATE,
153
- CRM_DISCOVERY_NUDGING_STATE,
154
- CRM_DISCOVERY_BOOKING_CANCELLED_STATE,
155
- CRM_REPLY_SENT_STATE,
156
- CRM_FOLLOWUP_1_SENT_STATE,
157
- CRM_FOLLOWUP_2_SENT_STATE,
158
- CRM_FOLLOWUP_3_SENT_STATE
159
- ]
160
- },
161
- { stageKey: "proposal", label: "Proposal", states: [] },
162
- { stageKey: "closing", label: "Closing", states: [] },
163
- { stageKey: "closed_won", label: "Closed Won", states: [] },
164
- { stageKey: "closed_lost", label: "Closed Lost", states: [] },
165
- { stageKey: "nurturing", label: "Nurturing", states: [] }
166
- ]
114
+ stateKey: "discovery_booking_cancelled"};
115
+ var CRM_PRIORITY_BUCKETS = [
116
+ { bucketKey: "needs_response", label: "Needs Response", rank: 10, color: "red" },
117
+ { bucketKey: "follow_up_due", label: "Follow-up Due", rank: 20, color: "orange" },
118
+ { bucketKey: "waiting", label: "Waiting", rank: 30, color: "blue" },
119
+ { bucketKey: "stale", label: "Stale", rank: 40, color: "gray" },
120
+ { bucketKey: "closed_low", label: "Closed", rank: 50, color: "dark" }
121
+ ];
122
+ var DEFAULT_CRM_PRIORITY_RULE_CONFIG = {
123
+ buckets: CRM_PRIORITY_BUCKETS,
124
+ closedStageKeys: ["closed_won", "closed_lost"],
125
+ followUpAfterDaysByStateKey: {
126
+ discovery_link_sent: 3,
127
+ discovery_nudging: 2,
128
+ reply_sent: 3,
129
+ followup_1_sent: 3,
130
+ followup_2_sent: 5,
131
+ followup_3_sent: 7
132
+ },
133
+ staleAfterDays: 14
167
134
  };
168
135
  var PENDING_STATE = { stateKey: "pending", label: "Pending" };
169
136
  var ACQ_LIST_MEMBERS_LEAD_GEN_PIPELINE = {
@@ -303,6 +270,64 @@ var LEAD_GEN_STAGE_CATALOG = {
303
270
  entity: "contact"
304
271
  }
305
272
  };
273
+
274
+ // ../core/src/business/acquisition/deal-ownership.ts
275
+ var INBOUND_EVENT_TYPES = ["reply_received"];
276
+ var OUTBOUND_EVENT_TYPES = [
277
+ "reply_sent_to_lead",
278
+ "booking_nudge_sent",
279
+ "reminder_sent",
280
+ "rebook_sent",
281
+ "followup_email_sent",
282
+ "reply_followup_sent",
283
+ "lead_deferred_next_step"
284
+ ];
285
+ var INBOUND_SET = new Set(INBOUND_EVENT_TYPES);
286
+ var OUTBOUND_SET = new Set(OUTBOUND_EVENT_TYPES);
287
+ function getDealOwnership(deal) {
288
+ if (deal.state_key === "closed_won" || deal.state_key === "closed_lost") {
289
+ return null;
290
+ }
291
+ if (!Array.isArray(deal.activity_log)) return null;
292
+ let latestInboundMs = null;
293
+ let latestOutboundMs = null;
294
+ for (const entry of deal.activity_log) {
295
+ if (!entry || typeof entry !== "object" || Array.isArray(entry)) continue;
296
+ const record = entry;
297
+ const type = typeof record.type === "string" ? record.type : null;
298
+ if (!type) continue;
299
+ const isInbound = INBOUND_SET.has(type);
300
+ const isOutbound = OUTBOUND_SET.has(type);
301
+ if (!isInbound && !isOutbound) continue;
302
+ const occurredAt = resolveTimestamp(record);
303
+ if (occurredAt === null) continue;
304
+ if (isInbound && (latestInboundMs === null || occurredAt > latestInboundMs)) {
305
+ latestInboundMs = occurredAt;
306
+ }
307
+ if (isOutbound && (latestOutboundMs === null || occurredAt > latestOutboundMs)) {
308
+ latestOutboundMs = occurredAt;
309
+ }
310
+ }
311
+ if (latestInboundMs === null && latestOutboundMs === null) return null;
312
+ if (latestOutboundMs !== null && (latestInboundMs === null || latestOutboundMs >= latestInboundMs)) {
313
+ return "them";
314
+ }
315
+ return "us";
316
+ }
317
+ function resolveTimestamp(record) {
318
+ return parseMs(record.timestamp) ?? parseMs(record.occurredAt) ?? parseMs(record.createdAt) ?? parseMs(record.updatedAt) ?? parseMs(record.sentAt) ?? null;
319
+ }
320
+ function parseMs(value) {
321
+ if (value instanceof Date) {
322
+ const ms2 = value.getTime();
323
+ return Number.isNaN(ms2) ? null : ms2;
324
+ }
325
+ if (typeof value !== "string") return null;
326
+ const ms = new Date(value).getTime();
327
+ return Number.isNaN(ms) ? null : ms;
328
+ }
329
+
330
+ // ../core/src/business/acquisition/derive-actions.ts
306
331
  var SendReplyActionPayloadSchema = z.object({
307
332
  replyBody: z.string().trim().min(1).max(1e4)
308
333
  }).strict();
@@ -340,7 +365,7 @@ var DEFAULT_CRM_ACTIONS = [
340
365
  {
341
366
  key: "send_reply",
342
367
  label: "Send Reply",
343
- isAvailableFor: (deal) => deal.stage_key === "interested" && (deal.state_key === CRM_DISCOVERY_REPLIED_STATE.stateKey || deal.state_key === CRM_DISCOVERY_LINK_SENT_STATE.stateKey || deal.state_key === CRM_DISCOVERY_NUDGING_STATE.stateKey),
368
+ isAvailableFor: (deal) => deal.stage_key === "interested" && isOurReplyAction(deal) && (deal.state_key === CRM_DISCOVERY_REPLIED_STATE.stateKey || deal.state_key === CRM_DISCOVERY_LINK_SENT_STATE.stateKey || deal.state_key === CRM_DISCOVERY_NUDGING_STATE.stateKey),
344
369
  workflowId: "crm-send-reply-workflow",
345
370
  payloadSchema: SendReplyActionPayloadSchema
346
371
  },
@@ -375,6 +400,12 @@ var DEFAULT_CRM_ACTIONS = [
375
400
  function deriveActions(deal, actions = DEFAULT_CRM_ACTIONS) {
376
401
  return actions.filter((a) => a.isAvailableFor(deal)).map(({ key, label, payloadSchema }) => ({ key, label, payloadSchema }));
377
402
  }
403
+ function isOurReplyAction(deal) {
404
+ if (Object.prototype.hasOwnProperty.call(deal, "nextAction")) {
405
+ return deal.nextAction === "send_reply";
406
+ }
407
+ return (deal.ownership ?? getDealOwnership(deal)) === "us";
408
+ }
378
409
  var CrmActionsContext = createContext(DEFAULT_CRM_ACTIONS);
379
410
  function CrmActionsProvider({ actions, children }) {
380
411
  return /* @__PURE__ */ jsx(CrmActionsContext.Provider, { value: actions, children });
@@ -382,6 +413,23 @@ function CrmActionsProvider({ actions, children }) {
382
413
  function useCrmActions() {
383
414
  return useContext(CrmActionsContext);
384
415
  }
416
+ var EMPTY_LIST_ACTIONS = Object.freeze([]);
417
+ var ListActionsContext = createContext(EMPTY_LIST_ACTIONS);
418
+ function ListActionsProvider({
419
+ registry = EMPTY_LIST_ACTIONS,
420
+ children
421
+ }) {
422
+ return /* @__PURE__ */ jsx(ListActionsContext.Provider, { value: registry, children });
423
+ }
424
+ function useListActions() {
425
+ return useContext(ListActionsContext);
426
+ }
427
+ function findListActionByCapability(registry, capabilityKey) {
428
+ return registry.find((action) => action.capabilityKey === capabilityKey);
429
+ }
430
+ function getListActionWorkflowId(action) {
431
+ return action.workflowId ?? action.resourceId;
432
+ }
385
433
  var LazyCoreAuthKitInner = lazy(() => import('./CoreAuthKitInner-QC62UHTZ.js').then((m) => ({ default: m.CoreAuthKitInner })));
386
434
  var defaultQueryClient = null;
387
435
  function getDefaultQueryClient() {
@@ -416,6 +464,7 @@ function ElevasisCoreProvider({
416
464
  onError,
417
465
  notifications,
418
466
  crmActions,
467
+ listActions,
419
468
  children
420
469
  }) {
421
470
  if (auth.mode === "apiKey") {
@@ -425,9 +474,10 @@ function ElevasisCoreProvider({
425
474
  }
426
475
  const resolvedQueryClient = queryClient ?? getDefaultQueryClient();
427
476
  const resolvedCrmActions = crmActions ?? DEFAULT_CRM_ACTIONS;
477
+ const resolvedListActions = listActions ?? EMPTY_LIST_ACTIONS;
428
478
  const content = apiUrl ? /* @__PURE__ */ jsx(ServiceStack, { apiUrl, onError, notifications, children }) : children;
429
479
  const AuthInner = /* @__PURE__ */ jsx(Suspense, { fallback: null, children: /* @__PURE__ */ jsx(LazyCoreAuthKitInner, { auth, children: content }) });
430
- return /* @__PURE__ */ jsx(QueryClientProvider, { client: resolvedQueryClient, children: /* @__PURE__ */ jsx(CrmActionsProvider, { actions: resolvedCrmActions, children: AuthInner }) });
480
+ return /* @__PURE__ */ jsx(QueryClientProvider, { client: resolvedQueryClient, children: /* @__PURE__ */ jsx(CrmActionsProvider, { actions: resolvedCrmActions, children: /* @__PURE__ */ jsx(ListActionsProvider, { registry: resolvedListActions, children: AuthInner }) }) });
431
481
  }
432
482
  function ServiceStack({
433
483
  apiUrl,
@@ -471,4 +521,4 @@ function OrgServiceBridge({
471
521
  return /* @__PURE__ */ jsx(ElevasisServiceProvider, { apiRequest, organizationId: currentWorkOSOrganizationId, isReady, children: /* @__PURE__ */ jsx(NotificationProvider, { adapter: notifications, children: /* @__PURE__ */ jsx(InitializationProvider, { children }) }) });
472
522
  }
473
523
 
474
- export { CRM_PIPELINE_DEFINITION, ColorTokenSchema, CrmActionsProvider, DescriptionSchema, DisplayMetadataSchema, ElevasisCoreProvider, IconNameSchema, LEAD_GEN_PIPELINE_DEFINITIONS, LEAD_GEN_STAGE_CATALOG, LabelSchema, ModelIdSchema, NotificationProvider, OrganizationModelSalesSchema, PathSchema, ReferenceIdsSchema, deriveActions, findPipeline, getValidStatesForStage, useCrmActions, useNotificationAdapter };
524
+ export { CRM_PRIORITY_BUCKETS, ColorTokenSchema, CrmActionsProvider, DEFAULT_CRM_PRIORITY_RULE_CONFIG, DescriptionSchema, DisplayMetadataSchema, EMPTY_LIST_ACTIONS, ElevasisCoreProvider, IconNameSchema, LEAD_GEN_PIPELINE_DEFINITIONS, LEAD_GEN_STAGE_CATALOG, LabelSchema, ListActionsProvider, ModelIdSchema, NotificationProvider, OrganizationModelSalesSchema, PathSchema, ReferenceIdsSchema, deriveActions, findListActionByCapability, findPipeline, getListActionWorkflowId, useCrmActions, useListActions, useNotificationAdapter };
@@ -1,5 +1,5 @@
1
- import { useErrorTrends } from './chunk-QSTH6T77.js';
2
- import { CardHeader, CenteredErrorState, TrendIndicator, EmptyState, StatCard } from './chunk-XUYBOO32.js';
1
+ import { useErrorTrends } from './chunk-VKMNWHTL.js';
2
+ import { CardHeader, CenteredErrorState, TrendIndicator, EmptyState, StatCard } from './chunk-U36X6NZM.js';
3
3
  import { getTimeRangeLabel, getTimeRangeDates, formatBucketTime } from './chunk-SGXXJE52.js';
4
4
  import { useRef, useState, useLayoutEffect, useEffect, useMemo, useCallback } from 'react';
5
5
  import { jsx, jsxs } from 'react/jsx-runtime';
@@ -1,4 +1,4 @@
1
- import { useUserProfile } from './chunk-QHSW4WHM.js';
1
+ import { useUserProfile } from './chunk-XTVZFT7U.js';
2
2
  import { useAuthContext } from './chunk-BRJ3QZ4E.js';
3
3
  import { useMemo, useCallback } from 'react';
4
4
 
@@ -1,14 +1,14 @@
1
- import { AppShellLoader } from './chunk-M25JL54Z.js';
1
+ import { AppShellLoader } from './chunk-RYTEQBAO.js';
2
2
  import { FilterBar } from './chunk-PDHTXPSF.js';
3
3
  import { CustomModal } from './chunk-KVJ3LFH2.js';
4
4
  import { useAvailablePresets } from './chunk-SNHGSCKH.js';
5
- import { useDeleteCredential, useCreateCredential, useCredentials, MEMBERSHIP_STATUS_COLORS, transformMembershipToTableRow, useUserMemberships, useUpdateWebhookEndpoint, useResources, useDeleteWebhookEndpoint, useCreateWebhookEndpoint, useListWebhookEndpoints, useOrgRoles, useAssignRole, useRevokeRole, useHasPermission, useUpdateMemberConfig, useOrganizationMembers, useUpdateCredential, CredentialSchemas } from './chunk-QJLRDTYS.js';
6
- import { showApiErrorNotification, showErrorNotification, showSuccessNotification } from './chunk-Z6FAH4XV.js';
7
- import { ListSkeleton, EmptyState, PageTitleCaption, CardHeader, APIErrorAlert, StatCard } from './chunk-XUYBOO32.js';
8
- import { RoleBadge } from './chunk-ZDKQNQ4X.js';
5
+ import { useDeleteCredential, useCreateCredential, useCredentials, MEMBERSHIP_STATUS_COLORS, transformMembershipToTableRow, useUserMemberships, useUpdateWebhookEndpoint, useResources, useDeleteWebhookEndpoint, useCreateWebhookEndpoint, useListWebhookEndpoints, useOrgRoles, useAssignRole, useRevokeRole, useHasPermission, useUpdateMemberConfig, useOrganizationMembers, useUpdateCredential, CredentialSchemas } from './chunk-RSG2O3HF.js';
6
+ import { showApiErrorNotification, showErrorNotification, showSuccessNotification } from './chunk-HKBEURCV.js';
7
+ import { ListSkeleton, EmptyState, PageTitleCaption, CardHeader, APIErrorAlert, StatCard } from './chunk-U36X6NZM.js';
8
+ import { RoleBadge } from './chunk-GESXCQWY.js';
9
9
  import { isAPIClientError, formatDateTime, OAUTH_POPUP_CHECK_INTERVAL, OAUTH_FLOW_TIMEOUT } from './chunk-SGXXJE52.js';
10
- import { useInitialization } from './chunk-DK2HVHCY.js';
11
- import { useElevasisServices } from './chunk-IRW7JMQ4.js';
10
+ import { useInitialization } from './chunk-WKJ47GIW.js';
11
+ import { useElevasisServices } from './chunk-5WWZXCS5.js';
12
12
  import { createUseExternalEvents, Text, Table, Group, Tooltip, ActionIcon, Stack, Title, Button, Select, TextInput, Alert, PasswordInput, Anchor, Paper, Card, Switch, Badge, Center, Loader, Box, Code, CopyButton, ThemeIcon, SimpleGrid, UnstyledButton, Divider, Textarea, Tabs, MultiSelect } from '@mantine/core';
13
13
  import { IconSettings, IconShieldOff, IconKey, IconCalendar, IconPencil, IconTrash, IconAlertTriangle, IconInfoCircle, IconExclamationMark, IconPlus, IconAlertCircle, IconUsers, IconSearch, IconBuilding, IconWebhook, IconCheck, IconCopy, IconUser, IconMail, IconRefresh, IconPalette, IconEye, IconSparkles, IconTrendingUp, IconClock, IconPlayerPause, IconPlayerPlay, IconActivity, IconShieldLock, IconAdjustments, IconBrandDropbox, IconBrandGoogleDrive, IconPlug, IconEdit, IconUserX, IconUserCheck } from '@tabler/icons-react';
14
14
  import { z } from 'zod';
@@ -1,8 +1,8 @@
1
1
  import { PRESETS, getPreset, generateShades, mantineThemeOverride, createCssVariablesResolver, PresetsProvider } from './chunk-QIW6OCEI.js';
2
2
  import { AppBackground } from './chunk-WLOQ4IBG.js';
3
- import { ElevasisCoreProvider } from './chunk-AZXSFDG2.js';
3
+ import { ElevasisCoreProvider } from './chunk-JMI7L7Y7.js';
4
4
  import { ElevasisLoader } from './chunk-SZHARWKU.js';
5
- import { AppearanceProvider } from './chunk-QJ2KCHKX.js';
5
+ import { AppearanceProvider } from './chunk-E565XMTQ.js';
6
6
  import { getErrorInfo, formatErrorMessage, getErrorTitle } from './chunk-SGXXJE52.js';
7
7
  import { useMemo, useEffect } from 'react';
8
8
  import { Loader, mergeThemeOverrides, MantineProvider } from '@mantine/core';
@@ -1,4 +1,4 @@
1
- import { useAppearance } from './chunk-QJ2KCHKX.js';
1
+ import { useAppearance } from './chunk-E565XMTQ.js';
2
2
  import { Center, Box } from '@mantine/core';
3
3
  import { jsx } from 'react/jsx-runtime';
4
4
 
@@ -1,4 +1,4 @@
1
- import { ElevasisFeaturesProvider } from './chunk-LJWV4TWV.js';
1
+ import { ElevasisFeaturesProvider } from './chunk-4ZFBVND2.js';
2
2
  import { jsx } from 'react/jsx-runtime';
3
3
 
4
4
  function createTestFeaturesProvider({
@@ -1,7 +1,7 @@
1
- import { SubshellNavItem } from './chunk-CEWTOKE7.js';
1
+ import { SubshellNavItem } from './chunk-X4WBGKJQ.js';
2
2
  import { NavigationButton } from './chunk-NYBEU5TE.js';
3
3
  import { useRouterContext } from './chunk-Q7DJKLEN.js';
4
- import { useAppearance } from './chunk-QJ2KCHKX.js';
4
+ import { useAppearance } from './chunk-E565XMTQ.js';
5
5
  import { sidebarItemGap, sidebarSubLinkPaddingY, sidebarSubLinkPaddingX, sidebarSubLinkIndent, sidebarHoverDelay, sidebarTransitionDuration, sidebarCollapsedWidth, sidebarWidth, topbarHeight, sidebarToggleIconSize, sidebarSectionPadding, sidebarGroupChevronSize, sidebarIconInnerSize } from './chunk-DT3QYZVU.js';
6
6
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
7
7
  import { createContext, memo, useEffect, createElement, useContext, useRef, useLayoutEffect, useState } from 'react';
@@ -1071,6 +1071,7 @@ var SubshellNavList = ({ items }) => {
1071
1071
  icon: item.icon,
1072
1072
  label: item.label,
1073
1073
  isActive,
1074
+ href: item.to,
1074
1075
  onClick: () => navigate(item.to)
1075
1076
  },
1076
1077
  item.to