@orthacms/workspaces-admin 0.0.0-reserve.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +7 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -0
- package/dist/lib/api/useAddWorkspaceContent/index.d.ts +15 -0
- package/dist/lib/api/useAddWorkspaceContent/index.d.ts.map +1 -0
- package/dist/lib/api/useAddWorkspaceMember/index.d.ts +14 -0
- package/dist/lib/api/useAddWorkspaceMember/index.d.ts.map +1 -0
- package/dist/lib/api/useContentTypes/index.d.ts +10 -0
- package/dist/lib/api/useContentTypes/index.d.ts.map +1 -0
- package/dist/lib/api/useCreateWorkspace/index.d.ts +20 -0
- package/dist/lib/api/useCreateWorkspace/index.d.ts.map +1 -0
- package/dist/lib/api/useDeleteWorkspace/index.d.ts +13 -0
- package/dist/lib/api/useDeleteWorkspace/index.d.ts.map +1 -0
- package/dist/lib/api/useRemoveWorkspaceContent/index.d.ts +15 -0
- package/dist/lib/api/useRemoveWorkspaceContent/index.d.ts.map +1 -0
- package/dist/lib/api/useRemoveWorkspaceMember/index.d.ts +13 -0
- package/dist/lib/api/useRemoveWorkspaceMember/index.d.ts.map +1 -0
- package/dist/lib/api/useSetWorkspaceStatus/index.d.ts +14 -0
- package/dist/lib/api/useSetWorkspaceStatus/index.d.ts.map +1 -0
- package/dist/lib/api/useSlugAvailability/index.d.ts +10 -0
- package/dist/lib/api/useSlugAvailability/index.d.ts.map +1 -0
- package/dist/lib/api/useUpdateWorkspace/index.d.ts +23 -0
- package/dist/lib/api/useUpdateWorkspace/index.d.ts.map +1 -0
- package/dist/lib/api/useUsersSearch/index.d.ts +17 -0
- package/dist/lib/api/useUsersSearch/index.d.ts.map +1 -0
- package/dist/lib/api/useWorkspaceContentCount/index.d.ts +8 -0
- package/dist/lib/api/useWorkspaceContentCount/index.d.ts.map +1 -0
- package/dist/lib/api/useWorkspaceEntryCount/index.d.ts +8 -0
- package/dist/lib/api/useWorkspaceEntryCount/index.d.ts.map +1 -0
- package/dist/lib/api/useWorkspaces/index.d.ts +30 -0
- package/dist/lib/api/useWorkspaces/index.d.ts.map +1 -0
- package/dist/lib/application/useAddWorkspaceContent/index.d.ts +9 -0
- package/dist/lib/application/useAddWorkspaceContent/index.d.ts.map +1 -0
- package/dist/lib/application/useAddWorkspaceContent/index.js +15 -0
- package/dist/lib/application/useAddWorkspaceMember/index.d.ts +8 -0
- package/dist/lib/application/useAddWorkspaceMember/index.d.ts.map +1 -0
- package/dist/lib/application/useAddWorkspaceMember/index.js +14 -0
- package/dist/lib/application/useContentTypes/index.d.ts +9 -0
- package/dist/lib/application/useContentTypes/index.d.ts.map +1 -0
- package/dist/lib/application/useContentTypes/index.js +16 -0
- package/dist/lib/application/useCreateWorkspace/index.d.ts +20 -0
- package/dist/lib/application/useCreateWorkspace/index.d.ts.map +1 -0
- package/dist/lib/application/useCreateWorkspace/index.js +44 -0
- package/dist/lib/application/useCreateWorkspaceFlow/index.d.ts +23 -0
- package/dist/lib/application/useCreateWorkspaceFlow/index.d.ts.map +1 -0
- package/dist/lib/application/useCreateWorkspaceFlow/index.js +81 -0
- package/dist/lib/application/useDeleteWorkspace/index.d.ts +13 -0
- package/dist/lib/application/useDeleteWorkspace/index.d.ts.map +1 -0
- package/dist/lib/application/useDeleteWorkspace/index.js +23 -0
- package/dist/lib/application/useRemoveWorkspaceContent/index.d.ts +9 -0
- package/dist/lib/application/useRemoveWorkspaceContent/index.d.ts.map +1 -0
- package/dist/lib/application/useRemoveWorkspaceContent/index.js +15 -0
- package/dist/lib/application/useRemoveWorkspaceMember/index.d.ts +8 -0
- package/dist/lib/application/useRemoveWorkspaceMember/index.d.ts.map +1 -0
- package/dist/lib/application/useRemoveWorkspaceMember/index.js +14 -0
- package/dist/lib/application/useSetWorkspaceStatus/index.d.ts +9 -0
- package/dist/lib/application/useSetWorkspaceStatus/index.d.ts.map +1 -0
- package/dist/lib/application/useSetWorkspaceStatus/index.js +15 -0
- package/dist/lib/application/useSlugAvailability/index.d.ts +18 -0
- package/dist/lib/application/useSlugAvailability/index.d.ts.map +1 -0
- package/dist/lib/application/useSlugAvailability/index.js +39 -0
- package/dist/lib/application/useUpdateWorkspace/index.d.ts +9 -0
- package/dist/lib/application/useUpdateWorkspace/index.d.ts.map +1 -0
- package/dist/lib/application/useUpdateWorkspace/index.js +15 -0
- package/dist/lib/application/useUsersSearch/index.d.ts +18 -0
- package/dist/lib/application/useUsersSearch/index.d.ts.map +1 -0
- package/dist/lib/application/useUsersSearch/index.js +24 -0
- package/dist/lib/application/useWorkspaceContentCount/index.d.ts +8 -0
- package/dist/lib/application/useWorkspaceContentCount/index.d.ts.map +1 -0
- package/dist/lib/application/useWorkspaceContentCount/index.js +17 -0
- package/dist/lib/application/useWorkspaceEntryCount/index.d.ts +8 -0
- package/dist/lib/application/useWorkspaceEntryCount/index.d.ts.map +1 -0
- package/dist/lib/application/useWorkspaceEntryCount/index.js +17 -0
- package/dist/lib/application/useWorkspaces/index.d.ts +5 -0
- package/dist/lib/application/useWorkspaces/index.d.ts.map +1 -0
- package/dist/lib/application/useWorkspaces/index.js +11 -0
- package/dist/lib/components/BlockingConfirmDialog/index.d.ts +41 -0
- package/dist/lib/components/BlockingConfirmDialog/index.d.ts.map +1 -0
- package/dist/lib/components/ColorSwatchRow/index.d.ts +15 -0
- package/dist/lib/components/ColorSwatchRow/index.d.ts.map +1 -0
- package/dist/lib/components/CreateWorkspaceWizard/ColorSwatchRow/index.d.ts +15 -0
- package/dist/lib/components/CreateWorkspaceWizard/ColorSwatchRow/index.d.ts.map +1 -0
- package/dist/lib/components/CreateWorkspaceWizard/ContentStep/ModeTiles/index.d.ts +11 -0
- package/dist/lib/components/CreateWorkspaceWizard/ContentStep/ModeTiles/index.d.ts.map +1 -0
- package/dist/lib/components/CreateWorkspaceWizard/ContentStep/ResourceSection/index.d.ts +48 -0
- package/dist/lib/components/CreateWorkspaceWizard/ContentStep/ResourceSection/index.d.ts.map +1 -0
- package/dist/lib/components/CreateWorkspaceWizard/ContentStep/index.d.ts +23 -0
- package/dist/lib/components/CreateWorkspaceWizard/ContentStep/index.d.ts.map +1 -0
- package/dist/lib/components/CreateWorkspaceWizard/IdentityFields/index.d.ts +17 -0
- package/dist/lib/components/CreateWorkspaceWizard/IdentityFields/index.d.ts.map +1 -0
- package/dist/lib/components/CreateWorkspaceWizard/MembersStep/MemberRow/index.d.ts +14 -0
- package/dist/lib/components/CreateWorkspaceWizard/MembersStep/MemberRow/index.d.ts.map +1 -0
- package/dist/lib/components/CreateWorkspaceWizard/MembersStep/MemberTypeahead/index.d.ts +15 -0
- package/dist/lib/components/CreateWorkspaceWizard/MembersStep/MemberTypeahead/index.d.ts.map +1 -0
- package/dist/lib/components/CreateWorkspaceWizard/MembersStep/index.d.ts +17 -0
- package/dist/lib/components/CreateWorkspaceWizard/MembersStep/index.d.ts.map +1 -0
- package/dist/lib/components/CreateWorkspaceWizard/Monogram/index.d.ts +17 -0
- package/dist/lib/components/CreateWorkspaceWizard/Monogram/index.d.ts.map +1 -0
- package/dist/lib/components/CreateWorkspaceWizard/SlugField/index.d.ts +23 -0
- package/dist/lib/components/CreateWorkspaceWizard/SlugField/index.d.ts.map +1 -0
- package/dist/lib/components/StatusChip/index.d.ts +9 -0
- package/dist/lib/components/StatusChip/index.d.ts.map +1 -0
- package/dist/lib/components/WorkspaceAvatar/index.d.ts +20 -0
- package/dist/lib/components/WorkspaceAvatar/index.d.ts.map +1 -0
- package/dist/lib/components/WorkspaceCard/MemberStack/MemberListPopover/index.d.ts +9 -0
- package/dist/lib/components/WorkspaceCard/MemberStack/MemberListPopover/index.d.ts.map +1 -0
- package/dist/lib/components/WorkspaceCard/MemberStack/index.d.ts +11 -0
- package/dist/lib/components/WorkspaceCard/MemberStack/index.d.ts.map +1 -0
- package/dist/lib/components/WorkspaceCard/StatusChip/index.d.ts +9 -0
- package/dist/lib/components/WorkspaceCard/StatusChip/index.d.ts.map +1 -0
- package/dist/lib/components/WorkspaceCard/index.d.ts +15 -0
- package/dist/lib/components/WorkspaceCard/index.d.ts.map +1 -0
- package/dist/lib/components/WorkspaceCommands/index.d.ts +8 -0
- package/dist/lib/components/WorkspaceCommands/index.d.ts.map +1 -0
- package/dist/lib/components/WorkspaceContentSettings/AddContentDialog/index.d.ts +26 -0
- package/dist/lib/components/WorkspaceContentSettings/AddContentDialog/index.d.ts.map +1 -0
- package/dist/lib/components/WorkspaceContentSettings/GrantedContentGroup/index.d.ts +21 -0
- package/dist/lib/components/WorkspaceContentSettings/GrantedContentGroup/index.d.ts.map +1 -0
- package/dist/lib/components/WorkspaceContentSettings/GrantedContentRow/index.d.ts +26 -0
- package/dist/lib/components/WorkspaceContentSettings/GrantedContentRow/index.d.ts.map +1 -0
- package/dist/lib/components/WorkspaceContentSettings/RemoveContentDialog/index.d.ts +25 -0
- package/dist/lib/components/WorkspaceContentSettings/RemoveContentDialog/index.d.ts.map +1 -0
- package/dist/lib/components/WorkspaceContentSettings/index.d.ts +25 -0
- package/dist/lib/components/WorkspaceContentSettings/index.d.ts.map +1 -0
- package/dist/lib/components/WorkspaceDangerSettings/DeleteWorkspaceDialog/index.d.ts +22 -0
- package/dist/lib/components/WorkspaceDangerSettings/DeleteWorkspaceDialog/index.d.ts.map +1 -0
- package/dist/lib/components/WorkspaceDangerSettings/index.d.ts +18 -0
- package/dist/lib/components/WorkspaceDangerSettings/index.d.ts.map +1 -0
- package/dist/lib/components/WorkspaceGeneralSettings/index.d.ts +18 -0
- package/dist/lib/components/WorkspaceGeneralSettings/index.d.ts.map +1 -0
- package/dist/lib/components/WorkspaceMembersSettings/MemberDirectorySearch/index.d.ts +18 -0
- package/dist/lib/components/WorkspaceMembersSettings/MemberDirectorySearch/index.d.ts.map +1 -0
- package/dist/lib/components/WorkspaceMembersSettings/MemberListRow/index.d.ts +17 -0
- package/dist/lib/components/WorkspaceMembersSettings/MemberListRow/index.d.ts.map +1 -0
- package/dist/lib/components/WorkspaceMembersSettings/index.d.ts +16 -0
- package/dist/lib/components/WorkspaceMembersSettings/index.d.ts.map +1 -0
- package/dist/lib/components/WorkspaceNav/WorkspaceNavButton/index.d.ts +14 -0
- package/dist/lib/components/WorkspaceNav/WorkspaceNavButton/index.d.ts.map +1 -0
- package/dist/lib/components/WorkspaceNav/WorkspaceSwitcher/index.d.ts +16 -0
- package/dist/lib/components/WorkspaceNav/WorkspaceSwitcher/index.d.ts.map +1 -0
- package/dist/lib/components/WorkspaceNav/index.d.ts +14 -0
- package/dist/lib/components/WorkspaceNav/index.d.ts.map +1 -0
- package/dist/lib/components/WorkspaceSettingsRail/index.d.ts +14 -0
- package/dist/lib/components/WorkspaceSettingsRail/index.d.ts.map +1 -0
- package/dist/lib/components/WorkspaceSettingsTabs/index.d.ts +14 -0
- package/dist/lib/components/WorkspaceSettingsTabs/index.d.ts.map +1 -0
- package/dist/lib/components/WorkspaceSettingsTopBar/index.d.ts +8 -0
- package/dist/lib/components/WorkspaceSettingsTopBar/index.d.ts.map +1 -0
- package/dist/lib/components/WorkspaceShell/NewWorkspaceButton/index.d.ts +7 -0
- package/dist/lib/components/WorkspaceShell/NewWorkspaceButton/index.d.ts.map +1 -0
- package/dist/lib/components/WorkspaceShell/RailTooltip/index.d.ts +22 -0
- package/dist/lib/components/WorkspaceShell/RailTooltip/index.d.ts.map +1 -0
- package/dist/lib/components/WorkspaceShell/WorkspaceRail/index.d.ts +17 -0
- package/dist/lib/components/WorkspaceShell/WorkspaceRail/index.d.ts.map +1 -0
- package/dist/lib/components/WorkspaceShell/WorkspaceSidebarButton/index.d.ts +17 -0
- package/dist/lib/components/WorkspaceShell/WorkspaceSidebarButton/index.d.ts.map +1 -0
- package/dist/lib/components/WorkspaceShell/WorkspaceSwitcher/WorkspaceSwitcherPopover/index.d.ts +26 -0
- package/dist/lib/components/WorkspaceShell/WorkspaceSwitcher/WorkspaceSwitcherPopover/index.d.ts.map +1 -0
- package/dist/lib/components/WorkspaceShell/WorkspaceSwitcher/index.d.ts +17 -0
- package/dist/lib/components/WorkspaceShell/WorkspaceSwitcher/index.d.ts.map +1 -0
- package/dist/lib/components/WorkspaceShell/index.d.ts +16 -0
- package/dist/lib/components/WorkspaceShell/index.d.ts.map +1 -0
- package/dist/lib/components/WorkspaceStats/index.d.ts +9 -0
- package/dist/lib/components/WorkspaceStats/index.d.ts.map +1 -0
- package/dist/lib/components/WorkspaceToolbar/index.d.ts +22 -0
- package/dist/lib/components/WorkspaceToolbar/index.d.ts.map +1 -0
- package/dist/lib/components/WorkspacesEmpty/index.d.ts +18 -0
- package/dist/lib/components/WorkspacesEmpty/index.d.ts.map +1 -0
- package/dist/lib/components/WorkspacesHomePanel/index.d.ts +7 -0
- package/dist/lib/components/WorkspacesHomePanel/index.d.ts.map +1 -0
- package/dist/lib/components/WorkspacesNavSection/index.d.ts +9 -0
- package/dist/lib/components/WorkspacesNavSection/index.d.ts.map +1 -0
- package/dist/lib/components/WorkspacesSkeleton/index.d.ts +36 -0
- package/dist/lib/components/WorkspacesSkeleton/index.d.ts.map +1 -0
- package/dist/lib/components/WorkspacesTable/index.d.ts +12 -0
- package/dist/lib/components/WorkspacesTable/index.d.ts.map +1 -0
- package/dist/lib/domain/isActiveWorkspace/index.d.ts +9 -0
- package/dist/lib/domain/isActiveWorkspace/index.d.ts.map +1 -0
- package/dist/lib/domain/isActiveWorkspace/index.js +9 -0
- package/dist/lib/domain/permissions/index.d.ts +7 -0
- package/dist/lib/domain/permissions/index.d.ts.map +1 -0
- package/dist/lib/domain/permissions/index.js +6 -0
- package/dist/lib/domain/resourceSelection/index.d.ts +18 -0
- package/dist/lib/domain/resourceSelection/index.d.ts.map +1 -0
- package/dist/lib/domain/resourceSelection/index.js +49 -0
- package/dist/lib/domain/slug/index.d.ts +25 -0
- package/dist/lib/domain/slug/index.d.ts.map +1 -0
- package/dist/lib/domain/slug/index.js +45 -0
- package/dist/lib/domain/types/wizard/index.d.ts +126 -0
- package/dist/lib/domain/types/wizard/index.d.ts.map +1 -0
- package/dist/lib/domain/types/wizard/index.js +21 -0
- package/dist/lib/domain/types/workspace/index.d.ts +42 -0
- package/dist/lib/domain/types/workspace/index.d.ts.map +1 -0
- package/dist/lib/domain/types/workspace/index.js +1 -0
- package/dist/lib/domain/workspaceLimits/index.d.ts +23 -0
- package/dist/lib/domain/workspaceLimits/index.d.ts.map +1 -0
- package/dist/lib/domain/workspaceLimits/index.js +22 -0
- package/dist/lib/hooks/useBasicsSchema/index.d.ts +14 -0
- package/dist/lib/hooks/useBasicsSchema/index.d.ts.map +1 -0
- package/dist/lib/hooks/useResourceSelection/index.d.ts +21 -0
- package/dist/lib/hooks/useResourceSelection/index.d.ts.map +1 -0
- package/dist/lib/hooks/useSlug/index.d.ts +28 -0
- package/dist/lib/hooks/useSlug/index.d.ts.map +1 -0
- package/dist/lib/hooks/useWizard/index.d.ts +57 -0
- package/dist/lib/hooks/useWizard/index.d.ts.map +1 -0
- package/dist/lib/hooks/useWorkspaceProfileSchema/index.d.ts +13 -0
- package/dist/lib/hooks/useWorkspaceProfileSchema/index.d.ts.map +1 -0
- package/dist/lib/infrastructure/buildCreateWorkspaceBody/index.d.ts +12 -0
- package/dist/lib/infrastructure/buildCreateWorkspaceBody/index.d.ts.map +1 -0
- package/dist/lib/infrastructure/buildCreateWorkspaceBody/index.js +27 -0
- package/dist/lib/infrastructure/httpWorkspaceGateway/index.d.ts +10 -0
- package/dist/lib/infrastructure/httpWorkspaceGateway/index.d.ts.map +1 -0
- package/dist/lib/infrastructure/httpWorkspaceGateway/index.js +149 -0
- package/dist/lib/infrastructure/isConflict/index.d.ts +8 -0
- package/dist/lib/infrastructure/isConflict/index.d.ts.map +1 -0
- package/dist/lib/infrastructure/isConflict/index.js +12 -0
- package/dist/lib/infrastructure/workspaceGateway/index.d.ts +90 -0
- package/dist/lib/infrastructure/workspaceGateway/index.d.ts.map +1 -0
- package/dist/lib/infrastructure/workspaceGateway/index.js +1 -0
- package/dist/lib/infrastructure/workspaceMapper/index.d.ts +28 -0
- package/dist/lib/infrastructure/workspaceMapper/index.d.ts.map +1 -0
- package/dist/lib/infrastructure/workspaceMapper/index.js +36 -0
- package/dist/lib/pages/CreateWorkspacePage/index.d.ts +7 -0
- package/dist/lib/pages/CreateWorkspacePage/index.d.ts.map +1 -0
- package/dist/lib/pages/WorkspaceSettingsPage/index.d.ts +12 -0
- package/dist/lib/pages/WorkspaceSettingsPage/index.d.ts.map +1 -0
- package/dist/lib/pages/WorkspacesPage/index.d.ts +7 -0
- package/dist/lib/pages/WorkspacesPage/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/BlockingConfirmDialog/index.d.ts +41 -0
- package/dist/lib/presentation/components/BlockingConfirmDialog/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/BlockingConfirmDialog/index.js +17 -0
- package/dist/lib/presentation/components/ColorSwatchRow/index.d.ts +22 -0
- package/dist/lib/presentation/components/ColorSwatchRow/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/ColorSwatchRow/index.js +70 -0
- package/dist/lib/presentation/components/CreateWorkspaceWizard/ContentStep/ModeTiles/index.d.ts +11 -0
- package/dist/lib/presentation/components/CreateWorkspaceWizard/ContentStep/ModeTiles/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/CreateWorkspaceWizard/ContentStep/ModeTiles/index.js +47 -0
- package/dist/lib/presentation/components/CreateWorkspaceWizard/ContentStep/ResourceSection/index.d.ts +48 -0
- package/dist/lib/presentation/components/CreateWorkspaceWizard/ContentStep/ResourceSection/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/CreateWorkspaceWizard/ContentStep/ResourceSection/index.js +32 -0
- package/dist/lib/presentation/components/CreateWorkspaceWizard/ContentStep/index.d.ts +23 -0
- package/dist/lib/presentation/components/CreateWorkspaceWizard/ContentStep/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/CreateWorkspaceWizard/ContentStep/index.js +128 -0
- package/dist/lib/presentation/components/CreateWorkspaceWizard/IdentityFields/index.d.ts +17 -0
- package/dist/lib/presentation/components/CreateWorkspaceWizard/IdentityFields/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/CreateWorkspaceWizard/IdentityFields/index.js +70 -0
- package/dist/lib/presentation/components/CreateWorkspaceWizard/MembersStep/MemberRow/index.d.ts +14 -0
- package/dist/lib/presentation/components/CreateWorkspaceWizard/MembersStep/MemberRow/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/CreateWorkspaceWizard/MembersStep/MemberRow/index.js +25 -0
- package/dist/lib/presentation/components/CreateWorkspaceWizard/MembersStep/MemberTypeahead/index.d.ts +15 -0
- package/dist/lib/presentation/components/CreateWorkspaceWizard/MembersStep/MemberTypeahead/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/CreateWorkspaceWizard/MembersStep/MemberTypeahead/index.js +112 -0
- package/dist/lib/presentation/components/CreateWorkspaceWizard/MembersStep/index.d.ts +17 -0
- package/dist/lib/presentation/components/CreateWorkspaceWizard/MembersStep/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/CreateWorkspaceWizard/MembersStep/index.js +35 -0
- package/dist/lib/presentation/components/CreateWorkspaceWizard/Monogram/index.d.ts +17 -0
- package/dist/lib/presentation/components/CreateWorkspaceWizard/Monogram/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/CreateWorkspaceWizard/Monogram/index.js +11 -0
- package/dist/lib/presentation/components/CreateWorkspaceWizard/SlugField/index.d.ts +23 -0
- package/dist/lib/presentation/components/CreateWorkspaceWizard/SlugField/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/CreateWorkspaceWizard/SlugField/index.js +68 -0
- package/dist/lib/presentation/components/StatusChip/index.d.ts +9 -0
- package/dist/lib/presentation/components/StatusChip/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/StatusChip/index.js +23 -0
- package/dist/lib/presentation/components/WorkspaceAvatar/index.d.ts +20 -0
- package/dist/lib/presentation/components/WorkspaceAvatar/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/WorkspaceAvatar/index.js +10 -0
- package/dist/lib/presentation/components/WorkspaceCommands/index.d.ts +8 -0
- package/dist/lib/presentation/components/WorkspaceCommands/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/WorkspaceCommands/index.js +34 -0
- package/dist/lib/presentation/components/WorkspaceContentSettings/AddContentDialog/index.d.ts +26 -0
- package/dist/lib/presentation/components/WorkspaceContentSettings/AddContentDialog/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/WorkspaceContentSettings/AddContentDialog/index.js +89 -0
- package/dist/lib/presentation/components/WorkspaceContentSettings/GrantedContentGroup/index.d.ts +21 -0
- package/dist/lib/presentation/components/WorkspaceContentSettings/GrantedContentGroup/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/WorkspaceContentSettings/GrantedContentGroup/index.js +11 -0
- package/dist/lib/presentation/components/WorkspaceContentSettings/GrantedContentRow/index.d.ts +26 -0
- package/dist/lib/presentation/components/WorkspaceContentSettings/GrantedContentRow/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/WorkspaceContentSettings/GrantedContentRow/index.js +31 -0
- package/dist/lib/presentation/components/WorkspaceContentSettings/RemoveContentDialog/index.d.ts +25 -0
- package/dist/lib/presentation/components/WorkspaceContentSettings/RemoveContentDialog/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/WorkspaceContentSettings/RemoveContentDialog/index.js +48 -0
- package/dist/lib/presentation/components/WorkspaceContentSettings/index.d.ts +25 -0
- package/dist/lib/presentation/components/WorkspaceContentSettings/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/WorkspaceContentSettings/index.js +173 -0
- package/dist/lib/presentation/components/WorkspaceDangerSettings/DeleteWorkspaceDialog/index.d.ts +22 -0
- package/dist/lib/presentation/components/WorkspaceDangerSettings/DeleteWorkspaceDialog/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/WorkspaceDangerSettings/DeleteWorkspaceDialog/index.js +52 -0
- package/dist/lib/presentation/components/WorkspaceDangerSettings/index.d.ts +18 -0
- package/dist/lib/presentation/components/WorkspaceDangerSettings/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/WorkspaceDangerSettings/index.js +150 -0
- package/dist/lib/presentation/components/WorkspaceGeneralSettings/WorkspaceIdField/index.d.ts +19 -0
- package/dist/lib/presentation/components/WorkspaceGeneralSettings/WorkspaceIdField/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/WorkspaceGeneralSettings/WorkspaceIdField/index.js +72 -0
- package/dist/lib/presentation/components/WorkspaceGeneralSettings/index.d.ts +18 -0
- package/dist/lib/presentation/components/WorkspaceGeneralSettings/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/WorkspaceGeneralSettings/index.js +131 -0
- package/dist/lib/presentation/components/WorkspaceMembersSettings/MemberDirectorySearch/index.d.ts +18 -0
- package/dist/lib/presentation/components/WorkspaceMembersSettings/MemberDirectorySearch/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/WorkspaceMembersSettings/MemberDirectorySearch/index.js +65 -0
- package/dist/lib/presentation/components/WorkspaceMembersSettings/MemberListRow/index.d.ts +17 -0
- package/dist/lib/presentation/components/WorkspaceMembersSettings/MemberListRow/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/WorkspaceMembersSettings/MemberListRow/index.js +22 -0
- package/dist/lib/presentation/components/WorkspaceMembersSettings/index.d.ts +16 -0
- package/dist/lib/presentation/components/WorkspaceMembersSettings/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/WorkspaceMembersSettings/index.js +127 -0
- package/dist/lib/presentation/components/WorkspaceNav/WorkspaceNavButton/index.d.ts +14 -0
- package/dist/lib/presentation/components/WorkspaceNav/WorkspaceNavButton/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/WorkspaceNav/WorkspaceNavButton/index.js +30 -0
- package/dist/lib/presentation/components/WorkspaceNav/WorkspaceSwitcher/index.d.ts +16 -0
- package/dist/lib/presentation/components/WorkspaceNav/WorkspaceSwitcher/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/WorkspaceNav/WorkspaceSwitcher/index.js +81 -0
- package/dist/lib/presentation/components/WorkspaceNav/index.d.ts +14 -0
- package/dist/lib/presentation/components/WorkspaceNav/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/WorkspaceNav/index.js +51 -0
- package/dist/lib/presentation/components/WorkspaceSettingsTabs/index.d.ts +14 -0
- package/dist/lib/presentation/components/WorkspaceSettingsTabs/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/WorkspaceSettingsTabs/index.js +66 -0
- package/dist/lib/presentation/components/WorkspaceSettingsTopBar/index.d.ts +8 -0
- package/dist/lib/presentation/components/WorkspaceSettingsTopBar/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/WorkspaceSettingsTopBar/index.js +57 -0
- package/dist/lib/presentation/components/WorkspaceShell/index.d.ts +16 -0
- package/dist/lib/presentation/components/WorkspaceShell/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/WorkspaceShell/index.js +100 -0
- package/dist/lib/presentation/components/WorkspaceStats/index.d.ts +9 -0
- package/dist/lib/presentation/components/WorkspaceStats/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/WorkspaceStats/index.js +48 -0
- package/dist/lib/presentation/components/WorkspaceToolbar/index.d.ts +22 -0
- package/dist/lib/presentation/components/WorkspaceToolbar/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/WorkspaceToolbar/index.js +73 -0
- package/dist/lib/presentation/components/WorkspacesEmpty/index.d.ts +18 -0
- package/dist/lib/presentation/components/WorkspacesEmpty/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/WorkspacesEmpty/index.js +42 -0
- package/dist/lib/presentation/components/WorkspacesHomePanel/index.d.ts +7 -0
- package/dist/lib/presentation/components/WorkspacesHomePanel/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/WorkspacesHomePanel/index.js +50 -0
- package/dist/lib/presentation/components/WorkspacesNavSection/index.d.ts +15 -0
- package/dist/lib/presentation/components/WorkspacesNavSection/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/WorkspacesNavSection/index.js +76 -0
- package/dist/lib/presentation/components/WorkspacesSkeleton/index.d.ts +49 -0
- package/dist/lib/presentation/components/WorkspacesSkeleton/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/WorkspacesSkeleton/index.js +94 -0
- package/dist/lib/presentation/components/WorkspacesTable/index.d.ts +12 -0
- package/dist/lib/presentation/components/WorkspacesTable/index.d.ts.map +1 -0
- package/dist/lib/presentation/components/WorkspacesTable/index.js +58 -0
- package/dist/lib/presentation/currentWorkspace/index.d.ts +17 -0
- package/dist/lib/presentation/currentWorkspace/index.d.ts.map +1 -0
- package/dist/lib/presentation/currentWorkspace/index.js +44 -0
- package/dist/lib/presentation/hooks/useBasicsSchema/index.d.ts +17 -0
- package/dist/lib/presentation/hooks/useBasicsSchema/index.d.ts.map +1 -0
- package/dist/lib/presentation/hooks/useBasicsSchema/index.js +71 -0
- package/dist/lib/presentation/hooks/useComboboxList/index.d.ts +44 -0
- package/dist/lib/presentation/hooks/useComboboxList/index.d.ts.map +1 -0
- package/dist/lib/presentation/hooks/useComboboxList/index.js +62 -0
- package/dist/lib/presentation/hooks/useRedirectNotice/index.d.ts +24 -0
- package/dist/lib/presentation/hooks/useRedirectNotice/index.d.ts.map +1 -0
- package/dist/lib/presentation/hooks/useRedirectNotice/index.js +37 -0
- package/dist/lib/presentation/hooks/useResourceSelection/index.d.ts +21 -0
- package/dist/lib/presentation/hooks/useResourceSelection/index.d.ts.map +1 -0
- package/dist/lib/presentation/hooks/useResourceSelection/index.js +16 -0
- package/dist/lib/presentation/hooks/useSlug/index.d.ts +28 -0
- package/dist/lib/presentation/hooks/useSlug/index.d.ts.map +1 -0
- package/dist/lib/presentation/hooks/useSlug/index.js +18 -0
- package/dist/lib/presentation/hooks/useWizard/index.d.ts +60 -0
- package/dist/lib/presentation/hooks/useWizard/index.d.ts.map +1 -0
- package/dist/lib/presentation/hooks/useWizard/index.js +93 -0
- package/dist/lib/presentation/hooks/useWorkspaceProfileSchema/index.d.ts +16 -0
- package/dist/lib/presentation/hooks/useWorkspaceProfileSchema/index.d.ts.map +1 -0
- package/dist/lib/presentation/hooks/useWorkspaceProfileSchema/index.js +53 -0
- package/dist/lib/presentation/pages/CreateWorkspacePage/index.d.ts +7 -0
- package/dist/lib/presentation/pages/CreateWorkspacePage/index.d.ts.map +1 -0
- package/dist/lib/presentation/pages/CreateWorkspacePage/index.js +248 -0
- package/dist/lib/presentation/pages/WorkspaceSettingsPage/index.d.ts +12 -0
- package/dist/lib/presentation/pages/WorkspaceSettingsPage/index.d.ts.map +1 -0
- package/dist/lib/presentation/pages/WorkspaceSettingsPage/index.js +69 -0
- package/dist/lib/presentation/pages/WorkspacesPage/index.d.ts +7 -0
- package/dist/lib/presentation/pages/WorkspacesPage/index.d.ts.map +1 -0
- package/dist/lib/presentation/pages/WorkspacesPage/index.js +112 -0
- package/dist/lib/presentation/slots/workspaceSlots/index.d.ts +101 -0
- package/dist/lib/presentation/slots/workspaceSlots/index.d.ts.map +1 -0
- package/dist/lib/presentation/slots/workspaceSlots/index.js +25 -0
- package/dist/lib/presentation/workspacesPlugin/index.d.ts +31 -0
- package/dist/lib/presentation/workspacesPlugin/index.d.ts.map +1 -0
- package/dist/lib/presentation/workspacesPlugin/index.js +151 -0
- package/dist/lib/slots/workspaceSlots/index.d.ts +101 -0
- package/dist/lib/slots/workspaceSlots/index.d.ts.map +1 -0
- package/dist/lib/types/wizard/index.d.ts +119 -0
- package/dist/lib/types/wizard/index.d.ts.map +1 -0
- package/dist/lib/types/workspace/index.d.ts +42 -0
- package/dist/lib/types/workspace/index.d.ts.map +1 -0
- package/dist/lib/utils/buildCreateWorkspaceBody/index.d.ts +12 -0
- package/dist/lib/utils/buildCreateWorkspaceBody/index.d.ts.map +1 -0
- package/dist/lib/utils/currentWorkspace/index.d.ts +17 -0
- package/dist/lib/utils/currentWorkspace/index.d.ts.map +1 -0
- package/dist/lib/utils/isActiveWorkspace/index.d.ts +9 -0
- package/dist/lib/utils/isActiveWorkspace/index.d.ts.map +1 -0
- package/dist/lib/utils/isConflict/index.d.ts +8 -0
- package/dist/lib/utils/isConflict/index.d.ts.map +1 -0
- package/dist/lib/utils/permissions/index.d.ts +7 -0
- package/dist/lib/utils/permissions/index.d.ts.map +1 -0
- package/dist/lib/utils/radioGroupKeydown/index.d.ts +15 -0
- package/dist/lib/utils/radioGroupKeydown/index.d.ts.map +1 -0
- package/dist/lib/utils/resourceSelection/index.d.ts +18 -0
- package/dist/lib/utils/resourceSelection/index.d.ts.map +1 -0
- package/dist/lib/utils/workspacesPlugin/index.d.ts +31 -0
- package/dist/lib/utils/workspacesPlugin/index.d.ts.map +1 -0
- package/package.json +48 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The rail's bottom action: a dashed 40×40 button that routes to the create
|
|
3
|
+
* wizard. Dashed + muted to read as *additive* — visually distinct from the
|
|
4
|
+
* solid section buttons above it. Pinned to the bottom by the rail's spacer.
|
|
5
|
+
*/
|
|
6
|
+
export declare function NewWorkspaceButton(): import("react").JSX.Element;
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lib/components/WorkspaceShell/NewWorkspaceButton/index.tsx"],"names":[],"mappings":"AAaA;;;;GAIG;AACH,wBAAgB,kBAAkB,gCAiBjC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
type RailTooltipProps = {
|
|
3
|
+
/** Label text shown in the flyout (also the trigger's `aria-label`). */
|
|
4
|
+
label: string;
|
|
5
|
+
/**
|
|
6
|
+
* Hide the tooltip even on hover — used by the switcher so its tooltip
|
|
7
|
+
* doesn't compete with its open popover.
|
|
8
|
+
*/
|
|
9
|
+
suppressed?: boolean;
|
|
10
|
+
/** The rail trigger (a `<button>`); the tooltip reveals on its hover/focus. */
|
|
11
|
+
children: ReactNode;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Wraps a rail item with the spec's fly-out label: a `--primary` chip that
|
|
15
|
+
* slides out to the right on hover/focus, with a small rotated caret. The
|
|
16
|
+
* tooltip is decorative (`aria-hidden`) — the label is duplicated in the
|
|
17
|
+
* trigger's `aria-label`, so screen readers get it without the visual. Motion
|
|
18
|
+
* is dropped under `prefers-reduced-motion`.
|
|
19
|
+
*/
|
|
20
|
+
export declare function RailTooltip({ label, suppressed, children }: RailTooltipProps): import("react").JSX.Element;
|
|
21
|
+
export {};
|
|
22
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lib/components/WorkspaceShell/RailTooltip/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,KAAK,gBAAgB,GAAG;IACpB,wEAAwE;IACxE,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,+EAA+E;IAC/E,QAAQ,EAAE,SAAS,CAAC;CACvB,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,EACxB,KAAK,EACL,UAAkB,EAClB,QAAQ,EACX,EAAE,gBAAgB,+BAuBlB"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { Workspace } from '../../../types/workspace';
|
|
2
|
+
type WorkspaceRailProps = {
|
|
3
|
+
/** The workspace currently open. */
|
|
4
|
+
current: Workspace;
|
|
5
|
+
/** Every workspace the switcher can jump to. */
|
|
6
|
+
workspaces: Workspace[];
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* The workspace's compact left icon rail: the workspace switcher up top, a
|
|
10
|
+
* divider, then the section nav ({@link WORKSPACE_SIDEBAR_SLOT}, e.g. Content /
|
|
11
|
+
* Media / Insights / Settings). Creating a workspace lives in the switcher
|
|
12
|
+
* popover, so the rail carries no bottom action. Sticky under the shell's 48px
|
|
13
|
+
* navbar (nested chrome); off-white so it reads as chrome, not canvas.
|
|
14
|
+
*/
|
|
15
|
+
export declare function WorkspaceRail({ current, workspaces }: WorkspaceRailProps): import("react").JSX.Element;
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lib/components/WorkspaceShell/WorkspaceRail/index.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAe1D,KAAK,kBAAkB,GAAG;IACtB,oCAAoC;IACpC,OAAO,EAAE,SAAS,CAAC;IACnB,gDAAgD;IAChD,UAAU,EAAE,SAAS,EAAE,CAAC;CAC3B,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,kBAAkB,+BAkBxE"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { WorkspaceNavItem } from '../../../slots/workspaceSlots';
|
|
2
|
+
type WorkspaceSidebarButtonProps = {
|
|
3
|
+
/** The rail entry to render. */
|
|
4
|
+
item: WorkspaceNavItem;
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* Renders a single section as a 40×40 icon button. The item's `to` is relative
|
|
8
|
+
* to the workspace, so this resolves it against the active `:id`, derives active
|
|
9
|
+
* state from the current location, and navigates on click. At rest it's a muted
|
|
10
|
+
* icon; hover tints the background a faint neutral (`--accent/60`); active fills
|
|
11
|
+
* it the fuller neutral `--accent` with a solid black (`--foreground`) marker bar
|
|
12
|
+
* bleeding off the rail's left edge. Transitions colors only — no transform on
|
|
13
|
+
* press (Ortha rule).
|
|
14
|
+
*/
|
|
15
|
+
export declare function WorkspaceSidebarButton({ item }: WorkspaceSidebarButtonProps): import("react").JSX.Element | null;
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lib/components/WorkspaceShell/WorkspaceSidebarButton/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAGtE,KAAK,2BAA2B,GAAG;IAC/B,gCAAgC;IAChC,IAAI,EAAE,gBAAgB,CAAC;CAC1B,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,IAAI,EAAE,EAAE,2BAA2B,sCA6C3E"}
|
package/dist/lib/components/WorkspaceShell/WorkspaceSwitcher/WorkspaceSwitcherPopover/index.d.ts
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { Workspace } from '../../../../types/workspace';
|
|
2
|
+
type WorkspaceSwitcherPopoverProps = {
|
|
3
|
+
/** The workspace currently open (gets the trailing check). */
|
|
4
|
+
current: Workspace;
|
|
5
|
+
/** Every workspace the user can switch to. */
|
|
6
|
+
workspaces: Workspace[];
|
|
7
|
+
/** Closes the popover (outside click, Esc, or after navigating). */
|
|
8
|
+
onClose: () => void;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* The switcher's popover: a fixed panel anchored just right of the rail, listing
|
|
12
|
+
* every workspace (switching navigates to its base, which redirects to its first
|
|
13
|
+
* section) over a "New workspace" footer. A transparent full-viewport backdrop
|
|
14
|
+
* closes it on outside click; `Esc` closes too. Enter motion (fade + slide) is
|
|
15
|
+
* driven by an `entered` flag flipped after mount, and dropped under
|
|
16
|
+
* `prefers-reduced-motion`.
|
|
17
|
+
*
|
|
18
|
+
* Rendered through a **portal to `document.body`**: the rail is `sticky` (a
|
|
19
|
+
* stacking context), so an inline `fixed` panel's `z-index` would be trapped
|
|
20
|
+
* inside it and a positioned content element later in the DOM (e.g. the content
|
|
21
|
+
* sidebar's active item) would paint over it. Portaling lifts the panel to the
|
|
22
|
+
* top level so it always sits above page content.
|
|
23
|
+
*/
|
|
24
|
+
export declare function WorkspaceSwitcherPopover({ current, workspaces, onClose }: WorkspaceSwitcherPopoverProps): import("react").ReactPortal;
|
|
25
|
+
export {};
|
|
26
|
+
//# sourceMappingURL=index.d.ts.map
|
package/dist/lib/components/WorkspaceShell/WorkspaceSwitcher/WorkspaceSwitcherPopover/index.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/components/WorkspaceShell/WorkspaceSwitcher/WorkspaceSwitcherPopover/index.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAmB7D,KAAK,6BAA6B,GAAG;IACjC,8DAA8D;IAC9D,OAAO,EAAE,SAAS,CAAC;IACnB,8CAA8C;IAC9C,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,oEAAoE;IACpE,OAAO,EAAE,MAAM,IAAI,CAAC;CACvB,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,wBAAgB,wBAAwB,CAAC,EACrC,OAAO,EACP,UAAU,EACV,OAAO,EACV,EAAE,6BAA6B,+BAoH/B"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { Workspace } from '../../../types/workspace';
|
|
2
|
+
type WorkspaceSwitcherProps = {
|
|
3
|
+
/** The workspace currently open. */
|
|
4
|
+
current: Workspace;
|
|
5
|
+
/** Every workspace the switcher can jump to. */
|
|
6
|
+
workspaces: Workspace[];
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* The rail header: a 40×40 accent-tinted chip (the workspace's initials) with a
|
|
10
|
+
* caret badge clipped to its corner, signalling "click to switch". Hovering
|
|
11
|
+
* lifts it 1px — the only transform allowed in the rail. Clicking toggles the
|
|
12
|
+
* {@link WorkspaceSwitcherPopover}; its tooltip is suppressed while the popover
|
|
13
|
+
* is open.
|
|
14
|
+
*/
|
|
15
|
+
export declare function WorkspaceSwitcher({ current, workspaces }: WorkspaceSwitcherProps): import("react").JSX.Element;
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lib/components/WorkspaceShell/WorkspaceSwitcher/index.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAU1D,KAAK,sBAAsB,GAAG;IAC1B,oCAAoC;IACpC,OAAO,EAAE,SAAS,CAAC;IACnB,gDAAgD;IAChD,UAAU,EAAE,SAAS,EAAE,CAAC;CAC3B,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,EAC9B,OAAO,EACP,UAAU,EACb,EAAE,sBAAsB,+BAoCxB"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The workspace shell — the layout behind `/workspaces/:id/*`. It resolves the
|
|
3
|
+
* `:id` param against the workspaces list, **injects the per-workspace nav into
|
|
4
|
+
* the app sidebar** (via `useSidebarContent`), and renders the content area
|
|
5
|
+
* whose nested `<Routes>` are built from {@link WORKSPACE_ROUTE_SLOT}. Landing
|
|
6
|
+
* on the workspace base redirects to the first section. The resolved workspace
|
|
7
|
+
* is published via {@link CurrentWorkspaceProvider} so inner pages read it
|
|
8
|
+
* without re-fetching.
|
|
9
|
+
*
|
|
10
|
+
* Feature plugins (Content Library, Media Library, Insights) don't mount their
|
|
11
|
+
* own top-level routes — they contribute a route plus a nav entry or section to
|
|
12
|
+
* the slots the sidebar reads, which is what keeps them strictly inside a
|
|
13
|
+
* workspace.
|
|
14
|
+
*/
|
|
15
|
+
export declare function WorkspaceShell(): import("react").JSX.Element;
|
|
16
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/WorkspaceShell/index.tsx"],"names":[],"mappings":"AA2CA;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,gCA+E7B"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The home dashboard's workspace stat tiles: active-workspace count, the number
|
|
3
|
+
* of distinct members across all workspaces, and the number of distinct content
|
|
4
|
+
* types granted — all derived from the real `GET /api/workspaces` payload (no
|
|
5
|
+
* separate metrics API yet). Rendered as a `display: contents` group so the
|
|
6
|
+
* three tiles flow directly into the home page's stat grid.
|
|
7
|
+
*/
|
|
8
|
+
export declare function WorkspaceStats(): import("react").JSX.Element;
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/WorkspaceStats/index.tsx"],"names":[],"mappings":"AA6BA;;;;;;GAMG;AACH,wBAAgB,cAAc,gCA4C7B"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/** The status the list is filtered by. `Active` is the default view. */
|
|
2
|
+
export type StatusFilter = 'All' | 'Active' | 'Archived';
|
|
3
|
+
/** The default status filter. */
|
|
4
|
+
export declare const DEFAULT_STATUS: StatusFilter;
|
|
5
|
+
type WorkspaceToolbarProps = {
|
|
6
|
+
search: string;
|
|
7
|
+
onSearchChange: (value: string) => void;
|
|
8
|
+
status: StatusFilter;
|
|
9
|
+
onStatusChange: (value: StatusFilter) => void;
|
|
10
|
+
/** How many workspaces fall under each status (for the chip counts). */
|
|
11
|
+
counts: Record<StatusFilter, number>;
|
|
12
|
+
shown: number;
|
|
13
|
+
total: number;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* The list toolbar: a search box, the status filter as a segmented chip group
|
|
17
|
+
* (All / Active / Archived, each badged with its count), and a live
|
|
18
|
+
* "{shown} of {total}" count. Wraps to multiple rows on narrow viewports.
|
|
19
|
+
*/
|
|
20
|
+
export declare function WorkspaceToolbar({ search, onSearchChange, status, onStatusChange, counts, shown, total }: WorkspaceToolbarProps): import("react").JSX.Element;
|
|
21
|
+
export {};
|
|
22
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/WorkspaceToolbar/index.tsx"],"names":[],"mappings":"AAWA,wEAAwE;AACxE,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEzD,iCAAiC;AACjC,eAAO,MAAM,cAAc,EAAE,YAAuB,CAAC;AAoCrD,KAAK,qBAAqB,GAAG;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,MAAM,EAAE,YAAY,CAAC;IACrB,cAAc,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IAC9C,wEAAwE;IACxE,MAAM,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,EAC7B,MAAM,EACN,cAAc,EACd,MAAM,EACN,cAAc,EACd,MAAM,EACN,KAAK,EACL,KAAK,EACR,EAAE,qBAAqB,+BAoDvB"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
type WorkspacesEmptyProps = {
|
|
2
|
+
/** Whether a search or non-default filter is currently narrowing the list. */
|
|
3
|
+
filtered: boolean;
|
|
4
|
+
/** Whether the user may create a workspace (gates the create CTA). */
|
|
5
|
+
canCreate: boolean;
|
|
6
|
+
/** Resets the search and status filter back to their defaults. */
|
|
7
|
+
onClear: () => void;
|
|
8
|
+
/** Opens the create-workspace flow. */
|
|
9
|
+
onCreate: () => void;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* The empty state for the grid. When filters are active it offers to clear
|
|
13
|
+
* them; otherwise it invites creating the first workspace — but only when the
|
|
14
|
+
* user holds `workspaces:create`.
|
|
15
|
+
*/
|
|
16
|
+
export declare function WorkspacesEmpty({ filtered, canCreate, onClear, onCreate }: WorkspacesEmptyProps): import("react").JSX.Element;
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/WorkspacesEmpty/index.tsx"],"names":[],"mappings":"AA0CA,KAAK,oBAAoB,GAAG;IACxB,8EAA8E;IAC9E,QAAQ,EAAE,OAAO,CAAC;IAClB,sEAAsE;IACtE,SAAS,EAAE,OAAO,CAAC;IACnB,kEAAkE;IAClE,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,uCAAuC;IACvC,QAAQ,EAAE,MAAM,IAAI,CAAC;CACxB,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,EAC5B,QAAQ,EACR,SAAS,EACT,OAAO,EACP,QAAQ,EACX,EAAE,oBAAoB,+BAwCtB"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The home dashboard's Workspaces panel: a preview list of the active
|
|
3
|
+
* workspaces (each a link into its shell) with a "View all" link to the full
|
|
4
|
+
* list. Backed by the real `GET /api/workspaces`.
|
|
5
|
+
*/
|
|
6
|
+
export declare function WorkspacesHomePanel(): import("react").JSX.Element;
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/WorkspacesHomePanel/index.tsx"],"names":[],"mappings":"AA2CA;;;;GAIG;AACH,wBAAgB,mBAAmB,gCA+ElC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The "Workspaces" quick-list in the global sidebar: the active workspaces as
|
|
3
|
+
* direct links, so a member can jump into one without the Workspaces list page.
|
|
4
|
+
* Contributed to the shell's `SIDEBAR_SECTION_SLOT` by `workspaces-admin`.
|
|
5
|
+
* Renders nothing while loading or when there are no active workspaces, so it
|
|
6
|
+
* never shows an empty section.
|
|
7
|
+
*/
|
|
8
|
+
export declare function WorkspacesNavSection(): import("react").JSX.Element | null;
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/WorkspacesNavSection/index.tsx"],"names":[],"mappings":"AA2DA;;;;;;GAMG;AACH,wBAAgB,oBAAoB,uCA0CnC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The table placeholder shown while {@link useWorkspaces} resolves. Drops into
|
|
3
|
+
* the page body in place of the real table (header + toolbar stay live), so it
|
|
4
|
+
* owns the single `role="status"` announcement; the rows themselves are
|
|
5
|
+
* `aria-hidden`.
|
|
6
|
+
*/
|
|
7
|
+
export declare function WorkspacesTableSkeleton({ count }: {
|
|
8
|
+
count?: number;
|
|
9
|
+
}): import("react").JSX.Element;
|
|
10
|
+
/**
|
|
11
|
+
* Full-page placeholder for the lazy-route `Suspense` fallback — before
|
|
12
|
+
* {@link WorkspacesPage} mounts there is no header or toolbar yet, so this
|
|
13
|
+
* sketches the whole page (header, toolbar, table) to hold the layout steady
|
|
14
|
+
* while the chunk loads. Reuses {@link WorkspacesTableSkeleton} for the body.
|
|
15
|
+
*/
|
|
16
|
+
export declare function WorkspacesPageSkeleton(): import("react").JSX.Element;
|
|
17
|
+
/**
|
|
18
|
+
* Placeholder for the workspace shell's content area — shown both as the
|
|
19
|
+
* lazy-route `Suspense` fallback and while {@link useWorkspaces} resolves inside
|
|
20
|
+
* the shell (the per-workspace nav lives in the app sidebar, injected once the
|
|
21
|
+
* workspace resolves). Owns the single `role="status"` announcement.
|
|
22
|
+
*/
|
|
23
|
+
export declare function WorkspaceShellSkeleton(): import("react").JSX.Element;
|
|
24
|
+
/**
|
|
25
|
+
* Lazy-route `Suspense` fallback for {@link CreateWorkspacePage}. Wraps the
|
|
26
|
+
* shared {@link WizardPageSkeleton} so the `sr-only` status stays localized.
|
|
27
|
+
*/
|
|
28
|
+
export declare function CreateWorkspacePageSkeleton(): import("react").JSX.Element;
|
|
29
|
+
/**
|
|
30
|
+
* Section placeholder shown while {@link useContentTypes} resolves in the
|
|
31
|
+
* create-workspace wizard's "specific content" mode — two resource sections
|
|
32
|
+
* (collections and pages). Replaces the inline spinner so the step keeps its
|
|
33
|
+
* shape. Owns a single `role="status"`; the sections are `aria-hidden`.
|
|
34
|
+
*/
|
|
35
|
+
export declare function ContentTypesSkeleton(): import("react").JSX.Element;
|
|
36
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/WorkspacesSkeleton/index.tsx"],"names":[],"mappings":"AAsCA;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,EAAE,KAAS,EAAE,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,+BAexE;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,gCAoBrC;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,gCAcrC;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,gCAI1C;AAuBD;;;;;GAKG;AACH,wBAAgB,oBAAoB,gCAcnC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Workspace } from '../../types/workspace';
|
|
2
|
+
/**
|
|
3
|
+
* The workspaces list as a table (mirroring the members table): each row is a
|
|
4
|
+
* workspace — avatar + name + description, its member and content-type counts,
|
|
5
|
+
* and a status pill. The whole row opens the workspace (its shell redirects to
|
|
6
|
+
* the first section); the name is a real link for keyboard users, and stops the
|
|
7
|
+
* click from bubbling so it navigates exactly once. Archived rows read muted.
|
|
8
|
+
*/
|
|
9
|
+
export declare function WorkspacesTable({ workspaces }: {
|
|
10
|
+
workspaces: Workspace[];
|
|
11
|
+
}): import("react").JSX.Element;
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/WorkspacesTable/index.tsx"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAkCvD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,EAAE,UAAU,EAAE,EAAE;IAAE,UAAU,EAAE,SAAS,EAAE,CAAA;CAAE,+BAkF1E"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Workspace } from '../types/workspace';
|
|
2
|
+
/**
|
|
3
|
+
* Whether a workspace is currently active (as opposed to archived). The single
|
|
4
|
+
* definition of the active-status check, so the home tiles, the home panel, and
|
|
5
|
+
* the table all agree on what "active" means instead of each re-testing the
|
|
6
|
+
* `'Active'` string literal.
|
|
7
|
+
*/
|
|
8
|
+
export declare function isActiveWorkspace(workspace: Pick<Workspace, 'status'>): boolean;
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/domain/isActiveWorkspace/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC7B,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,GACrC,OAAO,CAET"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Whether a workspace is currently active (as opposed to archived). The single
|
|
3
|
+
* definition of the active-status check, so the home tiles, the home panel, and
|
|
4
|
+
* the table all agree on what "active" means instead of each re-testing the
|
|
5
|
+
* `'Active'` string literal.
|
|
6
|
+
*/
|
|
7
|
+
export function isActiveWorkspace(workspace) {
|
|
8
|
+
return workspace.status === 'Active';
|
|
9
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Permission that gates creating a workspace. Mirrors the server's RBAC matrix
|
|
3
|
+
* (`@RequirePermissions('workspaces:create')`) and the list-page create button;
|
|
4
|
+
* shared so the sidebar's create affordances can't drift from that string.
|
|
5
|
+
*/
|
|
6
|
+
export declare const WORKSPACES_CREATE = "workspaces:create";
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/domain/permissions/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Permission that gates creating a workspace. Mirrors the server's RBAC matrix
|
|
3
|
+
* (`@RequirePermissions('workspaces:create')`) and the list-page create button;
|
|
4
|
+
* shared so the sidebar's create affordances can't drift from that string.
|
|
5
|
+
*/
|
|
6
|
+
export const WORKSPACES_CREATE = 'workspaces:create';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { ResourceSelection } from '../types/wizard';
|
|
2
|
+
/** An empty `specific` selection — the neutral starting point. */
|
|
3
|
+
export declare const EMPTY_SELECTION: ResourceSelection;
|
|
4
|
+
/** Whether `id` is currently selected, in either mode. */
|
|
5
|
+
export declare function isSelected(selection: ResourceSelection, id: string): boolean;
|
|
6
|
+
/**
|
|
7
|
+
* Toggles one id. In `specific` mode this adds/removes it from the include
|
|
8
|
+
* list; in `all` mode it adds/removes it from the exclude list (so unchecking
|
|
9
|
+
* a row under "all" carves out an exception without leaving the mode).
|
|
10
|
+
*/
|
|
11
|
+
export declare function toggle(selection: ResourceSelection, id: string): ResourceSelection;
|
|
12
|
+
/** Switches the whole resource between "all" and an empty "specific" list. */
|
|
13
|
+
export declare function setAll(all: boolean): ResourceSelection;
|
|
14
|
+
/** Count of selected items given the total number available. */
|
|
15
|
+
export declare function count(selection: ResourceSelection, total: number): number;
|
|
16
|
+
/** The concrete set of selected ids, resolved against the full id list. */
|
|
17
|
+
export declare function deriveSelectedIds(selection: ResourceSelection, allIds: readonly string[]): string[];
|
|
18
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/domain/resourceSelection/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEzD,kEAAkE;AAClE,eAAO,MAAM,eAAe,EAAE,iBAAiD,CAAC;AAEhF,0DAA0D;AAC1D,wBAAgB,UAAU,CAAC,SAAS,EAAE,iBAAiB,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAI5E;AAED;;;;GAIG;AACH,wBAAgB,MAAM,CAClB,SAAS,EAAE,iBAAiB,EAC5B,EAAE,EAAE,MAAM,GACX,iBAAiB,CAiBnB;AAED,8EAA8E;AAC9E,wBAAgB,MAAM,CAAC,GAAG,EAAE,OAAO,GAAG,iBAAiB,CAItD;AAED,gEAAgE;AAChE,wBAAgB,KAAK,CAAC,SAAS,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAIzE;AAED,2EAA2E;AAC3E,wBAAgB,iBAAiB,CAC7B,SAAS,EAAE,iBAAiB,EAC5B,MAAM,EAAE,SAAS,MAAM,EAAE,GAC1B,MAAM,EAAE,CAIV"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/** An empty `specific` selection — the neutral starting point. */
|
|
2
|
+
export const EMPTY_SELECTION = { mode: 'specific', ids: [] };
|
|
3
|
+
/** Whether `id` is currently selected, in either mode. */
|
|
4
|
+
export function isSelected(selection, id) {
|
|
5
|
+
return selection.mode === 'specific'
|
|
6
|
+
? selection.ids.includes(id)
|
|
7
|
+
: !selection.excludedIds.includes(id);
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Toggles one id. In `specific` mode this adds/removes it from the include
|
|
11
|
+
* list; in `all` mode it adds/removes it from the exclude list (so unchecking
|
|
12
|
+
* a row under "all" carves out an exception without leaving the mode).
|
|
13
|
+
*/
|
|
14
|
+
export function toggle(selection, id) {
|
|
15
|
+
if (selection.mode === 'specific') {
|
|
16
|
+
const has = selection.ids.includes(id);
|
|
17
|
+
return {
|
|
18
|
+
mode: 'specific',
|
|
19
|
+
ids: has
|
|
20
|
+
? selection.ids.filter((x) => x !== id)
|
|
21
|
+
: [...selection.ids, id]
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
const excluded = selection.excludedIds.includes(id);
|
|
25
|
+
return {
|
|
26
|
+
mode: 'all',
|
|
27
|
+
excludedIds: excluded
|
|
28
|
+
? selection.excludedIds.filter((x) => x !== id)
|
|
29
|
+
: [...selection.excludedIds, id]
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
/** Switches the whole resource between "all" and an empty "specific" list. */
|
|
33
|
+
export function setAll(all) {
|
|
34
|
+
return all
|
|
35
|
+
? { mode: 'all', excludedIds: [] }
|
|
36
|
+
: { mode: 'specific', ids: [] };
|
|
37
|
+
}
|
|
38
|
+
/** Count of selected items given the total number available. */
|
|
39
|
+
export function count(selection, total) {
|
|
40
|
+
return selection.mode === 'specific'
|
|
41
|
+
? selection.ids.length
|
|
42
|
+
: Math.max(0, total - selection.excludedIds.length);
|
|
43
|
+
}
|
|
44
|
+
/** The concrete set of selected ids, resolved against the full id list. */
|
|
45
|
+
export function deriveSelectedIds(selection, allIds) {
|
|
46
|
+
return selection.mode === 'specific'
|
|
47
|
+
? selection.ids
|
|
48
|
+
: allIds.filter((id) => !selection.excludedIds.includes(id));
|
|
49
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A workspace's URL slug — a client-side value object mirroring the server's
|
|
3
|
+
* {@link https://../server Slug} rule (lowercase letters, digits, hyphens; 1–120
|
|
4
|
+
* chars). It exists so the create-workspace slug field and its Zod schema
|
|
5
|
+
* validate instant feedback from **one** rule rather than each re-testing an
|
|
6
|
+
* inline `^[a-z0-9-]+$` literal. Format only — uniqueness is a server concern
|
|
7
|
+
* surfaced via `useSlugAvailability`.
|
|
8
|
+
*/
|
|
9
|
+
export declare class Slug {
|
|
10
|
+
private readonly slug;
|
|
11
|
+
private constructor();
|
|
12
|
+
/**
|
|
13
|
+
* Whether `value` is a well-shaped slug, without throwing — the check the
|
|
14
|
+
* live availability hook and the basics schema use for instant feedback.
|
|
15
|
+
*/
|
|
16
|
+
static isValid(value: string): boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Builds a {@link Slug}, throwing on an empty, over-long, or wrongly-shaped
|
|
19
|
+
* value. Used by the create use-case as a last guard before the request.
|
|
20
|
+
*/
|
|
21
|
+
static create(value: string): Slug;
|
|
22
|
+
/** The underlying slug string. */
|
|
23
|
+
get value(): string;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/domain/slug/index.ts"],"names":[],"mappings":"AAUA;;;;;;;GAOG;AACH,qBAAa,IAAI;IACO,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAzC,OAAO;IAEP;;;OAGG;IACH,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAQtC;;;OAGG;IACH,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAOlC,kCAAkC;IAClC,IAAI,KAAK,IAAI,MAAM,CAElB;CACJ"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* URL-safe slug shape: lowercase letters, digits, and hyphens only. Mirrors the
|
|
3
|
+
* server's `Slug.create` rule so the admin validates the same invariant the API
|
|
4
|
+
* enforces, instead of scattering the literal regex across the form hooks.
|
|
5
|
+
*/
|
|
6
|
+
const SLUG_PATTERN = /^[a-z0-9-]+$/;
|
|
7
|
+
/** Longest slug the server accepts (mirrors the server VO's `MAX_LENGTH`). */
|
|
8
|
+
const MAX_LENGTH = 120;
|
|
9
|
+
/**
|
|
10
|
+
* A workspace's URL slug — a client-side value object mirroring the server's
|
|
11
|
+
* {@link https://../server Slug} rule (lowercase letters, digits, hyphens; 1–120
|
|
12
|
+
* chars). It exists so the create-workspace slug field and its Zod schema
|
|
13
|
+
* validate instant feedback from **one** rule rather than each re-testing an
|
|
14
|
+
* inline `^[a-z0-9-]+$` literal. Format only — uniqueness is a server concern
|
|
15
|
+
* surfaced via `useSlugAvailability`.
|
|
16
|
+
*/
|
|
17
|
+
export class Slug {
|
|
18
|
+
slug;
|
|
19
|
+
constructor(slug) {
|
|
20
|
+
this.slug = slug;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Whether `value` is a well-shaped slug, without throwing — the check the
|
|
24
|
+
* live availability hook and the basics schema use for instant feedback.
|
|
25
|
+
*/
|
|
26
|
+
static isValid(value) {
|
|
27
|
+
return (value.length > 0 &&
|
|
28
|
+
value.length <= MAX_LENGTH &&
|
|
29
|
+
SLUG_PATTERN.test(value));
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Builds a {@link Slug}, throwing on an empty, over-long, or wrongly-shaped
|
|
33
|
+
* value. Used by the create use-case as a last guard before the request.
|
|
34
|
+
*/
|
|
35
|
+
static create(value) {
|
|
36
|
+
if (!Slug.isValid(value)) {
|
|
37
|
+
throw new Error(`Invalid workspace slug: "${value}"`);
|
|
38
|
+
}
|
|
39
|
+
return new Slug(value);
|
|
40
|
+
}
|
|
41
|
+
/** The underlying slug string. */
|
|
42
|
+
get value() {
|
|
43
|
+
return this.slug;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import type { AvatarColor } from '@orthacms/design-system';
|
|
2
|
+
/** Live state of the slug availability check. */
|
|
3
|
+
export declare enum SlugStatus {
|
|
4
|
+
/** No slug entered yet. */
|
|
5
|
+
Empty = "empty",
|
|
6
|
+
/** Breaks the `^[a-z0-9-]+$` pattern. */
|
|
7
|
+
Invalid = "invalid",
|
|
8
|
+
/** Debouncing or an availability request is in flight. */
|
|
9
|
+
Checking = "checking",
|
|
10
|
+
/** Free to use. */
|
|
11
|
+
Available = "available",
|
|
12
|
+
/** Already taken by another workspace. */
|
|
13
|
+
Taken = "taken",
|
|
14
|
+
/**
|
|
15
|
+
* The availability request failed, so uniqueness is *unknown*. Treated as
|
|
16
|
+
* not-continuable: a failed pre-check must never read as the positive
|
|
17
|
+
* answer, matching the delete/revoke dialogs, which block when their
|
|
18
|
+
* entry-count pre-check fails rather than allowing the action.
|
|
19
|
+
*/
|
|
20
|
+
Unknown = "unknown"
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* A person being granted access in the wizard. `invited` members were typed in
|
|
24
|
+
* as an email that isn't in the directory yet — they have no `id` until the
|
|
25
|
+
* invite is sent server-side. Membership is a pure link; a member's permissions
|
|
26
|
+
* come from their single global role, not from the workspace.
|
|
27
|
+
*/
|
|
28
|
+
export type MemberDraft = {
|
|
29
|
+
/** Directory id, or the email for an invited member without an account. */
|
|
30
|
+
id: string;
|
|
31
|
+
/** Display name (the email for invited members). */
|
|
32
|
+
name: string;
|
|
33
|
+
/** Contact email. */
|
|
34
|
+
email: string;
|
|
35
|
+
/** Whether this is an invite-by-email rather than an existing user. */
|
|
36
|
+
invited?: boolean;
|
|
37
|
+
};
|
|
38
|
+
/** A user returned by the directory search. */
|
|
39
|
+
export type DirectoryUser = {
|
|
40
|
+
/** Stable id. */
|
|
41
|
+
id: string;
|
|
42
|
+
/** Full display name. */
|
|
43
|
+
name: string;
|
|
44
|
+
/** Email address. */
|
|
45
|
+
email: string;
|
|
46
|
+
};
|
|
47
|
+
/** Kind of a content type — drives the collections/pages split. */
|
|
48
|
+
export type ContentTypeKind = 'collection' | 'single';
|
|
49
|
+
/** A content type the workspace can be granted access to. */
|
|
50
|
+
export type ContentType = {
|
|
51
|
+
/** Stable machine name. */
|
|
52
|
+
name: string;
|
|
53
|
+
/** Whether it is a multi-entry collection or a standalone page. */
|
|
54
|
+
kind: ContentTypeKind;
|
|
55
|
+
/** Human label; falls back to `name`. */
|
|
56
|
+
label?: string;
|
|
57
|
+
/** Short description shown under the label. */
|
|
58
|
+
description?: string;
|
|
59
|
+
/** Route path — pages only; searchable alongside the name. */
|
|
60
|
+
path?: string;
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* Generic selection model reused for collections and pages. `specific` lists
|
|
64
|
+
* explicit ids; `all` grants everything (including future items) and tracks a
|
|
65
|
+
* blacklist — constant payload regardless of how many items exist.
|
|
66
|
+
*/
|
|
67
|
+
export type ResourceSelection = {
|
|
68
|
+
mode: 'specific';
|
|
69
|
+
ids: string[];
|
|
70
|
+
} | {
|
|
71
|
+
mode: 'all';
|
|
72
|
+
excludedIds: string[];
|
|
73
|
+
};
|
|
74
|
+
/** Page-level content decision: full access vs. a specific selection. */
|
|
75
|
+
export type ContentMode = 'all' | 'specific';
|
|
76
|
+
/** The basics (step 1) form values. */
|
|
77
|
+
export type WizardData = {
|
|
78
|
+
/** Workspace display name. */
|
|
79
|
+
name: string;
|
|
80
|
+
/** URL slug — auto-derived from the name until the user edits it. */
|
|
81
|
+
slug: string;
|
|
82
|
+
/** Whether the user has manually edited the slug. */
|
|
83
|
+
slugEdited: boolean;
|
|
84
|
+
/** Optional long description. */
|
|
85
|
+
description: string;
|
|
86
|
+
/** Accent color for the workspace monogram. */
|
|
87
|
+
color: AvatarColor;
|
|
88
|
+
};
|
|
89
|
+
/**
|
|
90
|
+
* A full snapshot of every wizard step — the input to
|
|
91
|
+
* {@link buildCreateWorkspaceBody}. The page can pass an overridden snapshot
|
|
92
|
+
* (e.g. empty content for "Skip & create") without mutating wizard state.
|
|
93
|
+
*/
|
|
94
|
+
export type WizardSnapshot = {
|
|
95
|
+
/** Step 1 basics. */
|
|
96
|
+
data: WizardData;
|
|
97
|
+
/** Added members (the owner is implied by the session, not listed here). */
|
|
98
|
+
members: MemberDraft[];
|
|
99
|
+
/** Page-level content decision. */
|
|
100
|
+
contentMode: ContentMode;
|
|
101
|
+
/** Collection selection (used only when `contentMode === 'specific'`). */
|
|
102
|
+
collections: ResourceSelection;
|
|
103
|
+
/** Page selection (used only when `contentMode === 'specific'`). */
|
|
104
|
+
pages: ResourceSelection;
|
|
105
|
+
};
|
|
106
|
+
/** The request body POSTed to `/api/workspaces`. */
|
|
107
|
+
export type CreateWorkspaceBody = {
|
|
108
|
+
name: string;
|
|
109
|
+
slug: string;
|
|
110
|
+
description: string;
|
|
111
|
+
color: AvatarColor;
|
|
112
|
+
members: {
|
|
113
|
+
id: string;
|
|
114
|
+
name: string;
|
|
115
|
+
email: string;
|
|
116
|
+
invited: boolean;
|
|
117
|
+
}[];
|
|
118
|
+
content: {
|
|
119
|
+
mode: 'all';
|
|
120
|
+
} | {
|
|
121
|
+
mode: 'specific';
|
|
122
|
+
collections: ResourceSelection;
|
|
123
|
+
pages: ResourceSelection;
|
|
124
|
+
};
|
|
125
|
+
};
|
|
126
|
+
//# sourceMappingURL=index.d.ts.map
|