@powerhousedao/builder-profile 0.0.8 → 0.0.10
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/document-models/builder-profile/actions.d.ts +1 -0
- package/dist/document-models/builder-profile/actions.d.ts.map +1 -1
- package/dist/document-models/builder-profile/gen/builders/actions.d.ts +6 -2
- package/dist/document-models/builder-profile/gen/builders/actions.d.ts.map +1 -1
- package/dist/document-models/builder-profile/gen/builders/creators.d.ts +3 -2
- package/dist/document-models/builder-profile/gen/builders/creators.d.ts.map +1 -1
- package/dist/document-models/builder-profile/gen/builders/creators.js +2 -1
- package/dist/document-models/builder-profile/gen/builders/operations.d.ts +2 -1
- package/dist/document-models/builder-profile/gen/builders/operations.d.ts.map +1 -1
- package/dist/document-models/builder-profile/gen/document-model.d.ts.map +1 -1
- package/dist/document-models/builder-profile/gen/document-model.js +14 -3
- package/dist/document-models/builder-profile/gen/document-schema.d.ts +57 -19
- package/dist/document-models/builder-profile/gen/document-schema.d.ts.map +1 -1
- package/dist/document-models/builder-profile/gen/ph-factories.d.ts.map +1 -1
- package/dist/document-models/builder-profile/gen/ph-factories.js +3 -1
- package/dist/document-models/builder-profile/gen/reducer.d.ts.map +1 -1
- package/dist/document-models/builder-profile/gen/reducer.js +5 -1
- package/dist/document-models/builder-profile/gen/schema/types.d.ts +7 -1
- package/dist/document-models/builder-profile/gen/schema/types.d.ts.map +1 -1
- package/dist/document-models/builder-profile/gen/schema/zod.d.ts +2 -1
- package/dist/document-models/builder-profile/gen/schema/zod.d.ts.map +1 -1
- package/dist/document-models/builder-profile/gen/schema/zod.js +9 -1
- package/dist/document-models/builder-profile/gen/utils.d.ts.map +1 -1
- package/dist/document-models/builder-profile/gen/utils.js +3 -1
- package/dist/document-models/builder-profile/src/reducers/builders.d.ts.map +1 -1
- package/dist/document-models/builder-profile/src/reducers/builders.js +14 -5
- package/dist/editors/builder-profile/components/MarkdownPreview.d.ts +8 -0
- package/dist/editors/builder-profile/components/MarkdownPreview.d.ts.map +1 -0
- package/dist/editors/builder-profile/components/MarkdownPreview.js +80 -0
- package/dist/editors/builder-profile/components/ProfilePreview.d.ts.map +1 -1
- package/dist/editors/builder-profile/components/ProfilePreview.js +2 -1
- package/dist/editors/builder-profile/editor.d.ts.map +1 -1
- package/dist/editors/builder-profile/editor.js +80 -5
- package/dist/style.css +835 -0
- package/dist/subgraphs/builder-profile/resolvers.d.ts.map +1 -1
- package/dist/subgraphs/builder-profile/resolvers.js +12 -0
- package/dist/subgraphs/builder-profile/schema.d.ts.map +1 -1
- package/dist/subgraphs/builder-profile/schema.js +11 -2
- package/package.json +16 -15
|
@@ -154,16 +154,18 @@ export type BuilderLink = {
|
|
|
154
154
|
url: Scalars["URL"]["output"];
|
|
155
155
|
};
|
|
156
156
|
export type BuilderProfileState = {
|
|
157
|
+
about: Maybe<Scalars["String"]["output"]>;
|
|
157
158
|
code: Maybe<Scalars["String"]["output"]>;
|
|
158
159
|
contributors: Array<Scalars["PHID"]["output"]>;
|
|
159
160
|
description: Maybe<Scalars["String"]["output"]>;
|
|
160
161
|
icon: Maybe<Scalars["URL"]["output"]>;
|
|
161
162
|
id: Maybe<Scalars["PHID"]["output"]>;
|
|
163
|
+
isOperator: Scalars["Boolean"]["output"];
|
|
162
164
|
lastModified: Maybe<Scalars["DateTime"]["output"]>;
|
|
163
165
|
links: Array<BuilderLink>;
|
|
164
166
|
name: Maybe<Scalars["String"]["output"]>;
|
|
165
167
|
scopes: Array<BuilderScope>;
|
|
166
|
-
|
|
168
|
+
skills: Array<BuilderSkill>;
|
|
167
169
|
slug: Maybe<Scalars["String"]["output"]>;
|
|
168
170
|
status: Maybe<BuilderStatus>;
|
|
169
171
|
type: TeamType;
|
|
@@ -191,7 +193,11 @@ export type RemoveScopeInput = {
|
|
|
191
193
|
export type RemoveSkillInput = {
|
|
192
194
|
skill?: InputMaybe<BuilderSkillInput>;
|
|
193
195
|
};
|
|
196
|
+
export type SetOperatorInput = {
|
|
197
|
+
isOperator: Scalars["Boolean"]["input"];
|
|
198
|
+
};
|
|
194
199
|
export type UpdateProfileInput = {
|
|
200
|
+
about?: InputMaybe<Scalars["String"]["input"]>;
|
|
195
201
|
code?: InputMaybe<Scalars["String"]["input"]>;
|
|
196
202
|
description?: InputMaybe<Scalars["String"]["input"]>;
|
|
197
203
|
icon?: InputMaybe<Scalars["URL"]["input"]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../document-models/builder-profile/gen/schema/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../document-models/builder-profile/gen/schema/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
import type { AddContributorInput, AddLinkInput, AddScopeInput, AddSkillInput, BuilderLink, BuilderProfileState, EditLinkInput, RemoveContributorInput, RemoveLinkInput, RemoveScopeInput, RemoveSkillInput, UpdateProfileInput } from "./types.js";
|
|
2
|
+
import type { AddContributorInput, AddLinkInput, AddScopeInput, AddSkillInput, BuilderLink, BuilderProfileState, EditLinkInput, RemoveContributorInput, RemoveLinkInput, RemoveScopeInput, RemoveSkillInput, SetOperatorInput, UpdateProfileInput } from "./types.js";
|
|
3
3
|
type Properties<T> = Required<{
|
|
4
4
|
[K in keyof T]: z.ZodType<T[K], any, T[K]>;
|
|
5
5
|
}>;
|
|
@@ -25,6 +25,7 @@ export declare function RemoveContributorInputSchema(): z.ZodObject<Properties<R
|
|
|
25
25
|
export declare function RemoveLinkInputSchema(): z.ZodObject<Properties<RemoveLinkInput>>;
|
|
26
26
|
export declare function RemoveScopeInputSchema(): z.ZodObject<Properties<RemoveScopeInput>>;
|
|
27
27
|
export declare function RemoveSkillInputSchema(): z.ZodObject<Properties<RemoveSkillInput>>;
|
|
28
|
+
export declare function SetOperatorInputSchema(): z.ZodObject<Properties<SetOperatorInput>>;
|
|
28
29
|
export declare function UpdateProfileInputSchema(): z.ZodObject<Properties<UpdateProfileInput>>;
|
|
29
30
|
export {};
|
|
30
31
|
//# sourceMappingURL=zod.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zod.d.ts","sourceRoot":"","sources":["../../../../../document-models/builder-profile/gen/schema/zod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EACV,mBAAmB,EACnB,YAAY,EACZ,aAAa,EACb,aAAa,EACb,WAAW,EACX,mBAAmB,EAOnB,aAAa,EACb,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAGnB,MAAM,YAAY,CAAC;AAEpB,KAAK,UAAU,CAAC,CAAC,IAAI,QAAQ,CAAC;KAC3B,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;CAC3C,CAAC,CAAC;AAEH,KAAK,iBAAiB,GAAG,EAAE,CAAC;AAE5B,eAAO,MAAM,mBAAmB,GAAI,GAAG,GAAG,KAAG,CAAC,IAAI,iBACnB,CAAC;AAEhC,eAAO,MAAM,uBAAuB,gDAEI,CAAC;AAEzC,eAAO,MAAM,kBAAkB,4GAQ7B,CAAC;AAEH,eAAO,MAAM,uBAAuB,4GAQlC,CAAC;AAEH,eAAO,MAAM,kBAAkB,yOAW7B,CAAC;AAEH,eAAO,MAAM,uBAAuB,yOAWlC,CAAC;AAEH,eAAO,MAAM,mBAAmB,uEAM9B,CAAC;AAEH,eAAO,MAAM,wBAAwB,uEAMnC,CAAC;AAEH,eAAO,MAAM,cAAc,mCAAiC,CAAC;AAE7D,eAAO,MAAM,mBAAmB,mCAAiC,CAAC;AAElE,wBAAgB,yBAAyB,IAAI,CAAC,CAAC,SAAS,CACtD,UAAU,CAAC,mBAAmB,CAAC,CAChC,CAIA;AAED,wBAAgB,kBAAkB,IAAI,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAM1E;AAED,wBAAgB,mBAAmB,IAAI,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAI5E;AAED,wBAAgB,mBAAmB,IAAI,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAI5E;AAED,wBAAgB,iBAAiB,IAAI,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAOxE;AAED,wBAAgB,yBAAyB,IAAI,CAAC,CAAC,SAAS,CACtD,UAAU,CAAC,mBAAmB,CAAC,CAChC,
|
|
1
|
+
{"version":3,"file":"zod.d.ts","sourceRoot":"","sources":["../../../../../document-models/builder-profile/gen/schema/zod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EACV,mBAAmB,EACnB,YAAY,EACZ,aAAa,EACb,aAAa,EACb,WAAW,EACX,mBAAmB,EAOnB,aAAa,EACb,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAGnB,MAAM,YAAY,CAAC;AAEpB,KAAK,UAAU,CAAC,CAAC,IAAI,QAAQ,CAAC;KAC3B,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;CAC3C,CAAC,CAAC;AAEH,KAAK,iBAAiB,GAAG,EAAE,CAAC;AAE5B,eAAO,MAAM,mBAAmB,GAAI,GAAG,GAAG,KAAG,CAAC,IAAI,iBACnB,CAAC;AAEhC,eAAO,MAAM,uBAAuB,gDAEI,CAAC;AAEzC,eAAO,MAAM,kBAAkB,4GAQ7B,CAAC;AAEH,eAAO,MAAM,uBAAuB,4GAQlC,CAAC;AAEH,eAAO,MAAM,kBAAkB,yOAW7B,CAAC;AAEH,eAAO,MAAM,uBAAuB,yOAWlC,CAAC;AAEH,eAAO,MAAM,mBAAmB,uEAM9B,CAAC;AAEH,eAAO,MAAM,wBAAwB,uEAMnC,CAAC;AAEH,eAAO,MAAM,cAAc,mCAAiC,CAAC;AAE7D,eAAO,MAAM,mBAAmB,mCAAiC,CAAC;AAElE,wBAAgB,yBAAyB,IAAI,CAAC,CAAC,SAAS,CACtD,UAAU,CAAC,mBAAmB,CAAC,CAChC,CAIA;AAED,wBAAgB,kBAAkB,IAAI,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAM1E;AAED,wBAAgB,mBAAmB,IAAI,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAI5E;AAED,wBAAgB,mBAAmB,IAAI,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAI5E;AAED,wBAAgB,iBAAiB,IAAI,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAOxE;AAED,wBAAgB,yBAAyB,IAAI,CAAC,CAAC,SAAS,CACtD,UAAU,CAAC,mBAAmB,CAAC,CAChC,CAmBA;AAED,wBAAgB,mBAAmB,IAAI,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAM5E;AAED,wBAAgB,4BAA4B,IAAI,CAAC,CAAC,SAAS,CACzD,UAAU,CAAC,sBAAsB,CAAC,CACnC,CAIA;AAED,wBAAgB,qBAAqB,IAAI,CAAC,CAAC,SAAS,CAClD,UAAU,CAAC,eAAe,CAAC,CAC5B,CAIA;AAED,wBAAgB,sBAAsB,IAAI,CAAC,CAAC,SAAS,CACnD,UAAU,CAAC,gBAAgB,CAAC,CAC7B,CAIA;AAED,wBAAgB,sBAAsB,IAAI,CAAC,CAAC,SAAS,CACnD,UAAU,CAAC,gBAAgB,CAAC,CAC7B,CAIA;AAED,wBAAgB,sBAAsB,IAAI,CAAC,CAAC,SAAS,CACnD,UAAU,CAAC,gBAAgB,CAAC,CAC7B,CAIA;AAED,wBAAgB,wBAAwB,IAAI,CAAC,CAAC,SAAS,CACrD,UAAU,CAAC,kBAAkB,CAAC,CAC/B,CAYA"}
|
|
@@ -94,16 +94,18 @@ export function BuilderLinkSchema() {
|
|
|
94
94
|
export function BuilderProfileStateSchema() {
|
|
95
95
|
return z.object({
|
|
96
96
|
__typename: z.literal("BuilderProfileState").optional(),
|
|
97
|
+
about: z.string().nullable(),
|
|
97
98
|
code: z.string().nullable(),
|
|
98
99
|
contributors: z.array(z.string()),
|
|
99
100
|
description: z.string().nullable(),
|
|
100
101
|
icon: z.string().url().nullable(),
|
|
101
102
|
id: z.string().nullable(),
|
|
103
|
+
isOperator: z.boolean(),
|
|
102
104
|
lastModified: z.string().datetime().nullable(),
|
|
103
105
|
links: z.array(BuilderLinkSchema()),
|
|
104
106
|
name: z.string().nullable(),
|
|
105
107
|
scopes: z.array(BuilderScopeSchema),
|
|
106
|
-
|
|
108
|
+
skills: z.array(BuilderSkillSchema),
|
|
107
109
|
slug: z.string().nullable(),
|
|
108
110
|
status: BuilderStatusSchema.nullable(),
|
|
109
111
|
type: TeamTypeSchema,
|
|
@@ -136,8 +138,14 @@ export function RemoveSkillInputSchema() {
|
|
|
136
138
|
skill: z.lazy(() => BuilderSkillInputSchema.nullish()),
|
|
137
139
|
});
|
|
138
140
|
}
|
|
141
|
+
export function SetOperatorInputSchema() {
|
|
142
|
+
return z.object({
|
|
143
|
+
isOperator: z.boolean(),
|
|
144
|
+
});
|
|
145
|
+
}
|
|
139
146
|
export function UpdateProfileInputSchema() {
|
|
140
147
|
return z.object({
|
|
148
|
+
about: z.string().nullish(),
|
|
141
149
|
code: z.string().nullish(),
|
|
142
150
|
description: z.string().nullish(),
|
|
143
151
|
icon: z.string().url().nullish(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../document-models/builder-profile/gen/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAQzD,OAAO,KAAK,EACV,yBAAyB,EACzB,wBAAwB,EACzB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAUxD,eAAO,MAAM,kBAAkB,EAAE,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../document-models/builder-profile/gen/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAQzD,OAAO,KAAK,EACV,yBAAyB,EACzB,wBAAwB,EACzB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAUxD,eAAO,MAAM,kBAAkB,EAAE,yBAgBhC,CAAC;AACF,eAAO,MAAM,iBAAiB,EAAE,wBAA6B,CAAC;AAE9D,eAAO,MAAM,KAAK,EAAE,kBAAkB,CAAC,qBAAqB,CAqC3D,CAAC;AAEF,eAAO,MAAM,cAAc,gEAAuB,CAAC;AACnD,eAAO,MAAM,WAAW,6DAAoB,CAAC;AAC7C,eAAO,MAAM,gBAAgB,2CAAyB,CAAC;AACvD,eAAO,MAAM,aAAa,+DAAsB,CAAC;AACjD,eAAO,MAAM,aAAa,+DAAsB,CAAC;AACjD,eAAO,MAAM,mBAAmB,qEAA4B,CAAC;AAC7D,eAAO,MAAM,gBAAgB,kEAAyB,CAAC;AACvD,eAAO,MAAM,sBAAsB,wEAA+B,CAAC"}
|
|
@@ -9,11 +9,13 @@ export const initialGlobalState = {
|
|
|
9
9
|
name: null,
|
|
10
10
|
icon: null,
|
|
11
11
|
description: null,
|
|
12
|
+
about: null,
|
|
12
13
|
lastModified: null,
|
|
14
|
+
isOperator: false,
|
|
13
15
|
type: "INDIVIDUAL",
|
|
14
16
|
contributors: [],
|
|
15
17
|
status: null,
|
|
16
|
-
|
|
18
|
+
skills: [],
|
|
17
19
|
scopes: [],
|
|
18
20
|
links: [],
|
|
19
21
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builders.d.ts","sourceRoot":"","sources":["../../../../../document-models/builder-profile/src/reducers/builders.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,gEAAgE,CAAC;AAEvH,eAAO,MAAM,gCAAgC,EAAE,
|
|
1
|
+
{"version":3,"file":"builders.d.ts","sourceRoot":"","sources":["../../../../../document-models/builder-profile/src/reducers/builders.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,gEAAgE,CAAC;AAEvH,eAAO,MAAM,gCAAgC,EAAE,gCAmH5C,CAAC"}
|
|
@@ -10,8 +10,14 @@ export const builderProfileBuildersOperations = {
|
|
|
10
10
|
state.name = action.input.name;
|
|
11
11
|
if (action.input.icon)
|
|
12
12
|
state.icon = action.input.icon;
|
|
13
|
-
if (action.input.description)
|
|
13
|
+
if (action.input.description) {
|
|
14
|
+
if (action.input.description.length > 350) {
|
|
15
|
+
throw new Error(`Description exceeds maximum length of 350 characters (${action.input.description.length} provided)`);
|
|
16
|
+
}
|
|
14
17
|
state.description = action.input.description;
|
|
18
|
+
}
|
|
19
|
+
if (action.input.about)
|
|
20
|
+
state.about = action.input.about;
|
|
15
21
|
if (action.input.status)
|
|
16
22
|
state.status = action.input.status;
|
|
17
23
|
if (action.input.type)
|
|
@@ -21,8 +27,8 @@ export const builderProfileBuildersOperations = {
|
|
|
21
27
|
},
|
|
22
28
|
addSkillOperation(state, action) {
|
|
23
29
|
if (action.input.skill) {
|
|
24
|
-
if (!state.
|
|
25
|
-
state.
|
|
30
|
+
if (!state.skills.includes(action.input.skill)) {
|
|
31
|
+
state.skills.push(action.input.skill);
|
|
26
32
|
}
|
|
27
33
|
}
|
|
28
34
|
// Convert UTC timestamp (ms) to ISO string for storage
|
|
@@ -30,9 +36,9 @@ export const builderProfileBuildersOperations = {
|
|
|
30
36
|
},
|
|
31
37
|
removeSkillOperation(state, action) {
|
|
32
38
|
if (action.input.skill) {
|
|
33
|
-
const index = state.
|
|
39
|
+
const index = state.skills.indexOf(action.input.skill);
|
|
34
40
|
if (index !== -1) {
|
|
35
|
-
state.
|
|
41
|
+
state.skills.splice(index, 1);
|
|
36
42
|
}
|
|
37
43
|
}
|
|
38
44
|
// Convert UTC timestamp (ms) to ISO string for storage
|
|
@@ -105,4 +111,7 @@ export const builderProfileBuildersOperations = {
|
|
|
105
111
|
// Convert UTC timestamp (ms) to ISO string for storage
|
|
106
112
|
state.lastModified = new Date(action.timestampUtcMs).toISOString();
|
|
107
113
|
},
|
|
114
|
+
setOperatorOperation(state, action) {
|
|
115
|
+
state.isOperator = action.input.isOperator;
|
|
116
|
+
},
|
|
108
117
|
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
interface MarkdownPreviewProps {
|
|
2
|
+
content: string;
|
|
3
|
+
maxLength?: number;
|
|
4
|
+
className?: string;
|
|
5
|
+
}
|
|
6
|
+
export declare function MarkdownPreview({ content, maxLength, className, }: MarkdownPreviewProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=MarkdownPreview.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MarkdownPreview.d.ts","sourceRoot":"","sources":["../../../../editors/builder-profile/components/MarkdownPreview.tsx"],"names":[],"mappings":"AAGA,UAAU,oBAAoB;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,eAAe,CAAC,EAC9B,OAAO,EACP,SAAe,EACf,SAAc,GACf,EAAE,oBAAoB,2CAoHtB"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useState } from "react";
|
|
3
|
+
import { ChevronDown, ChevronUp } from "lucide-react";
|
|
4
|
+
export function MarkdownPreview({ content, maxLength = 300, className = "", }) {
|
|
5
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
6
|
+
const [MarkdownRenderer, setMarkdownRenderer] = useState(null);
|
|
7
|
+
const [isExpanded, setIsExpanded] = useState(false);
|
|
8
|
+
const shouldTruncate = content.length > maxLength;
|
|
9
|
+
const displayContent = shouldTruncate && !isExpanded
|
|
10
|
+
? content.slice(0, maxLength) + "..."
|
|
11
|
+
: content;
|
|
12
|
+
useEffect(() => {
|
|
13
|
+
import("@uiw/react-markdown-preview")
|
|
14
|
+
.then((module) => {
|
|
15
|
+
setMarkdownRenderer(() => module.default);
|
|
16
|
+
})
|
|
17
|
+
.catch(() => {
|
|
18
|
+
// Silently fail - will use fallback
|
|
19
|
+
});
|
|
20
|
+
}, []);
|
|
21
|
+
const ExpandButton = () => shouldTruncate ? (_jsx("button", { type: "button", onClick: () => setIsExpanded(!isExpanded), className: "mt-2 inline-flex items-center gap-1 text-sm font-medium text-indigo-600 hover:text-indigo-700 transition-colors", children: isExpanded ? (_jsxs(_Fragment, { children: ["Show less ", _jsx(ChevronUp, { size: 16 })] })) : (_jsxs(_Fragment, { children: ["Read more ", _jsx(ChevronDown, { size: 16 })] })) })) : null;
|
|
22
|
+
// Fallback to plain text if markdown renderer not loaded
|
|
23
|
+
if (!MarkdownRenderer) {
|
|
24
|
+
return (_jsxs("div", { className: className, children: [_jsx("p", { className: "text-slate-600 text-sm leading-relaxed whitespace-pre-wrap", children: displayContent }), _jsx(ExpandButton, {})] }));
|
|
25
|
+
}
|
|
26
|
+
return (_jsxs("div", { className: className, children: [_jsx("style", { children: `
|
|
27
|
+
.markdown-preview-content {
|
|
28
|
+
font-size: 0.875rem;
|
|
29
|
+
line-height: 1.625;
|
|
30
|
+
color: #475569;
|
|
31
|
+
}
|
|
32
|
+
.markdown-preview-content p {
|
|
33
|
+
margin-bottom: 0.75em;
|
|
34
|
+
}
|
|
35
|
+
.markdown-preview-content p:last-child {
|
|
36
|
+
margin-bottom: 0;
|
|
37
|
+
}
|
|
38
|
+
.markdown-preview-content h1,
|
|
39
|
+
.markdown-preview-content h2,
|
|
40
|
+
.markdown-preview-content h3 {
|
|
41
|
+
font-weight: 600;
|
|
42
|
+
color: #1e293b;
|
|
43
|
+
margin-top: 1em;
|
|
44
|
+
margin-bottom: 0.5em;
|
|
45
|
+
}
|
|
46
|
+
.markdown-preview-content h1 { font-size: 1.25rem; }
|
|
47
|
+
.markdown-preview-content h2 { font-size: 1.125rem; }
|
|
48
|
+
.markdown-preview-content h3 { font-size: 1rem; }
|
|
49
|
+
.markdown-preview-content ul {
|
|
50
|
+
list-style-type: disc;
|
|
51
|
+
padding-left: 1.5em;
|
|
52
|
+
margin-bottom: 0.75em;
|
|
53
|
+
}
|
|
54
|
+
.markdown-preview-content ol {
|
|
55
|
+
list-style-type: decimal;
|
|
56
|
+
padding-left: 1.5em;
|
|
57
|
+
margin-bottom: 0.75em;
|
|
58
|
+
}
|
|
59
|
+
.markdown-preview-content a {
|
|
60
|
+
color: #4f46e5;
|
|
61
|
+
text-decoration: underline;
|
|
62
|
+
}
|
|
63
|
+
.markdown-preview-content code {
|
|
64
|
+
background: #f1f5f9;
|
|
65
|
+
padding: 0.125em 0.375em;
|
|
66
|
+
border-radius: 0.25em;
|
|
67
|
+
font-size: 0.875em;
|
|
68
|
+
}
|
|
69
|
+
.markdown-preview-content blockquote {
|
|
70
|
+
border-left: 3px solid #e2e8f0;
|
|
71
|
+
padding-left: 1em;
|
|
72
|
+
color: #64748b;
|
|
73
|
+
font-style: italic;
|
|
74
|
+
}
|
|
75
|
+
.markdown-preview-content strong {
|
|
76
|
+
font-weight: 600;
|
|
77
|
+
color: #334155;
|
|
78
|
+
}
|
|
79
|
+
` }), _jsx("div", { className: "markdown-preview-content", "data-color-mode": "light", children: _jsx(MarkdownRenderer, { source: displayContent }) }), _jsx(ExpandButton, {})] }));
|
|
80
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProfilePreview.d.ts","sourceRoot":"","sources":["../../../../editors/builder-profile/components/ProfilePreview.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,mBAAmB,EAGpB,MAAM,uDAAuD,CAAC;
|
|
1
|
+
{"version":3,"file":"ProfilePreview.d.ts","sourceRoot":"","sources":["../../../../editors/builder-profile/components/ProfilePreview.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,mBAAmB,EAGpB,MAAM,uDAAuD,CAAC;AAmD/D,UAAU,mBAAmB;IAC3B,KAAK,EAAE,mBAAmB,CAAC;CAC5B;AAED,wBAAgB,cAAc,CAAC,EAAE,KAAK,EAAE,EAAE,mBAAmB,kDA6I5D"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { Users, Link2 } from "lucide-react";
|
|
3
|
+
import { MarkdownPreview } from "./MarkdownPreview.js";
|
|
3
4
|
const SKILL_LABELS = {
|
|
4
5
|
FRONTEND_DEVELOPMENT: "Frontend",
|
|
5
6
|
BACKEND_DEVELOPMENT: "Backend",
|
|
@@ -51,5 +52,5 @@ export function ProfilePreview({ state }) {
|
|
|
51
52
|
const statusStyle = state.status
|
|
52
53
|
? STATUS_STYLES[state.status]
|
|
53
54
|
: STATUS_STYLES.INACTIVE;
|
|
54
|
-
return (_jsxs("div", { className: "bg-white border border-slate-200/60 rounded-2xl shadow-sm overflow-hidden", children: [_jsx("div", { className: "h-24 bg-gradient-to-br from-indigo-500 via-purple-500 to-pink-500 relative", children: _jsx("div", { className: "absolute inset-0 bg-[url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNjAiIGhlaWdodD0iNjAiIHZpZXdCb3g9IjAgMCA2MCA2MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxnIGZpbGw9IiNmZmYiIGZpbGwtb3BhY2l0eT0iMC4xIj48cGF0aCBkPSJNMzYgMzBoLTZWMGg2djMwem0tNiAwSDI0VjBoNnYzMHoiLz48L2c+PC9nPjwvc3ZnPg==')] opacity-30" }) }), _jsxs("div", { className: "px-6 pb-6", children: [_jsxs("div", { className: "-mt-12 mb-4 flex items-end justify-between", children: [_jsxs("div", { className: "relative", children: [state.icon ? (_jsx("img", { src: state.icon, alt: "Profile", className: "w-24 h-24 rounded-2xl object-cover border-4 border-white shadow-lg" })) : (_jsx("div", { className: "w-24 h-24 rounded-2xl bg-gradient-to-br from-slate-700 to-slate-900 border-4 border-white shadow-lg flex items-center justify-center", children: _jsx("span", { className: "text-3xl font-bold text-white", children: state.name?.charAt(0).toUpperCase() || "?" }) })), state.type === "TEAM" && (_jsx("div", { className: "absolute -bottom-1 -right-1 w-7 h-7 bg-purple-500 rounded-lg border-2 border-white flex items-center justify-center", children: _jsx(Users, { size: 14, className: "text-white" }) }))] }), state.status && (_jsxs("div", { className: `flex items-center gap-1.5 px-3 py-1.5 rounded-full ${statusStyle.bg}`, children: [_jsx("span", { className: `w-2 h-2 rounded-full ${statusStyle.dot}` }), _jsx("span", { className: `text-xs font-medium ${statusStyle.text}`, children: state.status.replace("_", " ") })] }))] }), _jsxs("div", { className: "mb-4", children: [_jsx("h4", { className: "text-xl font-semibold text-slate-900 tracking-tight", children: state.name || "Unnamed Builder" }), state.slug && (_jsxs("p", { className: "text-sm text-slate-500 font-medium", children: ["@", state.slug] }))] }), state.description && (_jsx("p", { className: "text-slate-600
|
|
55
|
+
return (_jsxs("div", { className: "bg-white border border-slate-200/60 rounded-2xl shadow-sm overflow-hidden", children: [_jsx("div", { className: "h-24 bg-gradient-to-br from-indigo-500 via-purple-500 to-pink-500 relative", children: _jsx("div", { className: "absolute inset-0 bg-[url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNjAiIGhlaWdodD0iNjAiIHZpZXdCb3g9IjAgMCA2MCA2MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxnIGZpbGw9IiNmZmYiIGZpbGwtb3BhY2l0eT0iMC4xIj48cGF0aCBkPSJNMzYgMzBoLTZWMGg2djMwem0tNiAwSDI0VjBoNnYzMHoiLz48L2c+PC9nPjwvc3ZnPg==')] opacity-30" }) }), _jsxs("div", { className: "px-6 pb-6", children: [_jsxs("div", { className: "-mt-12 mb-4 flex items-end justify-between", children: [_jsxs("div", { className: "relative", children: [state.icon ? (_jsx("img", { src: state.icon, alt: "Profile", className: "w-24 h-24 rounded-2xl object-cover border-4 border-white shadow-lg" })) : (_jsx("div", { className: "w-24 h-24 rounded-2xl bg-gradient-to-br from-slate-700 to-slate-900 border-4 border-white shadow-lg flex items-center justify-center", children: _jsx("span", { className: "text-3xl font-bold text-white", children: state.name?.charAt(0).toUpperCase() || "?" }) })), state.type === "TEAM" && (_jsx("div", { className: "absolute -bottom-1 -right-1 w-7 h-7 bg-purple-500 rounded-lg border-2 border-white flex items-center justify-center", children: _jsx(Users, { size: 14, className: "text-white" }) }))] }), state.status && (_jsxs("div", { className: `flex items-center gap-1.5 px-3 py-1.5 rounded-full ${statusStyle.bg}`, children: [_jsx("span", { className: `w-2 h-2 rounded-full ${statusStyle.dot}` }), _jsx("span", { className: `text-xs font-medium ${statusStyle.text}`, children: state.status.replace("_", " ") })] }))] }), _jsxs("div", { className: "mb-4", children: [_jsx("h4", { className: "text-xl font-semibold text-slate-900 tracking-tight", children: state.name || "Unnamed Builder" }), state.slug && (_jsxs("p", { className: "text-sm text-slate-500 font-medium", children: ["@", state.slug] }))] }), state.description && (_jsx("p", { className: "text-sm text-slate-600 mb-4 leading-relaxed", children: state.description })), state.about && (_jsx("div", { className: "mb-5", children: _jsx(MarkdownPreview, { content: state.about, maxLength: 300 }) })), state.skills && state.skills.length > 0 && (_jsxs("div", { className: "mb-4", children: [_jsx("p", { className: "text-xs font-semibold text-slate-400 uppercase tracking-wider mb-2", children: "Skills" }), _jsx("div", { className: "flex flex-wrap gap-1.5", children: state.skills.map((skill) => (_jsx("span", { className: "px-2.5 py-1 rounded-lg text-xs font-medium bg-indigo-50 text-indigo-700 border border-indigo-100", children: SKILL_LABELS[skill] || skill }, skill))) })] })), state.scopes && state.scopes.length > 0 && (_jsxs("div", { className: "mb-4", children: [_jsx("p", { className: "text-xs font-semibold text-slate-400 uppercase tracking-wider mb-2", children: "Scopes" }), _jsx("div", { className: "flex flex-wrap gap-1.5", children: state.scopes.map((scope) => (_jsx("span", { className: "px-2.5 py-1 rounded-lg text-xs font-medium bg-emerald-50 text-emerald-700 border border-emerald-100", children: SCOPE_LABELS[scope] || scope }, scope))) })] })), state.links && state.links.length > 0 && (_jsx("div", { className: "pt-4 border-t border-slate-100", children: _jsx("div", { className: "flex flex-wrap gap-3", children: state.links.map((link) => (_jsxs("a", { href: link.url, target: "_blank", rel: "noopener noreferrer", className: "inline-flex items-center gap-1.5 text-sm text-slate-600 hover:text-indigo-600 transition-colors group", children: [_jsx(Link2, { size: 14, className: "text-slate-400 group-hover:text-indigo-500 transition-colors" }), _jsx("span", { className: "group-hover:underline underline-offset-2", children: link.label || new URL(link.url).hostname })] }, link.id))) }) }))] })] }));
|
|
55
56
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editor.d.ts","sourceRoot":"","sources":["../../../editors/builder-profile/editor.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"editor.d.ts","sourceRoot":"","sources":["../../../editors/builder-profile/editor.tsx"],"names":[],"mappings":"AA0CA,MAAM,CAAC,OAAO,UAAU,MAAM,4CAupB7B"}
|
|
@@ -3,7 +3,7 @@ import { TextInput, Textarea } from "@powerhousedao/document-engineering";
|
|
|
3
3
|
import { User, Users, Settings, FileText, Copy, Info } from "lucide-react";
|
|
4
4
|
import { toast, ToastContainer, DocumentToolbar, } from "@powerhousedao/design-system/connect";
|
|
5
5
|
import { actions } from "../../document-models/builder-profile/index.js";
|
|
6
|
-
import { useCallback, useEffect, useRef } from "react";
|
|
6
|
+
import { useCallback, useEffect, useRef, useState } from "react";
|
|
7
7
|
import { useSelectedBuilderProfileDocument } from "../../document-models/builder-profile/hooks.js";
|
|
8
8
|
import { setSelectedNode, useParentFolderForSelectedNode, } from "@powerhousedao/reactor-browser";
|
|
9
9
|
import { SkillsSection } from "./components/SkillsSection.js";
|
|
@@ -20,6 +20,7 @@ const STATUS_OPTIONS = [
|
|
|
20
20
|
{ value: "COMPLETED", label: "Completed", color: "bg-sky-500" },
|
|
21
21
|
{ value: "ARCHIVED", label: "Archived", color: "bg-slate-300" },
|
|
22
22
|
];
|
|
23
|
+
const DESCRIPTION_MAX_LENGTH = 350;
|
|
23
24
|
export default function Editor() {
|
|
24
25
|
const [doc, dispatch] = useSelectedBuilderProfileDocument();
|
|
25
26
|
const state = doc?.state.global;
|
|
@@ -28,6 +29,11 @@ export default function Editor() {
|
|
|
28
29
|
setSelectedNode(parentFolder?.id);
|
|
29
30
|
}
|
|
30
31
|
const idGeneratedRef = useRef(false);
|
|
32
|
+
const [descriptionValue, setDescriptionValue] = useState(state?.description || "");
|
|
33
|
+
// Sync description state when document changes
|
|
34
|
+
useEffect(() => {
|
|
35
|
+
setDescriptionValue(state?.description || "");
|
|
36
|
+
}, [state?.description]);
|
|
31
37
|
// Auto-generate ID if not present (only once)
|
|
32
38
|
useEffect(() => {
|
|
33
39
|
if (!state?.id && !idGeneratedRef.current && dispatch) {
|
|
@@ -149,6 +155,14 @@ export default function Editor() {
|
|
|
149
155
|
return;
|
|
150
156
|
dispatch(actions.removeContributor({ contributorPHID }));
|
|
151
157
|
}, [dispatch]);
|
|
158
|
+
// Operator handler
|
|
159
|
+
const handleSetOperator = useCallback((isOperator) => {
|
|
160
|
+
if (!dispatch)
|
|
161
|
+
return;
|
|
162
|
+
dispatch(actions.setOperator({ isOperator }));
|
|
163
|
+
}, [dispatch]);
|
|
164
|
+
// Dynamic role label based on isOperator flag
|
|
165
|
+
const roleLabel = state?.isOperator ? "Operator" : "Builder";
|
|
152
166
|
return (_jsxs("div", { className: "w-full min-h-screen bg-gradient-to-br from-slate-50 via-white to-slate-100", children: [_jsx("style", { children: `
|
|
153
167
|
.builder-editor input, .builder-editor textarea, .builder-editor select {
|
|
154
168
|
font-family: 'SF Pro Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
|
|
@@ -222,12 +236,57 @@ export default function Editor() {
|
|
|
222
236
|
background-size: 1.25em 1.25em;
|
|
223
237
|
padding-right: 2.5rem;
|
|
224
238
|
}
|
|
225
|
-
|
|
239
|
+
.builder-editor .role-toggle {
|
|
240
|
+
display: flex;
|
|
241
|
+
background: linear-gradient(135deg, #F8FAFC 0%, #F1F5F9 100%);
|
|
242
|
+
border-radius: 12px;
|
|
243
|
+
padding: 3px;
|
|
244
|
+
gap: 3px;
|
|
245
|
+
border: 1px solid rgba(0, 0, 0, 0.06);
|
|
246
|
+
box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.04);
|
|
247
|
+
}
|
|
248
|
+
.builder-editor .role-toggle button {
|
|
249
|
+
display: flex;
|
|
250
|
+
align-items: center;
|
|
251
|
+
gap: 6px;
|
|
252
|
+
padding: 0.5rem 0.875rem;
|
|
253
|
+
font-size: 0.8125rem;
|
|
254
|
+
font-weight: 500;
|
|
255
|
+
border-radius: 9px;
|
|
256
|
+
border: none;
|
|
257
|
+
cursor: pointer;
|
|
258
|
+
transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
|
|
259
|
+
color: #64748B;
|
|
260
|
+
background: transparent;
|
|
261
|
+
white-space: nowrap;
|
|
262
|
+
}
|
|
263
|
+
.builder-editor .role-toggle button .role-icon {
|
|
264
|
+
font-size: 0.875rem;
|
|
265
|
+
transition: transform 0.2s ease;
|
|
266
|
+
}
|
|
267
|
+
.builder-editor .role-toggle button:hover:not(.active) {
|
|
268
|
+
color: #475569;
|
|
269
|
+
background: rgba(255, 255, 255, 0.6);
|
|
270
|
+
}
|
|
271
|
+
.builder-editor .role-toggle button.active {
|
|
272
|
+
color: white;
|
|
273
|
+
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.08);
|
|
274
|
+
}
|
|
275
|
+
.builder-editor .role-toggle button.active.builder {
|
|
276
|
+
background: linear-gradient(135deg, #3B82F6 0%, #2563EB 100%);
|
|
277
|
+
}
|
|
278
|
+
.builder-editor .role-toggle button.active.operator {
|
|
279
|
+
background: linear-gradient(135deg, #8B5CF6 0%, #7C3AED 100%);
|
|
280
|
+
}
|
|
281
|
+
.builder-editor .role-toggle button.active .role-icon {
|
|
282
|
+
transform: scale(1.1);
|
|
283
|
+
}
|
|
284
|
+
` }), _jsx(DocumentToolbar, { document: doc, onClose: handleClose }), _jsxs("div", { className: "builder-editor p-6 max-w-4xl mx-auto space-y-6 pb-12", children: [_jsx("div", { className: "section-card p-8", children: _jsxs("div", { className: "flex items-start justify-between gap-6", children: [_jsxs("div", { children: [_jsxs("h1", { className: "text-2xl font-semibold text-slate-900 tracking-tight", children: [roleLabel, " Profile"] }), _jsxs("p", { className: "text-slate-500 mt-1 text-sm", children: ["Configure your ", roleLabel.toLowerCase(), " identity and capabilities"] })] }), _jsxs("div", { className: "flex flex-col items-end gap-1.5", children: [_jsxs("div", { className: "role-toggle", children: [_jsxs("button", { type: "button", onClick: () => handleSetOperator(false), className: !state?.isOperator ? "active builder" : "", children: [_jsx("span", { className: "role-icon", children: "\uD83D\uDD28" }), "Builder"] }), _jsxs("button", { type: "button", onClick: () => handleSetOperator(true), className: state?.isOperator ? "active operator" : "", children: [_jsx("span", { className: "role-icon", children: "\u26A1" }), "Operator"] })] }), _jsx("p", { className: "text-xs text-slate-400 text-right max-w-[180px]", children: state?.isOperator ? "Sells & buys services" : "Buys services" })] })] }) }), state && _jsx(ProfilePreview, { state: state }), _jsxs("div", { className: "section-card p-6", children: [_jsxs("h3", { className: "text-lg font-semibold text-slate-900 mb-6 flex items-center gap-2", children: [_jsx("span", { className: "w-8 h-8 rounded-lg bg-slate-100 flex items-center justify-center", children: _jsx(Info, { size: 18, className: "text-slate-600" }) }), "Metadata"] }), _jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-6", children: [_jsxs("div", { children: [_jsxs("label", { className: "field-label", children: [roleLabel, " ID"] }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx("code", { className: "meta-value flex-1 truncate", children: doc?.header.id }), _jsx("button", { type: "button", className: "p-2 rounded-lg border border-slate-200 hover:bg-slate-50 transition-colors", title: `Copy ${roleLabel} ID`, onClick: () => {
|
|
226
285
|
void navigator.clipboard.writeText(doc?.header.id || "");
|
|
227
|
-
toast(
|
|
286
|
+
toast(`Copied ${roleLabel} ID!`, { type: "success" });
|
|
228
287
|
}, children: _jsx(Copy, { size: 16, className: "text-slate-500" }) })] })] }), _jsxs("div", { children: [_jsx("label", { className: "field-label", children: "Last Modified" }), _jsx("div", { className: "meta-value", children: state?.lastModified
|
|
229
288
|
? formatLastModified(state.lastModified)
|
|
230
|
-
: "Never modified" })] })] })] }), _jsxs("div", { className: "section-card p-6", children: [_jsxs("h3", { className: "text-lg font-semibold text-slate-900 mb-6 flex items-center gap-2", children: [_jsx("span", { className: "w-8 h-8 rounded-lg bg-indigo-50 flex items-center justify-center", children: _jsx(User, { size: 18, className: "text-indigo-600" }) }), "Identity"] }), _jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-6", children: [_jsxs("div", { children: [
|
|
289
|
+
: "Never modified" })] })] })] }), _jsxs("div", { className: "section-card p-6", children: [_jsxs("h3", { className: "text-lg font-semibold text-slate-900 mb-6 flex items-center gap-2", children: [_jsx("span", { className: "w-8 h-8 rounded-lg bg-indigo-50 flex items-center justify-center", children: _jsx(User, { size: 18, className: "text-indigo-600" }) }), "Identity"] }), _jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-6", children: [_jsxs("div", { children: [_jsxs("label", { className: "field-label", children: [roleLabel, " Name"] }), _jsx(TextInput, { className: "w-full", defaultValue: state?.name || "", onBlur: (e) => {
|
|
231
290
|
if (e.target.value !== state?.name) {
|
|
232
291
|
handleFieldChange("name", e.target.value);
|
|
233
292
|
}
|
|
@@ -243,5 +302,21 @@ export default function Editor() {
|
|
|
243
302
|
}
|
|
244
303
|
}, children: [_jsx("option", { value: "", disabled: true, children: "Select status..." }), STATUS_OPTIONS.map((option) => (_jsx("option", { value: option.value, children: option.label }, option.value)))] })] }), _jsxs("div", { children: [_jsx("label", { className: "field-label", children: "Profile Type" }), _jsxs("div", { className: "type-toggle", children: [_jsx("button", { type: "button", onClick: () => handleTypeChange("INDIVIDUAL"), className: state?.type === "INDIVIDUAL" ? "active" : "", children: _jsxs("span", { className: "flex items-center justify-center gap-2", children: [_jsx(User, { size: 16 }), "Individual"] }) }), _jsx("button", { type: "button", onClick: () => handleTypeChange("TEAM"), className: state?.type === "TEAM" ? "active" : "", children: _jsxs("span", { className: "flex items-center justify-center gap-2", children: [_jsx(Users, { size: 16 }), "Team"] }) })] }), _jsx("p", { className: "field-hint", children: state?.type === "TEAM"
|
|
245
304
|
? "Teams can add contributors to their profile"
|
|
246
|
-
:
|
|
305
|
+
: `Individual profiles represent a single ${roleLabel.toLowerCase()}` })] })] })] }), _jsxs("div", { className: "section-card p-6", children: [_jsxs("h3", { className: "text-lg font-semibold text-slate-900 mb-6 flex items-center gap-2", children: [_jsx("span", { className: "w-8 h-8 rounded-lg bg-emerald-50 flex items-center justify-center", children: _jsx(FileText, { size: 18, className: "text-emerald-600" }) }), "Description & About"] }), _jsxs("div", { className: "space-y-6", children: [_jsxs("div", { children: [_jsxs("div", { className: "flex items-center justify-between mb-2", children: [_jsx("label", { className: "field-label mb-0", children: "Short Description" }), _jsxs("span", { className: `text-xs font-medium ${descriptionValue.length > DESCRIPTION_MAX_LENGTH
|
|
306
|
+
? "text-red-500"
|
|
307
|
+
: descriptionValue.length > DESCRIPTION_MAX_LENGTH * 0.9
|
|
308
|
+
? "text-amber-500"
|
|
309
|
+
: "text-slate-400"}`, children: [descriptionValue.length, "/", DESCRIPTION_MAX_LENGTH] })] }), _jsx(Textarea, { className: `w-full ${descriptionValue.length > DESCRIPTION_MAX_LENGTH
|
|
310
|
+
? "border-red-300 focus:ring-red-500 focus:border-red-500"
|
|
311
|
+
: ""}`, value: descriptionValue, onChange: (e) => {
|
|
312
|
+
setDescriptionValue(e.target.value);
|
|
313
|
+
}, onBlur: (e) => {
|
|
314
|
+
if (e.target.value !== state?.description) {
|
|
315
|
+
if (e.target.value.length > DESCRIPTION_MAX_LENGTH) {
|
|
316
|
+
toast(`Description exceeds ${DESCRIPTION_MAX_LENGTH} character limit`, { type: "error" });
|
|
317
|
+
return;
|
|
318
|
+
}
|
|
319
|
+
handleFieldChange("description", e.target.value);
|
|
320
|
+
}
|
|
321
|
+
}, placeholder: `A brief summary of your ${roleLabel.toLowerCase()} profile`, rows: 3, maxLength: DESCRIPTION_MAX_LENGTH + 50 }), descriptionValue.length > DESCRIPTION_MAX_LENGTH && (_jsxs("p", { className: "text-xs text-red-500 mt-1", children: ["Description exceeds ", DESCRIPTION_MAX_LENGTH, " character limit. Please shorten it to save."] })), _jsx("p", { className: "field-hint", children: "A short, plain-text description shown in previews and listings" })] }), _jsxs("div", { children: [_jsx(MarkdownEditor, { label: "About", height: 350, value: state?.about || "", onChange: () => { }, onBlur: (value) => handleFieldChange("about", value) }), _jsx("p", { className: "field-hint", children: "A detailed description with markdown formatting to showcase your capabilities" })] })] })] }), _jsx(SkillsSection, { skills: state?.skills || [], onAddSkill: handleAddSkill, onRemoveSkill: handleRemoveSkill }), _jsx(ScopesSection, { scopes: state?.scopes || [], onAddScope: handleAddScope, onRemoveScope: handleRemoveScope }), _jsx(LinksSection, { links: state?.links || [], onAddLink: handleAddLink, onEditLink: handleEditLink, onRemoveLink: handleRemoveLink }), state?.type === "TEAM" && (_jsx(ContributorsSection, { contributors: state.contributors, onAddContributor: handleAddContributor, onRemoveContributor: handleRemoveContributor })), _jsx(ToastContainer, { position: "bottom-right" })] })] }));
|
|
247
322
|
}
|