This commit is contained in:
DCCONSTRUCTIONS
2026-04-18 18:39:25 +03:00
commit 3ba092b60c
4944 changed files with 497564 additions and 0 deletions
@@ -0,0 +1,140 @@
/**
* Copyright (c) 2023-present Plane Software, Inc. and contributors
* SPDX-License-Identifier: AGPL-3.0-only
* See the LICENSE file for details.
*/
import React from "react";
import type {
CompactAssetType,
DetailedAssetType,
HorizontalStackAssetType,
IllustrationAssetType,
VerticalStackAssetType,
} from "./asset-types";
import {
CustomerHorizontalStackIllustration,
EpicHorizontalStackIllustration,
EstimateHorizontalStackIllustration,
ExportHorizontalStackIllustration,
IntakeHorizontalStackIllustration,
LabelHorizontalStackIllustration,
LinkHorizontalStackIllustration,
MembersHorizontalStackIllustration,
NoteHorizontalStackIllustration,
PriorityHorizontalStackIllustration,
ProjectHorizontalStackIllustration,
SettingsHorizontalStackIllustration,
StateHorizontalStackIllustration,
TemplateHorizontalStackIllustration,
TokenHorizontalStackIllustration,
UnknownHorizontalStackIllustration,
UpdateHorizontalStackIllustration,
WebhookHorizontalStackIllustration,
WorkItemHorizontalStackIllustration,
WorklogHorizontalStackIllustration,
} from "./horizontal-stack";
import { InboxIllustration, SearchIllustration } from "./illustration";
import {
ArchivedCycleVerticalStackIllustration,
ArchivedModuleVerticalStackIllustration,
ArchivedWorkItemVerticalStackIllustration,
ChangelogVerticalStackIllustration,
CustomerVerticalStackIllustration,
CycleVerticalStackIllustration,
DashboardVerticalStackIllustration,
DraftVerticalStackIllustration,
EpicVerticalStackIllustration,
Error404VerticalStackIllustration,
InitiativeVerticalStackIllustration,
InvalidLinkVerticalStackIllustration,
ModuleVerticalStackIllustration,
NoAccessVerticalStackIllustration,
PageVerticalStackIllustration,
ProjectVerticalStackIllustration,
ServerErrorVerticalStackIllustration,
TeamspaceVerticalStackIllustration,
ViewVerticalStackIllustration,
WorkItemVerticalStackIllustration,
} from "./vertical-stack";
// Horizontal Stack Asset Registry
export const HORIZONTAL_STACK_ASSETS: Record<HorizontalStackAssetType, React.ComponentType<{ className?: string }>> = {
customer: CustomerHorizontalStackIllustration,
epic: EpicHorizontalStackIllustration,
estimate: EstimateHorizontalStackIllustration,
export: ExportHorizontalStackIllustration,
intake: IntakeHorizontalStackIllustration,
label: LabelHorizontalStackIllustration,
link: LinkHorizontalStackIllustration,
members: MembersHorizontalStackIllustration,
note: NoteHorizontalStackIllustration,
priority: PriorityHorizontalStackIllustration,
project: ProjectHorizontalStackIllustration,
settings: SettingsHorizontalStackIllustration,
state: StateHorizontalStackIllustration,
template: TemplateHorizontalStackIllustration,
token: TokenHorizontalStackIllustration,
unknown: UnknownHorizontalStackIllustration,
update: UpdateHorizontalStackIllustration,
webhook: WebhookHorizontalStackIllustration,
"work-item": WorkItemHorizontalStackIllustration,
worklog: WorklogHorizontalStackIllustration,
};
// Vertical Stack Asset Registry
export const VERTICAL_STACK_ASSETS: Record<VerticalStackAssetType, React.ComponentType<{ className?: string }>> = {
"archived-cycle": ArchivedCycleVerticalStackIllustration,
"archived-module": ArchivedModuleVerticalStackIllustration,
"archived-work-item": ArchivedWorkItemVerticalStackIllustration,
changelog: ChangelogVerticalStackIllustration,
customer: CustomerVerticalStackIllustration,
cycle: CycleVerticalStackIllustration,
dashboard: DashboardVerticalStackIllustration,
draft: DraftVerticalStackIllustration,
epic: EpicVerticalStackIllustration,
"error-404": Error404VerticalStackIllustration,
initiative: InitiativeVerticalStackIllustration,
"invalid-link": InvalidLinkVerticalStackIllustration,
module: ModuleVerticalStackIllustration,
"no-access": NoAccessVerticalStackIllustration,
page: PageVerticalStackIllustration,
project: ProjectVerticalStackIllustration,
"server-error": ServerErrorVerticalStackIllustration,
teamspace: TeamspaceVerticalStackIllustration,
view: ViewVerticalStackIllustration,
"work-item": WorkItemVerticalStackIllustration,
};
// Illustration Asset Registry
export const ILLUSTRATION_ASSETS: Record<IllustrationAssetType, React.ComponentType<{ className?: string }>> = {
inbox: InboxIllustration,
search: SearchIllustration,
};
// Helper functions to get assets
export const getCompactAsset = (assetKey: CompactAssetType, className?: string): React.ReactNode => {
const AssetComponent =
(HORIZONTAL_STACK_ASSETS[assetKey as HorizontalStackAssetType] as React.ComponentType<{ className?: string }>) ||
ILLUSTRATION_ASSETS[assetKey as IllustrationAssetType];
if (!AssetComponent) {
console.warn(`Asset "${assetKey}" not found in compact asset registry`);
return null;
}
return <AssetComponent className={className} />;
};
export const getDetailedAsset = (assetKey: DetailedAssetType, className?: string): React.ReactNode => {
const AssetComponent =
(VERTICAL_STACK_ASSETS[assetKey as VerticalStackAssetType] as React.ComponentType<{ className?: string }>) ||
ILLUSTRATION_ASSETS[assetKey as IllustrationAssetType];
if (!AssetComponent) {
console.warn(`Asset "${assetKey}" not found in detailed asset registry`);
return null;
}
return <AssetComponent className={className} />;
};