@redhat-cloud-services/hcc-storybook-hub 0.1.0 → 0.2.0

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.d.mts CHANGED
@@ -1,9 +1,10 @@
1
- export { chromeAppNavClickSpy, configureChromeMock } from './mocks/useChrome.mjs';
2
1
  import React, { ReactNode } from 'react';
2
+ import * as msw_storybook_addon from 'msw-storybook-addon';
3
+ export { chromeSpies } from './mocks/useChrome.mjs';
3
4
  export { F as FeatureFlagsConfig, a as FeatureFlagsContext, b as FeatureFlagsProvider } from './FeatureFlagsProvider-C_Xxe83Z.mjs';
4
5
  import '@vitest/spy';
5
6
 
6
- type Environment = 'production' | 'staging';
7
+ type Environment = 'production' | 'stage';
7
8
  interface MockUserIdentity {
8
9
  account_number?: string;
9
10
  org_id?: string;
@@ -35,6 +36,9 @@ interface WorkspacePermissionsMap {
35
36
  delete: string[];
36
37
  create: string[];
37
38
  move: string[];
39
+ role_binding_view?: string[];
40
+ role_binding_grant?: string[];
41
+ role_binding_revoke?: string[];
38
42
  }
39
43
  declare const EMPTY_WORKSPACE_PERMISSIONS: WorkspacePermissionsMap;
40
44
  interface TenantPermissionsMap {
@@ -51,6 +55,8 @@ interface TenantPermissionsMap {
51
55
  }
52
56
  declare const EMPTY_TENANT_PERMISSIONS: TenantPermissionsMap;
53
57
  interface MockState {
58
+ bundle: string;
59
+ app: string;
54
60
  environment: Environment;
55
61
  isOrgAdmin: boolean;
56
62
  permissions: string[];
@@ -62,7 +68,7 @@ interface StoryParameters {
62
68
  noWrapping?: boolean;
63
69
  permissions?: readonly string[];
64
70
  orgAdmin?: boolean;
65
- environment?: 'staging' | 'production';
71
+ environment?: 'stage' | 'production';
66
72
  workspacePermissions?: Partial<WorkspacePermissionsMap>;
67
73
  tenantPermissions?: Partial<TenantPermissionsMap>;
68
74
  userIdentity?: MockUserIdentity;
@@ -72,78 +78,46 @@ interface StoryParameters {
72
78
  };
73
79
  }
74
80
  declare const StorybookMockContext: React.Context<MockState>;
75
- interface ProviderProps extends Partial<MockState> {
81
+ interface ProviderProps {
76
82
  children: ReactNode;
83
+ bundle?: string;
84
+ app?: string;
85
+ environment?: Environment;
86
+ isOrgAdmin?: boolean;
87
+ permissions?: string[];
88
+ workspacePermissions?: Partial<WorkspacePermissionsMap>;
89
+ tenantPermissions?: Partial<TenantPermissionsMap>;
90
+ userIdentity?: MockUserIdentity;
77
91
  }
78
92
  declare const StorybookMockProvider: React.FC<ProviderProps>;
79
93
  declare const useMockState: () => MockState;
80
94
 
81
- interface ChromeConfig {
82
- environment: string;
83
- [key: string]: any;
84
- }
85
- declare const ChromeContext: React.Context<ChromeConfig>;
86
- declare const ChromeProvider: React.FC<{
87
- value: ChromeConfig;
95
+ interface HccStorybookProviderProps {
96
+ bundle: string;
97
+ app: string;
88
98
  children: ReactNode;
89
- }>;
90
-
91
- /**
92
- * Derives Kessel tenant permissions from Chrome-style permission strings.
93
- *
94
- * V2 domain hooks (useRolesAccess, useGroupsAccess, etc.) consume tenantPermissions
95
- * from the Kessel mock. Stories typically set Chrome-style `permissions` (e.g.
96
- * ['rbac:group:read', 'rbac:role:write']). This helper converts those to the
97
- * tenant relation format expected by useSelfAccessCheck.
98
- */
99
-
100
- /**
101
- * Converts Chrome-style permissions to Kessel tenant permissions.
102
- * When a story sets `permissions` but not `tenantPermissions`, this is used
103
- * to auto-derive tenant relations so V2 domain hooks work correctly.
104
- */
105
- declare function deriveTenantPermissions(permissions: string[]): Partial<TenantPermissionsMap>;
106
-
107
- interface PermissionsArgs {
108
- orgAdmin?: boolean;
109
- userAccessAdministrator?: boolean;
110
- }
111
- interface ChromeArgs {
112
- environment?: 'prod' | 'stage' | 'ci-beta' | 'ci-stable' | 'qa-beta' | 'qa-stable';
113
- }
114
- interface FeatureFlagsArgs {
115
- [key: string]: boolean | undefined;
99
+ permissions?: string[];
100
+ featureFlags?: Record<string, boolean>;
101
+ environment?: Environment;
102
+ isOrgAdmin?: boolean;
103
+ workspacePermissions?: Partial<WorkspacePermissionsMap>;
104
+ tenantPermissions?: Partial<TenantPermissionsMap>;
105
+ userIdentity?: MockUserIdentity;
116
106
  }
117
- type DecoratorArgs = PermissionsArgs & ChromeArgs & FeatureFlagsArgs;
118
- type StoryArgs<T = {}> = T & DecoratorArgs;
119
- declare const DEFAULT_DECORATOR_ARGS: {
120
- orgAdmin: boolean;
121
- userAccessAdministrator: boolean;
122
- environment: string;
123
- };
124
- declare const DECORATOR_ARG_TYPES: {
125
- readonly orgAdmin: {
126
- readonly control: "boolean";
127
- readonly description: "Organization admin permissions";
128
- readonly table: {
129
- readonly category: "Permissions";
130
- };
131
- };
132
- readonly userAccessAdministrator: {
133
- readonly control: "boolean";
134
- readonly description: "User access administrator permissions";
135
- readonly table: {
136
- readonly category: "Permissions";
137
- };
138
- };
139
- readonly environment: {
140
- readonly control: "select";
141
- readonly options: readonly ["prod", "stage", "ci-beta", "ci-stable", "qa-beta", "qa-stable"];
142
- readonly description: "Environment for Chrome API";
143
- readonly table: {
144
- readonly category: "Chrome";
107
+ declare const HccStorybookProvider: React.FC<HccStorybookProviderProps>;
108
+
109
+ declare const hccPreviewDefaults: {
110
+ beforeAll: () => Promise<void>;
111
+ loaders: ((context: msw_storybook_addon.Context) => Promise<{}>)[];
112
+ parameters: {
113
+ layout: "fullscreen";
114
+ controls: {
115
+ matchers: {
116
+ color: RegExp;
117
+ date: RegExp;
118
+ };
145
119
  };
146
120
  };
147
121
  };
148
122
 
149
- export { type ChromeConfig, ChromeContext, ChromeProvider, DECORATOR_ARG_TYPES, DEFAULT_DECORATOR_ARGS, type DecoratorArgs, EMPTY_TENANT_PERMISSIONS, EMPTY_WORKSPACE_PERMISSIONS, type Environment, type MockState, type MockUserIdentity, type StoryArgs, type StoryParameters, StorybookMockContext, StorybookMockProvider, type TenantPermissionsMap, type WorkspacePermissionsMap, deriveTenantPermissions, useMockState };
123
+ export { EMPTY_TENANT_PERMISSIONS, EMPTY_WORKSPACE_PERMISSIONS, type Environment, HccStorybookProvider, type MockState, type MockUserIdentity, type StoryParameters, StorybookMockContext, StorybookMockProvider, type TenantPermissionsMap, type WorkspacePermissionsMap, hccPreviewDefaults, useMockState };
package/dist/index.d.ts CHANGED
@@ -1,9 +1,10 @@
1
- export { chromeAppNavClickSpy, configureChromeMock } from './mocks/useChrome.js';
2
1
  import React, { ReactNode } from 'react';
2
+ import * as msw_storybook_addon from 'msw-storybook-addon';
3
+ export { chromeSpies } from './mocks/useChrome.js';
3
4
  export { F as FeatureFlagsConfig, a as FeatureFlagsContext, b as FeatureFlagsProvider } from './FeatureFlagsProvider-C_Xxe83Z.js';
4
5
  import '@vitest/spy';
5
6
 
6
- type Environment = 'production' | 'staging';
7
+ type Environment = 'production' | 'stage';
7
8
  interface MockUserIdentity {
8
9
  account_number?: string;
9
10
  org_id?: string;
@@ -35,6 +36,9 @@ interface WorkspacePermissionsMap {
35
36
  delete: string[];
36
37
  create: string[];
37
38
  move: string[];
39
+ role_binding_view?: string[];
40
+ role_binding_grant?: string[];
41
+ role_binding_revoke?: string[];
38
42
  }
39
43
  declare const EMPTY_WORKSPACE_PERMISSIONS: WorkspacePermissionsMap;
40
44
  interface TenantPermissionsMap {
@@ -51,6 +55,8 @@ interface TenantPermissionsMap {
51
55
  }
52
56
  declare const EMPTY_TENANT_PERMISSIONS: TenantPermissionsMap;
53
57
  interface MockState {
58
+ bundle: string;
59
+ app: string;
54
60
  environment: Environment;
55
61
  isOrgAdmin: boolean;
56
62
  permissions: string[];
@@ -62,7 +68,7 @@ interface StoryParameters {
62
68
  noWrapping?: boolean;
63
69
  permissions?: readonly string[];
64
70
  orgAdmin?: boolean;
65
- environment?: 'staging' | 'production';
71
+ environment?: 'stage' | 'production';
66
72
  workspacePermissions?: Partial<WorkspacePermissionsMap>;
67
73
  tenantPermissions?: Partial<TenantPermissionsMap>;
68
74
  userIdentity?: MockUserIdentity;
@@ -72,78 +78,46 @@ interface StoryParameters {
72
78
  };
73
79
  }
74
80
  declare const StorybookMockContext: React.Context<MockState>;
75
- interface ProviderProps extends Partial<MockState> {
81
+ interface ProviderProps {
76
82
  children: ReactNode;
83
+ bundle?: string;
84
+ app?: string;
85
+ environment?: Environment;
86
+ isOrgAdmin?: boolean;
87
+ permissions?: string[];
88
+ workspacePermissions?: Partial<WorkspacePermissionsMap>;
89
+ tenantPermissions?: Partial<TenantPermissionsMap>;
90
+ userIdentity?: MockUserIdentity;
77
91
  }
78
92
  declare const StorybookMockProvider: React.FC<ProviderProps>;
79
93
  declare const useMockState: () => MockState;
80
94
 
81
- interface ChromeConfig {
82
- environment: string;
83
- [key: string]: any;
84
- }
85
- declare const ChromeContext: React.Context<ChromeConfig>;
86
- declare const ChromeProvider: React.FC<{
87
- value: ChromeConfig;
95
+ interface HccStorybookProviderProps {
96
+ bundle: string;
97
+ app: string;
88
98
  children: ReactNode;
89
- }>;
90
-
91
- /**
92
- * Derives Kessel tenant permissions from Chrome-style permission strings.
93
- *
94
- * V2 domain hooks (useRolesAccess, useGroupsAccess, etc.) consume tenantPermissions
95
- * from the Kessel mock. Stories typically set Chrome-style `permissions` (e.g.
96
- * ['rbac:group:read', 'rbac:role:write']). This helper converts those to the
97
- * tenant relation format expected by useSelfAccessCheck.
98
- */
99
-
100
- /**
101
- * Converts Chrome-style permissions to Kessel tenant permissions.
102
- * When a story sets `permissions` but not `tenantPermissions`, this is used
103
- * to auto-derive tenant relations so V2 domain hooks work correctly.
104
- */
105
- declare function deriveTenantPermissions(permissions: string[]): Partial<TenantPermissionsMap>;
106
-
107
- interface PermissionsArgs {
108
- orgAdmin?: boolean;
109
- userAccessAdministrator?: boolean;
110
- }
111
- interface ChromeArgs {
112
- environment?: 'prod' | 'stage' | 'ci-beta' | 'ci-stable' | 'qa-beta' | 'qa-stable';
113
- }
114
- interface FeatureFlagsArgs {
115
- [key: string]: boolean | undefined;
99
+ permissions?: string[];
100
+ featureFlags?: Record<string, boolean>;
101
+ environment?: Environment;
102
+ isOrgAdmin?: boolean;
103
+ workspacePermissions?: Partial<WorkspacePermissionsMap>;
104
+ tenantPermissions?: Partial<TenantPermissionsMap>;
105
+ userIdentity?: MockUserIdentity;
116
106
  }
117
- type DecoratorArgs = PermissionsArgs & ChromeArgs & FeatureFlagsArgs;
118
- type StoryArgs<T = {}> = T & DecoratorArgs;
119
- declare const DEFAULT_DECORATOR_ARGS: {
120
- orgAdmin: boolean;
121
- userAccessAdministrator: boolean;
122
- environment: string;
123
- };
124
- declare const DECORATOR_ARG_TYPES: {
125
- readonly orgAdmin: {
126
- readonly control: "boolean";
127
- readonly description: "Organization admin permissions";
128
- readonly table: {
129
- readonly category: "Permissions";
130
- };
131
- };
132
- readonly userAccessAdministrator: {
133
- readonly control: "boolean";
134
- readonly description: "User access administrator permissions";
135
- readonly table: {
136
- readonly category: "Permissions";
137
- };
138
- };
139
- readonly environment: {
140
- readonly control: "select";
141
- readonly options: readonly ["prod", "stage", "ci-beta", "ci-stable", "qa-beta", "qa-stable"];
142
- readonly description: "Environment for Chrome API";
143
- readonly table: {
144
- readonly category: "Chrome";
107
+ declare const HccStorybookProvider: React.FC<HccStorybookProviderProps>;
108
+
109
+ declare const hccPreviewDefaults: {
110
+ beforeAll: () => Promise<void>;
111
+ loaders: ((context: msw_storybook_addon.Context) => Promise<{}>)[];
112
+ parameters: {
113
+ layout: "fullscreen";
114
+ controls: {
115
+ matchers: {
116
+ color: RegExp;
117
+ date: RegExp;
118
+ };
145
119
  };
146
120
  };
147
121
  };
148
122
 
149
- export { type ChromeConfig, ChromeContext, ChromeProvider, DECORATOR_ARG_TYPES, DEFAULT_DECORATOR_ARGS, type DecoratorArgs, EMPTY_TENANT_PERMISSIONS, EMPTY_WORKSPACE_PERMISSIONS, type Environment, type MockState, type MockUserIdentity, type StoryArgs, type StoryParameters, StorybookMockContext, StorybookMockProvider, type TenantPermissionsMap, type WorkspacePermissionsMap, deriveTenantPermissions, useMockState };
123
+ export { EMPTY_TENANT_PERMISSIONS, EMPTY_WORKSPACE_PERMISSIONS, type Environment, HccStorybookProvider, type MockState, type MockUserIdentity, type StoryParameters, StorybookMockContext, StorybookMockProvider, type TenantPermissionsMap, type WorkspacePermissionsMap, hccPreviewDefaults, useMockState };
package/dist/index.js CHANGED
@@ -1,7 +1,6 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
-
4
- var _chunkYTIDUO5Ejs = require('./chunk-YTIDUO5E.js');
3
+ var _chunkOQMLXRLXjs = require('./chunk-OQMLXRLX.js');
5
4
 
6
5
 
7
6
 
@@ -12,71 +11,53 @@ var _chunkNXYQ66I7js = require('./chunk-NXYQ66I7.js');
12
11
 
13
12
 
14
13
 
15
- var _chunkKVKMLDB5js = require('./chunk-KVKMLDB5.js');
14
+ var _chunkKINXT2EJjs = require('./chunk-KINXT2EJ.js');
16
15
 
17
- // lib/providers/ChromeProvider.tsx
18
- var _react = require('react');
16
+ // lib/providers/HccStorybookProvider.tsx
19
17
  var _jsxruntime = require('react/jsx-runtime');
20
- var ChromeContext = _react.createContext.call(void 0, {
21
- environment: "prod"
22
- });
23
- var ChromeProvider = ({
24
- value,
25
- children
26
- }) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, ChromeContext.Provider, { value, children });
27
-
28
- // lib/helpers/derive-tenant-permissions.ts
29
- function hasPermission(permissions, perm) {
30
- return permissions.some((p) => {
31
- if (p === perm) return true;
32
- const [pApp, pRes, pAct] = p.split(":");
33
- const [rApp, rRes, rAct] = perm.split(":");
34
- if (pApp !== rApp) return false;
35
- if (pRes !== "*" && pRes !== rRes) return false;
36
- if (pAct !== "*" && pAct !== rAct) return false;
37
- return true;
38
- });
39
- }
40
- function deriveTenantPermissions(permissions) {
41
- const has = (perm) => hasPermission(permissions, perm);
42
- return {
43
- ..._chunkKVKMLDB5js.EMPTY_TENANT_PERMISSIONS,
44
- rbac_roles_read: has("rbac:role:read"),
45
- rbac_roles_write: has("rbac:role:write"),
46
- rbac_groups_read: has("rbac:group:read"),
47
- rbac_groups_write: has("rbac:group:write"),
48
- rbac_principal_read: has("rbac:principal:read"),
49
- // Workspace tenant-level permissions (inventory:groups:* → rbac_workspace_*)
50
- rbac_workspace_view: has("inventory:groups:read"),
51
- rbac_workspace_edit: has("inventory:groups:write"),
52
- rbac_workspace_create: has("inventory:groups:write"),
53
- rbac_workspace_delete: has("inventory:groups:write"),
54
- rbac_workspace_move: has("inventory:groups:write")
55
- };
56
- }
57
-
58
- // lib/types.ts
59
- var DEFAULT_DECORATOR_ARGS = {
60
- orgAdmin: false,
61
- userAccessAdministrator: false,
62
- environment: "prod"
18
+ var HccStorybookProvider = ({
19
+ bundle,
20
+ app,
21
+ children,
22
+ permissions = [],
23
+ featureFlags = {},
24
+ environment = "stage",
25
+ isOrgAdmin = false,
26
+ workspacePermissions,
27
+ tenantPermissions,
28
+ userIdentity
29
+ }) => {
30
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
31
+ _chunkKINXT2EJjs.StorybookMockProvider,
32
+ {
33
+ bundle,
34
+ app,
35
+ environment,
36
+ isOrgAdmin,
37
+ permissions,
38
+ workspacePermissions,
39
+ tenantPermissions,
40
+ userIdentity,
41
+ children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkNXYQ66I7js.FeatureFlagsProvider, { value: featureFlags, children })
42
+ }
43
+ );
63
44
  };
64
- var DECORATOR_ARG_TYPES = {
65
- orgAdmin: {
66
- control: "boolean",
67
- description: "Organization admin permissions",
68
- table: { category: "Permissions" }
69
- },
70
- userAccessAdministrator: {
71
- control: "boolean",
72
- description: "User access administrator permissions",
73
- table: { category: "Permissions" }
45
+
46
+ // lib/preview/hccPreviewDefaults.ts
47
+ var _mswstorybookaddon = require('msw-storybook-addon');
48
+ var hccPreviewDefaults = {
49
+ beforeAll: async () => {
50
+ _mswstorybookaddon.initialize.call(void 0, { onUnhandledRequest: "warn" });
74
51
  },
75
- environment: {
76
- control: "select",
77
- options: ["prod", "stage", "ci-beta", "ci-stable", "qa-beta", "qa-stable"],
78
- description: "Environment for Chrome API",
79
- table: { category: "Chrome" }
52
+ loaders: [_mswstorybookaddon.mswLoader],
53
+ parameters: {
54
+ layout: "fullscreen",
55
+ controls: {
56
+ matchers: {
57
+ color: /(background|color)$/i,
58
+ date: /Date$/i
59
+ }
60
+ }
80
61
  }
81
62
  };
82
63
 
@@ -90,8 +71,4 @@ var DECORATOR_ARG_TYPES = {
90
71
 
91
72
 
92
73
 
93
-
94
-
95
-
96
-
97
- exports.ChromeContext = ChromeContext; exports.ChromeProvider = ChromeProvider; exports.DECORATOR_ARG_TYPES = DECORATOR_ARG_TYPES; exports.DEFAULT_DECORATOR_ARGS = DEFAULT_DECORATOR_ARGS; exports.EMPTY_TENANT_PERMISSIONS = _chunkKVKMLDB5js.EMPTY_TENANT_PERMISSIONS; exports.EMPTY_WORKSPACE_PERMISSIONS = _chunkKVKMLDB5js.EMPTY_WORKSPACE_PERMISSIONS; exports.FeatureFlagsContext = _chunkNXYQ66I7js.FeatureFlagsContext; exports.FeatureFlagsProvider = _chunkNXYQ66I7js.FeatureFlagsProvider; exports.StorybookMockContext = _chunkKVKMLDB5js.StorybookMockContext; exports.StorybookMockProvider = _chunkKVKMLDB5js.StorybookMockProvider; exports.chromeAppNavClickSpy = _chunkYTIDUO5Ejs.chromeAppNavClickSpy; exports.configureChromeMock = _chunkYTIDUO5Ejs.configureChromeMock; exports.deriveTenantPermissions = deriveTenantPermissions; exports.useMockState = _chunkKVKMLDB5js.useMockState;
74
+ exports.EMPTY_TENANT_PERMISSIONS = _chunkKINXT2EJjs.EMPTY_TENANT_PERMISSIONS; exports.EMPTY_WORKSPACE_PERMISSIONS = _chunkKINXT2EJjs.EMPTY_WORKSPACE_PERMISSIONS; exports.FeatureFlagsContext = _chunkNXYQ66I7js.FeatureFlagsContext; exports.FeatureFlagsProvider = _chunkNXYQ66I7js.FeatureFlagsProvider; exports.HccStorybookProvider = HccStorybookProvider; exports.StorybookMockContext = _chunkKINXT2EJjs.StorybookMockContext; exports.StorybookMockProvider = _chunkKINXT2EJjs.StorybookMockProvider; exports.chromeSpies = _chunkOQMLXRLXjs.chromeSpies; exports.hccPreviewDefaults = hccPreviewDefaults; exports.useMockState = _chunkKINXT2EJjs.useMockState;
package/dist/index.mjs CHANGED
@@ -1,7 +1,6 @@
1
1
  import {
2
- chromeAppNavClickSpy,
3
- configureChromeMock
4
- } from "./chunk-EPJ4YIIZ.mjs";
2
+ chromeSpies
3
+ } from "./chunk-6YA5JGU2.mjs";
5
4
  import {
6
5
  FeatureFlagsContext,
7
6
  FeatureFlagsProvider
@@ -12,86 +11,64 @@ import {
12
11
  StorybookMockContext,
13
12
  StorybookMockProvider,
14
13
  useMockState
15
- } from "./chunk-UCQY2VRL.mjs";
14
+ } from "./chunk-AYALJZIB.mjs";
16
15
 
17
- // lib/providers/ChromeProvider.tsx
18
- import { createContext } from "react";
16
+ // lib/providers/HccStorybookProvider.tsx
19
17
  import { jsx } from "react/jsx-runtime";
20
- var ChromeContext = createContext({
21
- environment: "prod"
22
- });
23
- var ChromeProvider = ({
24
- value,
25
- children
26
- }) => /* @__PURE__ */ jsx(ChromeContext.Provider, { value, children });
27
-
28
- // lib/helpers/derive-tenant-permissions.ts
29
- function hasPermission(permissions, perm) {
30
- return permissions.some((p) => {
31
- if (p === perm) return true;
32
- const [pApp, pRes, pAct] = p.split(":");
33
- const [rApp, rRes, rAct] = perm.split(":");
34
- if (pApp !== rApp) return false;
35
- if (pRes !== "*" && pRes !== rRes) return false;
36
- if (pAct !== "*" && pAct !== rAct) return false;
37
- return true;
38
- });
39
- }
40
- function deriveTenantPermissions(permissions) {
41
- const has = (perm) => hasPermission(permissions, perm);
42
- return {
43
- ...EMPTY_TENANT_PERMISSIONS,
44
- rbac_roles_read: has("rbac:role:read"),
45
- rbac_roles_write: has("rbac:role:write"),
46
- rbac_groups_read: has("rbac:group:read"),
47
- rbac_groups_write: has("rbac:group:write"),
48
- rbac_principal_read: has("rbac:principal:read"),
49
- // Workspace tenant-level permissions (inventory:groups:* → rbac_workspace_*)
50
- rbac_workspace_view: has("inventory:groups:read"),
51
- rbac_workspace_edit: has("inventory:groups:write"),
52
- rbac_workspace_create: has("inventory:groups:write"),
53
- rbac_workspace_delete: has("inventory:groups:write"),
54
- rbac_workspace_move: has("inventory:groups:write")
55
- };
56
- }
57
-
58
- // lib/types.ts
59
- var DEFAULT_DECORATOR_ARGS = {
60
- orgAdmin: false,
61
- userAccessAdministrator: false,
62
- environment: "prod"
18
+ var HccStorybookProvider = ({
19
+ bundle,
20
+ app,
21
+ children,
22
+ permissions = [],
23
+ featureFlags = {},
24
+ environment = "stage",
25
+ isOrgAdmin = false,
26
+ workspacePermissions,
27
+ tenantPermissions,
28
+ userIdentity
29
+ }) => {
30
+ return /* @__PURE__ */ jsx(
31
+ StorybookMockProvider,
32
+ {
33
+ bundle,
34
+ app,
35
+ environment,
36
+ isOrgAdmin,
37
+ permissions,
38
+ workspacePermissions,
39
+ tenantPermissions,
40
+ userIdentity,
41
+ children: /* @__PURE__ */ jsx(FeatureFlagsProvider, { value: featureFlags, children })
42
+ }
43
+ );
63
44
  };
64
- var DECORATOR_ARG_TYPES = {
65
- orgAdmin: {
66
- control: "boolean",
67
- description: "Organization admin permissions",
68
- table: { category: "Permissions" }
69
- },
70
- userAccessAdministrator: {
71
- control: "boolean",
72
- description: "User access administrator permissions",
73
- table: { category: "Permissions" }
45
+
46
+ // lib/preview/hccPreviewDefaults.ts
47
+ import { initialize, mswLoader } from "msw-storybook-addon";
48
+ var hccPreviewDefaults = {
49
+ beforeAll: async () => {
50
+ initialize({ onUnhandledRequest: "warn" });
74
51
  },
75
- environment: {
76
- control: "select",
77
- options: ["prod", "stage", "ci-beta", "ci-stable", "qa-beta", "qa-stable"],
78
- description: "Environment for Chrome API",
79
- table: { category: "Chrome" }
52
+ loaders: [mswLoader],
53
+ parameters: {
54
+ layout: "fullscreen",
55
+ controls: {
56
+ matchers: {
57
+ color: /(background|color)$/i,
58
+ date: /Date$/i
59
+ }
60
+ }
80
61
  }
81
62
  };
82
63
  export {
83
- ChromeContext,
84
- ChromeProvider,
85
- DECORATOR_ARG_TYPES,
86
- DEFAULT_DECORATOR_ARGS,
87
64
  EMPTY_TENANT_PERMISSIONS,
88
65
  EMPTY_WORKSPACE_PERMISSIONS,
89
66
  FeatureFlagsContext,
90
67
  FeatureFlagsProvider,
68
+ HccStorybookProvider,
91
69
  StorybookMockContext,
92
70
  StorybookMockProvider,
93
- chromeAppNavClickSpy,
94
- configureChromeMock,
95
- deriveTenantPermissions,
71
+ chromeSpies,
72
+ hccPreviewDefaults,
96
73
  useMockState
97
74
  };
@@ -1,6 +1,6 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkKVKMLDB5js = require('../chunk-KVKMLDB5.js');
3
+ var _chunkKINXT2EJjs = require('../chunk-KINXT2EJ.js');
4
4
 
5
5
  // lib/mocks/RBACHook.ts
6
6
  var _react = require('react');
@@ -14,7 +14,7 @@ var matchPermission = (granted, required) => {
14
14
  return true;
15
15
  };
16
16
  var usePermissions = (_app, requiredPermissions, _disableCache, checkAll) => {
17
- const mock = _chunkKVKMLDB5js.useMockState.call(void 0, );
17
+ const mock = _chunkKINXT2EJjs.useMockState.call(void 0, );
18
18
  const mockRef = _react.useRef.call(void 0, mock);
19
19
  mockRef.current = mock;
20
20
  const hasAccess = checkAll ? requiredPermissions.every((req) => mockRef.current.permissions.some((granted) => matchPermission(granted, req))) : requiredPermissions.some((req) => mockRef.current.permissions.some((granted) => matchPermission(granted, req)));
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  useMockState
3
- } from "../chunk-UCQY2VRL.mjs";
3
+ } from "../chunk-AYALJZIB.mjs";
4
4
 
5
5
  // lib/mocks/RBACHook.ts
6
6
  import { useRef } from "react";
@@ -1,4 +1,3 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
1
  import React from 'react';
3
2
 
4
3
  interface Resource {
@@ -43,7 +42,7 @@ declare const AccessCheck: {
43
42
  children: React.ReactNode;
44
43
  baseUrl?: string;
45
44
  apiPath?: string;
46
- }) => react_jsx_runtime.JSX.Element;
45
+ }) => React.JSX.Element;
47
46
  };
48
47
 
49
48
  export { AccessCheck, useSelfAccessCheck };
@@ -1,4 +1,3 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
1
  import React from 'react';
3
2
 
4
3
  interface Resource {
@@ -43,7 +42,7 @@ declare const AccessCheck: {
43
42
  children: React.ReactNode;
44
43
  baseUrl?: string;
45
44
  apiPath?: string;
46
- }) => react_jsx_runtime.JSX.Element;
45
+ }) => React.JSX.Element;
47
46
  };
48
47
 
49
48
  export { AccessCheck, useSelfAccessCheck };