@optifye/dashboard-core 6.10.27 → 6.10.28

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/index.css CHANGED
@@ -2285,6 +2285,10 @@ body {
2285
2285
  --tw-border-opacity: 1;
2286
2286
  border-color: rgb(153 246 228 / var(--tw-border-opacity, 1));
2287
2287
  }
2288
+ .border-teal-500 {
2289
+ --tw-border-opacity: 1;
2290
+ border-color: rgb(20 184 166 / var(--tw-border-opacity, 1));
2291
+ }
2288
2292
  .border-transparent {
2289
2293
  border-color: transparent;
2290
2294
  }
@@ -2738,6 +2742,10 @@ body {
2738
2742
  --tw-bg-opacity: 1;
2739
2743
  background-color: rgb(204 251 241 / var(--tw-bg-opacity, 1));
2740
2744
  }
2745
+ .bg-teal-50 {
2746
+ --tw-bg-opacity: 1;
2747
+ background-color: rgb(240 253 250 / var(--tw-bg-opacity, 1));
2748
+ }
2741
2749
  .bg-transparent {
2742
2750
  background-color: transparent;
2743
2751
  }
@@ -3898,6 +3906,10 @@ body {
3898
3906
  --tw-text-opacity: 1;
3899
3907
  color: rgb(15 23 42 / var(--tw-text-opacity, 1));
3900
3908
  }
3909
+ .text-teal-700 {
3910
+ --tw-text-opacity: 1;
3911
+ color: rgb(15 118 110 / var(--tw-text-opacity, 1));
3912
+ }
3901
3913
  .text-teal-800 {
3902
3914
  --tw-text-opacity: 1;
3903
3915
  color: rgb(17 94 89 / var(--tw-text-opacity, 1));
package/dist/index.d.mts CHANGED
@@ -634,7 +634,7 @@ interface AuthUser {
634
634
  id: string;
635
635
  email?: string;
636
636
  role?: string;
637
- role_level?: 'owner' | 'plant_head' | 'supervisor' | 'optifye';
637
+ role_level?: 'owner' | 'it' | 'plant_head' | 'supervisor' | 'optifye';
638
638
  company_id?: string;
639
639
  first_login_completed?: boolean;
640
640
  properties?: {
@@ -4311,7 +4311,7 @@ interface UseSessionKeepAliveOptions {
4311
4311
  */
4312
4312
  declare const useSessionKeepAlive: (options?: UseSessionKeepAliveOptions) => void;
4313
4313
 
4314
- type UserRole = 'owner' | 'plant_head' | 'supervisor' | 'optifye';
4314
+ type UserRole = 'owner' | 'it' | 'plant_head' | 'supervisor' | 'optifye';
4315
4315
  interface AccessControlReturn {
4316
4316
  userRole: UserRole | null;
4317
4317
  hasAccess: (path: string) => boolean;
@@ -4336,7 +4336,7 @@ interface CompanyUserWithDetails {
4336
4336
  email: string;
4337
4337
  first_name?: string;
4338
4338
  last_name?: string;
4339
- role_level: 'owner' | 'plant_head' | 'supervisor' | 'optifye';
4339
+ role_level: 'owner' | 'it' | 'plant_head' | 'supervisor' | 'optifye';
4340
4340
  first_login_completed: boolean;
4341
4341
  created_at: string;
4342
4342
  properties: {
@@ -4356,7 +4356,7 @@ interface CompanyUserWithDetails {
4356
4356
  */
4357
4357
  interface UpdateUserRoleInput {
4358
4358
  user_id: string;
4359
- new_role: 'owner' | 'plant_head' | 'supervisor' | 'optifye';
4359
+ new_role: 'owner' | 'it' | 'plant_head' | 'supervisor' | 'optifye';
4360
4360
  updated_by: string;
4361
4361
  }
4362
4362
  /**
@@ -4404,14 +4404,14 @@ declare class UserManagementService {
4404
4404
  * @param roleFilter - Optional filter by role
4405
4405
  * @returns Promise<CompanyUserWithDetails[]>
4406
4406
  */
4407
- getCompanyUsers(companyId: string, roleFilter?: 'owner' | 'plant_head' | 'supervisor'): Promise<CompanyUserWithDetails[]>;
4407
+ getCompanyUsers(companyId: string, roleFilter?: 'owner' | 'it' | 'plant_head' | 'supervisor'): Promise<CompanyUserWithDetails[]>;
4408
4408
  /**
4409
4409
  * Get ALL users across all companies (optifye role only)
4410
4410
  * This method bypasses company filtering and returns all users in the system
4411
4411
  * @param roleFilter - Optional filter by role
4412
4412
  * @returns Promise<CompanyUserWithDetails[]>
4413
4413
  */
4414
- getAllUsers(roleFilter?: 'owner' | 'plant_head' | 'supervisor' | 'optifye'): Promise<CompanyUserWithDetails[]>;
4414
+ getAllUsers(roleFilter?: 'owner' | 'it' | 'plant_head' | 'supervisor' | 'optifye'): Promise<CompanyUserWithDetails[]>;
4415
4415
  /**
4416
4416
  * Get users for a specific factory (plant head view)
4417
4417
  * Returns only supervisors assigned to lines in this factory
@@ -4442,6 +4442,7 @@ declare class UserManagementService {
4442
4442
  getUserStats(companyId: string): Promise<{
4443
4443
  total: number;
4444
4444
  owners: number;
4445
+ it: number;
4445
4446
  plant_heads: number;
4446
4447
  supervisors: number;
4447
4448
  }>;
@@ -4452,6 +4453,7 @@ declare class UserManagementService {
4452
4453
  getAllUserStats(): Promise<{
4453
4454
  total: number;
4454
4455
  owners: number;
4456
+ it: number;
4455
4457
  plant_heads: number;
4456
4458
  supervisors: number;
4457
4459
  optifye: number;
@@ -4484,7 +4486,7 @@ interface TeamManagementPermissions {
4484
4486
  canAssignFactories: (targetUser: CompanyUserWithDetails) => boolean;
4485
4487
  canChangeRole: (targetUser: CompanyUserWithDetails) => boolean;
4486
4488
  canRemoveUser: (targetUser: CompanyUserWithDetails) => boolean;
4487
- availableRolesToAssign: () => Array<'owner' | 'plant_head' | 'supervisor' | 'optifye'>;
4489
+ availableRolesToAssign: () => Array<'owner' | 'it' | 'plant_head' | 'supervisor' | 'optifye'>;
4488
4490
  canInviteRole: (role: string) => boolean;
4489
4491
  getAssignmentColumnName: (targetUser: CompanyUserWithDetails) => string;
4490
4492
  showAssignmentColumn: () => boolean;
@@ -7469,6 +7471,14 @@ interface BottlenecksContentProps {
7469
7471
  * When provided, only shows clips associated with this ticket
7470
7472
  */
7471
7473
  ticketId?: string;
7474
+ /**
7475
+ * Optional prefetched percentile counts from workspace detail view
7476
+ */
7477
+ prefetchedPercentileCounts?: {
7478
+ key: string;
7479
+ percentile: number;
7480
+ counts: Record<string, number>;
7481
+ } | null;
7472
7482
  }
7473
7483
  /**
7474
7484
  * Filter type for bottleneck clips - expanded for new video types
@@ -7891,6 +7901,12 @@ interface FileManagerFiltersProps {
7891
7901
  activeFilter: string;
7892
7902
  currentVideoId?: string;
7893
7903
  counts?: Record<string, number>;
7904
+ isReady?: boolean;
7905
+ prefetchedPercentileCounts?: {
7906
+ key: string;
7907
+ percentile: number;
7908
+ counts: Record<string, number>;
7909
+ };
7894
7910
  onFilterChange: (filterId: string) => void;
7895
7911
  onVideoSelect: (videoIndex: number) => void;
7896
7912
  onClipSelect?: (categoryId: string, clipId: string, position?: number) => void;
@@ -8515,7 +8531,7 @@ declare const InteractiveOnboardingTour: React__default.FC<InteractiveOnboarding
8515
8531
  */
8516
8532
  declare const OnboardingDemo: React__default.FC;
8517
8533
 
8518
- type UserRoleLevel = 'optifye' | 'owner' | 'plant_head' | 'supervisor';
8534
+ type UserRoleLevel = 'optifye' | 'owner' | 'it' | 'plant_head' | 'supervisor';
8519
8535
  interface RoleBadgeProps {
8520
8536
  role: UserRoleLevel;
8521
8537
  showIcon?: boolean;
@@ -8577,7 +8593,7 @@ declare const FactoryAssignmentDropdown: React__default.FC<FactoryAssignmentDrop
8577
8593
  interface UserManagementTableProps {
8578
8594
  users: CompanyUserWithDetails[];
8579
8595
  isLoading?: boolean;
8580
- onRoleChange?: (userId: string, newRole: 'owner' | 'plant_head' | 'supervisor' | 'optifye') => Promise<void>;
8596
+ onRoleChange?: (userId: string, newRole: 'owner' | 'it' | 'plant_head' | 'supervisor' | 'optifye') => Promise<void>;
8581
8597
  onRemoveUser?: (userId: string) => Promise<void>;
8582
8598
  onLineAssignmentUpdate?: (userId: string, lineIds: string[]) => Promise<void>;
8583
8599
  onFactoryAssignmentUpdate?: (userId: string, factoryIds: string[]) => Promise<void>;
@@ -8605,8 +8621,8 @@ declare const InvitationsTable: React__default.FC<InvitationsTableProps>;
8605
8621
 
8606
8622
  interface ChangeRoleDialogProps {
8607
8623
  user: CompanyUserWithDetails;
8608
- availableRoles: Array<'owner' | 'plant_head' | 'supervisor' | 'optifye'>;
8609
- onConfirm: (userId: string, newRole: 'owner' | 'plant_head' | 'supervisor' | 'optifye') => Promise<void>;
8624
+ availableRoles: Array<'owner' | 'it' | 'plant_head' | 'supervisor' | 'optifye'>;
8625
+ onConfirm: (userId: string, newRole: 'owner' | 'it' | 'plant_head' | 'supervisor' | 'optifye') => Promise<void>;
8610
8626
  onClose: () => void;
8611
8627
  }
8612
8628
  declare const ChangeRoleDialog: React__default.FC<ChangeRoleDialogProps>;
package/dist/index.d.ts CHANGED
@@ -634,7 +634,7 @@ interface AuthUser {
634
634
  id: string;
635
635
  email?: string;
636
636
  role?: string;
637
- role_level?: 'owner' | 'plant_head' | 'supervisor' | 'optifye';
637
+ role_level?: 'owner' | 'it' | 'plant_head' | 'supervisor' | 'optifye';
638
638
  company_id?: string;
639
639
  first_login_completed?: boolean;
640
640
  properties?: {
@@ -4311,7 +4311,7 @@ interface UseSessionKeepAliveOptions {
4311
4311
  */
4312
4312
  declare const useSessionKeepAlive: (options?: UseSessionKeepAliveOptions) => void;
4313
4313
 
4314
- type UserRole = 'owner' | 'plant_head' | 'supervisor' | 'optifye';
4314
+ type UserRole = 'owner' | 'it' | 'plant_head' | 'supervisor' | 'optifye';
4315
4315
  interface AccessControlReturn {
4316
4316
  userRole: UserRole | null;
4317
4317
  hasAccess: (path: string) => boolean;
@@ -4336,7 +4336,7 @@ interface CompanyUserWithDetails {
4336
4336
  email: string;
4337
4337
  first_name?: string;
4338
4338
  last_name?: string;
4339
- role_level: 'owner' | 'plant_head' | 'supervisor' | 'optifye';
4339
+ role_level: 'owner' | 'it' | 'plant_head' | 'supervisor' | 'optifye';
4340
4340
  first_login_completed: boolean;
4341
4341
  created_at: string;
4342
4342
  properties: {
@@ -4356,7 +4356,7 @@ interface CompanyUserWithDetails {
4356
4356
  */
4357
4357
  interface UpdateUserRoleInput {
4358
4358
  user_id: string;
4359
- new_role: 'owner' | 'plant_head' | 'supervisor' | 'optifye';
4359
+ new_role: 'owner' | 'it' | 'plant_head' | 'supervisor' | 'optifye';
4360
4360
  updated_by: string;
4361
4361
  }
4362
4362
  /**
@@ -4404,14 +4404,14 @@ declare class UserManagementService {
4404
4404
  * @param roleFilter - Optional filter by role
4405
4405
  * @returns Promise<CompanyUserWithDetails[]>
4406
4406
  */
4407
- getCompanyUsers(companyId: string, roleFilter?: 'owner' | 'plant_head' | 'supervisor'): Promise<CompanyUserWithDetails[]>;
4407
+ getCompanyUsers(companyId: string, roleFilter?: 'owner' | 'it' | 'plant_head' | 'supervisor'): Promise<CompanyUserWithDetails[]>;
4408
4408
  /**
4409
4409
  * Get ALL users across all companies (optifye role only)
4410
4410
  * This method bypasses company filtering and returns all users in the system
4411
4411
  * @param roleFilter - Optional filter by role
4412
4412
  * @returns Promise<CompanyUserWithDetails[]>
4413
4413
  */
4414
- getAllUsers(roleFilter?: 'owner' | 'plant_head' | 'supervisor' | 'optifye'): Promise<CompanyUserWithDetails[]>;
4414
+ getAllUsers(roleFilter?: 'owner' | 'it' | 'plant_head' | 'supervisor' | 'optifye'): Promise<CompanyUserWithDetails[]>;
4415
4415
  /**
4416
4416
  * Get users for a specific factory (plant head view)
4417
4417
  * Returns only supervisors assigned to lines in this factory
@@ -4442,6 +4442,7 @@ declare class UserManagementService {
4442
4442
  getUserStats(companyId: string): Promise<{
4443
4443
  total: number;
4444
4444
  owners: number;
4445
+ it: number;
4445
4446
  plant_heads: number;
4446
4447
  supervisors: number;
4447
4448
  }>;
@@ -4452,6 +4453,7 @@ declare class UserManagementService {
4452
4453
  getAllUserStats(): Promise<{
4453
4454
  total: number;
4454
4455
  owners: number;
4456
+ it: number;
4455
4457
  plant_heads: number;
4456
4458
  supervisors: number;
4457
4459
  optifye: number;
@@ -4484,7 +4486,7 @@ interface TeamManagementPermissions {
4484
4486
  canAssignFactories: (targetUser: CompanyUserWithDetails) => boolean;
4485
4487
  canChangeRole: (targetUser: CompanyUserWithDetails) => boolean;
4486
4488
  canRemoveUser: (targetUser: CompanyUserWithDetails) => boolean;
4487
- availableRolesToAssign: () => Array<'owner' | 'plant_head' | 'supervisor' | 'optifye'>;
4489
+ availableRolesToAssign: () => Array<'owner' | 'it' | 'plant_head' | 'supervisor' | 'optifye'>;
4488
4490
  canInviteRole: (role: string) => boolean;
4489
4491
  getAssignmentColumnName: (targetUser: CompanyUserWithDetails) => string;
4490
4492
  showAssignmentColumn: () => boolean;
@@ -7469,6 +7471,14 @@ interface BottlenecksContentProps {
7469
7471
  * When provided, only shows clips associated with this ticket
7470
7472
  */
7471
7473
  ticketId?: string;
7474
+ /**
7475
+ * Optional prefetched percentile counts from workspace detail view
7476
+ */
7477
+ prefetchedPercentileCounts?: {
7478
+ key: string;
7479
+ percentile: number;
7480
+ counts: Record<string, number>;
7481
+ } | null;
7472
7482
  }
7473
7483
  /**
7474
7484
  * Filter type for bottleneck clips - expanded for new video types
@@ -7891,6 +7901,12 @@ interface FileManagerFiltersProps {
7891
7901
  activeFilter: string;
7892
7902
  currentVideoId?: string;
7893
7903
  counts?: Record<string, number>;
7904
+ isReady?: boolean;
7905
+ prefetchedPercentileCounts?: {
7906
+ key: string;
7907
+ percentile: number;
7908
+ counts: Record<string, number>;
7909
+ };
7894
7910
  onFilterChange: (filterId: string) => void;
7895
7911
  onVideoSelect: (videoIndex: number) => void;
7896
7912
  onClipSelect?: (categoryId: string, clipId: string, position?: number) => void;
@@ -8515,7 +8531,7 @@ declare const InteractiveOnboardingTour: React__default.FC<InteractiveOnboarding
8515
8531
  */
8516
8532
  declare const OnboardingDemo: React__default.FC;
8517
8533
 
8518
- type UserRoleLevel = 'optifye' | 'owner' | 'plant_head' | 'supervisor';
8534
+ type UserRoleLevel = 'optifye' | 'owner' | 'it' | 'plant_head' | 'supervisor';
8519
8535
  interface RoleBadgeProps {
8520
8536
  role: UserRoleLevel;
8521
8537
  showIcon?: boolean;
@@ -8577,7 +8593,7 @@ declare const FactoryAssignmentDropdown: React__default.FC<FactoryAssignmentDrop
8577
8593
  interface UserManagementTableProps {
8578
8594
  users: CompanyUserWithDetails[];
8579
8595
  isLoading?: boolean;
8580
- onRoleChange?: (userId: string, newRole: 'owner' | 'plant_head' | 'supervisor' | 'optifye') => Promise<void>;
8596
+ onRoleChange?: (userId: string, newRole: 'owner' | 'it' | 'plant_head' | 'supervisor' | 'optifye') => Promise<void>;
8581
8597
  onRemoveUser?: (userId: string) => Promise<void>;
8582
8598
  onLineAssignmentUpdate?: (userId: string, lineIds: string[]) => Promise<void>;
8583
8599
  onFactoryAssignmentUpdate?: (userId: string, factoryIds: string[]) => Promise<void>;
@@ -8605,8 +8621,8 @@ declare const InvitationsTable: React__default.FC<InvitationsTableProps>;
8605
8621
 
8606
8622
  interface ChangeRoleDialogProps {
8607
8623
  user: CompanyUserWithDetails;
8608
- availableRoles: Array<'owner' | 'plant_head' | 'supervisor' | 'optifye'>;
8609
- onConfirm: (userId: string, newRole: 'owner' | 'plant_head' | 'supervisor' | 'optifye') => Promise<void>;
8624
+ availableRoles: Array<'owner' | 'it' | 'plant_head' | 'supervisor' | 'optifye'>;
8625
+ onConfirm: (userId: string, newRole: 'owner' | 'it' | 'plant_head' | 'supervisor' | 'optifye') => Promise<void>;
8610
8626
  onClose: () => void;
8611
8627
  }
8612
8628
  declare const ChangeRoleDialog: React__default.FC<ChangeRoleDialogProps>;