@dotcraft/avatar 0.7.1 → 0.7.3
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/README.md +18 -20
- package/dist/AnimatedDecoration.d.ts +2 -2
- package/dist/AnimatedDecoration.d.ts.map +1 -1
- package/dist/AnimatedDecoration.js +2 -2
- package/dist/AnimatedDecoration.js.map +1 -1
- package/dist/AppearanceRig.d.ts +7 -1
- package/dist/AppearanceRig.d.ts.map +1 -1
- package/dist/AppearanceRig.js +2 -2
- package/dist/AppearanceRig.js.map +1 -1
- package/dist/Avatar.d.ts +2 -0
- package/dist/Avatar.d.ts.map +1 -1
- package/dist/Avatar.js +19 -7
- package/dist/Avatar.js.map +1 -1
- package/dist/BackDecorations.d.ts +9 -0
- package/dist/BackDecorations.d.ts.map +1 -0
- package/dist/BackDecorations.js +73 -0
- package/dist/BackDecorations.js.map +1 -0
- package/dist/DecorationShapes.d.ts +9 -2
- package/dist/DecorationShapes.d.ts.map +1 -1
- package/dist/DecorationShapes.js +8 -2
- package/dist/DecorationShapes.js.map +1 -1
- package/dist/Decorations.d.ts +6 -9
- package/dist/Decorations.d.ts.map +1 -1
- package/dist/Decorations.js +33 -16
- package/dist/Decorations.js.map +1 -1
- package/dist/FaceDecorations.d.ts +14 -0
- package/dist/FaceDecorations.d.ts.map +1 -0
- package/dist/FaceDecorations.js +69 -0
- package/dist/FaceDecorations.js.map +1 -0
- package/dist/HandDecorations.d.ts +5 -0
- package/dist/HandDecorations.d.ts.map +1 -0
- package/dist/HandDecorations.js +8 -0
- package/dist/HandDecorations.js.map +1 -0
- package/dist/HatDecorations.d.ts +2 -2
- package/dist/HatDecorations.d.ts.map +1 -1
- package/dist/HatDecorations.js +4 -0
- package/dist/HatDecorations.js.map +1 -1
- package/dist/MascotRig.d.ts +13 -1
- package/dist/MascotRig.d.ts.map +1 -1
- package/dist/MascotRig.js +6 -26
- package/dist/MascotRig.js.map +1 -1
- package/dist/ObjectDecorations.d.ts +2 -2
- package/dist/ObjectDecorations.d.ts.map +1 -1
- package/dist/ObjectDecorations.js +18 -2
- package/dist/ObjectDecorations.js.map +1 -1
- package/dist/RigMaterial.d.ts +18 -0
- package/dist/RigMaterial.d.ts.map +1 -0
- package/dist/RigMaterial.js +9 -0
- package/dist/RigMaterial.js.map +1 -0
- package/dist/SkinDecorations.d.ts +10 -0
- package/dist/SkinDecorations.d.ts.map +1 -0
- package/dist/SkinDecorations.js +28 -0
- package/dist/SkinDecorations.js.map +1 -0
- package/dist/accessories.css +1 -1
- package/dist/appearanceModel.d.ts +18 -14
- package/dist/appearanceModel.d.ts.map +1 -1
- package/dist/appearanceModel.js +62 -30
- package/dist/appearanceModel.js.map +1 -1
- package/dist/composer/styles/energy.css +34 -0
- package/dist/decorationCatalog.d.ts +17 -7
- package/dist/decorationCatalog.d.ts.map +1 -1
- package/dist/decorationCatalog.js +95 -36
- package/dist/decorationCatalog.js.map +1 -1
- package/dist/decorationMotion.d.ts +2 -2
- package/dist/decorationMotion.d.ts.map +1 -1
- package/dist/decorationMotion.js +4 -1
- package/dist/decorationMotion.js.map +1 -1
- package/dist/effects.css +86 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/items.d.ts +460 -0
- package/dist/items.d.ts.map +1 -0
- package/dist/items.js +52 -0
- package/dist/items.js.map +1 -0
- package/dist/paintMaterials.d.ts +31 -0
- package/dist/paintMaterials.d.ts.map +1 -0
- package/dist/paintMaterials.js +10 -0
- package/dist/paintMaterials.js.map +1 -0
- package/dist/palette.d.ts +2 -0
- package/dist/palette.d.ts.map +1 -1
- package/dist/palette.js +4 -4
- package/dist/palette.js.map +1 -1
- package/dist/react.d.ts +2 -2
- package/dist/react.d.ts.map +1 -1
- package/dist/react.js +2 -2
- package/dist/react.js.map +1 -1
- package/dist/rig.css +6 -21
- package/dist/styles.css +1 -0
- package/package.json +1 -1
- package/src/AnimatedDecoration.tsx +4 -4
- package/src/AppearanceRig.tsx +5 -4
- package/src/Avatar.tsx +25 -11
- package/src/BackDecorations.tsx +134 -0
- package/src/DecorationShapes.tsx +11 -3
- package/src/Decorations.tsx +47 -22
- package/src/FaceDecorations.tsx +145 -0
- package/src/HandDecorations.tsx +113 -0
- package/src/HatDecorations.tsx +29 -2
- package/src/MascotRig.tsx +27 -44
- package/src/ObjectDecorations.tsx +69 -3
- package/src/RigMaterial.tsx +23 -0
- package/src/SkinDecorations.tsx +56 -0
- package/src/accessories.css +1 -1
- package/src/appearanceModel.ts +57 -37
- package/src/composer/styles/energy.css +34 -0
- package/src/decorationCatalog.ts +103 -38
- package/src/decorationMotion.ts +6 -3
- package/src/effects.css +86 -0
- package/src/index.ts +2 -0
- package/src/items.ts +86 -0
- package/src/paintMaterials.ts +18 -0
- package/src/palette.ts +7 -3
- package/src/react.ts +2 -2
- package/src/rig.css +6 -21
- package/src/styles.css +1 -0
- package/dist/HeldDecorations.d.ts +0 -5
- package/dist/HeldDecorations.d.ts.map +0 -1
- package/dist/HeldDecorations.js +0 -5
- package/dist/HeldDecorations.js.map +0 -1
- package/src/HeldDecorations.tsx +0 -48
package/README.md
CHANGED
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
# @dotcraft/avatar
|
|
2
2
|
|
|
3
|
-
Render a DotCraft companion from an Agent name.
|
|
4
|
-
|
|
5
|
-
entry works without React.
|
|
3
|
+
Render a consistent DotCraft companion from an Agent name. React components require React 19;
|
|
4
|
+
the package root works without React.
|
|
6
5
|
|
|
7
6
|
## Install
|
|
8
7
|
|
|
9
|
-
After the package's first npm release:
|
|
10
|
-
|
|
11
8
|
```shell
|
|
12
9
|
npm install @dotcraft/avatar
|
|
13
10
|
```
|
|
@@ -25,22 +22,23 @@ export function AgentIdentity() {
|
|
|
25
22
|
}
|
|
26
23
|
```
|
|
27
24
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
`eventSequence` to replay an event. Provide a localized `label`, or omit it for decorative artwork.
|
|
31
|
-
See the [component props](./src/Avatar.tsx) for all options.
|
|
32
|
-
|
|
33
|
-
`ComposerMascot` accepts `theme="light"` or `theme="dark"` for host-aware effects. It defaults
|
|
34
|
-
to `dark`; pass the host's applied theme when the surrounding application supports both variants.
|
|
25
|
+
Import `deriveAppearance` from `@dotcraft/avatar` when an application needs the same
|
|
26
|
+
name-derived appearance without React.
|
|
35
27
|
|
|
36
|
-
##
|
|
28
|
+
## Collection
|
|
37
29
|
|
|
38
|
-
|
|
39
|
-
|
|
30
|
+
An appearance fills five independent slots: `head`, `face`, `hand`, `back`, and `skin`. Every
|
|
31
|
+
item in the [registry](./src/items.ts) carries a rarity (`common` to `legendary`), a series, and
|
|
32
|
+
the zones it occupies; items that share a zone never appear together. Name derivation draws each
|
|
33
|
+
slot's rarity with shared weights, so legendary items are rare but reachable. Use
|
|
34
|
+
`equip(appearance, slot, id)` to change one slot and clear conflicting ones, and the
|
|
35
|
+
[catalog](./src/decorationCatalog.ts) for display names, rarity chrome colors, and series labels.
|
|
40
36
|
|
|
41
|
-
|
|
42
|
-
|
|
37
|
+
Effects belong to items: paint skins such as `chrome` and `holographic` replace the body paint,
|
|
38
|
+
glow items pulse, and orbit moons circle. Effects animate only at 44px and above with motion
|
|
39
|
+
enabled; smaller avatars render their static frame, and avatars at 20px and below drop face, hand,
|
|
40
|
+
overlay-skin, and effect layers entirely. The model is specified in
|
|
41
|
+
[specs/features/avatar-collection.md](../../../../specs/features/avatar-collection.md).
|
|
43
42
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
an explicit appearance for design tools. See the [appearance types and compatibility rules](./src/appearanceModel.ts).
|
|
43
|
+
See the [TypeScript SDK reference](https://www.dotcraft.net/developing/sdks/typescript) for the
|
|
44
|
+
available entry points.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { HeadId } from './items.js';
|
|
2
2
|
import type { AvatarPose } from './characters.js';
|
|
3
3
|
export declare function AnimatedDecoration({ id, pose, sequence, enabled, paused }: {
|
|
4
|
-
id:
|
|
4
|
+
id: HeadId;
|
|
5
5
|
pose: AvatarPose;
|
|
6
6
|
sequence: number;
|
|
7
7
|
enabled: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnimatedDecoration.d.ts","sourceRoot":"","sources":["../src/AnimatedDecoration.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"AnimatedDecoration.d.ts","sourceRoot":"","sources":["../src/AnimatedDecoration.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAIjD,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;IAC1E,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAClF,+BAkCA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useEffect, useRef } from 'react';
|
|
3
|
-
import {
|
|
3
|
+
import { HeadDecoration } from './Decorations.js';
|
|
4
4
|
import { advanceDecoration, decorationMotionProfiles, frameTransform, requestDecorationEvent, restFrame } from './decorationMotion.js';
|
|
5
5
|
export function AnimatedDecoration({ id, pose, sequence, enabled, paused }) {
|
|
6
6
|
const art = useRef(null);
|
|
@@ -38,6 +38,6 @@ export function AnimatedDecoration({ id, pose, sequence, enabled, paused }) {
|
|
|
38
38
|
handle = requestAnimationFrame(tick);
|
|
39
39
|
return () => cancelAnimationFrame(handle);
|
|
40
40
|
}, [id, pose, sequence, enabled, paused]);
|
|
41
|
-
return _jsxs("g", { "data-decoration-motion": profile.kind, children: [profile.shadow > 0 && _jsx("ellipse", { ref: shadow, cx: profile.x, cy: "404", rx: profile.shadow, ry: "7", fill: "#243344", opacity: ".12" }), _jsx("g", { ref: art, transform: frameTransform(profile, restFrame), children: _jsx(
|
|
41
|
+
return _jsxs("g", { "data-decoration-motion": profile.kind, children: [profile.shadow > 0 && _jsx("ellipse", { ref: shadow, cx: profile.x, cy: "404", rx: profile.shadow, ry: "7", fill: "#243344", opacity: ".12" }), _jsx("g", { ref: art, transform: frameTransform(profile, restFrame), children: _jsx(HeadDecoration, { id: id }) })] });
|
|
42
42
|
}
|
|
43
43
|
//# sourceMappingURL=AnimatedDecoration.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnimatedDecoration.js","sourceRoot":"","sources":["../src/AnimatedDecoration.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAGzC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"AnimatedDecoration.js","sourceRoot":"","sources":["../src/AnimatedDecoration.tsx"],"names":[],"mappings":"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"}
|
package/dist/AppearanceRig.d.ts
CHANGED
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
import type { ReactNode } from 'react';
|
|
2
2
|
import type { AvatarPose, AvatarExpression } from './characters.js';
|
|
3
3
|
import type { Appearance } from './appearanceModel.js';
|
|
4
|
-
|
|
4
|
+
import { type BodyPaint, type Faceplate } from './MascotRig.js';
|
|
5
|
+
export declare function AppearanceRig({ appearance, pose, expression: override, top, accessory, faceplate, held, back, front, surface, paint }: {
|
|
5
6
|
appearance: Appearance;
|
|
6
7
|
pose: AvatarPose;
|
|
7
8
|
expression?: AvatarExpression;
|
|
8
9
|
top?: ReactNode;
|
|
9
10
|
accessory?: ReactNode;
|
|
11
|
+
faceplate?: Faceplate;
|
|
10
12
|
held?: ReactNode;
|
|
13
|
+
back?: ReactNode;
|
|
14
|
+
front?: ReactNode;
|
|
15
|
+
surface?: ReactNode;
|
|
16
|
+
paint?: BodyPaint;
|
|
11
17
|
}): import("react").JSX.Element;
|
|
12
18
|
//# sourceMappingURL=AppearanceRig.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppearanceRig.d.ts","sourceRoot":"","sources":["../src/AppearanceRig.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AACnE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"AppearanceRig.d.ts","sourceRoot":"","sources":["../src/AppearanceRig.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AACnE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAa,KAAK,SAAS,EAAE,KAAK,SAAS,EAAyB,MAAM,gBAAgB,CAAA;AACjG,wBAAgB,aAAa,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;IACtI,UAAU,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,UAAU,CAAC;IAAC,UAAU,CAAC,EAAE,gBAAgB,CAAA;IACvE,GAAG,CAAC,EAAE,SAAS,CAAC;IAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IAAC,IAAI,CAAC,EAAE,SAAS,CAAC;IAAC,IAAI,CAAC,EAAE,SAAS,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,CAAC;IAAC,OAAO,CAAC,EAAE,SAAS,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,CAAA;CAC7J,+BAQA"}
|
package/dist/AppearanceRig.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { MascotRig } from './MascotRig.js';
|
|
3
|
-
export function AppearanceRig({ appearance, pose, expression: override, top, accessory, held }) {
|
|
3
|
+
export function AppearanceRig({ appearance, pose, expression: override, top, accessory, faceplate, held, back, front, surface, paint }) {
|
|
4
4
|
const derived = pose === 'sleep' ? 'sleep' : ['done', 'greeting', 'acknowledge'].includes(pose) ? 'happy'
|
|
5
5
|
: ['working', 'waiting', 'blocked'].includes(pose) ? 'operator' : 'neutral';
|
|
6
6
|
const expression = override === 'base' ? 'neutral' : override ?? derived;
|
|
7
|
-
return _jsx(MascotRig, { size: 1024, expression: expression, top: top, accessory: accessory, held: held, baseFace: appearance.baseFace, light: pose === 'blocked' ? 'error' : pose === 'done' ? 'success' : 'default', avatar: appearance.palette === -1 ? undefined : { palette: appearance.palette } });
|
|
7
|
+
return _jsx(MascotRig, { size: 1024, expression: expression, top: top, accessory: accessory, faceplate: faceplate, held: held, back: back, front: front, surface: surface, paint: paint, baseFace: appearance.baseFace, light: pose === 'blocked' ? 'error' : pose === 'done' ? 'success' : 'default', avatar: appearance.palette === -1 ? undefined : { palette: appearance.palette } });
|
|
8
8
|
}
|
|
9
9
|
//# sourceMappingURL=AppearanceRig.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppearanceRig.js","sourceRoot":"","sources":["../src/AppearanceRig.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"AppearanceRig.js","sourceRoot":"","sources":["../src/AppearanceRig.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,SAAS,EAAyD,MAAM,gBAAgB,CAAA;AACjG,MAAM,UAAU,aAAa,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAGnI;IACC,MAAM,OAAO,GAAqB,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO;QACzH,CAAC,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAA;IAC7E,MAAM,UAAU,GAAG,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,IAAI,OAAO,CAAA;IACxE,OAAO,KAAC,SAAS,IAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAC9K,QAAQ,EAAE,UAAU,CAAC,QAAQ,EAC7B,KAAK,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAC7E,MAAM,EAAE,UAAU,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,GAAI,CAAA;AACvF,CAAC"}
|
package/dist/Avatar.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import type { AvatarPose, MotionMode, AvatarExpression, AvatarGesture } from './characters.js';
|
|
2
2
|
import { type Appearance } from './appearanceModel.js';
|
|
3
|
+
export type SizeTier = 'compact' | 'standard' | 'full';
|
|
4
|
+
export declare function sizeTier(size: number): SizeTier;
|
|
3
5
|
export interface AppearanceAvatarProps {
|
|
4
6
|
appearance: Appearance;
|
|
5
7
|
state?: AvatarPose;
|
package/dist/Avatar.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Avatar.d.ts","sourceRoot":"","sources":["../src/Avatar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC9F,OAAO,
|
|
1
|
+
{"version":3,"file":"Avatar.d.ts","sourceRoot":"","sources":["../src/Avatar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC9F,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAUxE,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,CAAA;AACtD,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAoE;AAEpH,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,UAAU,CAAA;IACtB,KAAK,CAAC,EAAE,UAAU,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,UAAU,CAAC,EAAE,gBAAgB,CAAA;IAC7B,OAAO,CAAC,EAAE,aAAa,CAAA;IACvB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,iBAAiB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;CAC/C;AACD,wBAAgB,gBAAgB,CAAC,EAAE,UAAU,EAAE,KAAc,EAAE,IAAS,EAAE,MAAc,EAAE,MAAc,EAAE,KAAK,EAAE,aAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,eAAmB,EAAE,iBAAiB,EAAE,EAAE,qBAAqB,+BAiElO;AAED,MAAM,WAAW,WAAY,SAAQ,IAAI,CAAC,qBAAqB,EAAE,YAAY,CAAC;IAAG,IAAI,EAAE,MAAM,CAAA;CAAE;AAC/F,wBAAgB,MAAM,CAAC,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,WAAW,+BAAgF"}
|
package/dist/Avatar.js
CHANGED
|
@@ -1,25 +1,30 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { useEffect, useRef, useState } from 'react';
|
|
3
3
|
import { AppearanceRig } from './AppearanceRig.js';
|
|
4
|
-
import { deriveAppearance
|
|
5
|
-
import { SecondaryDecoration } from './Decorations.js';
|
|
4
|
+
import { deriveAppearance } from './appearanceModel.js';
|
|
6
5
|
import { AnimatedDecoration } from './AnimatedDecoration.js';
|
|
6
|
+
import { FaceDecoration, faceplateOf } from './FaceDecorations.js';
|
|
7
|
+
import { HandDecoration } from './HandDecorations.js';
|
|
8
|
+
import { BackDecoration, BackFrontDecoration, hasFrontPart } from './BackDecorations.js';
|
|
9
|
+
import { SkinOverlay, SkinPaintSurface, skinPaint } from './SkinDecorations.js';
|
|
7
10
|
import { useMotionEnvironment, useOnscreen, useTransitionPause } from './environment.js';
|
|
8
11
|
import { useGesture } from './useGesture.js';
|
|
9
12
|
import { useEventReplay } from './useEventReplay.js';
|
|
13
|
+
export function sizeTier(size) { return size <= 20 ? 'compact' : size < 44 ? 'standard' : 'full'; }
|
|
10
14
|
export function AppearanceAvatar({ appearance, state = 'idle', size = 44, motion = 'off', paused = false, label, eventSequence = 0, className, expression, gesture, gestureSequence = 0, onGestureComplete }) {
|
|
11
15
|
const ref = useRef(null);
|
|
12
|
-
const
|
|
13
|
-
const
|
|
16
|
+
const tier = sizeTier(size);
|
|
17
|
+
const compact = tier === 'compact';
|
|
18
|
+
const visible = useOnscreen(ref, motion !== 'off' && !compact);
|
|
19
|
+
const environment = useMotionEnvironment(motion, !compact);
|
|
14
20
|
useTransitionPause(ref, paused || !visible);
|
|
15
21
|
const [displayed, setDisplayed] = useState(state);
|
|
16
22
|
const [displayedSequence, setDisplayedSequence] = useState(eventSequence);
|
|
17
23
|
const [exiting, setExiting] = useState(false);
|
|
18
24
|
const identity = JSON.stringify(appearance);
|
|
19
25
|
const previousIdentity = useRef(identity);
|
|
20
|
-
const compact = size <= 20;
|
|
21
26
|
const animated = environment && !compact;
|
|
22
|
-
const held = !compact &&
|
|
27
|
+
const held = !compact && appearance.hand !== 'none';
|
|
23
28
|
const [shownExpression, setShownExpression] = useState(expression);
|
|
24
29
|
useEffect(() => { if (!animated || (!paused && visible))
|
|
25
30
|
setShownExpression(expression); }, [expression, animated, paused, visible]);
|
|
@@ -58,6 +63,7 @@ export function AppearanceAvatar({ appearance, state = 'idle', size = 44, motion
|
|
|
58
63
|
return () => window.clearTimeout(timer);
|
|
59
64
|
}, [state, displayed, animated, paused, visible, identity, eventSequence, displayedSequence]);
|
|
60
65
|
const pose = animated ? displayed : state;
|
|
66
|
+
const effects = compact ? 'off' : tier === 'full' && animated ? 'live' : 'static';
|
|
61
67
|
const classes = [
|
|
62
68
|
'dca-rig',
|
|
63
69
|
!compact && pose === 'waiting' ? 'dca-action-hold-sign' : '',
|
|
@@ -65,7 +71,13 @@ export function AppearanceAvatar({ appearance, state = 'idle', size = 44, motion
|
|
|
65
71
|
!compact && pose === 'done' ? 'dca-action-celebrate' : '',
|
|
66
72
|
!compact && pose === 'greeting' && !exiting ? 'dca-action-wave' : '',
|
|
67
73
|
].filter(Boolean).join(' ');
|
|
68
|
-
|
|
74
|
+
const paint = appearance.skin === 'none' ? undefined : skinPaint(appearance.skin);
|
|
75
|
+
const overlay = compact || appearance.skin === 'none' ? undefined
|
|
76
|
+
: paint ? _jsx(SkinPaintSurface, { id: appearance.skin }) : _jsx(SkinOverlay, { id: appearance.skin });
|
|
77
|
+
const faceplate = faceplateOf(appearance.face);
|
|
78
|
+
const back = appearance.back !== 'none' ? _jsx("g", { className: "dca-part-back", "data-back": appearance.back, children: _jsx(BackDecoration, { id: appearance.back }) }) : undefined;
|
|
79
|
+
const front = appearance.back !== 'none' && hasFrontPart(appearance.back) ? _jsx("g", { className: "dca-part-front", children: _jsx(BackFrontDecoration, { id: appearance.back }) }) : undefined;
|
|
80
|
+
return _jsx("span", { ref: ref, className: `dca-robot${className ? ` ${className}` : ''}`, style: { width: size, height: size, '--dca-loop': '2.6s' }, "data-pose": pose, "data-mode": motion, "data-motion": animated ? 'on' : 'off', "data-paused": paused || !visible, "data-exiting": exiting, "data-compact": compact, "data-size-tier": tier, "data-effects": effects, "data-head": appearance.head, "data-face": appearance.face, "data-hand": appearance.hand, "data-back": appearance.back, "data-skin": appearance.skin, "data-base-face": appearance.baseFace, "data-gesture": animated ? gesture : undefined, "data-held-state": held ? (pose === 'working' || pose === 'waiting' ? 'stowed' : 'holding') : undefined, children: _jsx("svg", { className: "dca-canvas", width: size, height: size, viewBox: "0 0 1024 1024", fill: "none", role: label ? 'img' : undefined, "aria-hidden": label ? undefined : true, "aria-label": label, children: _jsx("g", { className: "dca-body-motion", children: _jsx("g", { className: classes, children: _jsx(AppearanceRig, { appearance: appearance, pose: pose, expression: animated ? shownExpression : expression, top: appearance.head === 'none' ? undefined : _jsx(AnimatedDecoration, { id: appearance.head, pose: state, sequence: eventSequence, enabled: animated, paused: paused || !visible }), held: held && appearance.hand !== 'none' ? _jsx("g", { "data-accessory": appearance.hand, className: "dca-part-held", children: _jsx(HandDecoration, { id: appearance.hand }) }) : undefined, accessory: !compact && appearance.face !== 'none' && !faceplate ? _jsx("g", { "data-accessory": appearance.face, children: _jsx(FaceDecoration, { id: appearance.face }) }) : undefined, faceplate: faceplate, back: back, front: front, surface: overlay, paint: paint }) }) }) }) });
|
|
69
81
|
}
|
|
70
82
|
export function Avatar({ name, ...props }) { return _jsx(AppearanceAvatar, { appearance: deriveAppearance(name), ...props }); }
|
|
71
83
|
//# sourceMappingURL=Avatar.js.map
|
package/dist/Avatar.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Avatar.js","sourceRoot":"","sources":["../src/Avatar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAsB,MAAM,OAAO,CAAA;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAElD,OAAO,EAAE,gBAAgB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"Avatar.js","sourceRoot":"","sources":["../src/Avatar.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { BackId } from './items.js';
|
|
2
|
+
export declare function BackDecoration({ id }: {
|
|
3
|
+
id: BackId;
|
|
4
|
+
}): import("react").JSX.Element | null;
|
|
5
|
+
export declare function BackFrontDecoration({ id }: {
|
|
6
|
+
id: BackId;
|
|
7
|
+
}): import("react").JSX.Element | null;
|
|
8
|
+
export declare function hasFrontPart(id: BackId): boolean;
|
|
9
|
+
//# sourceMappingURL=BackDecorations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BackDecorations.d.ts","sourceRoot":"","sources":["../src/BackDecorations.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAgExC,wBAAgB,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,sCAyDpD;AAED,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,EAAE,EAAE;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,sCAQzD;AACD,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAA+B"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { Glow } from './DecorationShapes.js';
|
|
3
|
+
function Wing({ outer, inner, fill, lining, outline = '#fff', flap = 'dca-fx-flap', children }) {
|
|
4
|
+
return _jsxs("g", { className: flap, style: { transformOrigin: '272px 560px' }, children: [_jsx("path", { d: outer, fill: fill, stroke: outline, strokeWidth: "18", strokeLinejoin: "round", paintOrder: "stroke fill" }), inner && _jsx("path", { d: inner, fill: lining }), children] });
|
|
5
|
+
}
|
|
6
|
+
function Wings(props) {
|
|
7
|
+
return _jsxs(_Fragment, { children: [_jsx(Wing, { ...props }), _jsx("g", { transform: "matrix(-1 0 0 1 1024 0)", children: _jsx(Wing, { ...props }) })] });
|
|
8
|
+
}
|
|
9
|
+
const batWing = {
|
|
10
|
+
outer: 'M272 520C200 470 120 400 60 340c30 80 10 130-20 160 70 20 90 60 60 100 70 10 100 50 90 100h82Z',
|
|
11
|
+
inner: 'M262 540c-60-40-120-96-166-146 20 60 6 100-16 128 56 16 76 50 56 84 56 10 82 44 74 88h52Z',
|
|
12
|
+
};
|
|
13
|
+
const butterflyWing = {
|
|
14
|
+
outer: 'M272 540C190 380 60 340 20 420c-14 56 50 96 110 120-80 12-120 70-80 130 56 56 160 26 232-40Z',
|
|
15
|
+
inner: 'M262 560c-70-120-170-150-196-90-8 40 44 70 96 90-60 14-90 60-60 100 46 40 130 14 180-44Z',
|
|
16
|
+
};
|
|
17
|
+
const angelWing = {
|
|
18
|
+
outer: 'M272 520C180 440 80 420 40 470c20 50 70 70 120 80-60 20-90 60-70 100 50 20 110 0 160-40-30 40-30 80 0 100 40-10 80-60 100-120Z',
|
|
19
|
+
inner: 'M262 540C190 480 110 462 78 492c16 36 56 52 96 60-46 16-70 46-56 76 40 14 90-4 130-36-20 30-16 58 8 70 30-10 58-46 72-92Z',
|
|
20
|
+
};
|
|
21
|
+
const dragonWing = {
|
|
22
|
+
outer: 'M272 500C160 380 60 300 20 340c0 60 60 100 100 130-60 30-100 90-80 150 60 10 130-20 190-70-40 60-40 120 0 150 60-20 100-90 110-160Z',
|
|
23
|
+
inner: 'M262 530C170 430 90 370 60 396c4 44 50 76 84 100-50 24-84 74-70 122 50 4 110-24 160-66-30 48-30 96 0 122 44-18 78-76 86-134Z',
|
|
24
|
+
};
|
|
25
|
+
function SunRays() {
|
|
26
|
+
const rays = Array.from({ length: 12 }, (_, index) => {
|
|
27
|
+
const a = (index * 30 * Math.PI) / 180, w = (9 * Math.PI) / 180;
|
|
28
|
+
const p = (r, t) => `${(512 + r * Math.cos(t)).toFixed(0)} ${(640 + r * Math.sin(t)).toFixed(0)}`;
|
|
29
|
+
return _jsx("path", { d: `M${p(300, a - w)} L${p(560, a)} L${p(300, a + w)}Z`, fill: index % 2 ? '#ffcf11' : '#f6b500', stroke: "#fff", strokeWidth: "14", strokeLinejoin: "round", paintOrder: "stroke fill" }, index);
|
|
30
|
+
});
|
|
31
|
+
return _jsx("g", { className: "dca-fx-rotate", style: { transformOrigin: '512px 640px' }, children: rays });
|
|
32
|
+
}
|
|
33
|
+
const balloon = (cx, cy, fill, delay) => _jsxs("g", { className: "dca-fx-hover", style: { transformOrigin: `${cx}px ${cy}px`, animationDelay: delay }, children: [_jsx("path", { d: `M${cx} ${cy + 52}L${cx - 8} ${cy + 66}h16Z`, fill: fill }), _jsx("ellipse", { cx: cx, cy: cy, rx: "46", ry: "54", fill: fill, stroke: "#fff", strokeWidth: "14", paintOrder: "stroke fill" }), _jsx("ellipse", { cx: cx - 14, cy: cy - 18, rx: "10", ry: "16", fill: "#fff", opacity: ".6" })] });
|
|
34
|
+
const orbit = { transform: 'translate(512 760) rotate(-12)', rx: 450, ry: 104 };
|
|
35
|
+
const orbitBodies = [
|
|
36
|
+
{ key: 'a', art: _jsxs(_Fragment, { children: [_jsx("ellipse", { rx: "64", ry: "18", fill: "none", stroke: "#fff", strokeWidth: "22", transform: "rotate(-18)" }), _jsx("ellipse", { rx: "64", ry: "18", fill: "none", stroke: "#ffe08a", strokeWidth: "9", transform: "rotate(-18)" }), _jsx("circle", { r: "44", fill: "#fff" }), _jsx("circle", { r: "34", fill: "#f6b500" }), _jsx("path", { d: "M-64 0a64 18 0 0 0 128 0", fill: "none", stroke: "#ffe08a", strokeWidth: "9", transform: "rotate(-18)" })] }) },
|
|
37
|
+
{ key: 'b', delay: '-2.67s', art: _jsxs(_Fragment, { children: [_jsx("circle", { r: "34", fill: "#fff" }), _jsx("circle", { r: "25", fill: "#c9d2ff" })] }) },
|
|
38
|
+
{ key: 'c', delay: '-5.33s', art: _jsxs(_Fragment, { children: [_jsx("circle", { r: "26", fill: "#fff" }), _jsx("circle", { r: "17", fill: "#ff9ad9" })] }) },
|
|
39
|
+
];
|
|
40
|
+
function OrbitBodies({ side }) {
|
|
41
|
+
return _jsx(_Fragment, { children: orbitBodies.map(body => _jsx("g", { className: `dca-fx dca-fx-orbit dca-fx-orbit-${side} dca-fx-orbit-${body.key}`, style: body.delay ? { animationDelay: body.delay } : undefined, children: body.art }, body.key)) });
|
|
42
|
+
}
|
|
43
|
+
function OrbitArc({ side }) {
|
|
44
|
+
const sweep = side === 'back' ? 1 : 0;
|
|
45
|
+
const outer = `M${-orbit.rx} 0A${orbit.rx} ${orbit.ry} 0 0 ${sweep} ${orbit.rx} 0`;
|
|
46
|
+
return _jsxs(_Fragment, { children: [_jsx("path", { d: outer, fill: "none", stroke: "#fff", strokeWidth: "46" }), _jsx("path", { d: outer, fill: "none", stroke: "#b9c4ff", strokeWidth: "30" })] });
|
|
47
|
+
}
|
|
48
|
+
const halo = { cx: 512, cy: 229, r: 168 };
|
|
49
|
+
export function BackDecoration({ id }) {
|
|
50
|
+
switch (id) {
|
|
51
|
+
case 'cape': return _jsxs("g", { className: "dca-fx-sway", style: { transformOrigin: '512px 452px' }, children: [_jsx("path", { d: "M262 452C190 600 130 780 104 930c80-26 160-26 240 0 56-20 112-30 168-30s112 10 168 30c80-26 160-26 240 0-26-150-86-330-158-478Z", fill: "#b23a48", stroke: "#fff", strokeWidth: "18", strokeLinejoin: "round", paintOrder: "stroke fill" }), _jsx("path", { d: "M296 470C236 600 190 760 176 896c56-16 108-22 168-16 56-14 112-22 168-22s112 8 168 22c60-6 112 0 168 16-14-136-60-296-120-426Z", fill: "#d65a68" })] });
|
|
52
|
+
case 'jetpack': return _jsxs(_Fragment, { children: [_jsxs("g", { className: "dca-fx dca-fx-flame", style: { transformOrigin: '159px 800px' }, children: [_jsx("path", { d: "M159 892c-26-30-34-56-26-90h52c8 34 0 60-26 90Z", fill: "#ffb347" }), _jsx("path", { d: "M159 866c-12-18-16-34-10-52h20c6 18 2 34-10 52Z", fill: "#ffe08a" })] }), _jsxs("g", { className: "dca-fx dca-fx-flame", style: { transformOrigin: '865px 800px', animationDelay: '.35s' }, children: [_jsx("path", { d: "M865 892c-26-30-34-56-26-90h52c8 34 0 60-26 90Z", fill: "#ffb347" }), _jsx("path", { d: "M865 866c-12-18-16-34-10-52h20c6 18 2 34-10 52Z", fill: "#ffe08a" })] }), _jsx("rect", { x: "118", y: "486", width: "82", height: "290", rx: "40", fill: "#8b95a5", stroke: "#fff", strokeWidth: "18", paintOrder: "stroke fill" }), _jsx("rect", { x: "824", y: "486", width: "82", height: "290", rx: "40", fill: "#8b95a5", stroke: "#fff", strokeWidth: "18", paintOrder: "stroke fill" }), _jsx("rect", { x: "126", y: "486", width: "66", height: "44", rx: "20", fill: "#e8654f" }), _jsx("rect", { x: "832", y: "486", width: "66", height: "44", rx: "20", fill: "#e8654f" }), _jsx("path", { d: "M134 776h50l10 30h-70Z", fill: "#3c4658", stroke: "#fff", strokeWidth: "12", strokeLinejoin: "round", paintOrder: "stroke fill" }), _jsx("path", { d: "M840 776h50l10 30h-70Z", fill: "#3c4658", stroke: "#fff", strokeWidth: "12", strokeLinejoin: "round", paintOrder: "stroke fill" })] });
|
|
53
|
+
case 'bat-wings': return _jsx(Wings, { ...batWing, fill: "#5b3a8c", lining: "#3d2563" });
|
|
54
|
+
case 'butterfly-wings': return _jsx(Wings, { ...butterflyWing, fill: "#f2a0b4", lining: "#fff3c4" });
|
|
55
|
+
case 'angel-wings': return _jsxs(_Fragment, { children: [_jsxs(Glow, { blur: 22, className: "dca-fx-pulse", children: [_jsx("path", { d: angelWing.outer, fill: "#fff7dc", opacity: ".6" }), _jsx("path", { d: angelWing.outer, fill: "#fff7dc", opacity: ".6", transform: "matrix(-1 0 0 1 1024 0)" })] }), _jsx(Wings, { ...angelWing, fill: "#fff", lining: "#dfe4ff", outline: "#b9c4ff", flap: "dca-fx-flap-slow" })] });
|
|
56
|
+
case 'dragon-wings': return _jsx(Wings, { ...dragonWing, fill: "#b23a48", lining: "#7f2634", children: _jsxs("g", { className: "dca-fx dca-fx-pulse", fill: "#ffb347", children: [_jsx("circle", { cx: "30", cy: "350", r: "14" }), _jsx("circle", { cx: "48", cy: "618", r: "12" }), _jsx("circle", { cx: "236", cy: "704", r: "12" })] }) });
|
|
57
|
+
case 'crescent-moon': return _jsxs(_Fragment, { children: [_jsx("path", { d: "M330 130a190 190 0 1 0 176 254a150 150 0 0 1-176-254Z", fill: "#f6d365", stroke: "#fff", strokeWidth: "18", strokeLinejoin: "round", paintOrder: "stroke fill" }), _jsx("path", { className: "dca-fx dca-fx-sparkle-solo", d: "M720 150l12 30 30 12-30 12-12 30-12-30-30-12 30-12Z", fill: "#fff3c4", stroke: "#fff", strokeWidth: "10", strokeLinejoin: "round", paintOrder: "stroke fill" })] });
|
|
58
|
+
case 'star-trail': return _jsxs("g", { className: "dca-fx-sparkle", fill: "#f6b500", stroke: "#fff", strokeWidth: "14", strokeLinejoin: "round", paintOrder: "stroke fill", children: [_jsx("path", { d: "M130 330l20 48 48 20-48 20-20 48-20-48-48-20 48-20Z" }), _jsx("path", { d: "M900 250l16 38 38 16-38 16-16 38-16-38-38-16 38-16Z", style: { animationDelay: '.6s' } }), _jsx("path", { d: "M920 690l12 30 30 12-30 12-12 30-12-30-30-12 30-12Z", style: { animationDelay: '1.1s' } })] });
|
|
59
|
+
case 'balloons': return _jsxs(_Fragment, { children: [_jsx("path", { d: "M150 384 262 560M206 306 262 560M112 484 262 560", stroke: "#fff", strokeWidth: "16", strokeLinecap: "round" }), _jsx("path", { d: "M150 384 262 560M206 306 262 560M112 484 262 560", stroke: "#8b95a5", strokeWidth: "6", strokeLinecap: "round" }), balloon(150, 330, '#e8654f'), balloon(206, 250, '#f6b500', '.5s'), balloon(112, 430, '#4f7cf6', '1s')] });
|
|
60
|
+
case 'sun-rays': return _jsx(SunRays, {});
|
|
61
|
+
case 'halo': return _jsxs(_Fragment, { children: [_jsx(Glow, { blur: 24, className: "dca-fx-pulse", children: _jsx("circle", { cx: halo.cx, cy: halo.cy, r: halo.r, fill: "none", stroke: "#ffe08a", strokeWidth: "74", opacity: ".65" }) }), _jsx("circle", { cx: halo.cx, cy: halo.cy, r: halo.r, fill: "none", stroke: "#fff", strokeWidth: "54" }), _jsx("circle", { cx: halo.cx, cy: halo.cy, r: halo.r, fill: "none", stroke: "#f6b500", strokeWidth: "34" })] });
|
|
62
|
+
case 'orbit-ring': return _jsxs("g", { transform: orbit.transform, children: [_jsx(Glow, { blur: 22, className: "dca-fx-pulse", children: _jsx("ellipse", { rx: orbit.rx, ry: orbit.ry, fill: "none", stroke: "#b9c4ff", strokeWidth: "60", opacity: ".55" }) }), _jsx(OrbitArc, { side: "back" }), _jsx(OrbitBodies, { side: "back" })] });
|
|
63
|
+
default: return null;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
export function BackFrontDecoration({ id }) {
|
|
67
|
+
switch (id) {
|
|
68
|
+
case 'orbit-ring': return _jsxs("g", { "data-back-front": id, transform: orbit.transform, children: [_jsx(OrbitArc, { side: "front" }), _jsx(OrbitBodies, { side: "front" })] });
|
|
69
|
+
default: return null;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
export function hasFrontPart(id) { return id === 'orbit-ring'; }
|
|
73
|
+
//# sourceMappingURL=BackDecorations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BackDecorations.js","sourceRoot":"","sources":["../src/BackDecorations.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,17 @@
|
|
|
1
|
-
import type
|
|
2
|
-
export declare function Silhouette({ d, fill, children }: {
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
export declare function Silhouette({ d, fill, stroke, children }: {
|
|
3
3
|
d: string;
|
|
4
4
|
fill: string;
|
|
5
|
+
stroke?: number;
|
|
5
6
|
children?: ReactNode;
|
|
6
7
|
}): import("react").JSX.Element;
|
|
7
8
|
export declare function Detail({ children }: {
|
|
8
9
|
children: ReactNode;
|
|
9
10
|
}): import("react").JSX.Element;
|
|
11
|
+
export declare function Glow({ children, blur, className }: {
|
|
12
|
+
children: ReactNode;
|
|
13
|
+
blur?: number;
|
|
14
|
+
className?: string;
|
|
15
|
+
}): import("react").JSX.Element;
|
|
16
|
+
export declare function useClipId(): string;
|
|
10
17
|
//# sourceMappingURL=DecorationShapes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DecorationShapes.d.ts","sourceRoot":"","sources":["../src/DecorationShapes.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"DecorationShapes.d.ts","sourceRoot":"","sources":["../src/DecorationShapes.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAE7C,wBAAgB,UAAU,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAW,EAAE,QAAQ,EAAE,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE,+BAEhI;AACD,wBAAgB,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,+BAE3D;AACD,wBAAgB,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAS,EAAE,SAAc,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,+BAMvH;AACD,wBAAgB,SAAS,WAAqD"}
|
package/dist/DecorationShapes.js
CHANGED
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
import { useId } from 'react';
|
|
3
|
+
export function Silhouette({ d, fill, stroke = 18, children }) {
|
|
4
|
+
return _jsxs(_Fragment, { children: [_jsx("path", { d: d, fill: fill, stroke: "#fff", strokeWidth: stroke, strokeLinejoin: "round", paintOrder: "stroke fill" }), children] });
|
|
4
5
|
}
|
|
5
6
|
export function Detail({ children }) {
|
|
6
7
|
return _jsx("g", { className: "dca-decoration-detail", children: children });
|
|
7
8
|
}
|
|
9
|
+
export function Glow({ children, blur = 18, className = '' }) {
|
|
10
|
+
const id = `dca-fx-blur-${useId().replace(/:/g, '')}`;
|
|
11
|
+
return _jsxs(_Fragment, { children: [_jsx("defs", { children: _jsx("filter", { id: id, x: "-40%", y: "-40%", width: "180%", height: "180%", children: _jsx("feGaussianBlur", { stdDeviation: blur }) }) }), _jsx("g", { className: `dca-fx dca-fx-glow ${className}`.trim(), filter: `url(#${id})`, children: children })] });
|
|
12
|
+
}
|
|
13
|
+
export function useClipId() { return `dca-clip-${useId().replace(/:/g, '')}`; }
|
|
8
14
|
//# sourceMappingURL=DecorationShapes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DecorationShapes.js","sourceRoot":"","sources":["../src/DecorationShapes.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"DecorationShapes.js","sourceRoot":"","sources":["../src/DecorationShapes.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAkB,MAAM,OAAO,CAAA;AAE7C,MAAM,UAAU,UAAU,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,EAAE,EAAE,QAAQ,EAAsE;IAC/H,OAAO,8BAAE,eAAM,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAC,MAAM,EAAC,WAAW,EAAE,MAAM,EAAE,cAAc,EAAC,OAAO,EAAC,UAAU,EAAC,aAAa,GAAG,EAAC,QAAQ,IAAI,CAAA;AACrI,CAAC;AACD,MAAM,UAAU,MAAM,CAAC,EAAE,QAAQ,EAA2B;IAC1D,OAAO,YAAG,SAAS,EAAC,uBAAuB,YAAE,QAAQ,GAAK,CAAA;AAC5D,CAAC;AACD,MAAM,UAAU,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,GAAG,EAAE,EAAE,SAAS,GAAG,EAAE,EAA8D;IACtH,MAAM,EAAE,GAAG,eAAe,KAAK,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAA;IACrD,OAAO,8BACL,yBAAM,iBAAQ,EAAE,EAAE,EAAE,EAAE,CAAC,EAAC,MAAM,EAAC,CAAC,EAAC,MAAM,EAAC,KAAK,EAAC,MAAM,EAAC,MAAM,EAAC,MAAM,YAAC,yBAAgB,YAAY,EAAE,IAAI,GAAI,GAAS,GAAO,EACzH,YAAG,SAAS,EAAE,sBAAsB,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,YAAG,QAAQ,GAAK,IAC5F,CAAA;AACL,CAAC;AACD,MAAM,UAAU,SAAS,KAAK,OAAO,YAAY,KAAK,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAA,CAAC,CAAC"}
|
package/dist/Decorations.d.ts
CHANGED
|
@@ -1,15 +1,12 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export declare function
|
|
3
|
-
id:
|
|
4
|
-
}): import("react").JSX.Element | null;
|
|
5
|
-
export declare function PrimaryDecoration({ id }: {
|
|
6
|
-
id: PrimaryId;
|
|
1
|
+
import type { ItemId, HeadId } from './items.js';
|
|
2
|
+
export declare function HeadDecoration({ id }: {
|
|
3
|
+
id: HeadId;
|
|
7
4
|
}): import("react").JSX.Element;
|
|
8
|
-
export declare function
|
|
9
|
-
id:
|
|
5
|
+
export declare function SlotDecoration({ id }: {
|
|
6
|
+
id: ItemId;
|
|
10
7
|
}): import("react").JSX.Element;
|
|
11
8
|
export declare function DecorationSwatch({ id, size }: {
|
|
12
|
-
id:
|
|
9
|
+
id: ItemId;
|
|
13
10
|
size?: number;
|
|
14
11
|
}): import("react").JSX.Element;
|
|
15
12
|
//# sourceMappingURL=Decorations.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Decorations.d.ts","sourceRoot":"","sources":["../src/Decorations.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Decorations.d.ts","sourceRoot":"","sources":["../src/Decorations.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAU,MAAM,YAAY,CAAA;AAUxD,wBAAgB,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,+BAEpD;AAeD,wBAAgB,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,+BAWpD;AASD,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,EAAE,IAAU,EAAE,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,+BAOjF"}
|
package/dist/Decorations.js
CHANGED
|
@@ -1,26 +1,43 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { useId } from 'react';
|
|
3
|
+
import { itemOf } from './items.js';
|
|
4
4
|
import { HatDecoration } from './HatDecorations.js';
|
|
5
5
|
import { ObjectDecoration } from './ObjectDecorations.js';
|
|
6
|
+
import { FaceDecoration, FaceplateEyes, FaceplatePlate, isFaceplate } from './FaceDecorations.js';
|
|
7
|
+
import { HandDecoration } from './HandDecorations.js';
|
|
8
|
+
import { BackDecoration, BackFrontDecoration } from './BackDecorations.js';
|
|
9
|
+
import { SkinOverlay, SkinPaintSurface, skinPaint } from './SkinDecorations.js';
|
|
6
10
|
import { decorationOf } from './decorationCatalog.js';
|
|
7
|
-
export function
|
|
8
|
-
if (isHeld(id))
|
|
9
|
-
return _jsx(HeldDecoration, { id: id });
|
|
10
|
-
switch (id) {
|
|
11
|
-
case 'forehead-goggles': return _jsxs("g", { strokeLinejoin: "round", children: [_jsx("path", { d: "M374 419h109v46H374Zm167 0h109v46H541Z", fill: "#a2c5d1", stroke: "#8b7568", strokeWidth: "14" }), _jsx("path", { d: "M483 442q29 20 58 0", stroke: "#8b7568", strokeWidth: "11", fill: "none" }), _jsx("path", { d: "m389 429 18 21m149-21 18 21", stroke: "#e0eff1", strokeWidth: "8" })] });
|
|
12
|
-
default: return null;
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
export function PrimaryDecoration({ id }) {
|
|
11
|
+
export function HeadDecoration({ id }) {
|
|
16
12
|
return _jsxs("g", { "data-decoration": id, children: [_jsx(HatDecoration, { id: id }), _jsx(ObjectDecoration, { id: id })] });
|
|
17
13
|
}
|
|
18
|
-
|
|
19
|
-
|
|
14
|
+
function SkinSpecimen({ id }) {
|
|
15
|
+
const uid = useId().replace(/:/g, '');
|
|
16
|
+
const paint = skinPaint(id);
|
|
17
|
+
return _jsxs("g", { "data-skin": id, children: [_jsxs("defs", { children: [paint?.render(`dca-swatch-paint-${uid}`), _jsx("clipPath", { id: `dca-swatch-clip-${uid}`, children: _jsx("rect", { x: "243", y: "408", width: "538", height: "426", rx: "113" }) })] }), _jsx("rect", { x: "243", y: "408", width: "538", height: "426", rx: "113", fill: paint ? `url(#dca-swatch-paint-${uid})` : '#4f7cf6', stroke: "#fff", strokeWidth: "18", paintOrder: "stroke fill" }), _jsx("g", { clipPath: `url(#dca-swatch-clip-${uid})`, children: paint ? _jsx(SkinPaintSurface, { id: id }) : _jsx(SkinOverlay, { id: id }) })] });
|
|
18
|
+
}
|
|
19
|
+
export function SlotDecoration({ id }) {
|
|
20
|
+
const item = itemOf(id);
|
|
21
|
+
switch (item.slot) {
|
|
22
|
+
case 'head': return _jsx(HeadDecoration, { id: item.id });
|
|
23
|
+
case 'face': return isFaceplate(item.id)
|
|
24
|
+
? _jsxs("g", { "data-accessory": item.id, children: [_jsx("rect", { x: "295", y: "464", width: "434", height: "315", rx: "78", fill: "#fff" }), _jsx(FaceplatePlate, { id: item.id }), _jsx(FaceplateEyes, { id: item.id })] })
|
|
25
|
+
: _jsx("g", { "data-accessory": item.id, children: _jsx(FaceDecoration, { id: item.id }) });
|
|
26
|
+
case 'hand': return _jsx("g", { "data-accessory": item.id, children: _jsx(HandDecoration, { id: item.id }) });
|
|
27
|
+
case 'back': return _jsxs("g", { "data-back": item.id, children: [_jsx(BackDecoration, { id: item.id }), _jsx(BackFrontDecoration, { id: item.id })] });
|
|
28
|
+
case 'skin': return _jsx(SkinSpecimen, { id: item.id });
|
|
29
|
+
}
|
|
20
30
|
}
|
|
31
|
+
const swatchViewBox = {
|
|
32
|
+
head: '265 105 494 360',
|
|
33
|
+
face: '300 280 424 324',
|
|
34
|
+
hand: '40 330 400 400',
|
|
35
|
+
back: '20 120 984 800',
|
|
36
|
+
skin: '203 368 618 506',
|
|
37
|
+
};
|
|
21
38
|
export function DecorationSwatch({ id, size = 112 }) {
|
|
22
|
-
const
|
|
23
|
-
const
|
|
24
|
-
return _jsx("svg", { width: size, height: size, viewBox:
|
|
39
|
+
const item = itemOf(id);
|
|
40
|
+
const viewBox = item.slot === 'face' && isFaceplate(item.id) ? '255 404 514 436' : swatchViewBox[item.slot];
|
|
41
|
+
return _jsx("svg", { width: size, height: size, viewBox: viewBox, fill: "none", role: "img", "aria-label": `${decorationOf(id).name} specimen`, className: "dca-swatch dca-part-robot", "data-expression": "neutral", "data-slot": item.slot, "data-effects": "static", children: _jsx(SlotDecoration, { id: id }) });
|
|
25
42
|
}
|
|
26
43
|
//# sourceMappingURL=Decorations.js.map
|
package/dist/Decorations.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Decorations.js","sourceRoot":"","sources":["../src/Decorations.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"Decorations.js","sourceRoot":"","sources":["../src/Decorations.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { FaceId } from './items.js';
|
|
2
|
+
import type { Faceplate } from './MascotRig.js';
|
|
3
|
+
export declare function FaceDecoration({ id }: {
|
|
4
|
+
id: FaceId;
|
|
5
|
+
}): import("react").JSX.Element | null;
|
|
6
|
+
export declare function isFaceplate(id: FaceId): boolean;
|
|
7
|
+
export declare function FaceplatePlate({ id }: {
|
|
8
|
+
id: FaceId;
|
|
9
|
+
}): import("react").JSX.Element | null;
|
|
10
|
+
export declare function FaceplateEyes({ id }: {
|
|
11
|
+
id: FaceId;
|
|
12
|
+
}): import("react").JSX.Element | null;
|
|
13
|
+
export declare function faceplateOf(id: FaceId | 'none'): Faceplate | undefined;
|
|
14
|
+
//# sourceMappingURL=FaceDecorations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FaceDecorations.d.ts","sourceRoot":"","sources":["../src/FaceDecorations.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAQ,MAAM,YAAY,CAAA;AAE9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAG/C,wBAAgB,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,sCAepD;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAoE;AAqFpH,wBAAgB,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,sCAqBpD;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,EAAE,EAAE;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,sCAQnD;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAGtE"}
|