@viswa-test/creative-workspace-ui-component 0.0.72 → 0.0.74
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/_virtual/_tslib.js +1 -1
- package/dist/cjs/_virtual/_tslib.js +1 -1
- package/dist/cjs/components/AssignReminders/AssignReminderWrapper.js +1 -1
- package/dist/cjs/components/AssignReminders/components/LevelData.js +1 -1
- package/dist/cjs/components/PromptEditor/PromptEditor.js +2 -0
- package/dist/cjs/components/PromptEditor/PromptEditor.js.map +1 -0
- package/dist/cjs/components/ScopeTree/TreeTooltip.js +1 -1
- package/dist/cjs/features/lsc-guidelines/LscGuidelines.js +1 -1
- package/dist/cjs/features/lsc-guidelines/components/DataSourceCard.js +2 -0
- package/dist/cjs/features/lsc-guidelines/components/DataSourceCard.js.map +1 -0
- package/dist/cjs/features/lsc-guidelines/components/GuidelineAttachmentIcon.js +1 -1
- package/dist/cjs/features/lsc-guidelines/components/GuidelineCardMenu.js +1 -1
- package/dist/cjs/features/lsc-guidelines/components/GuidelineCart.js +1 -1
- package/dist/cjs/features/lsc-guidelines/components/GuidelineCartItem.js +1 -1
- package/dist/cjs/features/lsc-guidelines/components/GuidelineCreateForm.js +2 -0
- package/dist/cjs/features/lsc-guidelines/components/GuidelineCreateForm.js.map +1 -0
- package/dist/cjs/features/lsc-guidelines/components/GuidelineEditorWrapper.js +2 -0
- package/dist/cjs/features/lsc-guidelines/components/GuidelineEditorWrapper.js.map +1 -0
- package/dist/cjs/features/lsc-guidelines/components/GuidelineFilterPanel.js +2 -0
- package/dist/cjs/features/lsc-guidelines/components/GuidelineFilterPanel.js.map +1 -0
- package/dist/cjs/features/lsc-guidelines/components/GuidelineLandingPage.js +1 -1
- package/dist/cjs/features/lsc-guidelines/components/GuidelineLibrary.js +1 -1
- package/dist/cjs/features/lsc-guidelines/components/GuidelineLibraryCard.js +1 -1
- package/dist/cjs/features/lsc-guidelines/components/GuidelinePopoverCart.js +1 -1
- package/dist/cjs/features/lsc-guidelines/components/GuidelineTooltip.js +1 -1
- package/dist/cjs/features/lsc-guidelines/components/GuidelineWorkspaceHostProvider.js +2 -0
- package/dist/cjs/features/lsc-guidelines/components/GuidelineWorkspaceHostProvider.js.map +1 -0
- package/dist/cjs/features/lsc-guidelines/components/GuidelineWorkspacePage.js +2 -0
- package/dist/cjs/features/lsc-guidelines/components/GuidelineWorkspacePage.js.map +1 -0
- package/dist/cjs/features/lsc-guidelines/components/LearningManagementWrapper.js +2 -0
- package/dist/cjs/features/lsc-guidelines/components/LearningManagementWrapper.js.map +1 -0
- package/dist/cjs/features/lsc-guidelines/constants.js +1 -1
- package/dist/cjs/features/lsc-guidelines/hooks/useClearGuidelineCartOnReload.js +2 -0
- package/dist/cjs/features/lsc-guidelines/hooks/useClearGuidelineCartOnReload.js.map +1 -0
- package/dist/cjs/features/lsc-guidelines/hooks/useDebounce.js +2 -0
- package/dist/cjs/features/lsc-guidelines/hooks/useDebounce.js.map +1 -0
- package/dist/cjs/features/lsc-guidelines/hooks/useGuidelineCartMemstoreSync.js +2 -0
- package/dist/cjs/features/lsc-guidelines/hooks/useGuidelineCartMemstoreSync.js.map +1 -0
- package/dist/cjs/features/lsc-guidelines/hooks/useGuidelineDataCart.js +2 -0
- package/dist/cjs/features/lsc-guidelines/hooks/useGuidelineDataCart.js.map +1 -0
- package/dist/cjs/features/lsc-guidelines/hooks/useGuidelineSelection.js +1 -1
- package/dist/cjs/features/lsc-guidelines/hooks/useGuidelineWorkspaceLegacyBridge.js +2 -0
- package/dist/cjs/features/lsc-guidelines/hooks/useGuidelineWorkspaceLegacyBridge.js.map +1 -0
- package/dist/cjs/features/lsc-guidelines/hooks/useInstantLearningGuidelineCart.js +2 -0
- package/dist/cjs/features/lsc-guidelines/hooks/useInstantLearningGuidelineCart.js.map +1 -0
- package/dist/cjs/features/lsc-guidelines/hooks/useInstantLearningGuidelines.js +2 -0
- package/dist/cjs/features/lsc-guidelines/hooks/useInstantLearningGuidelines.js.map +1 -0
- package/dist/cjs/features/lsc-guidelines/hooks/useMemstoreGuidelineCart.js +2 -0
- package/dist/cjs/features/lsc-guidelines/hooks/useMemstoreGuidelineCart.js.map +1 -0
- package/dist/cjs/features/lsc-guidelines/hooks/useSavedGuidelines.js +2 -0
- package/dist/cjs/features/lsc-guidelines/hooks/useSavedGuidelines.js.map +1 -0
- package/dist/cjs/features/lsc-guidelines/index.js +1 -1
- package/dist/cjs/features/lsc-guidelines/queryClient.js +2 -0
- package/dist/cjs/features/lsc-guidelines/queryClient.js.map +1 -0
- package/dist/cjs/features/lsc-guidelines/services/guideline.api.js +2 -0
- package/dist/cjs/features/lsc-guidelines/services/guideline.api.js.map +1 -0
- package/dist/cjs/features/lsc-guidelines/services/guideline.cart.api.js +2 -0
- package/dist/cjs/features/lsc-guidelines/services/guideline.cart.api.js.map +1 -0
- package/dist/cjs/features/lsc-guidelines/services/guideline.content.js +2 -0
- package/dist/cjs/features/lsc-guidelines/services/guideline.content.js.map +1 -0
- package/dist/cjs/features/lsc-guidelines/services/guideline.runtime.config.js +2 -0
- package/dist/cjs/features/lsc-guidelines/services/guideline.runtime.config.js.map +1 -0
- package/dist/cjs/features/lsc-guidelines/services/guideline.session.js +2 -0
- package/dist/cjs/features/lsc-guidelines/services/guideline.session.js.map +1 -0
- package/dist/cjs/features/lsc-guidelines/services/instant-learning.api.js +2 -0
- package/dist/cjs/features/lsc-guidelines/services/instant-learning.api.js.map +1 -0
- package/dist/cjs/features/lsc-guidelines/services/instant-learning.wishlist.js +2 -0
- package/dist/cjs/features/lsc-guidelines/services/instant-learning.wishlist.js.map +1 -0
- package/dist/cjs/features/lsc-guidelines/theme.css +6 -0
- package/dist/cjs/features/lsc-guidelines/utils/addContextHelpers.js +2 -0
- package/dist/cjs/features/lsc-guidelines/utils/addContextHelpers.js.map +1 -0
- package/dist/cjs/features/lsc-guidelines/utils/cn.js +2 -0
- package/dist/cjs/features/lsc-guidelines/utils/cn.js.map +1 -0
- package/dist/cjs/features/lsc-guidelines/utils/guidelineFiles.js +2 -0
- package/dist/cjs/features/lsc-guidelines/utils/guidelineFiles.js.map +1 -0
- package/dist/cjs/features/lsc-guidelines/utils/guidelineOverlay.js +2 -0
- package/dist/cjs/features/lsc-guidelines/utils/guidelineOverlay.js.map +1 -0
- package/dist/cjs/features/lsc-guidelines/utils/guidelineSort.js +2 -0
- package/dist/cjs/features/lsc-guidelines/utils/guidelineSort.js.map +1 -0
- package/dist/cjs/features/lsc-guidelines/utils/microfrontend.js +2 -0
- package/dist/cjs/features/lsc-guidelines/utils/microfrontend.js.map +1 -0
- package/dist/cjs/features/lsc-guidelines/utils/session.js +2 -0
- package/dist/cjs/features/lsc-guidelines/utils/session.js.map +1 -0
- package/dist/cjs/features/lsc-guidelines/utils/url.js +2 -0
- package/dist/cjs/features/lsc-guidelines/utils/url.js.map +1 -0
- package/dist/cjs/features/lsc-guidelines/utils.js +1 -1
- package/dist/cjs/features/lsc-guidelines/workspace/GuidelineWorkspace.js +2 -0
- package/dist/cjs/features/lsc-guidelines/workspace/GuidelineWorkspace.js.map +1 -0
- package/dist/cjs/features/lsc-guidelines/workspace/GuidelineWorkspaceHydrator.js +2 -0
- package/dist/cjs/features/lsc-guidelines/workspace/GuidelineWorkspaceHydrator.js.map +1 -0
- package/dist/cjs/features/lsc-guidelines/workspace/GuidelineWorkspaceProvider.js +2 -0
- package/dist/cjs/features/lsc-guidelines/workspace/GuidelineWorkspaceProvider.js.map +1 -0
- package/dist/cjs/features/lsc-guidelines/workspace/useGuidelineWorkspace.js +2 -0
- package/dist/cjs/features/lsc-guidelines/workspace/useGuidelineWorkspace.js.map +1 -0
- package/dist/cjs/features/lsc-guidelines/workspace/workspace.context.js +2 -0
- package/dist/cjs/features/lsc-guidelines/workspace/workspace.context.js.map +1 -0
- package/dist/cjs/features/lsc-guidelines/workspace/workspace.runtime.js +2 -0
- package/dist/cjs/features/lsc-guidelines/workspace/workspace.runtime.js.map +1 -0
- package/dist/cjs/features/lsc-guidelines/workspace/workspace.selectors.js +2 -0
- package/dist/cjs/features/lsc-guidelines/workspace/workspace.selectors.js.map +1 -0
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/node_modules/appsec-ui/dist/index.mjs.js +2 -0
- package/dist/cjs/node_modules/appsec-ui/dist/index.mjs.js.map +1 -0
- package/dist/cjs/node_modules/appsec-ui/node_modules/tailwind-merge/dist/bundle-mjs.mjs.js +2 -0
- package/dist/cjs/node_modules/appsec-ui/node_modules/tailwind-merge/dist/bundle-mjs.mjs.js.map +1 -0
- package/dist/cjs/node_modules/clsx/dist/clsx.mjs.js +2 -0
- package/dist/cjs/node_modules/clsx/dist/clsx.mjs.js.map +1 -0
- package/dist/cjs/node_modules/tailwind-merge/dist/bundle-mjs.mjs.js +2 -0
- package/dist/cjs/node_modules/tailwind-merge/dist/bundle-mjs.mjs.js.map +1 -0
- package/dist/cjs/node_modules/uuid/dist/native.js +2 -0
- package/dist/cjs/node_modules/uuid/dist/native.js.map +1 -0
- package/dist/cjs/node_modules/uuid/dist/rng.js +2 -0
- package/dist/cjs/node_modules/uuid/dist/rng.js.map +1 -0
- package/dist/cjs/node_modules/uuid/dist/stringify.js +2 -0
- package/dist/cjs/node_modules/uuid/dist/stringify.js.map +1 -0
- package/dist/cjs/node_modules/uuid/dist/v4.js +2 -0
- package/dist/cjs/node_modules/uuid/dist/v4.js.map +1 -0
- package/dist/components/AssignReminders/AssignReminderWrapper.js +1 -1
- package/dist/components/AssignReminders/components/LevelData.js +1 -1
- package/dist/components/PromptEditor/PromptEditor.js +2 -0
- package/dist/components/PromptEditor/PromptEditor.js.map +1 -0
- package/dist/components/ScopeTree/TreeTooltip.js +1 -1
- package/dist/features/lsc-guidelines/LscGuidelines.js +1 -1
- package/dist/features/lsc-guidelines/components/DataSourceCard.js +2 -0
- package/dist/features/lsc-guidelines/components/DataSourceCard.js.map +1 -0
- package/dist/features/lsc-guidelines/components/GuidelineAttachmentIcon.js +1 -1
- package/dist/features/lsc-guidelines/components/GuidelineCardMenu.js +1 -1
- package/dist/features/lsc-guidelines/components/GuidelineCart.js +1 -1
- package/dist/features/lsc-guidelines/components/GuidelineCartItem.js +1 -1
- package/dist/features/lsc-guidelines/components/GuidelineCreateForm.js +2 -0
- package/dist/features/lsc-guidelines/components/GuidelineCreateForm.js.map +1 -0
- package/dist/features/lsc-guidelines/components/GuidelineEditorWrapper.js +2 -0
- package/dist/features/lsc-guidelines/components/GuidelineEditorWrapper.js.map +1 -0
- package/dist/features/lsc-guidelines/components/GuidelineFilterPanel.js +2 -0
- package/dist/features/lsc-guidelines/components/GuidelineFilterPanel.js.map +1 -0
- package/dist/features/lsc-guidelines/components/GuidelineLandingPage.js +1 -1
- package/dist/features/lsc-guidelines/components/GuidelineLibrary.js +1 -1
- package/dist/features/lsc-guidelines/components/GuidelineLibraryCard.js +1 -1
- package/dist/features/lsc-guidelines/components/GuidelinePopoverCart.js +1 -1
- package/dist/features/lsc-guidelines/components/GuidelineTooltip.js +1 -1
- package/dist/features/lsc-guidelines/components/GuidelineWorkspaceHostProvider.js +2 -0
- package/dist/features/lsc-guidelines/components/GuidelineWorkspaceHostProvider.js.map +1 -0
- package/dist/features/lsc-guidelines/components/GuidelineWorkspacePage.js +2 -0
- package/dist/features/lsc-guidelines/components/GuidelineWorkspacePage.js.map +1 -0
- package/dist/features/lsc-guidelines/components/LearningManagementWrapper.js +2 -0
- package/dist/features/lsc-guidelines/components/LearningManagementWrapper.js.map +1 -0
- package/dist/features/lsc-guidelines/constants.js +1 -1
- package/dist/features/lsc-guidelines/hooks/useClearGuidelineCartOnReload.js +2 -0
- package/dist/features/lsc-guidelines/hooks/useClearGuidelineCartOnReload.js.map +1 -0
- package/dist/features/lsc-guidelines/hooks/useDebounce.js +2 -0
- package/dist/features/lsc-guidelines/hooks/useDebounce.js.map +1 -0
- package/dist/features/lsc-guidelines/hooks/useGuidelineCartMemstoreSync.js +2 -0
- package/dist/features/lsc-guidelines/hooks/useGuidelineCartMemstoreSync.js.map +1 -0
- package/dist/features/lsc-guidelines/hooks/useGuidelineDataCart.js +2 -0
- package/dist/features/lsc-guidelines/hooks/useGuidelineDataCart.js.map +1 -0
- package/dist/features/lsc-guidelines/hooks/useGuidelineSelection.js +1 -1
- package/dist/features/lsc-guidelines/hooks/useGuidelineWorkspaceLegacyBridge.js +2 -0
- package/dist/features/lsc-guidelines/hooks/useGuidelineWorkspaceLegacyBridge.js.map +1 -0
- package/dist/features/lsc-guidelines/hooks/useInstantLearningGuidelineCart.js +2 -0
- package/dist/features/lsc-guidelines/hooks/useInstantLearningGuidelineCart.js.map +1 -0
- package/dist/features/lsc-guidelines/hooks/useInstantLearningGuidelines.js +2 -0
- package/dist/features/lsc-guidelines/hooks/useInstantLearningGuidelines.js.map +1 -0
- package/dist/features/lsc-guidelines/hooks/useMemstoreGuidelineCart.js +2 -0
- package/dist/features/lsc-guidelines/hooks/useMemstoreGuidelineCart.js.map +1 -0
- package/dist/features/lsc-guidelines/hooks/useSavedGuidelines.js +2 -0
- package/dist/features/lsc-guidelines/hooks/useSavedGuidelines.js.map +1 -0
- package/dist/features/lsc-guidelines/index.js +1 -1
- package/dist/features/lsc-guidelines/queryClient.js +2 -0
- package/dist/features/lsc-guidelines/queryClient.js.map +1 -0
- package/dist/features/lsc-guidelines/services/guideline.api.js +2 -0
- package/dist/features/lsc-guidelines/services/guideline.api.js.map +1 -0
- package/dist/features/lsc-guidelines/services/guideline.cart.api.js +2 -0
- package/dist/features/lsc-guidelines/services/guideline.cart.api.js.map +1 -0
- package/dist/features/lsc-guidelines/services/guideline.content.js +2 -0
- package/dist/features/lsc-guidelines/services/guideline.content.js.map +1 -0
- package/dist/features/lsc-guidelines/services/guideline.runtime.config.js +2 -0
- package/dist/features/lsc-guidelines/services/guideline.runtime.config.js.map +1 -0
- package/dist/features/lsc-guidelines/services/guideline.session.js +2 -0
- package/dist/features/lsc-guidelines/services/guideline.session.js.map +1 -0
- package/dist/features/lsc-guidelines/services/instant-learning.api.js +2 -0
- package/dist/features/lsc-guidelines/services/instant-learning.api.js.map +1 -0
- package/dist/features/lsc-guidelines/services/instant-learning.wishlist.js +2 -0
- package/dist/features/lsc-guidelines/services/instant-learning.wishlist.js.map +1 -0
- package/dist/features/lsc-guidelines/theme.css +6 -0
- package/dist/features/lsc-guidelines/utils/addContextHelpers.js +2 -0
- package/dist/features/lsc-guidelines/utils/addContextHelpers.js.map +1 -0
- package/dist/features/lsc-guidelines/utils/cn.js +2 -0
- package/dist/features/lsc-guidelines/utils/cn.js.map +1 -0
- package/dist/features/lsc-guidelines/utils/guidelineFiles.js +2 -0
- package/dist/features/lsc-guidelines/utils/guidelineFiles.js.map +1 -0
- package/dist/features/lsc-guidelines/utils/guidelineOverlay.js +2 -0
- package/dist/features/lsc-guidelines/utils/guidelineOverlay.js.map +1 -0
- package/dist/features/lsc-guidelines/utils/guidelineSort.js +2 -0
- package/dist/features/lsc-guidelines/utils/guidelineSort.js.map +1 -0
- package/dist/features/lsc-guidelines/utils/microfrontend.js +2 -0
- package/dist/features/lsc-guidelines/utils/microfrontend.js.map +1 -0
- package/dist/features/lsc-guidelines/utils/session.js +2 -0
- package/dist/features/lsc-guidelines/utils/session.js.map +1 -0
- package/dist/features/lsc-guidelines/utils/url.js +2 -0
- package/dist/features/lsc-guidelines/utils/url.js.map +1 -0
- package/dist/features/lsc-guidelines/utils.js +1 -1
- package/dist/features/lsc-guidelines/workspace/GuidelineWorkspace.js +2 -0
- package/dist/features/lsc-guidelines/workspace/GuidelineWorkspace.js.map +1 -0
- package/dist/features/lsc-guidelines/workspace/GuidelineWorkspaceHydrator.js +2 -0
- package/dist/features/lsc-guidelines/workspace/GuidelineWorkspaceHydrator.js.map +1 -0
- package/dist/features/lsc-guidelines/workspace/GuidelineWorkspaceProvider.js +2 -0
- package/dist/features/lsc-guidelines/workspace/GuidelineWorkspaceProvider.js.map +1 -0
- package/dist/features/lsc-guidelines/workspace/useGuidelineWorkspace.js +2 -0
- package/dist/features/lsc-guidelines/workspace/useGuidelineWorkspace.js.map +1 -0
- package/dist/features/lsc-guidelines/workspace/workspace.context.js +2 -0
- package/dist/features/lsc-guidelines/workspace/workspace.context.js.map +1 -0
- package/dist/features/lsc-guidelines/workspace/workspace.runtime.js +2 -0
- package/dist/features/lsc-guidelines/workspace/workspace.runtime.js.map +1 -0
- package/dist/features/lsc-guidelines/workspace/workspace.selectors.js +2 -0
- package/dist/features/lsc-guidelines/workspace/workspace.selectors.js.map +1 -0
- package/dist/index.js +1 -1
- package/dist/node_modules/appsec-ui/dist/index.mjs.js +2 -0
- package/dist/node_modules/appsec-ui/dist/index.mjs.js.map +1 -0
- package/dist/node_modules/appsec-ui/node_modules/tailwind-merge/dist/bundle-mjs.mjs.js +2 -0
- package/dist/node_modules/appsec-ui/node_modules/tailwind-merge/dist/bundle-mjs.mjs.js.map +1 -0
- package/dist/node_modules/clsx/dist/clsx.mjs.js +2 -0
- package/dist/node_modules/clsx/dist/clsx.mjs.js.map +1 -0
- package/dist/node_modules/tailwind-merge/dist/bundle-mjs.mjs.js +2 -0
- package/dist/node_modules/tailwind-merge/dist/bundle-mjs.mjs.js.map +1 -0
- package/dist/node_modules/uuid/dist/native.js +2 -0
- package/dist/node_modules/uuid/dist/native.js.map +1 -0
- package/dist/node_modules/uuid/dist/rng.js +2 -0
- package/dist/node_modules/uuid/dist/rng.js.map +1 -0
- package/dist/node_modules/uuid/dist/stringify.js +2 -0
- package/dist/node_modules/uuid/dist/stringify.js.map +1 -0
- package/dist/node_modules/uuid/dist/v4.js +2 -0
- package/dist/node_modules/uuid/dist/v4.js.map +1 -0
- package/dist/types/components/AssignReminders/styles/AssignLevelsDatePickerStyles.d.ts +1 -0
- package/dist/types/components/AssignReminders/styles/AssignLevelsDatePickerStyles.d.ts.map +1 -1
- package/dist/types/components/AssignReminders/styles/AssignReminderStyles.d.ts +1 -0
- package/dist/types/components/AssignReminders/styles/AssignReminderStyles.d.ts.map +1 -1
- package/dist/types/components/AssignReminders/styles/AssignReminderWrapperStyles.d.ts +1 -0
- package/dist/types/components/AssignReminders/styles/AssignReminderWrapperStyles.d.ts.map +1 -1
- package/dist/types/components/AssignReminders/styles/ReviewStatusStyles.d.ts +1 -0
- package/dist/types/components/AssignReminders/styles/ReviewStatusStyles.d.ts.map +1 -1
- package/dist/types/components/PromptEditor/PromptEditor.d.ts +16 -0
- package/dist/types/components/PromptEditor/PromptEditor.d.ts.map +1 -0
- package/dist/types/features/lsc-guidelines/LscGuidelines.d.ts +1 -1
- package/dist/types/features/lsc-guidelines/LscGuidelines.d.ts.map +1 -1
- package/dist/types/features/lsc-guidelines/components/DataSourceCard.d.ts +5 -0
- package/dist/types/features/lsc-guidelines/components/DataSourceCard.d.ts.map +1 -0
- package/dist/types/features/lsc-guidelines/components/GuidelineAttachmentIcon.d.ts.map +1 -1
- package/dist/types/features/lsc-guidelines/components/GuidelineCardMenu.d.ts +1 -7
- package/dist/types/features/lsc-guidelines/components/GuidelineCardMenu.d.ts.map +1 -1
- package/dist/types/features/lsc-guidelines/components/GuidelineCartItem.d.ts.map +1 -1
- package/dist/types/features/lsc-guidelines/components/GuidelineCreateForm.d.ts +4 -0
- package/dist/types/features/lsc-guidelines/components/GuidelineCreateForm.d.ts.map +1 -0
- package/dist/types/features/lsc-guidelines/components/GuidelineEditorWrapper.d.ts +11 -0
- package/dist/types/features/lsc-guidelines/components/GuidelineEditorWrapper.d.ts.map +1 -0
- package/dist/types/features/lsc-guidelines/components/GuidelineFilterPanel.d.ts +9 -0
- package/dist/types/features/lsc-guidelines/components/GuidelineFilterPanel.d.ts.map +1 -0
- package/dist/types/features/lsc-guidelines/components/GuidelineLandingPage.d.ts +1 -1
- package/dist/types/features/lsc-guidelines/components/GuidelineLandingPage.d.ts.map +1 -1
- package/dist/types/features/lsc-guidelines/components/GuidelineLibrary.d.ts +21 -8
- package/dist/types/features/lsc-guidelines/components/GuidelineLibrary.d.ts.map +1 -1
- package/dist/types/features/lsc-guidelines/components/GuidelineLibraryCard.d.ts +9 -2
- package/dist/types/features/lsc-guidelines/components/GuidelineLibraryCard.d.ts.map +1 -1
- package/dist/types/features/lsc-guidelines/components/GuidelineWorkspaceHostProvider.d.ts +8 -0
- package/dist/types/features/lsc-guidelines/components/GuidelineWorkspaceHostProvider.d.ts.map +1 -0
- package/dist/types/features/lsc-guidelines/components/GuidelineWorkspacePage.d.ts +24 -0
- package/dist/types/features/lsc-guidelines/components/GuidelineWorkspacePage.d.ts.map +1 -0
- package/dist/types/features/lsc-guidelines/components/LearningManagementWrapper.d.ts +19 -0
- package/dist/types/features/lsc-guidelines/components/LearningManagementWrapper.d.ts.map +1 -0
- package/dist/types/features/lsc-guidelines/constants.d.ts +47 -0
- package/dist/types/features/lsc-guidelines/constants.d.ts.map +1 -1
- package/dist/types/features/lsc-guidelines/hooks/useClearGuidelineCartOnReload.d.ts +2 -0
- package/dist/types/features/lsc-guidelines/hooks/useClearGuidelineCartOnReload.d.ts.map +1 -0
- package/dist/types/features/lsc-guidelines/hooks/useDebounce.d.ts +2 -0
- package/dist/types/features/lsc-guidelines/hooks/useDebounce.d.ts.map +1 -0
- package/dist/types/features/lsc-guidelines/hooks/useGuidelineCartMemstoreSync.d.ts +15 -0
- package/dist/types/features/lsc-guidelines/hooks/useGuidelineCartMemstoreSync.d.ts.map +1 -0
- package/dist/types/features/lsc-guidelines/hooks/useGuidelineDataCart.d.ts +6 -0
- package/dist/types/features/lsc-guidelines/hooks/useGuidelineDataCart.d.ts.map +1 -0
- package/dist/types/features/lsc-guidelines/hooks/useGuidelineSelection.d.ts.map +1 -1
- package/dist/types/features/lsc-guidelines/hooks/useGuidelineWorkspaceLegacyBridge.d.ts +5 -0
- package/dist/types/features/lsc-guidelines/hooks/useGuidelineWorkspaceLegacyBridge.d.ts.map +1 -0
- package/dist/types/features/lsc-guidelines/hooks/useInstantLearningGuidelineCart.d.ts +191 -0
- package/dist/types/features/lsc-guidelines/hooks/useInstantLearningGuidelineCart.d.ts.map +1 -0
- package/dist/types/features/lsc-guidelines/hooks/useInstantLearningGuidelines.d.ts +179 -0
- package/dist/types/features/lsc-guidelines/hooks/useInstantLearningGuidelines.d.ts.map +1 -0
- package/dist/types/features/lsc-guidelines/hooks/useMemstoreGuidelineCart.d.ts +187 -0
- package/dist/types/features/lsc-guidelines/hooks/useMemstoreGuidelineCart.d.ts.map +1 -0
- package/dist/types/features/lsc-guidelines/hooks/useSavedGuidelines.d.ts +177 -0
- package/dist/types/features/lsc-guidelines/hooks/useSavedGuidelines.d.ts.map +1 -0
- package/dist/types/features/lsc-guidelines/index.d.ts +34 -2
- package/dist/types/features/lsc-guidelines/index.d.ts.map +1 -1
- package/dist/types/features/lsc-guidelines/queryClient.d.ts +3 -0
- package/dist/types/features/lsc-guidelines/queryClient.d.ts.map +1 -0
- package/dist/types/features/lsc-guidelines/services/guideline.api.d.ts +19 -0
- package/dist/types/features/lsc-guidelines/services/guideline.api.d.ts.map +1 -0
- package/dist/types/features/lsc-guidelines/services/guideline.cart.api.d.ts +28 -0
- package/dist/types/features/lsc-guidelines/services/guideline.cart.api.d.ts.map +1 -0
- package/dist/types/features/lsc-guidelines/services/guideline.chat.d.ts +2 -0
- package/dist/types/features/lsc-guidelines/services/guideline.chat.d.ts.map +1 -0
- package/dist/types/features/lsc-guidelines/services/guideline.content.d.ts +3 -0
- package/dist/types/features/lsc-guidelines/services/guideline.content.d.ts.map +1 -0
- package/dist/types/features/lsc-guidelines/services/guideline.runtime.config.d.ts +68 -0
- package/dist/types/features/lsc-guidelines/services/guideline.runtime.config.d.ts.map +1 -0
- package/dist/types/features/lsc-guidelines/services/guideline.session.d.ts +10 -0
- package/dist/types/features/lsc-guidelines/services/guideline.session.d.ts.map +1 -0
- package/dist/types/features/lsc-guidelines/services/instant-learning.api.d.ts +109 -0
- package/dist/types/features/lsc-guidelines/services/instant-learning.api.d.ts.map +1 -0
- package/dist/types/features/lsc-guidelines/services/instant-learning.wishlist.d.ts +8 -0
- package/dist/types/features/lsc-guidelines/services/instant-learning.wishlist.d.ts.map +1 -0
- package/dist/types/features/lsc-guidelines/types/add-context.types.d.ts +38 -0
- package/dist/types/features/lsc-guidelines/types/add-context.types.d.ts.map +1 -0
- package/dist/types/features/lsc-guidelines/types/api.types.d.ts +116 -0
- package/dist/types/features/lsc-guidelines/types/api.types.d.ts.map +1 -0
- package/dist/types/features/lsc-guidelines/types/file-item.d.ts +45 -0
- package/dist/types/features/lsc-guidelines/types/file-item.d.ts.map +1 -0
- package/dist/types/features/lsc-guidelines/types/guideline.api.types.d.ts +11 -0
- package/dist/types/features/lsc-guidelines/types/guideline.api.types.d.ts.map +1 -0
- package/dist/types/features/lsc-guidelines/types/guideline.types.d.ts +41 -0
- package/dist/types/features/lsc-guidelines/types/guideline.types.d.ts.map +1 -0
- package/dist/types/features/lsc-guidelines/types.d.ts +214 -2
- package/dist/types/features/lsc-guidelines/types.d.ts.map +1 -1
- package/dist/types/features/lsc-guidelines/utils/addContextHelpers.d.ts +7 -0
- package/dist/types/features/lsc-guidelines/utils/addContextHelpers.d.ts.map +1 -0
- package/dist/types/features/lsc-guidelines/utils/cn.d.ts +3 -0
- package/dist/types/features/lsc-guidelines/utils/cn.d.ts.map +1 -0
- package/dist/types/features/lsc-guidelines/utils/guidelineFiles.d.ts +17 -0
- package/dist/types/features/lsc-guidelines/utils/guidelineFiles.d.ts.map +1 -0
- package/dist/types/features/lsc-guidelines/utils/guidelineOverlay.d.ts +3 -0
- package/dist/types/features/lsc-guidelines/utils/guidelineOverlay.d.ts.map +1 -0
- package/dist/types/features/lsc-guidelines/utils/guidelineSort.d.ts +3 -0
- package/dist/types/features/lsc-guidelines/utils/guidelineSort.d.ts.map +1 -0
- package/dist/types/features/lsc-guidelines/utils/microfrontend.d.ts +13 -0
- package/dist/types/features/lsc-guidelines/utils/microfrontend.d.ts.map +1 -0
- package/dist/types/features/lsc-guidelines/utils/session.d.ts +4 -0
- package/dist/types/features/lsc-guidelines/utils/session.d.ts.map +1 -0
- package/dist/types/features/lsc-guidelines/utils/url.d.ts +2 -0
- package/dist/types/features/lsc-guidelines/utils/url.d.ts.map +1 -0
- package/dist/types/features/lsc-guidelines/utils.d.ts +10 -1
- package/dist/types/features/lsc-guidelines/utils.d.ts.map +1 -1
- package/dist/types/features/lsc-guidelines/workspace/GuidelineWorkspace.d.ts +23 -0
- package/dist/types/features/lsc-guidelines/workspace/GuidelineWorkspace.d.ts.map +1 -0
- package/dist/types/features/lsc-guidelines/workspace/GuidelineWorkspaceHydrator.d.ts +2 -0
- package/dist/types/features/lsc-guidelines/workspace/GuidelineWorkspaceHydrator.d.ts.map +1 -0
- package/dist/types/features/lsc-guidelines/workspace/GuidelineWorkspaceProvider.d.ts +8 -0
- package/dist/types/features/lsc-guidelines/workspace/GuidelineWorkspaceProvider.d.ts.map +1 -0
- package/dist/types/features/lsc-guidelines/workspace/useGuidelineWorkspace.d.ts +44 -0
- package/dist/types/features/lsc-guidelines/workspace/useGuidelineWorkspace.d.ts.map +1 -0
- package/dist/types/features/lsc-guidelines/workspace/workspace.context.d.ts +9 -0
- package/dist/types/features/lsc-guidelines/workspace/workspace.context.d.ts.map +1 -0
- package/dist/types/features/lsc-guidelines/workspace/workspace.runtime.d.ts +12 -0
- package/dist/types/features/lsc-guidelines/workspace/workspace.runtime.d.ts.map +1 -0
- package/dist/types/features/lsc-guidelines/workspace/workspace.selectors.d.ts +5 -0
- package/dist/types/features/lsc-guidelines/workspace/workspace.selectors.d.ts.map +1 -0
- package/dist/types/features/lsc-guidelines/workspace/workspace.types.d.ts +87 -0
- package/dist/types/features/lsc-guidelines/workspace/workspace.types.d.ts.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +16 -7
- package/dist/cjs/components/AssignReminders/AssignReminderTest.js +0 -2
- package/dist/cjs/components/AssignReminders/AssignReminderTest.js.map +0 -1
- package/dist/cjs/node_modules/@floating-ui/core/dist/floating-ui.core.mjs.js +0 -2
- package/dist/cjs/node_modules/@floating-ui/core/dist/floating-ui.core.mjs.js.map +0 -1
- package/dist/cjs/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs.js +0 -2
- package/dist/cjs/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs.js.map +0 -1
- package/dist/cjs/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs.js +0 -2
- package/dist/cjs/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs.js.map +0 -1
- package/dist/cjs/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs.js +0 -2
- package/dist/cjs/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs.js.map +0 -1
- package/dist/cjs/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs.js +0 -2
- package/dist/cjs/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs.js.map +0 -1
- package/dist/cjs/node_modules/@radix-ui/primitive/dist/index.mjs.js +0 -2
- package/dist/cjs/node_modules/@radix-ui/primitive/dist/index.mjs.js.map +0 -1
- package/dist/cjs/node_modules/@radix-ui/react-arrow/dist/index.mjs.js +0 -2
- package/dist/cjs/node_modules/@radix-ui/react-arrow/dist/index.mjs.js.map +0 -1
- package/dist/cjs/node_modules/@radix-ui/react-compose-refs/dist/index.mjs.js +0 -2
- package/dist/cjs/node_modules/@radix-ui/react-compose-refs/dist/index.mjs.js.map +0 -1
- package/dist/cjs/node_modules/@radix-ui/react-context/dist/index.mjs.js +0 -2
- package/dist/cjs/node_modules/@radix-ui/react-context/dist/index.mjs.js.map +0 -1
- package/dist/cjs/node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs.js +0 -2
- package/dist/cjs/node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs.js.map +0 -1
- package/dist/cjs/node_modules/@radix-ui/react-id/dist/index.mjs.js +0 -2
- package/dist/cjs/node_modules/@radix-ui/react-id/dist/index.mjs.js.map +0 -1
- package/dist/cjs/node_modules/@radix-ui/react-popper/dist/index.mjs.js +0 -2
- package/dist/cjs/node_modules/@radix-ui/react-popper/dist/index.mjs.js.map +0 -1
- package/dist/cjs/node_modules/@radix-ui/react-portal/dist/index.mjs.js +0 -2
- package/dist/cjs/node_modules/@radix-ui/react-portal/dist/index.mjs.js.map +0 -1
- package/dist/cjs/node_modules/@radix-ui/react-presence/dist/index.mjs.js +0 -2
- package/dist/cjs/node_modules/@radix-ui/react-presence/dist/index.mjs.js.map +0 -1
- package/dist/cjs/node_modules/@radix-ui/react-primitive/dist/index.mjs.js +0 -2
- package/dist/cjs/node_modules/@radix-ui/react-primitive/dist/index.mjs.js.map +0 -1
- package/dist/cjs/node_modules/@radix-ui/react-slot/dist/index.mjs.js +0 -2
- package/dist/cjs/node_modules/@radix-ui/react-slot/dist/index.mjs.js.map +0 -1
- package/dist/cjs/node_modules/@radix-ui/react-tooltip/dist/index.mjs.js +0 -2
- package/dist/cjs/node_modules/@radix-ui/react-tooltip/dist/index.mjs.js.map +0 -1
- package/dist/cjs/node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs.js +0 -2
- package/dist/cjs/node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs.js.map +0 -1
- package/dist/cjs/node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs.js +0 -2
- package/dist/cjs/node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs.js.map +0 -1
- package/dist/cjs/node_modules/@radix-ui/react-use-escape-keydown/dist/index.mjs.js +0 -2
- package/dist/cjs/node_modules/@radix-ui/react-use-escape-keydown/dist/index.mjs.js.map +0 -1
- package/dist/cjs/node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs.js +0 -2
- package/dist/cjs/node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs.js.map +0 -1
- package/dist/cjs/node_modules/@radix-ui/react-use-size/dist/index.mjs.js +0 -2
- package/dist/cjs/node_modules/@radix-ui/react-use-size/dist/index.mjs.js.map +0 -1
- package/dist/cjs/node_modules/@radix-ui/react-visually-hidden/dist/index.mjs.js +0 -2
- package/dist/cjs/node_modules/@radix-ui/react-visually-hidden/dist/index.mjs.js.map +0 -1
- package/dist/components/AssignReminders/AssignReminderTest.js +0 -2
- package/dist/components/AssignReminders/AssignReminderTest.js.map +0 -1
- package/dist/node_modules/@floating-ui/core/dist/floating-ui.core.mjs.js +0 -2
- package/dist/node_modules/@floating-ui/core/dist/floating-ui.core.mjs.js.map +0 -1
- package/dist/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs.js +0 -2
- package/dist/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs.js.map +0 -1
- package/dist/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs.js +0 -2
- package/dist/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs.js.map +0 -1
- package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs.js +0 -2
- package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs.js.map +0 -1
- package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs.js +0 -2
- package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs.js.map +0 -1
- package/dist/node_modules/@radix-ui/primitive/dist/index.mjs.js +0 -2
- package/dist/node_modules/@radix-ui/primitive/dist/index.mjs.js.map +0 -1
- package/dist/node_modules/@radix-ui/react-arrow/dist/index.mjs.js +0 -2
- package/dist/node_modules/@radix-ui/react-arrow/dist/index.mjs.js.map +0 -1
- package/dist/node_modules/@radix-ui/react-compose-refs/dist/index.mjs.js +0 -2
- package/dist/node_modules/@radix-ui/react-compose-refs/dist/index.mjs.js.map +0 -1
- package/dist/node_modules/@radix-ui/react-context/dist/index.mjs.js +0 -2
- package/dist/node_modules/@radix-ui/react-context/dist/index.mjs.js.map +0 -1
- package/dist/node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs.js +0 -2
- package/dist/node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs.js.map +0 -1
- package/dist/node_modules/@radix-ui/react-id/dist/index.mjs.js +0 -2
- package/dist/node_modules/@radix-ui/react-id/dist/index.mjs.js.map +0 -1
- package/dist/node_modules/@radix-ui/react-popper/dist/index.mjs.js +0 -2
- package/dist/node_modules/@radix-ui/react-popper/dist/index.mjs.js.map +0 -1
- package/dist/node_modules/@radix-ui/react-portal/dist/index.mjs.js +0 -2
- package/dist/node_modules/@radix-ui/react-portal/dist/index.mjs.js.map +0 -1
- package/dist/node_modules/@radix-ui/react-presence/dist/index.mjs.js +0 -2
- package/dist/node_modules/@radix-ui/react-presence/dist/index.mjs.js.map +0 -1
- package/dist/node_modules/@radix-ui/react-primitive/dist/index.mjs.js +0 -2
- package/dist/node_modules/@radix-ui/react-primitive/dist/index.mjs.js.map +0 -1
- package/dist/node_modules/@radix-ui/react-slot/dist/index.mjs.js +0 -2
- package/dist/node_modules/@radix-ui/react-slot/dist/index.mjs.js.map +0 -1
- package/dist/node_modules/@radix-ui/react-tooltip/dist/index.mjs.js +0 -2
- package/dist/node_modules/@radix-ui/react-tooltip/dist/index.mjs.js.map +0 -1
- package/dist/node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs.js +0 -2
- package/dist/node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs.js.map +0 -1
- package/dist/node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs.js +0 -2
- package/dist/node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs.js.map +0 -1
- package/dist/node_modules/@radix-ui/react-use-escape-keydown/dist/index.mjs.js +0 -2
- package/dist/node_modules/@radix-ui/react-use-escape-keydown/dist/index.mjs.js.map +0 -1
- package/dist/node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs.js +0 -2
- package/dist/node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs.js.map +0 -1
- package/dist/node_modules/@radix-ui/react-use-size/dist/index.mjs.js +0 -2
- package/dist/node_modules/@radix-ui/react-use-size/dist/index.mjs.js.map +0 -1
- package/dist/node_modules/@radix-ui/react-visually-hidden/dist/index.mjs.js +0 -2
- package/dist/node_modules/@radix-ui/react-visually-hidden/dist/index.mjs.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export{AssignReminderLevels}from"./components/AssignReminders/AssignReminderLevels.js";export{AssignReminderWrapper}from"./components/AssignReminders/AssignReminderWrapper.js";export{TreeSidebar}from"./components/ScopeTree/TreeSidebar.js";export{LscGuidelines}from"./features/lsc-guidelines/LscGuidelines.js";export{GuidelineAttachmentIcon}from"./features/lsc-guidelines/components/GuidelineAttachmentIcon.js";export{GuidelineCart}from"./features/lsc-guidelines/components/GuidelineCart.js";export{GuidelineCartHeader}from"./features/lsc-guidelines/components/GuidelineCartHeader.js";export{GuidelineCartItem}from"./features/lsc-guidelines/components/GuidelineCartItem.js";export{GuidelineEmptyState}from"./features/lsc-guidelines/components/GuidelineEmptyState.js";export{GuidelineHeader}from"./features/lsc-guidelines/components/GuidelineHeader.js";export{GuidelineIconButton}from"./features/lsc-guidelines/components/GuidelineIconButton.js";export{GuidelineLandingPage}from"./features/lsc-guidelines/components/GuidelineLandingPage.js";export{GuidelineLibrary}from"./features/lsc-guidelines/components/GuidelineLibrary.js";export{GuidelineLibraryCard}from"./features/lsc-guidelines/components/GuidelineLibraryCard.js";export{GuidelinePopoverCart}from"./features/lsc-guidelines/components/GuidelinePopoverCart.js";export{GuidelineProceedButton}from"./features/lsc-guidelines/components/GuidelineProceedButton.js";export{GuidelineSelectButton}from"./features/lsc-guidelines/components/GuidelineSelectButton.js";export{GuidelineCardMenu,createGuidelineCardMenuItems}from"./features/lsc-guidelines/components/GuidelineCardMenu.js";export{GuidelineConfirmDialog}from"./features/lsc-guidelines/components/GuidelineConfirmDialog.js";export{GuidelineClearCartDialog}from"./features/lsc-guidelines/components/GuidelineClearCartDialog.js";export{GuidelineSavedModal}from"./features/lsc-guidelines/components/GuidelineSavedModal.js";export{useGuidelineFlow}from"./features/lsc-guidelines/hooks/useGuidelineFlow.js";export{useGuidelineSelection}from"./features/lsc-guidelines/hooks/useGuidelineSelection.js";export{DEFAULT_GUIDELINE_ARTIFACT_TEMPLATE,DEFAULT_GUIDELINE_LABELS}from"./features/lsc-guidelines/constants.js";export{createGuidelineId,cx,defaultFormatAddedOnLabel,getGuidelineDescription,mergeGuidelineLabels}from"./features/lsc-guidelines/utils.js";
|
|
1
|
+
export{AssignReminderLevels}from"./components/AssignReminders/AssignReminderLevels.js";export{AssignReminderWrapper}from"./components/AssignReminders/AssignReminderWrapper.js";export{TreeSidebar}from"./components/ScopeTree/TreeSidebar.js";export{default as AIPromptEditor}from"./components/PromptEditor/PromptEditor.js";export{LscGuidelines}from"./features/lsc-guidelines/LscGuidelines.js";export{GuidelineAttachmentIcon}from"./features/lsc-guidelines/components/GuidelineAttachmentIcon.js";export{GuidelineCart}from"./features/lsc-guidelines/components/GuidelineCart.js";export{GuidelineCartHeader}from"./features/lsc-guidelines/components/GuidelineCartHeader.js";export{GuidelineCartItem}from"./features/lsc-guidelines/components/GuidelineCartItem.js";export{GuidelineEmptyState}from"./features/lsc-guidelines/components/GuidelineEmptyState.js";export{GuidelineHeader}from"./features/lsc-guidelines/components/GuidelineHeader.js";export{GuidelineIconButton}from"./features/lsc-guidelines/components/GuidelineIconButton.js";export{GuidelineLandingPage}from"./features/lsc-guidelines/components/GuidelineLandingPage.js";export{GuidelineFilterPanel}from"./features/lsc-guidelines/components/GuidelineFilterPanel.js";export{GuidelineLibrary}from"./features/lsc-guidelines/components/GuidelineLibrary.js";export{GuidelineLibraryCard}from"./features/lsc-guidelines/components/GuidelineLibraryCard.js";export{LearningManagementWrapper}from"./features/lsc-guidelines/components/LearningManagementWrapper.js";export{GuidelinePopoverCart}from"./features/lsc-guidelines/components/GuidelinePopoverCart.js";export{GuidelineProceedButton}from"./features/lsc-guidelines/components/GuidelineProceedButton.js";export{GuidelineSelectButton}from"./features/lsc-guidelines/components/GuidelineSelectButton.js";export{GuidelineCardMenu,createGuidelineCardMenuItems}from"./features/lsc-guidelines/components/GuidelineCardMenu.js";export{GuidelineConfirmDialog}from"./features/lsc-guidelines/components/GuidelineConfirmDialog.js";export{GuidelineCreateForm}from"./features/lsc-guidelines/components/GuidelineCreateForm.js";export{GuidelineClearCartDialog}from"./features/lsc-guidelines/components/GuidelineClearCartDialog.js";export{GuidelineSavedModal}from"./features/lsc-guidelines/components/GuidelineSavedModal.js";export{useGuidelineFlow}from"./features/lsc-guidelines/hooks/useGuidelineFlow.js";export{useGuidelineSelection}from"./features/lsc-guidelines/hooks/useGuidelineSelection.js";export{DEFAULT_GUIDELINE_ARTIFACT_TEMPLATE,DEFAULT_GUIDELINE_LABELS}from"./features/lsc-guidelines/constants.js";export{createGuidelineId,cx,defaultFormatAddedOnLabel,getAppIntegrationId,getGuidelineDate,getGuidelineDescription,getGuidelineDisplayDescription,getGuidelineId,getGuidelineTitle,isInstantLearningGuideline,mergeGuidelineLabels}from"./features/lsc-guidelines/utils.js";export{GuidelineWorkspaceHostProvider}from"./features/lsc-guidelines/components/GuidelineWorkspaceHostProvider.js";export{GuidelineWorkspace}from"./features/lsc-guidelines/workspace/GuidelineWorkspace.js";export{getGuidelineWorkspaceActions,getGuidelineWorkspaceSnapshot}from"./features/lsc-guidelines/workspace/workspace.runtime.js";export{useGuidelineWorkspace,useGuidelineWorkspaceActions,useOptionalGuidelineWorkspace,useOptionalGuidelineWorkspaceActions}from"./features/lsc-guidelines/workspace/useGuidelineWorkspace.js";export{useClearGuidelineCartOnReload}from"./features/lsc-guidelines/hooks/useClearGuidelineCartOnReload.js";export{useGuidelineCartMemstoreSync}from"./features/lsc-guidelines/hooks/useGuidelineCartMemstoreSync.js";export{INSTANT_LEARNING_GUIDELINE_CART_QUERY_KEY,useInstantLearningGuidelineCart}from"./features/lsc-guidelines/hooks/useInstantLearningGuidelineCart.js";export{INSTANT_LEARNING_GUIDELINES_QUERY_KEY,useInstantLearningGuidelines}from"./features/lsc-guidelines/hooks/useInstantLearningGuidelines.js";export{useMemstoreGuidelineCart}from"./features/lsc-guidelines/hooks/useMemstoreGuidelineCart.js";export{SAVED_GUIDELINES_QUERY_KEY,useSavedGuidelines}from"./features/lsc-guidelines/hooks/useSavedGuidelines.js";export{clearGuidelineCartClearPending,clearInstantLearningGuidelineCartPresent,getGuidelineSessionId,markGuidelineCartClearPending,rotateGuidelineSessionId}from"./features/lsc-guidelines/services/guideline.session.js";export{removeInstantLearningGuidelinesFromCart}from"./features/lsc-guidelines/services/instant-learning.api.js";export{closeGuidelineOverlayWithSync}from"./features/lsc-guidelines/utils/guidelineOverlay.js";export{dataCartFileToGuidelineFileItem,getDataCartFilesFromResponse,isGuidelineDataCartFile,mergeGuidelineFiles}from"./features/lsc-guidelines/utils/guidelineFiles.js";export{DATA_CART_QUERY_KEY}from"./features/lsc-guidelines/hooks/useGuidelineDataCart.js";export{syncGuidelineCartWithMemstore}from"./features/lsc-guidelines/services/guideline.cart.api.js";export{guidelineQueryClient}from"./features/lsc-guidelines/queryClient.js";
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import e,{createContext as t,useState as a,useCallback as r,useMemo as s,forwardRef as n,memo as l,useRef as c,useEffect as o,useContext as i}from"react";import{QueryClient as d,QueryClientProvider as p,useQueryClient as u,useMutation as m,useQuery as h}from"@tanstack/react-query";import{jsx as x,jsxs as g,Fragment as b}from"react/jsx-runtime";import{Search as f,X as y,Trash2 as N,ChevronLeft as v,ChevronRight as w,FileText as k,Users as C,Share2 as _,ChevronUp as E,ChevronDown as S,Layers as $,Pencil as M,Plus as R,AlertTriangle as A,ChevronsUpDown as T,CheckCircle as I,XCircle as q,Info as z}from"lucide-react";import{clsx as G}from"../../clsx/dist/clsx.mjs.js";import{twMerge as O}from"../node_modules/tailwind-merge/dist/bundle-mjs.mjs.js";var B=new d({defaultOptions:{queries:{staleTime:3e5,gcTime:6e5,retry:(e,t)=>!(t instanceof Error&&t.message.includes("4"))&&e<3,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1},mutations:{retry:!1}}});function U({children:e}){return x(p,{client:B,children:e})}function F(...e){return O(G(e))}var D=t(null),L={success:x(I,{className:"h-4 w-4 shrink-0 text-appsec-success"}),error:x(q,{className:"h-4 w-4 shrink-0 text-appsec-danger"}),info:x(z,{className:"h-4 w-4 shrink-0 text-appsec-primary"})},P={success:"border-appsec-success/30 bg-appsec-success-light text-appsec-text",error:"border-appsec-danger/30 bg-appsec-danger-light text-appsec-text",info:"border-appsec-primary/30 bg-appsec-primary-light text-appsec-text"};function j({toast:e,onDismiss:t}){const[r,s]=a(!1);return o(()=>{const e=requestAnimationFrame(()=>s(!0));return()=>cancelAnimationFrame(e)},[]),o(()=>{const e=setTimeout(()=>{s(!1),setTimeout(t,200)},4e3);return()=>clearTimeout(e)},[t]),g("div",{className:F("flex items-start gap-2.5 px-3 py-2.5 rounded-appsec border shadow-sm max-w-xs w-full pointer-events-auto","transition-all duration-200",r?"opacity-100 translate-x-0":"opacity-0 translate-x-4",P[e.type]),children:[L[e.type],x("p",{className:"flex-1 text-xs leading-snug",children:e.message}),x("button",{type:"button",onClick:()=>{s(!1),setTimeout(t,200)},className:"shrink-0 p-0.5 rounded hover:bg-black/10 transition-colors",children:x(y,{className:"h-3 w-3 text-appsec-text-secondary"})})]})}function K({children:e}){const[t,s]=a([]),n=r((e,t)=>{const a=Math.random().toString(36).slice(2,9);s(r=>[...r,{id:a,type:e,message:t}])},[]),l=r(e=>{s(t=>t.filter(t=>t.id!==e))},[]);return g(D.Provider,{value:{addToast:n},children:[e,x("div",{className:"fixed top-4 right-4 z-[9999] flex flex-col gap-2 pointer-events-none",children:t.map(e=>x(j,{toast:e,onDismiss:()=>l(e.id)},e.id))})]})}function J(){const e=i(D);if(!e)throw new Error("useToast must be used inside <ToastProvider>");return{success:t=>e.addToast("success",t),error:t=>e.addToast("error",t),info:t=>e.addToast("info",t)}}var W={admin:{bg:"bg-appsec-danger-light",text:"text-appsec-danger"},editor:{bg:"bg-appsec-warning-light",text:"text-appsec-warning"},viewer:{bg:"bg-appsec-success-light",text:"text-appsec-success"}},Q=t(null);function H({children:e,appId:t,mode:n,appsecUrl:l,roleTemplates:c=[],badgeColorMap:o={},onError:i,baseUrl:d,getAuthToken:p}){const[u,m]=a(!1),[h,g]=a(null),b=r(e=>{m(e)},[]),f=r(e=>{g(e),e&&i&&i(e)},[i]),y=r(()=>g(null),[]),N=s(()=>{if(!p)return"";try{const e=p();return JSON.parse(atob(e.split(".")[1])).email||""}catch{return""}},[p]),v=s(()=>{if(!d)throw new Error("Either apiAdapter or baseUrl must be provided");const e=((e,t)=>({request:async(a,r={})=>{const s=t?.(),n=await fetch(`${e}${a}`,{...r,headers:{"Content-Type":"application/json",...s&&{Authorization:`Bearer ${s}`},...r.headers}});if(!n.ok){let e=`Request failed (${n.status})`;try{const t=await n.json();t?.message&&(e=t.message)}catch{}throw new Error(e)}return n.json()}}))(d,p);return(e=>({importConfig:(t,a)=>e.request("/rbac/import-json",{method:"POST",body:JSON.stringify(a)}),getAppId:t=>e.request(`/apps?name=${t}`,{method:"GET"}),getModules:(t,a,r,s="")=>e.request(`/modules?appId=${t}${a?`&page=${a}`:""}${r?`&limit=${r}`:""}${s?`&name=${encodeURIComponent(s)}`:""}`,{method:"GET"}),getRoles:(t,a,r,s="")=>e.request(`/roles?appId=${t}${a?`&page=${a}`:""}${r?`&limit=${r}`:""}${s?`&name=${encodeURIComponent(s)}`:""}`,{method:"GET"}),getPermission:(t,a,r,s="")=>e.request(`/permissions?appId=${t}${a?`&page=${a}`:""}${r?`&limit=${r}`:""}${s?`&name=${encodeURIComponent(s)}`:""}`,{method:"GET"}),getAcls:(t,a=1,r=50,s,n=!0)=>e.request(`/acl?application=${t}${n?`&page=${a}&limit=${r}`:"&pagination=false"}${s?`&resourceId=${s}`:""}`,{method:"GET"}),getResourceForModuleId:(t,a=1,r=30)=>e.request(`/resource?module=${t}&page=${a}&limit=${r}`,{method:"GET"}),getRoleModuleMapping:t=>e.request(`/modules/mapping?appId=${t}`,{method:"GET"}),createAcl:t=>e.request("/acl",{method:"POST",body:JSON.stringify(t)}),deleteAcl:t=>e.request(`/acl?_id=${t}`,{method:"DELETE"}),bulkUpdateAcl:t=>e.request("/acl/bulkUpdate",{method:"PUT",body:JSON.stringify(t)}),updateModule:(t,a)=>e.request(`/modules/update/${t}`,{method:"PUT",body:JSON.stringify(a)}),createModule:t=>e.request("/modules/create",{method:"POST",body:JSON.stringify(t)}),deleteModule:t=>e.request(`/modules/${t}`,{method:"DELETE"}),createPermission:t=>e.request("/permissions",{method:"POST",body:JSON.stringify(t)}),updatePermission:(t,a)=>e.request(`/permissions/${t}`,{method:"PUT",body:JSON.stringify(a)}),deletePermission:t=>e.request(`/permissions?id=${t}`,{method:"DELETE"}),createRole:t=>e.request("/roles",{method:"POST",body:JSON.stringify(t)}),updateRole:(t,a)=>e.request(`/roles/${t}`,{method:"PUT",body:JSON.stringify(a)}),deleteRole:t=>e.request(`/roles/${t}`,{method:"DELETE"}),updateModuleMapping:t=>e.request("/modules/updateMapping",{method:"PUT",body:JSON.stringify(t)}),getGroups:(t,a=1,r=30)=>e.request(`/groups?appId=${t}&page=${a}&limit=${r}`,{method:"GET"}),updateGroup:(t,a)=>e.request(`/groups/${t}`,{method:"PUT",body:JSON.stringify(a)}),deleteGroup:t=>e.request(`/groups/${t}`,{method:"DELETE"}),createGroup:t=>e.request("/groups",{method:"POST",body:JSON.stringify(t)}),searchUsers:t=>e.request(`/users/search?q=${encodeURIComponent(t)}`,{method:"GET"}),getResourceGroups:(t,a,r=1,s=30)=>e.request(`/resource-group?application=${t}&module=${a}&page=${r}&limit=${s}`,{method:"GET"}),createResourceGroup:t=>e.request("/resource-group",{method:"POST",body:JSON.stringify(t)}),updateResourceGroup:(t,a)=>e.request(`/resource-group/${t}`,{method:"PUT",body:JSON.stringify(a)}),deleteResourceGroup:t=>e.request(`/resource-group/${t}`,{method:"DELETE"}),shareResourceGroup:t=>e.request("/acl/resource-group",{method:"POST",body:JSON.stringify(t)}),sendMail:t=>e.request("/mail",{method:"POST",body:JSON.stringify(t)}),deleteAclsByResourceGroup:t=>e.request("/acl/resource-group",{method:"DELETE",body:JSON.stringify(t)})}))(e)},[d,p]),w={...W,...o},k={adapter:v,appId:t,baseUrl:d,appsecUrl:l,mode:n,roleTemplates:c,badgeColorMap:w,isLoading:u,setLoading:b,lastError:h,setError:f,clearError:y,currentUserEmail:N};return x(U,{children:x(Q.Provider,{value:k,children:x(K,{children:e})})})}function V(){const e=i(Q);if(!e)throw new Error("useAppsec must be used inside <AppsecProvider>.");return e}var X={primary:"bg-appsec-primary text-white hover:opacity-90 disabled:opacity-50",secondary:"border border-appsec-border bg-appsec-bg text-appsec-text hover:bg-appsec-surface disabled:opacity-50",danger:"bg-appsec-danger text-white hover:opacity-90 disabled:opacity-50",ghost:"bg-transparent text-appsec-text-secondary hover:bg-appsec-surface disabled:opacity-50",link:"bg-transparent text-appsec-primary underline-offset-2 hover:underline p-0 h-auto disabled:opacity-50"},Y={sm:"h-8 px-3 text-xs gap-1.5",md:"h-9 px-4 text-sm gap-2",lg:"h-10 px-5 text-sm gap-2"},Z=n(({variant:e="primary",size:t="md",loading:a=!1,iconLeft:r,iconRight:s,children:n,className:l,disabled:c,...o},i)=>g("button",{ref:i,disabled:c||a,className:F("inline-flex items-center justify-center font-medium rounded-appsec transition-all","select-none cursor-pointer disabled:cursor-not-allowed",X[e],"link"!==e&&Y[t],l),...o,children:[a?x("span",{className:"inline-block h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent"}):r,n&&x("span",{children:n}),!a&&s]}));Z.displayName="Button";var ee=n(({label:e,error:t,hint:a,iconLeft:r,iconRight:s,wrapperClassName:n,className:l,id:c,lscId:o,lscLabel:i,lscDescription:d,lscWhenToApply:p,lscWhenNotToApply:u,...m},h)=>{const b=c??(e?e.toLowerCase().replace(/\s+/g,"-"):void 0);return g("div",{className:F("flex flex-col gap-1",n),children:[e&&x("label",{htmlFor:b,className:"text-sm font-medium text-appsec-text",children:e}),g("div",{className:"relative flex items-center",children:[r&&x("span",{className:"absolute left-3 text-appsec-text-tertiary flex items-center pointer-events-none",children:r}),x("input",{ref:h,id:b,"data-lsc-ui-id":o,"data-lsc-ui-type":o?"input":void 0,"data-lsc-ui-label":i,"data-lsc-ui-description":d,"data-lsc-ui-when-to-apply":p,"data-lsc-ui-when-not-to-apply":u,"data-lsc-ui-interact-behaviour-control":o?"mode":void 0,className:F("w-full h-9 rounded-appsec border border-appsec-border bg-appsec-bg px-3 py-2","text-sm text-appsec-text placeholder:text-appsec-text-tertiary","transition-colors outline-none","focus:border-appsec-primary focus:ring-2 focus:ring-appsec-primary-light","disabled:bg-appsec-surface disabled:cursor-not-allowed disabled:opacity-60",t&&"border-appsec-danger focus:border-appsec-danger focus:ring-appsec-danger-light",r&&"pl-9",s&&"pr-9",l),...m}),s&&x("span",{className:"absolute right-3 text-appsec-text-tertiary flex items-center pointer-events-none",children:s})]}),t&&x("p",{className:"text-xs text-appsec-danger",children:t}),!t&&a&&x("p",{className:"text-xs text-appsec-text-secondary",children:a})]})});ee.displayName="Input";var te={xs:"h-6 w-6 text-[10px]",sm:"h-8 w-8 text-xs",md:"h-9 w-9 text-sm",lg:"h-11 w-11 text-base"},ae=["bg-blue-500","bg-purple-500","bg-green-600","bg-orange-500","bg-pink-500","bg-teal-500","bg-indigo-500","bg-rose-500"];function re(e){let t=0;for(let a=0;a<e.length;a++)t=e.charCodeAt(a)+((t<<5)-t);return ae[Math.abs(t)%ae.length]}function se(e){const t=e.trim().split(/\s+/);return 1===t.length?t[0].slice(0,2).toUpperCase():(t[0][0]+t[t.length-1][0]).toUpperCase()}function ne({name:e,src:t,size:a="md",className:r}){return t?x("img",{src:t,alt:e,className:F("rounded-full object-cover shrink-0",te[a],r)}):x("span",{className:F("inline-flex items-center justify-center rounded-full text-white font-semibold shrink-0",re(e),te[a],r),"aria-label":e,children:se(e)})}var le={admin:{bg:"bg-appsec-danger-light",text:"text-appsec-danger"},editor:{bg:"bg-appsec-warning-light",text:"text-appsec-warning"},viewer:{bg:"bg-appsec-success-light",text:"text-appsec-success"},neutral:{bg:"bg-appsec-surface-alt",text:"text-appsec-text-secondary"},primary:{bg:"bg-appsec-primary-light",text:"text-appsec-primary"}};function ce({label:e,variant:t="neutral",bgClass:a,textClass:r,className:s}){const{bg:n,text:l}=le[t];return x("span",{className:F("inline-flex items-center px-2 py-0.5 rounded-full text-xs font-medium",a??n,r??l,s),children:e})}function oe({label:e,onRemove:t,icon:a,disabled:r=!1,className:s}){return g("span",{className:F("inline-flex items-center gap-1.5 px-2.5 py-1 rounded-full","bg-appsec-surface-alt border border-appsec-border","text-xs font-medium text-appsec-text",s),children:[a&&x("span",{className:"text-appsec-text-secondary",children:a}),x("span",{children:e}),t&&!r&&x("button",{type:"button",onClick:t,className:"text-appsec-text-tertiary hover:text-appsec-danger transition-colors ml-0.5","aria-label":`Remove ${e}`,children:x(y,{className:"h-3 w-3"})})]})}var ie={sm:"max-w-sm",md:"max-w-md",lg:"max-w-lg",xl:"max-w-2xl"};function de({open:e,onClose:t,title:a,description:r,size:s="md",children:n,footer:l,className:i}){const d=c(null);return o(()=>{if(!e)return;const a=e=>{"Escape"===e.key&&t()};return document.addEventListener("keydown",a),()=>document.removeEventListener("keydown",a)},[e,t]),e?g("div",{ref:d,role:"dialog","aria-modal":"true","aria-labelledby":a?"modal-title":void 0,className:"fixed inset-0 z-50 flex items-center justify-center p-4",children:[x("div",{className:"absolute inset-0 bg-black/40 backdrop-blur-sm",onClick:t,"aria-hidden":"true"}),g("div",{className:F("relative z-10 w-full bg-appsec-bg rounded-appsec shadow-xl","border border-appsec-border","flex flex-col max-h-[90vh]",ie[s],i),children:[(a||r)&&g("div",{className:"flex items-start justify-between gap-4 px-6 py-4 border-b border-appsec-border",children:[g("div",{children:[a&&x("h2",{id:"modal-title",className:"text-base font-semibold text-appsec-text",children:a}),r&&x("p",{className:"mt-1 text-sm text-appsec-text-secondary",children:r})]}),x("button",{type:"button",onClick:t,className:"text-appsec-text-tertiary hover:text-appsec-text transition-colors shrink-0","aria-label":"Close",children:x(y,{className:"h-5 w-5"})})]}),x("div",{className:"overflow-y-auto px-6 py-4 flex-1",children:n}),l&&x("div",{className:"flex items-center justify-end gap-2 px-6 py-4 border-t border-appsec-border",children:l})]})]}):null}var pe="Are you sure?",ue="Confirm",me="Cancel";function he({open:e,onClose:t,onConfirm:a,title:r=pe,message:s,confirmLabel:n=ue,cancelLabel:l=me,variant:c="danger",loading:o=!1}){return x(de,{open:e,onClose:t,size:"sm",footer:g(b,{children:[x(Z,{variant:"secondary",size:"sm",onClick:t,disabled:o,children:l}),x(Z,{variant:c,size:"sm",onClick:a,loading:o,children:n})]}),children:g("div",{className:"flex items-start gap-4",children:["danger"===c&&x("span",{className:"shrink-0 mt-0.5 text-appsec-danger",children:x(A,{className:"h-5 w-5"})}),g("div",{children:[x("h3",{className:"text-sm font-semibold text-appsec-text mb-1",children:r}),x("p",{className:"text-sm text-appsec-text-secondary",children:s})]})]})})}var xe=n(({value:e,onChange:t,onClear:a,placeholder:r="Search…",className:s,...n},l)=>g("div",{className:F("relative flex items-center",s),children:[x(f,{className:"absolute left-3 h-4 w-4 text-appsec-text-tertiary pointer-events-none"}),x("input",{ref:l,type:"search",value:e,onChange:e=>t(e.target.value),placeholder:r,className:F("h-9 w-full rounded-appsec border border-appsec-border bg-appsec-bg","pl-9 pr-8 py-2 text-sm text-appsec-text placeholder:text-appsec-text-tertiary","transition-colors outline-none","focus:border-appsec-primary focus:ring-2 focus:ring-appsec-primary-light","[&::-webkit-search-cancel-button]:hidden"),...n}),e&&x("button",{type:"button",onClick:()=>{t(""),a?.()},className:"absolute right-2.5 text-appsec-text-tertiary hover:text-appsec-text transition-colors","aria-label":"Clear search",children:x(y,{className:"h-4 w-4"})})]}));function ge(e,t){const a=function(e){const t=e.trim();if(!t)return()=>!0;try{const e=new RegExp(t,"i");return t=>e.test(String(t??""))}catch{const e=t.toLowerCase();return t=>String(t??"").toLowerCase().includes(e)}}(e);return t.some(a)}function be(e,t=300){const[r,s]=a(e);return o(()=>{const a=setTimeout(()=>s(e),t);return()=>clearTimeout(a)},[e,t]),r}xe.displayName="SearchBar";var fe=e=>["rbac","app",e],ye=e=>["rbac","roles",e],Ne=(e,t)=>["rbac","acls",e,t],ve=e=>["rbac","roleModuleMapping",e],we=e=>["rbac","groups",e],ke=e=>["rbac","resources",e],Ce=(e,t)=>["rbac","resourceGroups",e,t],_e=e=>["rbac","users",e];function Ee(e){const{adapter:t}=V();return h({queryKey:fe(e),queryFn:()=>t.getAppId(e),enabled:!!e,staleTime:3e5,refetchOnWindowFocus:!1,refetchOnMount:!1})}function Se(e){const{adapter:t}=V();return h({queryKey:[...ye(e),"all"],queryFn:async()=>{const a=await t.getRoles(e,1,100),r=a?.pagination?.totalPages??1;if(r<=1)return a;const s=Array.from({length:r-1},(e,t)=>t+2),n=[];for(let a=0;a<s.length;a+=10){const r=s.slice(a,a+10),l=await Promise.all(r.map(a=>t.getRoles(e,a,100)));n.push(...l)}return{...a,data:[...a.data??[],...n.flatMap(e=>e.data??[])]}},enabled:!!e,staleTime:3e5,refetchOnWindowFocus:!1,refetchOnMount:!1})}function $e(e){const{adapter:t}=V();return h({queryKey:ve(e),queryFn:()=>t.getRoleModuleMapping(e),enabled:!!e,staleTime:3e5,refetchOnWindowFocus:!1,refetchOnMount:!1})}function Me(e){const{adapter:t}=V();return h({queryKey:we(e),queryFn:()=>t.getGroups(e),enabled:!!e,staleTime:3e5,refetchOnWindowFocus:!1,refetchOnMount:!1})}function Re(e){const{appsecUrl:t}=V();return h({queryKey:_e(e),queryFn:async()=>{const a=await fetch(`${t}/api/user/get-by-query-v2?search=${encodeURIComponent(e)}`,{method:"GET",credentials:"include"}),r=await a.json();return r?.success?(r.data||[]).map(e=>({email:e.email,displayName:e.displayName??e.firstname?`${e.firstname} ${e.lastname}`.trim():e.email})):[]},enabled:e.length>2,staleTime:6e5})}function Ae(){const{adapter:e}=V(),t=u(),a=J();return m({mutationFn:t=>e.createAcl(t),onSuccess:()=>{t.invalidateQueries({queryKey:["rbac","acls"]})},onError:e=>{a.error(e.message||"Failed to grant access.")}})}function Te(e,t,a=20,r=!1){const{adapter:s}=V();return h({queryKey:[...ke(e),"paginated",t,a],queryFn:()=>s.getResourceForModuleId(e,t,a),enabled:!!e&&!r,staleTime:3e5,refetchOnWindowFocus:!1,refetchOnMount:!1,placeholderData:e=>e})}var Ie=(e,t=0)=>Number(e?.totalItems??e?.total??t),qe=(e,t,a)=>Number(e?.totalPages??Math.ceil(t/a)??1);l(function({open:e,onClose:t,resource:r,roles:n,groups:l,onShare:i,onSearchUsers:d,roleModuleMapping:p}){const[u,m]=a("user"),[h,f]=a([]),[y,N]=a(""),[v,w]=a([]),[k,C]=a(!1),[_,E]=a(!1),S=c(null),$=c(null),[M,R]=a(""),[A,T]=a(""),[I,q]=a(!1),[z,G]=a(""),O=c(!1),[B,U]=a(!1),[D,L]=a(!1),P=s(()=>n.filter(e=>p.some(t=>t.roleId?._id===e._id&&t.moduleId?._id===r.module)),[n,p,r.module]);o(()=>{e&&(m("user"),f([]),N(""),w([]),C(!1),R(""),T(""),G(""),q(!1),O.current=!1,U(!1),L(!1))},[e]),o(()=>{if(y.trim().length<2)return w([]),void C(!1);const e=setTimeout(async()=>{E(!0);try{const e=await d(y.trim());w(e.filter(e=>!h.some(t=>t.email===e.email))),C(!0)}catch{w([])}finally{E(!1)}},300);return()=>clearTimeout(e)},[y,h,d]),o(()=>{if(!k)return;const e=e=>{$.current&&!$.current.contains(e.target)&&C(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[k]);const j=e=>{f(t=>[...t,e]),N(""),w([]),C(!1),S.current?.focus()};return x(de,{open:e,onClose:t,title:`Share — ${r.name}`,description:"Grant access to this document.",size:"sm",footer:g(b,{children:[x(Z,{variant:"secondary",size:"sm",onClick:t,disabled:I||B,children:"Cancel"}),x(Z,{size:"sm",onClick:e=>{e.preventDefault(),e.stopPropagation(),(async()=>{if("user"!==u||0!==h.length)if("group"!==u||M)if(A){O.current=!0,U(!0),q(!0),G("");try{await i(h.map(e=>e.email),A,"group"===u?M:void 0),t()}catch(e){G(e instanceof Error?e.message:"Share failed.")}finally{q(!1),O.current=!1,U(!1),L(!1)}}else G("Select a role.");else G("Select a group.");else G("Add at least one email.")})()},loading:I,disabled:I||B||D,children:"Share"})]}),children:g("div",{className:"space-y-4",children:[x("div",{className:"flex gap-1 p-1 rounded-appsec bg-appsec-surface border border-appsec-border",children:["user","group"].map(e=>x("button",{type:"button",onClick:()=>{m(e),G("")},className:F("flex-1 py-1.5 text-xs font-medium rounded transition-colors capitalize",u===e?"bg-appsec-bg text-appsec-text shadow-sm border border-appsec-border":"text-appsec-text-secondary hover:text-appsec-text"),children:"user"===e?"By Email":"By Group"},e))}),g("div","user"===u?{className:"flex flex-col gap-1",children:[x("label",{className:"text-sm font-medium text-appsec-text",children:"Add people"}),g("div",{ref:$,className:"relative",children:[g("div",{className:F("flex flex-wrap gap-1.5 p-2 min-h-10 rounded-appsec border bg-appsec-bg cursor-text transition-colors",k||document.activeElement===S.current?"border-appsec-primary":"border-appsec-border"),onClick:()=>S.current?.focus(),children:[h.map(e=>x(oe,{label:e.displayName!==e.email?e.displayName:e.email,onRemove:()=>{return t=e.email,void f(e=>e.filter(e=>e.email!==t));var t}},e.email)),x("input",{ref:S,type:"text",value:y,onChange:e=>N(e.target.value),onKeyDown:e=>{"Enter"!==e.key&&","!==e.key||!y.trim()||(e.preventDefault(),v.length>0?j(v[0]):(()=>{const e=y.trim().toLowerCase();e&&!h.some(t=>t.email===e)&&(f(t=>[...t,{email:e,displayName:e}]),N(""),w([]),C(!1))})()),"Backspace"===e.key&&!y&&h.length>0&&f(e=>e.slice(0,-1)),"Escape"===e.key&&C(!1)},onFocus:()=>y.trim().length>=2&&v.length>0&&C(!0),placeholder:0===h.length?"Search by name or email…":"",className:"flex-1 min-w-32 bg-transparent outline-none text-sm text-appsec-text placeholder:text-appsec-text-tertiary"}),_&&x("span",{className:"self-center ml-1",children:g("svg",{className:"animate-spin h-3.5 w-3.5 text-appsec-text-secondary",fill:"none",viewBox:"0 0 24 24",children:[x("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),x("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8v8H4z"})]})})]}),k&&v.length>0&&x("div",{className:"absolute z-50 mt-1 w-full rounded-appsec border border-appsec-border bg-appsec-bg shadow-lg overflow-hidden",children:v.map(e=>g("button",{type:"button",onMouseDown:t=>{t.preventDefault(),j(e)},className:"flex items-center gap-3 w-full px-3 py-2.5 text-left hover:bg-appsec-surface transition-colors",children:[x(ne,{name:e.displayName,size:"sm"}),g("div",{className:"flex flex-col min-w-0",children:[x("span",{className:"text-sm font-medium text-appsec-text truncate",children:e.displayName}),x("span",{className:"text-xs text-appsec-text-secondary truncate",children:e.email})]})]},e.email))})]}),x("p",{className:"text-xs text-appsec-text-tertiary",children:"Press Enter or comma to add a raw email address."})]}:{className:"flex flex-col gap-1",children:[x("label",{className:"text-sm font-medium text-appsec-text",children:"Group"}),g("select",{value:M,onChange:e=>R(e.target.value),className:"h-9 text-sm rounded-appsec border border-appsec-border bg-appsec-bg px-3 pr-8 appearance-none outline-none focus:border-appsec-primary text-appsec-text",children:[x("option",{value:"",children:"Select group…"}),l.map(e=>g("option",{value:e._id,children:[e.name,e.description?` — ${e.description}`:""]},e._id))]})]}),g("div",{className:"flex flex-col gap-1",children:[x("label",{className:"text-sm font-medium text-appsec-text",children:"Role"}),g("select",{value:A,onChange:e=>T(e.target.value),className:"h-9 text-sm rounded-appsec border border-appsec-border bg-appsec-bg px-3 pr-8 appearance-none outline-none focus:border-appsec-primary text-appsec-text",children:[x("option",{value:"",children:"Select role…"}),P.map(e=>x("option",{value:e._id,children:e.name},e._id))]})]}),z&&x("p",{className:"text-xs text-appsec-danger",children:z})]})})});var ze=["all","user","group"],Ge=l(function({entries:e,roles:t,users:n,groups:l,onRemove:c,onBulkRoleChange:i,roleModuleMapping:d,module:p}){const u=J(),[m,h]=a(new Set),[b,f]=a(""),[y,k]=a(null),[C,_]=a(!1),[E,S]=a(null),[$,M]=a(0),[R,A]=a(""),T=be(R.trim(),300),[I,q]=a(""),[z,G]=a("all"),O=s(()=>t.filter(e=>d.some(t=>t.roleId?._id===e._id&&t.moduleId?._id===p._id)),[t,d,p._id]),B=e=>!!e.groupId,U=e=>l.find(t=>t._id===e),D=s(()=>e.map(e=>({...e,id:e.id||e._id})),[e]),L=s(()=>[...new Set(D.map(e=>e.role?.name).filter(Boolean))].sort(),[D]),P=s(()=>{let e=D;return"all"!==z&&(e=e.filter(e=>"group"===z?B(e):!B(e))),I&&(e=e.filter(e=>e.role?.name===I)),T&&(e=e.filter(e=>{if(B(e)){const t=U(e.groupId);return ge(T,[t?.name,t?.description,"group",e.role?.name,e.grantedBy?decodeURIComponent(e.grantedBy):"",e.grantedAt,e.resourceId])}return ge(T,[e.user_email,"user",e.role?.name,e.grantedBy?decodeURIComponent(e.grantedBy):"",e.grantedAt,e.resourceId])})),e},[D,z,I,T]),j=Math.max(1,Math.ceil(P.length/10)),K=s(()=>P.slice(10*$,10*($+1)),[P,$]);o(()=>{M(0)},[R,I,z,p._id]);const W=s(()=>K.length>0&&K.every(e=>m.has(e.id)),[K,m]),Q=r(()=>h(e=>{const t=new Set(e);return W?K.forEach(e=>t.delete(e.id)):K.forEach(e=>t.add(e.id)),t}),[W,K]);return 0===D.length?x("p",{className:"text-xs text-appsec-text-tertiary py-3 text-center",children:"No one has access yet. Use Share to grant access."}):g("div",{className:"flex flex-col gap-2",children:[g("div",{className:"flex items-center gap-2 flex-wrap",children:[x(xe,{value:R,onChange:A,placeholder:"Search by email or group name…",className:"flex-1 min-w-40"}),g("select",{value:I,onChange:e=>q(e.target.value),className:"h-8 text-xs rounded-appsec border border-appsec-border bg-appsec-bg px-2 pr-6 appearance-none outline-none focus:border-appsec-primary text-appsec-text",children:[x("option",{value:"",children:"All Roles"}),L.map(e=>x("option",{value:e,children:e},e))]}),x("div",{className:"flex gap-0.5 p-0.5 rounded-appsec bg-appsec-surface border border-appsec-border",children:ze.map(e=>x("button",{type:"button",onClick:()=>G(e),className:F("px-2.5 py-1 text-[11px] font-medium rounded capitalize transition-colors",z===e?"bg-appsec-bg text-appsec-text shadow-sm border border-appsec-border":"text-appsec-text-secondary hover:text-appsec-text"),children:e},e))})]}),m.size>0&&g("div",{className:"flex items-center gap-2 px-3 py-2 rounded-appsec bg-appsec-primary-light border border-appsec-primary/30",children:[g("span",{className:"text-xs font-semibold text-appsec-primary",children:[m.size," selected"]}),g("select",{value:b,onChange:e=>f(e.target.value),className:"h-7 text-xs rounded-appsec border px-2",children:[x("option",{value:"",children:"Change role…"}),O.map(e=>x("option",{value:e._id,children:e.name},e._id))]}),x(Z,{size:"sm",variant:"secondary",disabled:!b||C,onClick:async()=>{if(b&&0!==m.size){_(!0);try{await i([...m],b),u.success(`Role updated for ${m.size} user${1!==m.size?"s":""}.`),h(new Set),f("")}catch(e){u.error(e instanceof Error?e.message:"Failed to update roles.")}finally{_(!1)}}},children:"Apply"}),x("button",{onClick:()=>h(new Set),className:"text-xs ml-auto",children:"✕ Clear"})]}),g("div",{className:"flex flex-col divide-y border rounded-appsec overflow-x-auto",children:[g("div",{className:"flex items-center gap-3 px-3 py-2 bg-appsec-surface",children:[x("input",{type:"checkbox",checked:W,onChange:Q,className:"shrink-0"}),x("span",{className:"min-w-0 flex-1 text-xs font-semibold",children:"Subject"}),x("span",{className:"w-14 shrink-0 text-xs font-semibold",children:"Type"}),x("span",{className:"w-36 shrink-0 text-xs font-semibold",children:"Role"}),x("span",{className:"w-28 shrink-0 text-xs font-semibold",children:"Granted"}),x("span",{className:"w-36 shrink-0 text-xs font-semibold",children:"Granted By"}),x("span",{className:"w-8 shrink-0"})]}),0===P.length?x("p",{className:"text-xs text-appsec-text-tertiary py-4 text-center",children:"No results match your filters."}):K.map(e=>{const t=m.has(e.id),a=(r=e.user_email,n.find(e=>e.email===r));var r;const s=U(e.groupId),l=B(e),c=l?s?.name||"Unknown Group":e.user_email,o=l?`${s?.users?.length||0} members`:e.user_email;return g("div",{className:F("flex min-w-0 items-center gap-3 px-3 py-2",t&&"bg-appsec-primary-light"),children:[x("input",{type:"checkbox",checked:t,onChange:()=>{return t=e.id,h(e=>{const a=new Set(e);return a.has(t)?a.delete(t):a.add(t),a});var t},className:"shrink-0"}),g("div",{className:"flex min-w-0 flex-1 items-center gap-2",children:[x(ne,{name:c,src:a?.avatarUrl,size:"xs"}),g("div",{className:"min-w-0",children:[x("p",{className:"truncate text-xs font-medium",title:c,children:c}),x("p",{className:"truncate text-[10px] text-gray-500",title:o,children:o})]})]}),x("div",{className:"w-14 shrink-0",children:x(ce,{label:l?"Group":"User",variant:"neutral"})}),x("div",{className:"w-36 min-w-0 shrink-0",children:x(ce,{label:e.role?.name||"—",variant:"neutral",className:"max-w-full whitespace-normal break-words rounded-xl px-3 py-2 text-left leading-snug"})}),x("div",{className:"w-28 shrink-0 text-[10px] text-gray-500",children:new Date(e.grantedAt).toLocaleDateString()}),x("div",{className:"w-36 shrink-0 truncate text-[10px] text-appsec-primary",children:e.grantedBy?decodeURIComponent(e.grantedBy):"—"}),x("button",{disabled:y===e.id,onClick:()=>S(e.id),className:"w-8 shrink-0",children:x(N,{className:"h-3.5 w-3.5"})})]},e.id)})]}),j>1&&g("div",{className:"flex items-center justify-between px-1",children:[g("span",{className:"text-[11px] text-appsec-text-tertiary",children:[10*$+1,"–",Math.min(10*($+1),P.length)," of ",P.length]}),g("div",{className:"flex items-center gap-1",children:[x("button",{type:"button",onClick:()=>M(e=>Math.max(0,e-1)),disabled:0===$,className:"p-1 rounded-appsec text-appsec-text-secondary hover:text-appsec-text disabled:opacity-30 disabled:cursor-default transition-colors",children:x(v,{className:"h-3.5 w-3.5"})}),g("span",{className:"text-[11px] text-appsec-text-secondary px-1",children:[$+1," / ",j]}),x("button",{type:"button",onClick:()=>M(e=>Math.min(j-1,e+1)),disabled:$>=j-1,className:"p-1 rounded-appsec text-appsec-text-secondary hover:text-appsec-text disabled:opacity-30 disabled:cursor-default transition-colors",children:x(w,{className:"h-3.5 w-3.5"})})]})]}),x(he,{open:!!E,onClose:()=>S(null),onConfirm:()=>E&&(async e=>{k(e);try{await c(e)}catch(e){u.error(e instanceof Error?e.message:"Failed to remove access.")}finally{k(null),S(null)}})(E),title:"Remove access",message:"Remove this subject's access?",confirmLabel:"Remove",variant:"danger",loading:null!==y})]})}),Oe=l(function({resource:e,roles:t,users:r,groups:n,aclEntries:l,onShare:i,onRemoveAccess:d,onBulkRoleChange:p,roleModuleMapping:u,module:m,mfApi:h}){const b=c(!1);o(()=>{h&&h.subscribe("MODE_UI_INTERACTION_TO_PERFORM",t=>{console.log("Event received",t),"input"===t.action&&t.elementId===`expand-${e.name}`&&(console.log("Clicking expand",e.name),y(!0))})},[h]);const[f,y]=a(!1),N=s(()=>l.filter(t=>t.resourceId===e._id),[l,e._id]);return g("div",{className:"border border-appsec-border rounded-appsec overflow-hidden",children:[g("div",{className:"flex items-center gap-3 px-4 py-3 bg-appsec-bg hover:bg-appsec-surface transition-colors",children:[x(k,{className:"h-4 w-4 text-appsec-text-tertiary shrink-0"}),x("span",{className:"text-sm text-appsec-text flex-1 truncate",children:e.name}),g("div",{className:"flex items-center gap-1 text-xs text-appsec-text-secondary shrink-0",children:[x(C,{className:"h-3.5 w-3.5"}),x("span",{children:N.length})]}),x(Z,{id:`share-${e.name}`,"data-lsc-ui-type":"button","data-lsc-ui-label":`share-${e.name}`,"data-lsc-description":`Share ${e.name}`,"data-lsc-when-to-apply":`when user request to Share the ${e.name}`,size:"sm",variant:"secondary",iconLeft:x(_,{className:"h-3.5 w-3.5"}),onClick:()=>i(e),className:"shrink-0",children:"Share"},`share-${e._id}`),x("button",{id:`expand-${e.name}`,"data-lsc-ui-type":"button","data-lsc-ui-label":`expand-${e.name}`,"data-lsc-description":`Expand ${e.name}`,"data-lsc-when-to-apply":`when user request to click or open or expand the ${e.name}`,type:"button","aria-label":f?"Collapse":"Show access list",onClick:e=>{e.stopPropagation(),b.current||(b.current=!0,y(e=>!e),setTimeout(()=>{b.current=!1},0))},className:F("p-1.5 rounded-appsec text-appsec-text-tertiary hover:text-appsec-text transition-colors",0===N.length&&"opacity-30 cursor-default pointer-events-none"),children:x(f?E:S,{className:"h-4 w-4"})},`expand-${e._id}`)]}),f&&x("div",{className:"border-t border-appsec-border bg-appsec-surface px-4 py-3",children:x(Ge,{entries:N,roles:t,users:r,groups:n,onRemove:d,onBulkRoleChange:p,roleModuleMapping:u,module:m})})]})});function Be({open:e,onClose:t,moduleId:r,existing:n,onSave:l}){const[c,i]=a({name:"",description:"",resources:[]}),[d,p]=a(!1),[u,m]=a(""),[h,f]=a(""),y=be(h.trim(),300),[N,k]=a(1),C=Te(r,N,10,!e),_=C.data?.data||[],E=C.data?.pagination,S=Ie(E),$=Math.max(1,qe(E,S,10)),M=s(()=>y?_.filter(e=>ge(y,[e.name,e.description,e._id])):_,[_,y]);o(()=>{k(1)},[h]),o(()=>{e&&(i({name:n?.name??"",description:n?.description??"",resources:(n?.resources??[]).map(e=>"string"==typeof e?e:String(e._id??e))}),m(""),f(""),k(1))},[e,n]);return x(de,{open:e,onClose:t,title:n?"Edit resource group":"Create resource group",size:"sm",footer:g(b,{children:[x(Z,{variant:"secondary",size:"sm",onClick:t,disabled:d,children:"Cancel"}),x(Z,{size:"sm",onClick:async()=>{if(c.name.trim()){p(!0),m("");try{await l(c),t()}catch(e){m(e instanceof Error?e.message:"Save failed.")}finally{p(!1)}}else m("Name is required.")},loading:d,children:n?"Save":"Create"})]}),children:g("div",{className:"space-y-3",children:[x(ee,{label:"Name",value:c.name,onChange:e=>i(t=>({...t,name:e.target.value})),placeholder:"e.g. Finance Documents",required:!0}),x(ee,{label:"Description",value:c.description,onChange:e=>i(t=>({...t,description:e.target.value})),placeholder:"Optional"}),_.length>0&&g("div",{className:"flex flex-col gap-1.5",children:[g("div",{className:"flex items-center justify-between",children:[g("label",{className:"text-sm font-medium text-appsec-text",children:["Resources",g("span",{className:"ml-1.5 text-xs font-normal text-appsec-text-tertiary",children:["(",c.resources.length," selected)"]})]}),c.resources.length>0&&x("button",{type:"button",onClick:()=>i(e=>({...e,resources:[]})),className:"text-[11px] text-appsec-text-tertiary hover:text-appsec-danger transition-colors",children:"Clear all"})]}),g("div",{className:"relative",children:[x("input",{type:"text",value:h,onChange:e=>f(e.target.value),placeholder:"Search resources…",className:"w-full h-8 pl-8 pr-3 text-xs rounded-appsec border border-appsec-border bg-appsec-bg text-appsec-text placeholder:text-appsec-text-tertiary outline-none focus:border-appsec-primary transition-colors"}),x("svg",{className:"absolute left-2.5 top-1/2 -translate-y-1/2 h-3.5 w-3.5 text-appsec-text-tertiary pointer-events-none",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:x("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21 21l-4.35-4.35M17 11A6 6 0 1 1 5 11a6 6 0 0 1 12 0z"})})]}),x("div",{className:"rounded-appsec border border-appsec-border bg-appsec-surface overflow-hidden",children:0===M.length?x("p",{className:"text-xs text-appsec-text-tertiary text-center py-4",children:"No resources match your search."}):x("div",{className:"flex flex-col divide-y divide-appsec-border",children:M.map(e=>g("label",{className:"flex items-center gap-2 cursor-pointer py-2 px-3 hover:bg-appsec-bg transition-colors",children:[x("input",{type:"checkbox",checked:c.resources.includes(e._id),onChange:()=>{return t=e._id,i(e=>({...e,resources:e.resources.includes(t)?e.resources.filter(e=>e!==t):[...e.resources,t]}));var t},className:"h-3.5 w-3.5 rounded border-appsec-border accent-appsec-primary cursor-pointer shrink-0"}),x("span",{className:"text-xs text-appsec-text truncate",children:e.name})]},e._id))})}),$>1&&g("div",{className:"flex items-center justify-between px-0.5",children:[g("span",{className:"text-[11px] text-appsec-text-tertiary",children:[10*(N-1)+1,"–",Math.min(10*N,S)," of ",S]}),g("div",{className:"flex items-center gap-1",children:[x("button",{type:"button",onClick:()=>k(e=>Math.max(1,e-1)),disabled:1===N,className:"p-1 rounded-appsec text-appsec-text-secondary hover:text-appsec-text disabled:opacity-30 disabled:cursor-default transition-colors",children:x(v,{className:"h-3.5 w-3.5"})}),g("span",{className:"text-[11px] text-appsec-text-secondary px-1",children:[N," / ",$]}),x("button",{type:"button",onClick:()=>k(e=>Math.min($,e+1)),disabled:N>=$,className:"p-1 rounded-appsec text-appsec-text-secondary hover:text-appsec-text disabled:opacity-30 disabled:cursor-default transition-colors",children:x(w,{className:"h-3.5 w-3.5"})})]})]})]}),u&&x("p",{className:"text-xs text-appsec-danger",children:u})]})})}var Ue=l(function({group:t,roles:n,users:l,groups:c,aclEntries:o,onShare:i,onBulkRoleChange:d,onEdit:p,onDelete:h,roleModuleMapping:f,module:y,allResources:v}){const[w,R]=a(!1),[A,T]=a(!1),[I,q]=a({top:0,left:0}),z=e.useRef(null),G=function(){const{adapter:e}=V(),t=u(),a=J();return m({mutationFn:t=>e.deleteAclsByResourceGroup(t),onSuccess:()=>{t.invalidateQueries({queryKey:["rbac","acls"]})},onError:e=>{a.error(e.message||"Failed to remove access from resource group.")}})}(),O=s(()=>{const e=new Set(t.resources.map(e=>"string"==typeof e?e:String(e._id??e))),a=e.size;if(0===a)return[];const r=new Map;for(const t of o){if(!e.has(String(t.resourceId)))continue;const a=t.user_email||t.group_id||"";a&&(r.has(a)||r.set(a,[]),r.get(a).push(t))}const s=[];for(const e of r.values()){new Set(e.map(e=>String(e.resourceId))).size===a&&s.push(e[0])}return s},[o,t.resources]),B=r(async e=>{const a=O.find(t=>t._id===e);a&&await G.mutateAsync({resource_group_id:t._id,...a.user_email?{user_email:a.user_email}:{group_id:a.group_id}})},[O,t._id,G]),U={_id:t._id,name:t.name,module:y._id,application:t.application,isResourceGroup:!0};return g("div",{className:"border border-appsec-border rounded-appsec overflow-hidden",children:[g("div",{className:"flex items-center gap-3 px-4 py-3 bg-appsec-bg hover:bg-appsec-surface transition-colors",children:[x($,{className:"h-4 w-4 text-appsec-primary shrink-0"}),g("div",{className:"flex-1 min-w-0",children:[x("span",{className:"text-sm font-medium text-appsec-text truncate block",children:t.name}),t.description&&x("span",{className:"text-xs text-appsec-text-secondary truncate block",children:t.description})]}),g("div",{className:"relative shrink-0",children:[g("button",{ref:z,type:"button",onClick:()=>{if(!A&&z.current){const e=z.current.getBoundingClientRect();q({top:e.bottom+6,left:e.left})}T(e=>!e)},className:"flex items-center gap-1.5 text-xs font-medium text-white bg-appsec-primary hover:bg-appsec-primary/90 active:scale-95 px-2.5 py-1 rounded-full transition-all cursor-pointer shadow-sm",title:"View resources in this group",children:[x(k,{className:"h-3.5 w-3.5 text-white"}),x("span",{children:t.resources.length})]}),A&&g(b,{children:[x("div",{className:"fixed inset-0 z-40",onClick:()=>T(!1)}),g("div",{className:"fixed z-50 min-w-45 max-w-65 bg-appsec-bg border border-appsec-border rounded-appsec shadow-lg py-1",style:{top:I.top,left:I.left},children:[x("p",{className:"px-3 py-1.5 text-[10px] font-semibold uppercase tracking-wide text-appsec-text-secondary border-b border-appsec-border",children:"Resources"}),0===t.resources.length?x("p",{className:"px-3 py-2 text-xs text-appsec-text-tertiary",children:"No resources"}):t.resources.map(e=>{const t="string"==typeof e?e:e._id,a=v.find(e=>e._id===t);return g("div",{className:"flex items-center gap-2 px-3 py-1.5 hover:bg-appsec-surface",children:[x(k,{className:"h-3 w-3 text-appsec-text-tertiary shrink-0"}),x("span",{className:"text-xs text-appsec-text truncate",children:a?.name??t})]},t)})]})]})]}),g("div",{className:"flex items-center gap-1 text-xs text-appsec-text-secondary shrink-0",title:"Access entries",children:[x(C,{className:"h-3.5 w-3.5"}),x("span",{children:O.length})]}),x("button",{type:"button",onClick:p,className:"p-1.5 rounded-appsec text-appsec-text-tertiary hover:text-appsec-primary hover:bg-appsec-primary-light transition-colors shrink-0",title:"Edit group",children:x(M,{className:"h-3.5 w-3.5"})}),x("button",{type:"button",onClick:h,className:"p-1.5 rounded-appsec text-appsec-text-tertiary hover:text-appsec-danger hover:bg-appsec-danger-light transition-colors shrink-0",title:"Delete group",children:x(N,{className:"h-3.5 w-3.5"})}),x(Z,{size:"sm",variant:"secondary",iconLeft:x(_,{className:"h-3.5 w-3.5"}),onClick:()=>i(U),className:"shrink-0",children:"Share"}),x("button",{type:"button",onClick:()=>R(e=>!e),className:F("p-1.5 rounded-appsec text-appsec-text-tertiary hover:text-appsec-text transition-colors",0===O.length&&"opacity-30 cursor-default pointer-events-none"),title:w?"Collapse":"Show access list",children:x(w?E:S,{className:"h-4 w-4"})})]}),w&&x("div",{className:"border-t border-appsec-border bg-appsec-surface px-4 py-3",children:x(Ge,{entries:O,roles:n,users:l,groups:c,onRemove:B,onBulkRoleChange:d,roleModuleMapping:f,module:y})})]})}),Fe=10;function De({label:e,children:t,className:a,side:r="top"}){return g("span",{className:F("group/tt relative inline-flex",a),children:[t,x("span",{role:"tooltip",className:F("pointer-events-none absolute z-50 whitespace-nowrap rounded-appsec bg-appsec-text px-2 py-1 text-[11px] font-medium text-white opacity-0 shadow-sm transition-opacity group-hover/tt:opacity-100 group-focus-within/tt:opacity-100","top"===r&&"bottom-full left-1/2 mb-1.5 -translate-x-1/2","bottom"===r&&"top-full left-1/2 mt-1.5 -translate-x-1/2","left"===r&&"right-full top-1/2 mr-1.5 -translate-y-1/2","right"===r&&"left-full top-1/2 ml-1.5 -translate-y-1/2"),children:e})]})}l(function({module:e,roles:t,users:r,groups:n,aclEntries:l,mfApi:c,appMongoId:i,onShare:d,onRemoveAccess:p,onBulkRoleChange:m,roleModuleMapping:f}){const{adapter:y}=V(),N=u(),C=J(),[_,E]=a("resources"),[S,M]=a(""),A=be(S.trim(),300),[T,I]=a(1),[q,z]=a(1),G=Te(e._id,T,Fe),O=G.data?.data||[],B=G.data?.pagination,U=Ie(B),D=Math.max(1,qe(B,U,Fe)),L=function(e,t,a,r=20){const{adapter:s}=V();return h({queryKey:[...Ce(e,t),"paginated",a,r],queryFn:()=>s.getResourceGroups(e,t,a,r),enabled:!!e&&!!t,staleTime:3e5,refetchOnWindowFocus:!1,refetchOnMount:!1,placeholderData:e=>e})}(i,e._id,q,Fe),P=L.data?.data||[],j=L.data?.pagination,K=Ie(j),W=Math.max(1,qe(j,K,Fe)),Q="resources"===_?G.isLoading:L.isLoading,[H,X]=a(!1),[Y,ee]=a(null),[te,ae]=a(null),[re,se]=a(!1);o(()=>{I(1),z(1)},[_,S]);const ne=s(()=>A?O.filter(e=>ge(A,[e.name,e.description,e._id,e.module])):O,[O,A]),le=s(()=>A?P.filter(e=>ge(A,[e.name,e.description,e._id,e.module])):P,[P,A]);return Q?x("div",{className:"flex flex-col gap-2",children:[1,2,3].map(e=>x("div",{className:"h-12 rounded-appsec bg-appsec-surface animate-pulse"},e))}):g("div",{className:"flex flex-col gap-3",children:[g("div",{className:"flex items-center gap-2",children:[x("div",{className:"flex gap-1 p-1 rounded-appsec bg-appsec-surface border border-appsec-border",children:[{key:"resources",label:"Resources",icon:x(k,{className:"h-3 w-3"})},{key:"groups",label:"Resource Groups",icon:x($,{className:"h-3 w-3"})}].map(e=>g("button",{type:"button",onClick:()=>{E(e.key),M("")},className:F("flex items-center gap-1.5 px-3 py-1.5 text-xs font-medium rounded transition-colors",_===e.key?"bg-appsec-bg text-appsec-text shadow-sm border border-appsec-border":"text-appsec-text-secondary hover:text-appsec-text"),children:[e.icon,e.label]},e.key))}),"groups"===_&&x("div",{className:"ml-auto",children:x(Z,{size:"sm",iconLeft:x(R,{className:"h-3.5 w-3.5"}),onClick:()=>X(!0),children:"Create Group"})})]}),g("div",{className:"flex items-center gap-2",children:[x(xe,{value:S,onChange:M,placeholder:"resources"===_?"Search resources…":"Search resource groups…",className:"flex-1"}),x("span",{className:"text-[11px] text-appsec-text-tertiary shrink-0",children:"resources"===_?`${U} resource${1!==U?"s":""}`:`${K} group${1!==K?"s":""}`})]}),"resources"===_&&g(b,{children:[0===ne.length?x("p",{className:"text-sm text-appsec-text-tertiary text-center py-6",children:S?"No resources match your search.":"No resources found."}):ne.map(a=>x(Oe,{resource:a,roles:t,users:r,groups:n,aclEntries:l,onShare:d,onRemoveAccess:p,onBulkRoleChange:m,roleModuleMapping:f,module:e,mfApi:c},a._id)),D>1&&g("div",{className:"flex items-center justify-between px-1",children:[g("span",{className:"text-[11px] text-appsec-text-tertiary",children:[(T-1)*Fe+1,"–",Math.min(T*Fe,U)," of ",U]}),g("div",{className:"flex items-center gap-1",children:[x("button",{type:"button",onClick:()=>I(e=>Math.max(1,e-1)),disabled:1===T,className:"p-1 rounded-appsec text-appsec-text-secondary hover:text-appsec-text disabled:opacity-30 disabled:cursor-default transition-colors",children:x(v,{className:"h-3.5 w-3.5"})}),g("span",{className:"text-[11px] text-appsec-text-secondary px-1",children:[T," / ",D]}),x("button",{type:"button",onClick:()=>I(e=>Math.min(D,e+1)),disabled:T>=D,className:"p-1 rounded-appsec text-appsec-text-secondary hover:text-appsec-text disabled:opacity-30 disabled:cursor-default transition-colors",children:x(w,{className:"h-3.5 w-3.5"})})]})]})]}),"groups"===_&&g(b,{children:[0===le.length?x("p",{className:"text-sm text-appsec-text-tertiary text-center py-6",children:S?"No groups match your search.":"No resource groups yet. Create one to get started."}):le.map(a=>x(Ue,{group:a,roles:t,users:r,groups:n,aclEntries:l,onShare:d,onBulkRoleChange:m,onEdit:()=>ee(a),onDelete:()=>ae(a),roleModuleMapping:f,module:e,allResources:O},a._id)),W>1&&g("div",{className:"flex items-center justify-between px-1",children:[g("span",{className:"text-[11px] text-appsec-text-tertiary",children:[(q-1)*Fe+1,"–",Math.min(q*Fe,K)," of ",K]}),g("div",{className:"flex items-center gap-1",children:[x("button",{type:"button",onClick:()=>z(e=>Math.max(1,e-1)),disabled:1===q,className:"p-1 rounded-appsec text-appsec-text-secondary hover:text-appsec-text disabled:opacity-30 disabled:cursor-default transition-colors",children:x(v,{className:"h-3.5 w-3.5"})}),g("span",{className:"text-[11px] text-appsec-text-secondary px-1",children:[q," / ",W]}),x("button",{type:"button",onClick:()=>z(e=>Math.min(W,e+1)),disabled:q>=W,className:"p-1 rounded-appsec text-appsec-text-secondary hover:text-appsec-text disabled:opacity-30 disabled:cursor-default transition-colors",children:x(w,{className:"h-3.5 w-3.5"})})]})]})]}),x(Be,{open:H,onClose:()=>X(!1),moduleId:e._id,onSave:async t=>{const a={name:t.name,description:t.description,resources:t.resources,module:e._id,application:i};await y.createResourceGroup(a),N.invalidateQueries({queryKey:Ce(i,e._id)}),C.success("Resource group created.")}}),x(Be,{open:!!Y,onClose:()=>ee(null),moduleId:e._id,existing:Y??void 0,onSave:async t=>{Y&&(await y.updateResourceGroup(Y._id,{name:t.name,description:t.description,resources:t.resources}),N.invalidateQueries({queryKey:Ce(i,e._id)}),C.success("Resource group updated."),ee(null))}}),x(he,{open:!!te,onClose:()=>ae(null),onConfirm:async()=>{if(te){se(!0);try{await y.deleteResourceGroup(te._id),N.invalidateQueries({queryKey:Ce(i,e._id)}),C.success("Resource group deleted."),ae(null)}catch(e){C.error(e instanceof Error?e.message:"Failed to delete resource group.")}finally{se(!1)}}},title:"Delete resource group",message:`Delete "${te?.name}"? This cannot be undone.`,confirmLabel:"Delete",variant:"danger",loading:re})]},e._id)});var Le=e=>"string"==typeof e?e:String(e?._id??e?.id??""),Pe=e=>e.replace(/<style[\s\S]*?<\/style>/gi,"").replace(/<script[\s\S]*?<\/script>/gi,"").replace(/<[^>]+>/g," ").replace(/\s+/g," ").trim(),je=(e,t,a,r)=>e.split("{{recipient_email}}").join(t).split("{{granted_by}}").join(a).split("{{additional_data}}").join(r),Ke=l(function({resourceId:e,moduleId:t,title:r,description:n,notifyByEmail:l=!1,sendAdditionalMessage:i=!1,emailTemplate:d,open:p=!0,onSuccess:f,onClose:y,resourceName:N,isResourceGroup:v=!1}){const{adapter:w,appId:k,currentUserEmail:C}=V(),_=J(),[E,S]=a("user"),[$,M]=a([]),[R,A]=a(""),[T,I]=a(""),[q,z]=a(!1),[G,O]=a(""),[B,U]=a(""),[D,L]=a(!1),[P,j]=a(""),[K,W]=a(!1),[Q,H]=a(""),X=c(null),Y=c(null),ee=Ee(k),te=ee.data?.data?.[0]?._id||"",ae=Se(te),re=Me(te),se=$e(te),le=function(e){const{adapter:t}=V();return h({queryKey:[...Ne(e),"all"],queryFn:()=>t.getAcls(e,1,50,void 0,!1),enabled:!!e,staleTime:12e4,refetchOnWindowFocus:!1,refetchOnMount:!1})}(te),ce=Re(T),ie=Ae(),pe=function(){const{adapter:e}=V(),t=u(),a=J();return m({mutationFn:t=>e.shareResourceGroup(t),onSuccess:()=>{t.invalidateQueries({queryKey:["rbac","acls"]})},onError:e=>{a.error(e.message||"Failed to grant access to resource group.")}})}(),ue=m({mutationFn:e=>w.sendMail(e)}),me=ae.data?.data||[],he=re.data?.data??[],xe=se.data?.data||[],ge=le.data?.data??[],be=s(()=>(ce.data||[]).filter(e=>!$.some(t=>t.email===e.email)),[ce.data,$]),fe=s(()=>t&&0!==xe.length?me.filter(e=>xe.some(a=>{const r=Le(a.roleId??a.role),s=Le(a.moduleId??a.module);return r===e._id&&s===t})):[],[me,xe,t]);o(()=>{p&&(S("user"),M([]),A(""),I(""),z(!1),O(""),U(""),j(""),L(!1),W(!1),H(""))},[p]),o(()=>{const e=setTimeout(()=>I(R.trim()),300);return()=>clearTimeout(e)},[R]),o(()=>{be.length>0&&R.trim().length>=2?z(!0):z(!1)},[be,R]),o(()=>{if(!q)return;const e=e=>{Y.current&&!Y.current.contains(e.target)&&z(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[q]);const ye=e=>{M(t=>[...t,e]),A(""),I(""),z(!1),X.current?.focus()},ve=async e=>{if(!l||!K||!d||0===e.length)return;const t=C||"",a=i?Q:"";await Promise.all(e.map(e=>{const r=je(d.subject,e,t,a),s=je(d.html,e,t,a);return ue.mutateAsync({recipients:{to:[e],cc:[],bcc:[]},mail:{subject:r,html:s,text:Pe(s)}})}))};return x(de,{open:p,onClose:()=>y?.(),title:r||(N?`Share - ${N}`:"Share Access"),description:n,size:"sm",footer:g(b,{children:[x(Z,{variant:"secondary",size:"sm",onClick:()=>y?.(),disabled:D,children:"Cancel"}),x(Z,{size:"sm",onClick:async()=>{if("user"!==E||0!==$.length)if("group"!==E||G)if(B)if(te)if(!l||!K||d?.subject.trim()&&d?.html.trim()){L(!0),j("");try{const a=$.map(e=>e.email);let r=[];if(!me.find(e=>e._id===B))throw new Error("Role not found");if(v)if(G){const t=he.find(e=>e._id===G);await pe.mutateAsync({resource_group_id:e,group_id:G,role:B,is_inherited:!0}),r=(t?.users??[]).filter(e=>e.includes("@")),await ve(r),_.success(`Resource group shared with group "${t?.name??G}".`)}else r=a,await Promise.all(a.map(t=>pe.mutateAsync({resource_group_id:e,user_email:t,role:B,is_inherited:!0}))),await ve(a),_.success(`Resource group shared with ${a.length} user${1!==a.length?"s":""}.`);else if(G){const a=he.find(e=>e._id===G);if(!a)throw new Error("Group not found");await ie.mutateAsync({resource_type:t,resource_id:e,group_id:G,is_inherited:!0,role:B}),r=a.users.filter(e=>e.includes("@")),await ve(r),_.success(`Access granted to group "${a.name}".`)}else{const s=ge.filter(a=>a.resourceId===e&&a.resourceType===t).map(e=>e.user_email),n=a.filter(e=>!s.includes(e)),l=a.length-n.length;if(0===n.length)return _.info("All selected users already have access to this resource."),void L(!1);r=n,await Promise.all(n.map(a=>ie.mutateAsync({resource_type:t,resource_id:e,user_email:a,is_inherited:!1,role:B}))),await ve(n),l>0?_.info(`Access granted to ${n.length} user${1!==n.length?"s":""}. ${l} already had access.`):_.success(`Access granted to ${n.length} user${1!==n.length?"s":""}.`)}f?.({emails:r,roleId:B,groupId:"group"===E?G:void 0}),y?.()}catch(e){j(e instanceof Error?e.message:"Share failed.")}finally{L(!1)}}else j("Email template is required when notifyByEmail is true.");else j("Application is still loading.");else j("Select a role.");else j("Select a group.");else j("Add at least one email.")},loading:D,disabled:D,children:"Share"})]}),children:g("div",{className:"space-y-4",children:[x("div",{className:"flex gap-1 p-1 rounded-appsec bg-appsec-surface border border-appsec-border",children:["user","group"].map(e=>x("button",{type:"button",onClick:()=>{S(e),j("")},className:F("flex-1 py-1.5 text-xs font-medium rounded transition-colors capitalize",E===e?"bg-appsec-bg text-appsec-text shadow-sm border border-appsec-border":"text-appsec-text-secondary hover:text-appsec-text"),children:"user"===e?"By Email":"By Group"},e))}),g("div","user"===E?{className:"flex flex-col gap-1",children:[x("label",{className:"text-sm font-medium text-appsec-text",children:"Add people"}),g("div",{ref:Y,className:"relative",children:[g("div",{className:F("flex flex-wrap gap-1.5 p-2 min-h-10 rounded-appsec border bg-appsec-bg cursor-text transition-colors",q||document.activeElement===X.current?"border-appsec-primary":"border-appsec-border"),onClick:()=>X.current?.focus(),children:[$.map(e=>x(oe,{label:e.displayName!==e.email?e.displayName:e.email,onRemove:()=>{return t=e.email,void M(e=>e.filter(e=>e.email!==t));var t}},e.email)),x("input",{ref:X,type:"text",value:R,onChange:e=>A(e.target.value),onKeyDown:e=>{"Enter"!==e.key&&","!==e.key||!R.trim()||(e.preventDefault(),be.length>0?ye(be[0]):(()=>{const e=R.trim().toLowerCase();e&&!$.some(t=>t.email===e)&&(M(t=>[...t,{email:e,displayName:e}]),A(""),I(""),z(!1))})()),"Backspace"===e.key&&!R&&$.length>0&&M(e=>e.slice(0,-1)),"Escape"===e.key&&z(!1)},onFocus:()=>R.trim().length>=2&&be.length>0&&z(!0),placeholder:0===$.length?"Search by name or email...":"",className:"flex-1 min-w-32 bg-transparent outline-none text-sm text-appsec-text placeholder:text-appsec-text-tertiary"}),ce.isFetching&&x("span",{className:"self-center ml-1",children:g("svg",{className:"animate-spin h-3.5 w-3.5 text-appsec-text-secondary",fill:"none",viewBox:"0 0 24 24",children:[x("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),x("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8v8H4z"})]})})]}),q&&be.length>0&&x("div",{className:"absolute z-50 mt-1 w-full rounded-appsec border border-appsec-border bg-appsec-bg shadow-lg overflow-hidden",children:be.map(e=>g("button",{type:"button",onMouseDown:t=>{t.preventDefault(),ye(e)},className:"flex items-center gap-3 w-full px-3 py-2.5 text-left hover:bg-appsec-surface transition-colors",children:[x(ne,{name:e.displayName,size:"sm"}),g("div",{className:"flex flex-col min-w-0",children:[x("span",{className:"text-sm font-medium text-appsec-text truncate",children:e.displayName}),x("span",{className:"text-xs text-appsec-text-secondary truncate",children:e.email})]})]},e.email))})]}),x("p",{className:"text-xs text-appsec-text-tertiary",children:"Press Enter or comma to add a raw email address."})]}:{className:"flex flex-col gap-1",children:[x("label",{className:"text-sm font-medium text-appsec-text",children:"Group"}),g("select",{value:G,onChange:e=>O(e.target.value),className:"h-9 text-sm rounded-appsec border border-appsec-border bg-appsec-bg px-3 pr-8 appearance-none outline-none focus:border-appsec-primary text-appsec-text",children:[x("option",{value:"",children:"Select group..."}),he.map(e=>g("option",{value:e._id,children:[e.name,e.description?` - ${e.description}`:""]},e._id))]})]}),g("div",{className:"flex flex-col gap-1",children:[x("label",{className:"text-sm font-medium text-appsec-text",children:"Role"}),g("select",{value:B,onChange:e=>U(e.target.value),className:"h-9 text-sm rounded-appsec border border-appsec-border bg-appsec-bg px-3 pr-8 appearance-none outline-none focus:border-appsec-primary text-appsec-text",children:[x("option",{value:"",children:"Select role..."}),0===fe.length&&x("option",{value:"",disabled:!0,children:"No roles mapped to this module"}),fe.map(e=>g("option",{value:e._id,children:[e.name,e.description?` - ${e.description}`:""]},e._id))]})]}),l&&g("div",{className:"space-y-2",children:[g("label",{className:"inline-flex items-center gap-2 text-sm font-medium text-appsec-text",children:[x("input",{type:"checkbox",checked:K,onChange:e=>W(e.target.checked),className:"h-4 w-4 accent-appsec-primary"}),x("span",{children:"Notify people by email"})]}),K&&i&&g("div",{className:"flex flex-col gap-1",children:[x("label",{className:"text-sm font-medium text-appsec-text",children:"Additional Message"}),x("textarea",{value:Q,onChange:e=>H(e.target.value),rows:3,className:"w-full rounded-appsec border border-appsec-border bg-appsec-bg px-3 py-2 text-sm text-appsec-text placeholder:text-appsec-text-tertiary outline-none transition-colors focus:border-appsec-primary focus:ring-2 focus:ring-appsec-primary-light"})]})]}),P&&x("div",{className:"rounded-appsec bg-appsec-danger-light px-3 py-2 text-sm text-appsec-danger",children:P})]})})}),Je=n(({label:e,error:t,hint:a,options:r,placeholder:s,wrapperClassName:n,className:l,id:c,...o},i)=>{const d=c??(e?e.toLowerCase().replace(/\s+/g,"-"):void 0);return g("div",{className:F("flex flex-col gap-1",n),children:[e&&x("label",{htmlFor:d,className:"text-sm font-medium text-appsec-text",children:e}),g("div",{className:"relative flex items-center",children:[g("select",{ref:i,id:d,className:F("w-full h-9 appearance-none rounded-appsec border border-appsec-border bg-appsec-bg pl-3 pr-8 py-2","text-sm text-appsec-text","transition-colors outline-none","focus:border-appsec-primary focus:ring-2 focus:ring-appsec-primary-light","disabled:bg-appsec-surface disabled:cursor-not-allowed disabled:opacity-60",t&&"border-appsec-danger focus:border-appsec-danger focus:ring-appsec-danger-light",l),...o,children:[s&&x("option",{value:"",disabled:!0,children:s}),r.map(e=>x("option",{value:e.value,disabled:e.disabled,children:e.label},e.value))]}),x(S,{className:"absolute right-2.5 h-4 w-4 text-appsec-text-tertiary pointer-events-none"})]}),t&&x("p",{className:"text-xs text-appsec-danger",children:t}),!t&&a&&x("p",{className:"text-xs text-appsec-text-secondary",children:a})]})});Je.displayName="Select",Object.assign(function({children:e,className:t,...a}){return x("div",{className:"w-full overflow-x-auto rounded-appsec border border-appsec-border",children:x("table",{className:F("w-full border-collapse text-sm",t),...a,children:e})})},{Header:function({children:e,className:t,...a}){return x("thead",{className:F("bg-appsec-surface",t),...a,children:e})},Body:function({children:e,className:t,...a}){return x("tbody",{className:F("divide-y divide-appsec-border bg-appsec-bg",t),...a,children:e})},Row:function({children:e,className:t,...a}){return x("tr",{className:F("hover:bg-appsec-surface transition-colors",t),...a,children:e})},Head:function({children:e,sortable:t=!1,sortKey:a,sortState:r,onSort:s,className:n,...l}){const c=r&&a&&r.column===a,o=c&&"asc"===r.direction?"desc":"asc";return x("th",{className:F("px-4 py-3 text-left text-xs font-semibold uppercase tracking-wide text-appsec-text-secondary",t&&"cursor-pointer select-none hover:text-appsec-text",n),onClick:t?()=>{t&&a&&s&&s(a,o)}:void 0,...l,children:g("span",{className:"inline-flex items-center gap-1",children:[e,t&&x("span",{className:"text-appsec-text-tertiary",children:c?"asc"===r.direction?x(E,{className:"h-3.5 w-3.5"}):x(S,{className:"h-3.5 w-3.5"}):x(T,{className:"h-3.5 w-3.5"})})]})})},Cell:function({children:e,className:t,...a}){return x("td",{className:F("px-4 py-3 text-appsec-text align-middle",t),...a,children:e})}});var We=["all","user","group"],Qe=l(function({open:e,onClose:t,resourceId:r,moduleId:n,roles:l,groups:i,mode:d,roleModuleMapping:p,createAcl:u,allAcls:m}){const[h,f]=a("groups"===d?"group":"user"),[y,N]=a([]),[v,w]=a(""),[k,C]=a(""),[_,E]=a(!1),[S,$]=a(""),[M,R]=a(""),[A,T]=a(!1),[I,q]=a(""),z=c(null),G=c(null),O=Re(k),B=s(()=>(O.data||[]).filter(e=>!y.some(t=>t.email===e.email)),[O.data,y]),U=s(()=>n?l.filter(e=>p.some(t=>t.roleId?._id===e._id&&t.moduleId?._id===n)):l,[l,p,n]);o(()=>{e&&(f("groups"===d?"group":"user"),N([]),w(""),C(""),E(!1),$(""),R(""),q(""),T(!1))},[e,d]),o(()=>{const e=setTimeout(()=>C(v.trim()),300);return()=>clearTimeout(e)},[v]),o(()=>{B.length>0&&v.trim().length>=2?E(!0):E(!1)},[B,v]),o(()=>{if(!_)return;const e=e=>{G.current&&!G.current.contains(e.target)&&E(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[_]);const D=e=>{N(t=>[...t,e]),w(""),C(""),E(!1),z.current?.focus()};return x(de,{open:e,onClose:t,title:"Add Access",description:"Grant access to this resource.",size:"sm",footer:g(b,{children:[x(Z,{variant:"secondary",size:"sm",onClick:t,disabled:A,children:"Cancel"}),x(Z,{size:"sm",onClick:async()=>{if("user"!==h||0!==y.length)if("group"!==h||S)if(M){T(!0),q("");try{if("group"===h)await u({resource_type:n||"",resource_id:r,group_id:S,is_inherited:!0,role:M});else{const e=m.map(e=>e.user_email),t=y.map(e=>e.email).filter(t=>!e.includes(t));if(0===t.length)return q("All selected users already have access."),void T(!1);await Promise.all(t.map(e=>u({resource_type:n||"",resource_id:r,user_email:e,is_inherited:!1,role:M})))}t()}catch(e){q(e instanceof Error?e.message:"Failed to grant access.")}finally{T(!1)}}else q("Select a role.");else q("Select a group.");else q("Add at least one email.")},loading:A,disabled:A,children:"group"===h?"Add Group":"Add Users"})]}),children:g("div",{className:"space-y-4",children:["both"===d&&x("div",{className:"flex gap-1 p-1 rounded-appsec bg-appsec-surface border border-appsec-border",children:["user","group"].map(e=>x("button",{type:"button",onClick:()=>{f(e),q("")},className:F("flex-1 py-1.5 text-xs font-medium rounded transition-colors capitalize",h===e?"bg-appsec-bg text-appsec-text shadow-sm border border-appsec-border":"text-appsec-text-secondary hover:text-appsec-text"),children:"user"===e?"By Email":"By Group"},e))}),g("div","user"===h?{className:"flex flex-col gap-1",children:[x("label",{className:"text-sm font-medium text-appsec-text",children:"Add people"}),g("div",{ref:G,className:"relative",children:[g("div",{className:F("flex flex-wrap gap-1.5 p-2 min-h-10 rounded-appsec border bg-appsec-bg cursor-text transition-colors",_?"border-appsec-primary":"border-appsec-border"),onClick:()=>z.current?.focus(),children:[y.map(e=>x(oe,{label:e.displayName!==e.email?e.displayName:e.email,onRemove:()=>{return t=e.email,N(e=>e.filter(e=>e.email!==t));var t}},e.email)),x("input",{ref:z,type:"text",value:v,onChange:e=>w(e.target.value),onKeyDown:e=>{"Enter"!==e.key&&","!==e.key||!v.trim()||(e.preventDefault(),B.length>0?D(B[0]):(()=>{const e=v.trim().toLowerCase();e&&!y.some(t=>t.email===e)&&(N(t=>[...t,{email:e,displayName:e}]),w(""),C(""),E(!1))})()),"Backspace"===e.key&&!v&&y.length>0&&N(e=>e.slice(0,-1)),"Escape"===e.key&&E(!1)},placeholder:0===y.length?"Search by name or email…":"",className:"flex-1 min-w-32 bg-transparent outline-none text-sm text-appsec-text placeholder:text-appsec-text-tertiary"}),O.isFetching&&x("span",{className:"self-center ml-1",children:g("svg",{className:"animate-spin h-3.5 w-3.5 text-appsec-text-secondary",fill:"none",viewBox:"0 0 24 24",children:[x("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),x("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8v8H4z"})]})})]}),_&&B.length>0&&x("div",{className:"absolute z-50 mt-1 w-full rounded-appsec border border-appsec-border bg-appsec-bg shadow-lg overflow-hidden",children:B.map(e=>g("button",{type:"button",onMouseDown:t=>{t.preventDefault(),D(e)},className:"flex items-center gap-3 w-full px-3 py-2.5 text-left hover:bg-appsec-surface transition-colors",children:[x(ne,{name:e.displayName,size:"sm"}),g("div",{className:"flex flex-col min-w-0",children:[x("span",{className:"text-sm font-medium text-appsec-text truncate",children:e.displayName}),x("span",{className:"text-xs text-appsec-text-secondary truncate",children:e.email})]})]},e.email))})]}),x("p",{className:"text-xs text-appsec-text-tertiary",children:"Press Enter or comma to add a raw email address."})]}:{className:"flex flex-col gap-1",children:[x("label",{className:"text-sm font-medium text-appsec-text",children:"Group"}),g("select",{value:S,onChange:e=>$(e.target.value),className:"h-9 text-sm rounded-appsec border border-appsec-border bg-appsec-bg px-3 pr-8 appearance-none outline-none focus:border-appsec-primary text-appsec-text",children:[x("option",{value:"",children:"Select group…"}),i.map(e=>g("option",{value:e._id,children:[e.name,e.description?` — ${e.description}`:""]},e._id))]})]}),g("div",{className:"flex flex-col gap-1",children:[x("label",{className:"text-sm font-medium text-appsec-text",children:"Role"}),g("select",{value:M,onChange:e=>R(e.target.value),className:"h-9 text-sm rounded-appsec border border-appsec-border bg-appsec-bg px-3 pr-8 appearance-none outline-none focus:border-appsec-primary text-appsec-text",children:[x("option",{value:"",children:"Select role…"}),U.map(e=>x("option",{value:e._id,children:e.name},e._id))]})]}),I&&x("p",{className:"text-xs text-appsec-danger",children:I})]})})}),He=l(function({open:e,onClose:t,entry:r,roles:n,groups:l,moduleId:c,roleModuleMapping:i,bulkUpdateAcl:d}){const[p,u]=a(""),[m,h]=a(!1),[f,y]=a(""),N=s(()=>c?n.filter(e=>i.some(t=>t.roleId?._id===e._id&&t.moduleId?._id===c)):n,[n,i,c]);o(()=>{e&&r&&(u(r.role?._id||""),y(""),h(!1))},[e,r]);const v=!!r?.groupId,w=v?l.find(e=>e._id===r?.groupId)?.name:null,k=v?w||"Unknown Group":r?.user_email||"";return x(de,{open:e,onClose:t,title:"Edit Role",size:"sm",footer:g(b,{children:[x(Z,{variant:"secondary",size:"sm",onClick:t,disabled:m,children:"Cancel"}),x(Z,{size:"sm",onClick:async()=>{if(r&&p){h(!0),y("");try{await d([{_id:r._id,role:p}]),t()}catch(e){y(e instanceof Error?e.message:"Failed to update role.")}finally{h(!1)}}else y("Select a role.")},loading:m,disabled:m||!p,children:"Save"})]}),children:g("div",{className:"space-y-4",children:[g("div",{className:"flex items-center gap-2 p-2 rounded-appsec bg-appsec-surface",children:[x(ne,{name:k,size:"sm"}),g("div",{children:[x("p",{className:"text-sm font-medium text-appsec-text",children:k}),x("p",{className:"text-xs text-appsec-text-secondary",children:v?"Group":"User"})]})]}),g("div",{className:"flex flex-col gap-1",children:[x("label",{className:"text-sm font-medium text-appsec-text",children:"Role"}),g("select",{value:p,onChange:e=>u(e.target.value),className:"h-9 text-sm rounded-appsec border border-appsec-border bg-appsec-bg px-3 pr-8 appearance-none outline-none focus:border-appsec-primary text-appsec-text",children:[x("option",{value:"",children:"Select role…"}),N.map(e=>x("option",{value:e._id,children:e.name},e._id))]})]}),f&&x("p",{className:"text-xs text-appsec-danger",children:f})]})})});l(function({resourceId:e,moduleId:t,mode:n="both",canAddUser:l=!1,canEditUser:c=!1,canDeleteUser:i=!1,canAddGroup:d=!1,canEditGroup:p=!1,canDeleteGroup:b=!1}){const f={canAdd:l,canEdit:c,canDelete:i,canBulkEdit:c},y={canAdd:d,canEdit:p,canDelete:b,canBulkEdit:p},{appId:k}=V(),C=J(),_=Ee(k),E=_.data?.data?.[0]?._id||"",S=function(e,t){const{adapter:a}=V();return h({queryKey:Ne(e,t),queryFn:()=>a.getAcls(e,1,50,t),enabled:!!e,staleTime:12e4,refetchOnWindowFocus:!1,refetchOnMount:!1})}(E,e),$=Se(E),A=Me(E),T=$e(E),I=Ae(),q=function(){const{adapter:e}=V(),t=u(),a=J();return m({mutationFn:t=>e.deleteAcl(t),onSuccess:()=>{t.invalidateQueries({queryKey:["rbac","acls"]}),a.success("Access removed successfully.")},onError:e=>{a.error(e.message||"Failed to remove access.")}})}(),z=function(){const{adapter:e}=V(),t=u(),a=J();return m({mutationFn:t=>e.bulkUpdateAcl(t),onSuccess:()=>{t.invalidateQueries({queryKey:["rbac","acls"]}),a.success("Roles updated successfully.")},onError:e=>{a.error(e.message||"Failed to update roles.")}})}(),G=S.data?.data||[],O=$.data?.data||[],B=A.data?.data||[],U=T.data?.data||[],D=G,L=s(()=>{if(t)return t;const e=D.find(e=>e.resourceType);return a=e?.resourceType,"string"==typeof a?a:String(a?._id??a?.id??"");var a},[t,D]),[P,j]=a(new Set),[K,W]=a(""),[Q,H]=a(null),[X,Y]=a(!1),[ee,te]=a(null),[ae,re]=a(0),[se,le]=a(""),oe=be(se.trim(),300),[ie,de]=a(""),[pe,ue]=a("all"),[me,fe]=a(!1),[ye,ve]=a(null);o(()=>{ue("users"===n?"user":"groups"===n?"group":"all")},[n]);const we=s(()=>L?O.filter(e=>U.some(t=>t.roleId?._id===e._id&&t.moduleId?._id===L)):O,[O,U,L]),ke=e=>!!e.groupId,Ce=e=>B.find(t=>t._id===e),_e=s(()=>D.map(e=>({...e,id:e.id||e._id})),[D]),Re=s(()=>[...new Set(_e.map(e=>e.role?.name).filter(Boolean))].sort(),[_e]),Te=s(()=>{let e=_e;return"all"!==pe&&(e=e.filter(e=>"group"===pe?ke(e):!ke(e))),ie&&(e=e.filter(e=>e.role?.name===ie)),oe&&(e=e.filter(e=>{const t=ke(e)?Ce(e.groupId):null;return ge(oe,[ke(e)?t?.name:e.user_email,ke(e)?"group":"user",t?.description,e.user_email,e.role?.name,e.grantedBy?decodeURIComponent(e.grantedBy):"",e.grantedAt,e.resourceId])})),e},[_e,pe,ie,oe]);o(()=>{re(0)},[se,ie,pe,e]);const Ie=Math.max(1,Math.ceil(Te.length/10)),qe=s(()=>Te.slice(10*ae,10*(ae+1)),[Te,ae]),ze=s(()=>qe.length>0&&qe.every(e=>P.has(e.id)),[qe,P]),Ge=r(()=>j(e=>{const t=new Set(e);return ze?qe.forEach(e=>t.delete(e.id)):qe.forEach(e=>t.add(e.id)),t}),[ze,qe]);if(_.isLoading||S.isLoading||$.isLoading||A.isLoading)return x("div",{className:"flex items-center justify-center py-8 text-appsec-text-secondary text-sm",children:"Loading…"});const Oe="groups"!==n&&f.canAdd,Be="users"!==n&&y.canAdd,Ue=Oe||Be,Fe=f.canBulkEdit||y.canBulkEdit,Le=Oe&&Be?"both":Be?"groups":"users";return g("div",{className:"flex flex-col gap-2",children:[g("div",{className:"flex items-center gap-2 flex-wrap",children:[x(xe,{value:se,onChange:le,placeholder:"Search by email or group name…",className:"flex-1 min-w-40"}),g("select",{value:ie,onChange:e=>de(e.target.value),className:"h-8 text-xs rounded-appsec border border-appsec-border bg-appsec-bg px-2 pr-6 appearance-none outline-none focus:border-appsec-primary text-appsec-text",children:[x("option",{value:"",children:"All Roles"}),Re.map(e=>x("option",{value:e,children:e},e))]}),"both"===n&&x("div",{className:"flex gap-0.5 p-0.5 rounded-appsec bg-appsec-surface border border-appsec-border",children:We.map(e=>x("button",{type:"button",onClick:()=>ue(e),className:F("px-2.5 py-1 text-[11px] font-medium rounded capitalize transition-colors",pe===e?"bg-appsec-bg text-appsec-text shadow-sm border border-appsec-border":"text-appsec-text-secondary hover:text-appsec-text"),children:e},e))}),Ue&&g(Z,{size:"sm",iconLeft:x(R,{className:"h-3.5 w-3.5"}),onClick:()=>fe(!0),children:["Add ",Be&&!Oe?"Group":"User"]})]}),P.size>0&&Fe&&g("div",{className:"flex items-center gap-2 px-3 py-2 rounded-appsec bg-appsec-primary-light border border-appsec-primary/30",children:[g("span",{className:"text-xs font-semibold text-appsec-primary",children:[P.size," selected"]}),g("select",{value:K,onChange:e=>W(e.target.value),className:"h-7 text-xs rounded-appsec border px-2",children:[x("option",{value:"",children:"Change role…"}),we.map(e=>x("option",{value:e._id,children:e.name},e._id))]}),x(Z,{size:"sm",variant:"secondary",disabled:!K||X,onClick:async()=>{if(K&&0!==P.size){Y(!0);try{const e=[...P].map(e=>({_id:e,role:K}));await z.mutateAsync(e),j(new Set),W("")}catch(e){C.error(e instanceof Error?e.message:"Failed to update roles.")}finally{Y(!1)}}},children:"Apply"}),x("button",{onClick:()=>j(new Set),className:"text-xs ml-auto",children:"✕ Clear"})]}),x("div",{className:"border rounded-appsec overflow-hidden",children:x("div",{className:"overflow-x-auto",children:g("div",{className:"flex flex-col divide-y min-w-[640px]",children:[g("div",{className:"flex items-center gap-3 px-3 py-2 bg-appsec-surface",children:[Fe&&x("input",{type:"checkbox",checked:ze,onChange:Ge,className:"shrink-0"}),x("span",{className:"min-w-0 flex-1 text-xs font-semibold",children:"Subject"}),x("span",{className:"w-14 shrink-0 text-xs font-semibold",children:"Type"}),x("span",{className:"w-36 shrink-0 text-xs font-semibold",children:"Role"}),x("span",{className:"w-28 shrink-0 text-xs font-semibold",children:"Granted"}),x("span",{className:"w-32 shrink-0 text-xs font-semibold",children:"Granted By"}),(f.canEdit||y.canEdit)&&x("span",{className:"w-8 shrink-0"}),(f.canDelete||y.canDelete)&&x("span",{className:"w-8 shrink-0"})]}),0===_e.length?g("p",{className:"text-xs text-appsec-text-tertiary py-4 text-center",children:["No one has access yet.",Ue?" Use Add to grant access.":""]}):0===qe.length?x("p",{className:"text-xs text-appsec-text-tertiary py-4 text-center",children:"No results match your filters."}):qe.map(e=>{const t=P.has(e.id),a=Ce(e.groupId),r=ke(e),s=r?y:f,n=s.canBulkEdit,l=s.canEdit,c=s.canDelete,o=r?a?.name||"Unknown Group":e.user_email,i=r?`${a?.users?.length||0} members`:e.user_email;return g("div",{className:F("flex min-w-0 items-center gap-3 px-3 py-2",t&&"bg-appsec-primary-light"),children:[Fe&&x("input",{type:"checkbox",checked:t,disabled:!n,onChange:()=>{return n&&(t=e.id,j(e=>{const a=new Set(e);return a.has(t)?a.delete(t):a.add(t),a}));var t},className:"shrink-0 disabled:opacity-30"}),g("div",{className:"flex min-w-0 flex-1 items-center gap-2",children:[x(ne,{name:o,size:"xs"}),g("div",{className:"min-w-0",children:[x(De,{label:o,className:"w-full min-w-0",children:x("span",{className:"truncate text-xs font-medium block",children:o})}),x(De,{label:i,className:"w-full min-w-0",children:x("span",{className:"truncate text-[10px] text-gray-500 block",children:i})})]})]}),x("div",{className:"w-14 shrink-0",children:x(ce,{label:r?"Group":"User",variant:"neutral"})}),x("div",{className:"w-36 min-w-0 shrink-0",children:x(ce,{label:e.role?.name||"—",variant:"neutral",className:"max-w-full whitespace-normal break-words rounded-xl px-3 py-2 text-left leading-snug"})}),x("div",{className:"w-28 shrink-0 text-[10px] text-gray-500",children:new Date(e.grantedAt).toLocaleDateString()}),x(De,{label:e.grantedBy?decodeURIComponent(e.grantedBy):"—",className:"w-32 shrink-0 min-w-0",children:x("span",{className:"truncate text-[10px] text-appsec-text-secondary block w-full",children:e.grantedBy?decodeURIComponent(e.grantedBy):"—"})}),(f.canEdit||y.canEdit)&&(l?x("button",{onClick:()=>ve(e),className:"w-8 shrink-0 text-appsec-text-secondary hover:text-appsec-text transition-colors rounded-appsec",children:x(M,{className:"h-3.5 w-3.5"})}):x("span",{className:"w-8 shrink-0"})),(f.canDelete||y.canDelete)&&(c?x("button",{disabled:Q===e.id,onClick:()=>te(e.id),className:"w-8 shrink-0 text-appsec-danger hover:text-appsec-danger/80 disabled:opacity-50 transition-colors",children:x(N,{className:"h-3.5 w-3.5"})}):x("span",{className:"w-8 shrink-0"}))]},e.id)})]})})}),Ie>1&&g("div",{className:"flex items-center justify-between px-1",children:[g("span",{className:"text-[11px] text-appsec-text-tertiary",children:[10*ae+1,"–",Math.min(10*(ae+1),Te.length)," of"," ",Te.length,Te.length!==_e.length&&` (filtered from ${_e.length})`]}),g("div",{className:"flex items-center gap-1",children:[x("button",{type:"button",onClick:()=>re(e=>Math.max(0,e-1)),disabled:0===ae,className:"p-1 rounded-appsec text-appsec-text-secondary hover:text-appsec-text disabled:opacity-30 transition-colors",children:x(v,{className:"h-3.5 w-3.5"})}),g("span",{className:"text-[11px] text-appsec-text-secondary px-1",children:[ae+1," / ",Ie]}),x("button",{type:"button",onClick:()=>re(e=>Math.min(Ie-1,e+1)),disabled:ae>=Ie-1,className:"p-1 rounded-appsec text-appsec-text-secondary hover:text-appsec-text disabled:opacity-30 transition-colors",children:x(w,{className:"h-3.5 w-3.5"})})]})]}),x(he,{open:!!ee,onClose:()=>te(null),onConfirm:()=>ee&&(async e=>{H(e);try{await q.mutateAsync(e)}catch(e){C.error(e instanceof Error?e.message:"Failed to remove access.")}finally{H(null),te(null)}})(ee),title:"Remove access",message:"Remove this subject's access?",confirmLabel:"Remove",variant:"danger",loading:null!==Q}),x(Qe,{open:me,onClose:()=>fe(!1),resourceId:e,moduleId:L,roles:O,groups:B,mode:Le,roleModuleMapping:U,createAcl:e=>I.mutateAsync(e),allAcls:G}),x(He,{open:!!ye,onClose:()=>ve(null),entry:ye,roles:O,groups:B,moduleId:L,roleModuleMapping:U,bulkUpdateAcl:e=>z.mutateAsync(e)})]})});export{H as AppsecProvider,ne as Avatar,ce as Badge,Z as Button,oe as Chip,he as ConfirmDialog,ee as Input,de as Modal,U as RbacQueryProvider,xe as SearchBar,Je as Select,Ke as ShareAccessModal,K as ToastProvider,B as queryClient,V as useAppsec,J as useToast};
|
|
2
|
+
//# sourceMappingURL=index.mjs.js.map
|