@dotcraft/avatar 0.7.1 → 0.7.2

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.
Files changed (113) hide show
  1. package/README.md +18 -20
  2. package/dist/AnimatedDecoration.d.ts +2 -2
  3. package/dist/AnimatedDecoration.d.ts.map +1 -1
  4. package/dist/AnimatedDecoration.js +2 -2
  5. package/dist/AnimatedDecoration.js.map +1 -1
  6. package/dist/AppearanceRig.d.ts +7 -1
  7. package/dist/AppearanceRig.d.ts.map +1 -1
  8. package/dist/AppearanceRig.js +2 -2
  9. package/dist/AppearanceRig.js.map +1 -1
  10. package/dist/Avatar.d.ts +2 -0
  11. package/dist/Avatar.d.ts.map +1 -1
  12. package/dist/Avatar.js +19 -7
  13. package/dist/Avatar.js.map +1 -1
  14. package/dist/BackDecorations.d.ts +9 -0
  15. package/dist/BackDecorations.d.ts.map +1 -0
  16. package/dist/BackDecorations.js +73 -0
  17. package/dist/BackDecorations.js.map +1 -0
  18. package/dist/DecorationShapes.d.ts +9 -2
  19. package/dist/DecorationShapes.d.ts.map +1 -1
  20. package/dist/DecorationShapes.js +8 -2
  21. package/dist/DecorationShapes.js.map +1 -1
  22. package/dist/Decorations.d.ts +6 -9
  23. package/dist/Decorations.d.ts.map +1 -1
  24. package/dist/Decorations.js +33 -16
  25. package/dist/Decorations.js.map +1 -1
  26. package/dist/FaceDecorations.d.ts +14 -0
  27. package/dist/FaceDecorations.d.ts.map +1 -0
  28. package/dist/FaceDecorations.js +69 -0
  29. package/dist/FaceDecorations.js.map +1 -0
  30. package/dist/HandDecorations.d.ts +5 -0
  31. package/dist/HandDecorations.d.ts.map +1 -0
  32. package/dist/HandDecorations.js +8 -0
  33. package/dist/HandDecorations.js.map +1 -0
  34. package/dist/HatDecorations.d.ts +2 -2
  35. package/dist/HatDecorations.d.ts.map +1 -1
  36. package/dist/HatDecorations.js +4 -0
  37. package/dist/HatDecorations.js.map +1 -1
  38. package/dist/MascotRig.d.ts +13 -1
  39. package/dist/MascotRig.d.ts.map +1 -1
  40. package/dist/MascotRig.js +9 -6
  41. package/dist/MascotRig.js.map +1 -1
  42. package/dist/ObjectDecorations.d.ts +2 -2
  43. package/dist/ObjectDecorations.d.ts.map +1 -1
  44. package/dist/ObjectDecorations.js +18 -2
  45. package/dist/ObjectDecorations.js.map +1 -1
  46. package/dist/SkinDecorations.d.ts +10 -0
  47. package/dist/SkinDecorations.d.ts.map +1 -0
  48. package/dist/SkinDecorations.js +27 -0
  49. package/dist/SkinDecorations.js.map +1 -0
  50. package/dist/appearanceModel.d.ts +18 -14
  51. package/dist/appearanceModel.d.ts.map +1 -1
  52. package/dist/appearanceModel.js +62 -30
  53. package/dist/appearanceModel.js.map +1 -1
  54. package/dist/composer/styles/energy.css +34 -0
  55. package/dist/decorationCatalog.d.ts +17 -7
  56. package/dist/decorationCatalog.d.ts.map +1 -1
  57. package/dist/decorationCatalog.js +95 -36
  58. package/dist/decorationCatalog.js.map +1 -1
  59. package/dist/decorationMotion.d.ts +2 -2
  60. package/dist/decorationMotion.d.ts.map +1 -1
  61. package/dist/decorationMotion.js +4 -1
  62. package/dist/decorationMotion.js.map +1 -1
  63. package/dist/effects.css +86 -0
  64. package/dist/index.d.ts +2 -0
  65. package/dist/index.d.ts.map +1 -1
  66. package/dist/index.js +2 -0
  67. package/dist/index.js.map +1 -1
  68. package/dist/items.d.ts +460 -0
  69. package/dist/items.d.ts.map +1 -0
  70. package/dist/items.js +52 -0
  71. package/dist/items.js.map +1 -0
  72. package/dist/paintMaterials.d.ts +31 -0
  73. package/dist/paintMaterials.d.ts.map +1 -0
  74. package/dist/paintMaterials.js +10 -0
  75. package/dist/paintMaterials.js.map +1 -0
  76. package/dist/palette.d.ts +2 -0
  77. package/dist/palette.d.ts.map +1 -1
  78. package/dist/palette.js +4 -4
  79. package/dist/palette.js.map +1 -1
  80. package/dist/react.d.ts +2 -2
  81. package/dist/react.d.ts.map +1 -1
  82. package/dist/react.js +2 -2
  83. package/dist/react.js.map +1 -1
  84. package/dist/styles.css +1 -0
  85. package/package.json +1 -1
  86. package/src/AnimatedDecoration.tsx +4 -4
  87. package/src/AppearanceRig.tsx +5 -4
  88. package/src/Avatar.tsx +25 -11
  89. package/src/BackDecorations.tsx +134 -0
  90. package/src/DecorationShapes.tsx +11 -3
  91. package/src/Decorations.tsx +47 -22
  92. package/src/FaceDecorations.tsx +145 -0
  93. package/src/HandDecorations.tsx +113 -0
  94. package/src/HatDecorations.tsx +29 -2
  95. package/src/MascotRig.tsx +31 -9
  96. package/src/ObjectDecorations.tsx +69 -3
  97. package/src/SkinDecorations.tsx +55 -0
  98. package/src/appearanceModel.ts +57 -37
  99. package/src/composer/styles/energy.css +34 -0
  100. package/src/decorationCatalog.ts +103 -38
  101. package/src/decorationMotion.ts +6 -3
  102. package/src/effects.css +86 -0
  103. package/src/index.ts +2 -0
  104. package/src/items.ts +86 -0
  105. package/src/paintMaterials.ts +18 -0
  106. package/src/palette.ts +7 -3
  107. package/src/react.ts +2 -2
  108. package/src/styles.css +1 -0
  109. package/dist/HeldDecorations.d.ts +0 -5
  110. package/dist/HeldDecorations.d.ts.map +0 -1
  111. package/dist/HeldDecorations.js +0 -5
  112. package/dist/HeldDecorations.js.map +0 -1
  113. 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. The same name produces the same colors,
4
- expression and decorations across applications. React components require React 19; the core
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
- Avatars are static by default. Set `state="working"` and `motion="system"` to animate while
29
- respecting reduced-motion preferences. Use `paused` to freeze playback and increment
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
- ## Derive an appearance
28
+ ## Collection
37
29
 
38
- ```ts
39
- import { deriveAppearance } from '@dotcraft/avatar'
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
- const appearance = deriveAppearance('Reviewer')
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
- Names are trimmed and normalized to Unicode NFC; case and internal spaces remain significant.
45
- An empty name shows the original undecorated mascot. `AppearanceAvatar` from `/react` renders
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 { PrimaryId } from './appearanceModel.js';
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: Exclude<PrimaryId, 'none'>;
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,SAAS,EAAE,MAAM,sBAAsB,CAAA;AACrD,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,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CACtG,+BAkCA"}
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 { PrimaryDecoration } from './Decorations.js';
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(PrimaryDecoration, { id: id }) })] });
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":"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"}
1
+ {"version":3,"file":"AnimatedDecoration.js","sourceRoot":"","sources":["../src/AnimatedDecoration.tsx"],"names":[],"mappings":"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"}
@@ -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
- export declare function AppearanceRig({ appearance, pose, expression: override, top, accessory, held }: {
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;AAEtD,wBAAgB,aAAa,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE;IAC9F,UAAU,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,UAAU,CAAC;IAAC,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAAC,GAAG,CAAC,EAAE,SAAS,CAAC;IAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IAAC,IAAI,CAAC,EAAE,SAAS,CAAA;CAClI,+BAQA"}
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"}
@@ -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,EAAyB,MAAM,gBAAgB,CAAA;AACjE,MAAM,UAAU,aAAa,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAE3F;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,IAAI,EAAE,IAAI,EAC9F,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"}
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;
@@ -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,EAA4B,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAShF,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,+BAuDlO;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"}
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, isHeld } from './appearanceModel.js';
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 visible = useOnscreen(ref, motion !== 'off' && size > 20);
13
- const environment = useMotionEnvironment(motion, size > 20);
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 && isHeld(appearance.secondary);
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
- 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-primary": appearance.primary, "data-secondary": appearance.secondary, "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.primary === 'none' ? undefined : _jsx(AnimatedDecoration, { id: appearance.primary, pose: state, sequence: eventSequence, enabled: animated, paused: paused || !visible }), held: !compact && held ? _jsx("g", { "data-accessory": appearance.secondary, className: "dca-part-held", children: _jsx(SecondaryDecoration, { id: appearance.secondary }) }) : undefined, accessory: !compact && !held ? _jsx("g", { "data-accessory": appearance.secondary, children: _jsx(SecondaryDecoration, { id: appearance.secondary }) }) : undefined }) }) }) }) });
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
@@ -1 +1 @@
1
- {"version":3,"file":"Avatar.js","sourceRoot":"","sources":["../src/Avatar.tsx"],"names":[],"mappings":"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"}
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,EAAmB,MAAM,sBAAsB,CAAA;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACxF,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAC/E,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AACxF,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAGpD,MAAM,UAAU,QAAQ,CAAC,IAAY,IAAc,OAAO,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAA,CAAC,CAAC;AAgBpH,MAAM,UAAU,gBAAgB,CAAC,EAAE,UAAU,EAAE,KAAK,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,EAAE,MAAM,GAAG,KAAK,EAAE,MAAM,GAAG,KAAK,EAAE,KAAK,EAAE,aAAa,GAAG,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,eAAe,GAAG,CAAC,EAAE,iBAAiB,EAAyB;IACjO,MAAM,GAAG,GAAG,MAAM,CAAkB,IAAI,CAAC,CAAA;IACzC,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;IAC3B,MAAM,OAAO,GAAG,IAAI,KAAK,SAAS,CAAA;IAClC,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,MAAM,KAAK,KAAK,IAAI,CAAC,OAAO,CAAC,CAAA;IAC9D,MAAM,WAAW,GAAG,oBAAoB,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAA;IAC1D,kBAAkB,CAAC,GAAG,EAAE,MAAM,IAAI,CAAC,OAAO,CAAC,CAAA;IAC3C,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IACjD,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAA;IACzE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAA;IAC3C,MAAM,gBAAgB,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAA;IACzC,MAAM,QAAQ,GAAG,WAAW,IAAI,CAAC,OAAO,CAAA;IACxC,MAAM,IAAI,GAAG,CAAC,OAAO,IAAI,UAAU,CAAC,IAAI,KAAK,MAAM,CAAA;IACnD,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAA;IAClE,SAAS,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,MAAM,IAAI,OAAO,CAAC;QAAE,kBAAkB,CAAC,UAAU,CAAC,CAAA,CAAC,CAAC,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IACnI,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAA;IAC1F,cAAc,CAAC,GAAG,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC,OAAO,CAAC,CAAA;IAEpE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,gBAAgB,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC1C,gBAAgB,CAAC,OAAO,GAAG,QAAQ,CAAC;YAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC;YAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAAC,OAAM;QAC1H,CAAC;QACD,IAAI,CAAC,QAAQ,EAAE,CAAC;YAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC;YAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAAC,OAAM;QAAC,CAAC;QACtG,IAAI,KAAK,KAAK,SAAS,IAAI,aAAa,KAAK,iBAAiB,EAAE,CAAC;YAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAAC,OAAM;QAAC,CAAC;QAC7F,IAAI,MAAM,IAAI,CAAC,OAAO;YAAE,OAAM;QAC9B,MAAM,eAAe,GAAG,SAAS,KAAK,KAAK,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,CAAC,CAAA;QACxH,IAAI,CAAC,eAAe,EAAE,CAAC;YAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC;YAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAAC,OAAM;QAAC,CAAC;QAC7G,+FAA+F;QAC/F,UAAU,CAAC,IAAI,CAAC,CAAA;QAChB,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;QAC3H,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;IACzC,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,iBAAiB,CAAC,CAAC,CAAA;IAE7F,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAA;IACzC,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAA;IACjF,MAAM,OAAO,GAAG;QACd,SAAS;QACT,CAAC,OAAO,IAAI,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE;QAC5D,CAAC,OAAO,IAAI,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE;QAC9D,CAAC,OAAO,IAAI,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE;QACzD,CAAC,OAAO,IAAI,IAAI,KAAK,UAAU,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE;KACrE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC3B,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;IACjF,MAAM,OAAO,GAAG,OAAO,IAAI,UAAU,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS;QAC/D,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAC,gBAAgB,IAAC,EAAE,EAAE,UAAU,CAAC,IAAI,GAAI,CAAC,CAAC,CAAC,KAAC,WAAW,IAAC,EAAE,EAAE,UAAU,CAAC,IAAI,GAAI,CAAA;IAC5F,MAAM,SAAS,GAAG,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;IAC9C,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,YAAG,SAAS,EAAC,eAAe,eAAY,UAAU,CAAC,IAAI,YAAE,KAAC,cAAc,IAAC,EAAE,EAAE,UAAU,CAAC,IAAI,GAAI,GAAI,CAAC,CAAC,CAAC,SAAS,CAAA;IAC1J,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,KAAK,MAAM,IAAI,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAG,SAAS,EAAC,gBAAgB,YAAC,KAAC,mBAAmB,IAAC,EAAE,EAAE,UAAU,CAAC,IAAI,GAAI,GAAI,CAAC,CAAC,CAAC,SAAS,CAAA;IACtK,OAAO,eAAM,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,YAAY,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAmB,eAChJ,IAAI,eAAa,MAAM,iBAAe,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,iBAAe,MAAM,IAAI,CAAC,OAAO,kBAAgB,OAAO,kBAAgB,OAAO,oBACvI,IAAI,kBAAgB,OAAO,eAChC,UAAU,CAAC,IAAI,eAAa,UAAU,CAAC,IAAI,eAAa,UAAU,CAAC,IAAI,eAAa,UAAU,CAAC,IAAI,eAAa,UAAU,CAAC,IAAI,oBAAkB,UAAU,CAAC,QAAQ,kBACjK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,qBAAmB,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,YACnJ,cAAK,SAAS,EAAC,YAAY,EAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAC,eAAe,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,iBAAe,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,gBACnJ,KAAK,YACjB,YAAG,SAAS,EAAC,iBAAiB,YAAC,YAAG,SAAS,EAAE,OAAO,YAClD,KAAC,aAAa,IAAC,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,UAAU,EACpG,GAAG,EAAE,UAAU,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAC,kBAAkB,IAAC,EAAE,EAAE,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC,OAAO,GAAI,EAC9K,IAAI,EAAE,IAAI,IAAI,UAAU,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,8BAAmB,UAAU,CAAC,IAAI,EAAE,SAAS,EAAC,eAAe,YAAC,KAAC,cAAc,IAAC,EAAE,EAAE,UAAU,CAAC,IAAI,GAAI,GAAI,CAAC,CAAC,CAAC,SAAS,EAChK,SAAS,EAAE,CAAC,OAAO,IAAI,UAAU,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,8BAAmB,UAAU,CAAC,IAAI,YAAE,KAAC,cAAc,IAAC,EAAE,EAAE,UAAU,CAAC,IAAI,GAAI,GAAI,CAAC,CAAC,CAAC,SAAS,EAC7J,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAI,GAClF,GAAI,GACJ,GACD,CAAA;AACT,CAAC;AAGD,MAAM,UAAU,MAAM,CAAC,EAAE,IAAI,EAAE,GAAG,KAAK,EAAe,IAAI,OAAO,KAAC,gBAAgB,IAAC,UAAU,EAAE,gBAAgB,CAAC,IAAI,CAAC,KAAM,KAAK,GAAI,CAAA,CAAC,CAAC"}
@@ -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 { ReactNode } from 'react';
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,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtC,wBAAgB,UAAU,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE,+BAElG;AACD,wBAAgB,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,+BAE3D"}
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"}
@@ -1,8 +1,14 @@
1
1
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
- export function Silhouette({ d, fill, children }) {
3
- return _jsxs(_Fragment, { children: [_jsx("path", { d: d, fill: fill, stroke: "#fff", strokeWidth: "18", strokeLinejoin: "round", paintOrder: "stroke fill" }), children] });
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":";AAEA,MAAM,UAAU,UAAU,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAqD;IACjG,OAAO,8BAAE,eAAM,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAC,MAAM,EAAC,WAAW,EAAC,IAAI,EAAC,cAAc,EAAC,OAAO,EAAC,UAAU,EAAC,aAAa,GAAG,EAAC,QAAQ,IAAI,CAAA;AACjI,CAAC;AACD,MAAM,UAAU,MAAM,CAAC,EAAE,QAAQ,EAA2B;IAC1D,OAAO,YAAG,SAAS,EAAC,uBAAuB,YAAE,QAAQ,GAAK,CAAA;AAC5D,CAAC"}
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"}
@@ -1,15 +1,12 @@
1
- import type { PrimaryId, SecondaryId, DecorationId } from './appearanceModel.js';
2
- export declare function SecondaryDecoration({ id }: {
3
- id: SecondaryId;
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 DecoratedTop({ id }: {
9
- id: Exclude<PrimaryId, 'none'>;
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: DecorationId;
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":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAOhF,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,EAAE,EAAE;IAAE,EAAE,EAAE,WAAW,CAAA;CAAE,sCAU9D;AACD,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,EAAE,EAAE;IAAE,EAAE,EAAE,SAAS,CAAA;CAAE,+BAE1D;AACD,wBAAgB,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE;IAAE,EAAE,EAAE,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;CAAE,+BAEtE;AACD,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,EAAE,IAAU,EAAE,EAAE;IAAE,EAAE,EAAE,YAAY,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,+BAMvF"}
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"}
@@ -1,26 +1,43 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { isHeld } from './appearanceModel.js';
3
- import { HeldDecoration } from './HeldDecorations.js';
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 SecondaryDecoration({ id }) {
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
- export function DecoratedTop({ id }) {
19
- return _jsx(PrimaryDecoration, { id: id });
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 secondary = decorationOf(id).category === 'Accessories';
23
- const forehead = id === 'forehead-goggles';
24
- return _jsx("svg", { width: size, height: size, viewBox: secondary ? forehead ? '300 280 424 324' : '65 435 315 360' : '265 105 494 360', fill: "none", role: "img", "aria-label": `${decorationOf(id).name} specimen`, children: secondary ? _jsx(SecondaryDecoration, { id: id }) : _jsx(PrimaryDecoration, { id: id }) });
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
@@ -1 +1 @@
1
- {"version":3,"file":"Decorations.js","sourceRoot":"","sources":["../src/Decorations.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAErD,MAAM,UAAU,mBAAmB,CAAC,EAAE,EAAE,EAAuB;IAC7D,IAAI,MAAM,CAAC,EAAE,CAAC;QAAE,OAAO,KAAC,cAAc,IAAC,EAAE,EAAE,EAAE,GAAI,CAAA;IACjD,QAAQ,EAAE,EAAE,CAAC;QACX,KAAK,kBAAkB,CAAC,CAAC,OAAO,aAAG,cAAc,EAAC,OAAO,aACvD,eAAM,CAAC,EAAC,wCAAwC,EAAC,IAAI,EAAC,SAAS,EAAC,MAAM,EAAC,SAAS,EAAC,WAAW,EAAC,IAAI,GAAG,EACpG,eAAM,CAAC,EAAC,qBAAqB,EAAC,MAAM,EAAC,SAAS,EAAC,WAAW,EAAC,IAAI,EAAC,IAAI,EAAC,MAAM,GAAG,EAC9E,eAAM,CAAC,EAAC,6BAA6B,EAAC,MAAM,EAAC,SAAS,EAAC,WAAW,EAAC,GAAG,GAAG,IACvE,CAAA;QACJ,OAAO,CAAC,CAAC,OAAO,IAAI,CAAA;IACtB,CAAC;AACH,CAAC;AACD,MAAM,UAAU,iBAAiB,CAAC,EAAE,EAAE,EAAqB;IACzD,OAAO,gCAAoB,EAAE,aAAE,KAAC,aAAa,IAAC,EAAE,EAAE,EAAE,GAAI,EAAA,KAAC,gBAAgB,IAAC,EAAE,EAAE,EAAE,GAAI,IAAI,CAAA;AAC1F,CAAC;AACD,MAAM,UAAU,YAAY,CAAC,EAAE,EAAE,EAAsC;IACrE,OAAO,KAAC,iBAAiB,IAAC,EAAE,EAAE,EAAE,GAAI,CAAA;AACtC,CAAC;AACD,MAAM,UAAU,gBAAgB,CAAC,EAAE,EAAE,EAAE,IAAI,GAAG,GAAG,EAAuC;IACtF,MAAM,SAAS,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC,QAAQ,KAAK,aAAa,CAAA;IAC7D,MAAM,QAAQ,GAAG,EAAE,KAAK,kBAAkB,CAAA;IAC1C,OAAO,cAAK,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,iBAAiB,EAAE,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,KAAK,gBAAa,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC,IAAI,WAAW,YACpM,SAAS,CAAC,CAAC,CAAC,KAAC,mBAAmB,IAAC,EAAE,EAAE,EAAiB,GAAI,CAAC,CAAC,CAAC,KAAC,iBAAiB,IAAC,EAAE,EAAE,EAAe,GAAI,GACpG,CAAA;AACR,CAAC"}
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"}