@ignaciocabeza/bitface 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +305 -0
- package/dist/animations-BfYtmKFc.d.cts +53 -0
- package/dist/animations-BfYtmKFc.d.ts +53 -0
- package/dist/chunk-SCBE5EEX.js +1099 -0
- package/dist/chunk-SCBE5EEX.js.map +1 -0
- package/dist/index.cjs +1133 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +7 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +23 -0
- package/dist/index.js.map +1 -0
- package/dist/react.cjs +1155 -0
- package/dist/react.cjs.map +1 -0
- package/dist/react.d.cts +17 -0
- package/dist/react.d.ts +17 -0
- package/dist/react.js +86 -0
- package/dist/react.js.map +1 -0
- package/dist/vue.cjs +1165 -0
- package/dist/vue.cjs.map +1 -0
- package/dist/vue.d.cts +45 -0
- package/dist/vue.d.ts +45 -0
- package/dist/vue.js +103 -0
- package/dist/vue.js.map +1 -0
- package/package.json +111 -0
- package/src/svelte/Avatar.svelte +59 -0
- package/src/svelte/Avatar.svelte.d.ts +15 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/renderer/parts/face-shapes.ts","../src/renderer/parts/eyes.ts","../src/renderer/parts/eyebrows.ts","../src/renderer/parts/mouth.ts","../src/renderer/parts/nose.ts","../src/renderer/parts/ears.ts","../src/renderer/parts/hair.ts","../src/renderer/parts/beard.ts","../src/renderer/parts/accessories.ts","../src/renderer/parts/index.ts","../src/renderer/palette.ts","../src/renderer/generator.ts","../src/renderer/svg.ts","../src/renderer/index.ts","../src/renderer/animations.ts"],"sourcesContent":["export { generateFace, generateRandomConfig, getAvailableParts, getPartThumbnail } from './renderer/index.ts';\nexport { getAnimationNames, ANIMATIONS } from './renderer/animations.ts';\nexport { SKIN_PRESETS, HAIR_PRESETS, EYE_PRESETS } from './renderer/palette.ts';\nexport type { FaceConfig, PixelGrid, PartPattern, PartCategory } from './types.ts';\nexport type { AnimationFrame, AnimationSequence } from './renderer/animations.ts';\n","import type { PartCategory } from '../../types.ts';\n\n// Face shapes are placed on a 16×16 canvas.\n// Slot map: 1 = skin, 2 = skinShadow\n\nconst faceShapes: PartCategory = {\n round: {\n pixels: [\n [0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0],\n [0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0],\n [0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0],\n [0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0],\n [0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0],\n [0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0],\n [0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0],\n [0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0],\n [0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0],\n [0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0],\n [0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0],\n [0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0],\n ],\n slotMap: { 1: 'skin', 2: 'skinShadow' },\n offsetX: 0,\n offsetY: 3,\n },\n oval: {\n pixels: [\n [0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0],\n [0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0],\n [0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0],\n [0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0],\n [0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0],\n [0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0],\n [0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0],\n [0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0],\n [0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0],\n [0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0],\n [0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0],\n [0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0],\n ],\n slotMap: { 1: 'skin', 2: 'skinShadow' },\n offsetX: 0,\n offsetY: 3,\n },\n square: {\n pixels: [\n [0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0],\n [0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0],\n [0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0],\n [0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0],\n [0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0],\n [0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0],\n [0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0],\n [0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0],\n [0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0],\n [0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0],\n [0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0],\n [0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0],\n ],\n slotMap: { 1: 'skin', 2: 'skinShadow' },\n offsetX: 0,\n offsetY: 3,\n },\n heart: {\n pixels: [\n [0,0,1,1,1,1,0,0,0,0,1,1,1,1,0,0],\n [0,1,1,1,1,1,1,0,0,1,1,1,1,1,1,0],\n [0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0],\n [0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0],\n [0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0],\n [0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0],\n [0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0],\n [0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0],\n [0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0],\n [0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0],\n [0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0],\n [0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0],\n ],\n slotMap: { 1: 'skin', 2: 'skinShadow' },\n offsetX: 0,\n offsetY: 3,\n },\n long: {\n pixels: [\n [0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0],\n [0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0],\n [0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0],\n [0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0],\n [0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0],\n [0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0],\n [0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0],\n [0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0],\n [0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0],\n [0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0],\n [0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0],\n [0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0],\n [0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0],\n ],\n slotMap: { 1: 'skin', 2: 'skinShadow' },\n offsetX: 0,\n offsetY: 2,\n },\n diamond: {\n pixels: [\n [0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0],\n [0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0],\n [0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0],\n [0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0],\n [0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0],\n [0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0],\n [0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0],\n [0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0],\n [0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0],\n [0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0],\n [0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0],\n ],\n slotMap: { 1: 'skin', 2: 'skinShadow' },\n offsetX: 0,\n offsetY: 3,\n },\n wide: {\n pixels: [\n [0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0],\n [0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0],\n [0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0],\n [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],\n [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],\n [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],\n [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],\n [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],\n [0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0],\n [0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0],\n [0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0],\n [0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0],\n ],\n slotMap: { 1: 'skin', 2: 'skinShadow' },\n offsetX: 0,\n offsetY: 3,\n },\n};\n\nexport default faceShapes;\n","import type { PartCategory } from '../../types.ts';\n\n// Eyes are placed relative to face center.\n// Slot map: 1 = white (sclera), 2 = eyeColor (iris), 3 = pupil (black)\n\nconst eyes: PartCategory = {\n big: {\n pixels: [\n [1,1,0,0,0,0,1,1],\n [1,2,1,0,0,1,2,1],\n [1,2,3,0,0,1,2,3],\n [1,1,0,0,0,0,1,1],\n ],\n slotMap: { 1: 'white', 2: 'eyes', 3: 'pupil' },\n offsetX: 4,\n offsetY: 7,\n },\n small: {\n pixels: [\n [0,2,0,0,0,0,2,0],\n [0,3,0,0,0,0,3,0],\n ],\n slotMap: { 2: 'eyes', 3: 'pupil' },\n offsetX: 4,\n offsetY: 8,\n },\n narrow: {\n pixels: [\n [1,2,3,0,0,1,2,3],\n ],\n slotMap: { 1: 'white', 2: 'eyes', 3: 'pupil' },\n offsetX: 4,\n offsetY: 8,\n },\n round: {\n pixels: [\n [0,1,0,0,0,0,1,0],\n [1,2,1,0,0,1,2,1],\n [1,2,3,0,0,1,2,3],\n [0,1,0,0,0,0,1,0],\n ],\n slotMap: { 1: 'white', 2: 'eyes', 3: 'pupil' },\n offsetX: 4,\n offsetY: 7,\n },\n wink: {\n pixels: [\n [1,1,0,0,0,0,0,0],\n [1,2,1,0,0,0,0,0],\n [1,2,3,0,0,3,3,3],\n [1,1,0,0,0,0,0,0],\n ],\n slotMap: { 1: 'white', 2: 'eyes', 3: 'pupil' },\n offsetX: 4,\n offsetY: 7,\n },\n happy: {\n pixels: [\n [0,3,3,0,0,0,3,3],\n [3,0,0,0,0,3,0,0],\n ],\n slotMap: { 3: 'pupil' },\n offsetX: 4,\n offsetY: 8,\n },\n angry: {\n pixels: [\n [1,1,0,0,0,0,1,1],\n [1,2,3,0,0,3,2,1],\n [0,1,1,0,0,1,1,0],\n ],\n slotMap: { 1: 'white', 2: 'eyes', 3: 'pupil' },\n offsetX: 4,\n offsetY: 7,\n },\n dots: {\n pixels: [\n [0,0,3,0,0,0,0,3],\n ],\n slotMap: { 3: 'pupil' },\n offsetX: 4,\n offsetY: 9,\n },\n sleepy: {\n pixels: [\n [1,1,0,0,0,0,1,1],\n [3,3,0,0,0,0,3,3],\n ],\n slotMap: { 1: 'white', 3: 'pupil' },\n offsetX: 4,\n offsetY: 8,\n },\n cross: {\n pixels: [\n [3,0,3,0,0,3,0,3],\n [0,3,0,0,0,0,3,0],\n [3,0,3,0,0,3,0,3],\n ],\n slotMap: { 3: 'pupil' },\n offsetX: 4,\n offsetY: 7,\n },\n heart: {\n pixels: [\n [2,0,2,0,0,2,0,2],\n [2,2,2,0,0,2,2,2],\n [0,2,0,0,0,0,2,0],\n ],\n slotMap: { 2: 'eyes' },\n offsetX: 4,\n offsetY: 7,\n },\n};\n\nexport default eyes;\n","import type { PartCategory } from '../../types.ts';\n\n// Eyebrows sit above the eyes.\n// Slot map: 1 = hairColor (eyebrows match hair)\n\nconst eyebrows: PartCategory = {\n thick: {\n pixels: [\n [1,1,1,0,0,1,1,1],\n [1,1,1,0,0,1,1,1],\n ],\n slotMap: { 1: 'hair' },\n offsetX: 4,\n offsetY: 6,\n },\n thin: {\n pixels: [\n [1,1,1,0,0,1,1,1],\n ],\n slotMap: { 1: 'hair' },\n offsetX: 4,\n offsetY: 6,\n },\n arched: {\n pixels: [\n [0,1,1,0,0,0,1,1],\n [1,0,0,0,0,1,0,0],\n ],\n slotMap: { 1: 'hair' },\n offsetX: 4,\n offsetY: 5,\n },\n angry: {\n pixels: [\n [1,0,0,0,0,0,0,1],\n [0,1,1,0,0,1,1,0],\n ],\n slotMap: { 1: 'hair' },\n offsetX: 4,\n offsetY: 5,\n },\n worried: {\n pixels: [\n [0,0,1,0,0,1,0,0],\n [0,1,0,0,0,0,1,0],\n ],\n slotMap: { 1: 'hair' },\n offsetX: 4,\n offsetY: 5,\n },\n unibrow: {\n pixels: [\n [1,1,1,1,1,1,1,1],\n [1,1,0,0,0,0,1,1],\n ],\n slotMap: { 1: 'hair' },\n offsetX: 4,\n offsetY: 5,\n },\n none: {\n pixels: [],\n slotMap: {},\n offsetX: 0,\n offsetY: 0,\n },\n};\n\nexport default eyebrows;\n","import type { PartCategory } from '../../types.ts';\n\n// Mouth is placed below the nose.\n// Slot map: 1 = mouthColor (dark pink/red), 2 = teeth (white)\n\nconst mouth: PartCategory = {\n smile: {\n pixels: [\n [1,0,0,0,0,1],\n [0,1,1,1,1,0],\n ],\n slotMap: { 1: 'mouth' },\n offsetX: 5,\n offsetY: 12,\n },\n frown: {\n pixels: [\n [0,1,1,1,1,0],\n [1,0,0,0,0,1],\n ],\n slotMap: { 1: 'mouth' },\n offsetX: 5,\n offsetY: 12,\n },\n open: {\n pixels: [\n [0,1,1,1,1,0],\n [1,1,1,1,1,1],\n [0,1,1,1,1,0],\n ],\n slotMap: { 1: 'mouth' },\n offsetX: 5,\n offsetY: 11,\n },\n flat: {\n pixels: [\n [1,1,1,1,1,1],\n ],\n slotMap: { 1: 'mouth' },\n offsetX: 5,\n offsetY: 12,\n },\n teeth: {\n pixels: [\n [0,1,1,1,1,0],\n [0,2,2,2,2,0],\n [0,1,1,1,1,0],\n ],\n slotMap: { 1: 'mouth', 2: 'white' },\n offsetX: 5,\n offsetY: 11,\n },\n smirk: {\n pixels: [\n [0,0,0,0,1,0],\n [0,1,1,1,0,0],\n ],\n slotMap: { 1: 'mouth' },\n offsetX: 5,\n offsetY: 12,\n },\n grin: {\n pixels: [\n [0,1,1,1,1,1,1,0],\n [0,1,2,2,2,2,1,0],\n [0,0,1,1,1,1,0,0],\n ],\n slotMap: { 1: 'mouth', 2: 'white' },\n offsetX: 4,\n offsetY: 11,\n },\n tongue: {\n pixels: [\n [0,1,1,1,1,0],\n [0,0,1,1,0,0],\n [0,0,0,1,0,0],\n ],\n slotMap: { 1: 'mouth' },\n offsetX: 5,\n offsetY: 12,\n },\n oh: {\n pixels: [\n [0,1,1,0],\n [1,0,0,1],\n [0,1,1,0],\n ],\n slotMap: { 1: 'mouth' },\n offsetX: 6,\n offsetY: 11,\n },\n};\n\nexport default mouth;\n","import type { PartCategory } from '../../types.ts';\n\n// Nose sits between eyes and mouth.\n// Slot map: 1 = skinShadow (nose is a subtle shadow on skin)\n\nconst nose: PartCategory = {\n small: {\n pixels: [\n [0,1,0],\n [1,0,1],\n ],\n slotMap: { 1: 'skinShadow' },\n offsetX: 7,\n offsetY: 10,\n },\n pointy: {\n pixels: [\n [0,1,0],\n [0,1,0],\n [1,0,1],\n ],\n slotMap: { 1: 'skinShadow' },\n offsetX: 7,\n offsetY: 9,\n },\n wide: {\n pixels: [\n [0,1,1,0],\n [1,0,0,1],\n [1,0,0,1],\n ],\n slotMap: { 1: 'skinShadow' },\n offsetX: 6,\n offsetY: 9,\n },\n button: {\n pixels: [\n [1,1],\n ],\n slotMap: { 1: 'skinShadow' },\n offsetX: 7,\n offsetY: 10,\n },\n long: {\n pixels: [\n [0,1,0],\n [0,1,0],\n [0,1,0],\n [1,0,1],\n ],\n slotMap: { 1: 'skinShadow' },\n offsetX: 7,\n offsetY: 8,\n },\n snub: {\n pixels: [\n [0,1],\n [1,1],\n ],\n slotMap: { 1: 'skinShadow' },\n offsetX: 7,\n offsetY: 10,\n },\n};\n\nexport default nose;\n","import type { PartCategory } from '../../types.ts';\n\n// Ears sit on the sides of the face.\n// Slot map: 1 = skin, 2 = skinShadow\n\nconst ears: PartCategory = {\n small: {\n pixels: [\n [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],\n [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],\n [2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],\n ],\n slotMap: { 1: 'skin', 2: 'skinShadow' },\n offsetX: 0,\n offsetY: 8,\n },\n big: {\n pixels: [\n [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],\n [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],\n [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],\n [2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],\n [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],\n ],\n slotMap: { 1: 'skin', 2: 'skinShadow' },\n offsetX: 0,\n offsetY: 7,\n },\n pointed: {\n pixels: [\n [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],\n [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],\n [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],\n [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],\n [2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],\n ],\n slotMap: { 1: 'skin', 2: 'skinShadow' },\n offsetX: 0,\n offsetY: 5,\n },\n elf: {\n pixels: [\n [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],\n [1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1],\n [1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1],\n [1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1],\n [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],\n [2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2],\n ],\n slotMap: { 1: 'skin', 2: 'skinShadow' },\n offsetX: 0,\n offsetY: 4,\n },\n none: {\n pixels: [],\n slotMap: {},\n offsetX: 0,\n offsetY: 0,\n },\n};\n\nexport default ears;\n","import type { PartCategory } from '../../types.ts';\n\n// Hair is drawn on top of the face at the head area.\n// Slot map: 1 = hair, 2 = hairShadow\n\nconst hair: PartCategory = {\n short: {\n pixels: [\n [0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0],\n [0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0],\n [0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0],\n [0,1,2,2,0,0,0,0,0,0,0,0,2,2,1,0],\n ],\n slotMap: { 1: 'hair', 2: 'hairShadow' },\n offsetX: 0,\n offsetY: 2,\n },\n long: {\n pixels: [\n [0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0],\n [0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0],\n [0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0],\n [0,1,1,2,0,0,0,0,0,0,0,0,2,1,1,0],\n [0,1,2,0,0,0,0,0,0,0,0,0,0,2,1,0],\n [0,1,2,0,0,0,0,0,0,0,0,0,0,2,1,0],\n [0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0],\n [0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0],\n [0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0],\n [0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0],\n [0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0],\n [0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0],\n ],\n slotMap: { 1: 'hair', 2: 'hairShadow' },\n offsetX: 0,\n offsetY: 2,\n },\n curly: {\n pixels: [\n [0,0,0,1,0,1,1,1,1,1,1,0,1,0,0,0],\n [0,0,1,0,1,1,1,1,1,1,1,1,0,1,0,0],\n [0,1,0,1,1,1,1,1,1,1,1,1,1,0,1,0],\n [0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0],\n [1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1],\n [1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,1],\n [0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0],\n [1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,1],\n [0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0],\n ],\n slotMap: { 1: 'hair', 2: 'hairShadow' },\n offsetX: 0,\n offsetY: 1,\n },\n mohawk: {\n pixels: [\n [0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0],\n [0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0],\n [0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0],\n [0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0],\n [0,0,0,0,0,2,1,1,1,1,2,0,0,0,0,0],\n ],\n slotMap: { 1: 'hair', 2: 'hairShadow' },\n offsetX: 0,\n offsetY: 0,\n },\n bald: {\n pixels: [],\n slotMap: {},\n offsetX: 0,\n offsetY: 0,\n },\n ponytail: {\n pixels: [\n [0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0],\n [0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0],\n [0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0],\n [0,1,2,2,0,0,0,0,0,0,0,0,2,1,1,0],\n [0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1],\n [0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1],\n [0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0],\n [0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0],\n ],\n slotMap: { 1: 'hair', 2: 'hairShadow' },\n offsetX: 0,\n offsetY: 2,\n },\n spiky: {\n pixels: [\n [0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0],\n [0,0,0,1,0,1,0,1,1,0,1,0,1,0,0,0],\n [0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0],\n [0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0],\n [0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0],\n [0,1,2,2,0,0,0,0,0,0,0,0,2,2,1,0],\n ],\n slotMap: { 1: 'hair', 2: 'hairShadow' },\n offsetX: 0,\n offsetY: 0,\n },\n bob: {\n pixels: [\n [0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0],\n [0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0],\n [0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0],\n [0,1,1,2,0,0,0,0,0,0,0,0,2,1,1,0],\n [0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0],\n [0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0],\n [0,0,1,1,0,0,0,0,0,0,0,0,1,1,0,0],\n [0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0],\n ],\n slotMap: { 1: 'hair', 2: 'hairShadow' },\n offsetX: 0,\n offsetY: 2,\n },\n afro: {\n pixels: [\n [0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0],\n [0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0],\n [0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0],\n [0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0],\n [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],\n [1,1,1,2,0,0,0,0,0,0,0,0,2,1,1,1],\n [1,1,2,0,0,0,0,0,0,0,0,0,0,2,1,1],\n [1,2,0,0,0,0,0,0,0,0,0,0,0,0,2,1],\n [1,2,0,0,0,0,0,0,0,0,0,0,0,0,2,1],\n ],\n slotMap: { 1: 'hair', 2: 'hairShadow' },\n offsetX: 0,\n offsetY: 0,\n },\n bangs: {\n pixels: [\n [0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0],\n [0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0],\n [0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0],\n [0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0],\n [0,1,1,1,1,1,1,2,0,0,0,0,2,1,1,0],\n ],\n slotMap: { 1: 'hair', 2: 'hairShadow' },\n offsetX: 0,\n offsetY: 2,\n },\n};\n\nexport default hair;\n","import type { PartCategory } from '../../types.ts';\n\n// Beard/facial hair is drawn on the lower face area.\n// Slot map: 1 = hair\n// Beards are positioned at the jaw/chin edge (y=13-14) to avoid covering the mouth.\n// Mustache variants sit just above the mouth (y=11).\n\nconst beard: PartCategory = {\n stubble: {\n // Sparse dots at chin/jaw edge\n pixels: [\n [0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0],\n [0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0],\n ],\n slotMap: { 1: 'hair' },\n offsetX: 0,\n offsetY: 13,\n },\n goatee: {\n // Small chin patch below the mouth\n pixels: [\n [0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0],\n [0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0],\n ],\n slotMap: { 1: 'hair' },\n offsetX: 0,\n offsetY: 13,\n },\n full: {\n // Jaw outline: sideburns at edges + solid chin, hollow center so mouth shows\n pixels: [\n [0,0,1,1,0,0,0,0,0,0,0,0,1,1,0,0],\n [0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0],\n [0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0],\n [0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0],\n ],\n slotMap: { 1: 'hair' },\n offsetX: 0,\n offsetY: 11,\n },\n mustache: {\n // Sits just above the mouth line\n pixels: [\n [0,0,1,1,0,0,1,1,0,0],\n [0,1,0,0,1,1,0,0,1,0],\n ],\n slotMap: { 1: 'hair' },\n offsetX: 3,\n offsetY: 11,\n },\n handlebar: {\n // Wide curling mustache\n pixels: [\n [0,0,1,1,0,0,0,0,1,1,0,0],\n [0,1,0,0,1,1,1,1,0,0,1,0],\n [1,0,0,0,0,0,0,0,0,0,0,1],\n ],\n slotMap: { 1: 'hair' },\n offsetX: 2,\n offsetY: 11,\n },\n none: {\n pixels: [],\n slotMap: {},\n offsetX: 0,\n offsetY: 0,\n },\n};\n\nexport default beard;\n","import type { PartCategory } from '../../types.ts';\n\n// Accessories layer on top of everything.\n// Slot map: 1 = accessoryPrimary, 2 = accessorySecondary, 3 = lens (semi-transparent)\n\nconst accessories: PartCategory = {\n glasses: {\n pixels: [\n [0,0,1,1,1,1,0,0,1,1,1,1,0,0],\n [1,1,1,3,3,1,1,1,1,3,3,1,1,1],\n [0,0,1,1,1,1,0,0,1,1,1,1,0,0],\n ],\n slotMap: { 1: 'accessoryPrimary', 3: 'lens' },\n offsetX: 1,\n offsetY: 7,\n },\n sunglasses: {\n pixels: [\n [0,0,1,1,1,1,1,1,1,1,1,1,0,0],\n [1,1,1,2,2,1,1,1,1,2,2,1,1,1],\n [0,0,1,1,1,1,0,0,1,1,1,1,0,0],\n ],\n slotMap: { 1: 'accessoryPrimary', 2: 'accessorySecondary' },\n offsetX: 1,\n offsetY: 7,\n },\n hat: {\n pixels: [\n [0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0],\n [0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0],\n [0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0],\n [0,1,2,2,2,2,2,2,2,2,2,2,2,2,1,0],\n ],\n slotMap: { 1: 'accessoryPrimary', 2: 'accessorySecondary' },\n offsetX: 0,\n offsetY: 0,\n },\n headband: {\n pixels: [\n [0,0,1,1,1,1,1,2,1,1,1,1,1,1,0,0],\n ],\n slotMap: { 1: 'accessoryPrimary', 2: 'accessorySecondary' },\n offsetX: 0,\n offsetY: 5,\n },\n earrings: {\n pixels: [\n [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],\n [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],\n ],\n slotMap: { 1: 'accessoryPrimary' },\n offsetX: 0,\n offsetY: 11,\n },\n none: {\n pixels: [],\n slotMap: {},\n offsetX: 0,\n offsetY: 0,\n },\n};\n\nexport default accessories;\n","import type { PartCategory, PartPattern } from '../../types.ts';\nimport faceShapes from './face-shapes.ts';\nimport eyes from './eyes.ts';\nimport eyebrows from './eyebrows.ts';\nimport mouth from './mouth.ts';\nimport nose from './nose.ts';\nimport ears from './ears.ts';\nimport hair from './hair.ts';\nimport beard from './beard.ts';\nimport accessories from './accessories.ts';\n\nconst registry: Record<string, PartCategory> = {\n faceShape: faceShapes,\n eyes,\n eyebrows,\n mouth,\n nose,\n ears,\n hair,\n beard,\n accessories,\n};\n\nexport function getPart(category: string, name: string): PartPattern | undefined {\n return registry[category]?.[name];\n}\n\nexport function getVariantNames(category: string): string[] {\n const cat = registry[category];\n return cat ? Object.keys(cat) : [];\n}\n\nexport function getAllCategories(): string[] {\n return Object.keys(registry);\n}\n\nexport { registry };\n","export const SKIN_PRESETS: Record<string, string> = {\n light: '#FDDCB5',\n medium: '#E8B88A',\n tan: '#D19A6A',\n brown: '#A0673C',\n dark: '#6B4226',\n pale: '#FFF0E0',\n};\n\nexport const SKIN_SHADOW_MAP: Record<string, string> = {\n '#FDDCB5': '#E5C49D',\n '#E8B88A': '#CFA072',\n '#D19A6A': '#B98252',\n '#A0673C': '#885524',\n '#6B4226': '#533010',\n '#FFF0E0': '#E7D8C8',\n};\n\nexport const HAIR_PRESETS: Record<string, string> = {\n black: '#1A1A2E',\n brown: '#6B3A2A',\n blonde: '#E8C84A',\n red: '#B83A1E',\n gray: '#9E9E9E',\n white: '#E8E8E8',\n auburn: '#8B3A1A',\n strawberry: '#D4713A',\n platinum: '#E8E0D0',\n pink: '#E8559E',\n blue: '#3A6BD5',\n purple: '#6B3A8B',\n teal: '#2A9E8B',\n};\n\nexport const EYE_PRESETS: Record<string, string> = {\n brown: '#5C3A1E',\n blue: '#3A7BD5',\n green: '#3A9D5C',\n gray: '#7A7A7A',\n};\n\nconst HEX_COLOR_RE = /^#(?:[0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/;\n\n/** Validate that a string is a safe hex color. Returns the color or the fallback. */\nexport function sanitizeColor(value: string, fallback: string): string {\n if (HEX_COLOR_RE.test(value)) return value;\n return fallback;\n}\n\nexport function resolveSkinColor(value: string | undefined): string {\n if (!value) return SKIN_PRESETS.medium;\n return SKIN_PRESETS[value] ?? sanitizeColor(value, SKIN_PRESETS.medium);\n}\n\nexport function resolveSkinShadow(skinHex: string): string {\n return SKIN_SHADOW_MAP[skinHex] ?? darken(skinHex, 30);\n}\n\nexport function resolveHairColor(value: string | undefined): string {\n if (!value) return HAIR_PRESETS.black;\n return HAIR_PRESETS[value] ?? sanitizeColor(value, HAIR_PRESETS.black);\n}\n\nexport function resolveEyeColor(value: string | undefined): string {\n if (!value) return EYE_PRESETS.brown;\n return EYE_PRESETS[value] ?? sanitizeColor(value, EYE_PRESETS.brown);\n}\n\nfunction darken(hex: string, amount: number): string {\n const num = parseInt(hex.replace('#', ''), 16);\n const r = Math.max(0, (num >> 16) - amount);\n const g = Math.max(0, ((num >> 8) & 0xFF) - amount);\n const b = Math.max(0, (num & 0xFF) - amount);\n return `#${((r << 16) | (g << 8) | b).toString(16).padStart(6, '0').toUpperCase()}`;\n}\n","import type { FaceConfig, PixelGrid, PartPattern } from '../types.ts';\nimport { getPart } from './parts/index.ts';\nimport {\n resolveSkinColor,\n resolveSkinShadow,\n resolveHairColor,\n resolveEyeColor,\n} from './palette.ts';\n\nconst BASE_SIZE = 16;\n\n/** Build a color lookup from role names to actual hex colors. */\nfunction buildColorMap(config: FaceConfig): Record<string, string> {\n const skin = resolveSkinColor(config.skinColor);\n const skinShadow = resolveSkinShadow(skin);\n const hairColor = resolveHairColor(config.hairColor);\n const eyeColor = resolveEyeColor(config.eyeColor);\n\n return {\n skin,\n skinShadow,\n hair: hairColor,\n hairShadow: darkenColor(hairColor, 25),\n eyes: eyeColor,\n pupil: '#111111',\n white: '#FFFFFF',\n mouth: '#C75050',\n accessoryPrimary: '#333333',\n accessorySecondary: '#1A1A1A',\n lens: '#87CEEB',\n };\n}\n\nfunction darkenColor(hex: string, amount: number): string {\n const num = parseInt(hex.replace('#', ''), 16);\n const r = Math.max(0, (num >> 16) - amount);\n const g = Math.max(0, ((num >> 8) & 0xff) - amount);\n const b = Math.max(0, (num & 0xff) - amount);\n return `#${((r << 16) | (g << 8) | b).toString(16).padStart(6, '0')}`;\n}\n\n/** Stamp a part pattern onto the 16×16 pixel grid using the color map. */\nfunction stampPart(\n grid: PixelGrid,\n part: PartPattern,\n colorMap: Record<string, string>\n): void {\n for (let py = 0; py < part.pixels.length; py++) {\n const row = part.pixels[py];\n for (let px = 0; px < row.length; px++) {\n const slot = row[px];\n if (slot === 0) continue;\n\n const role = part.slotMap[slot];\n if (!role) continue;\n\n const color = colorMap[role];\n if (!color) continue;\n\n const gx = part.offsetX + px;\n const gy = part.offsetY + py;\n if (gx >= 0 && gx < BASE_SIZE && gy >= 0 && gy < BASE_SIZE) {\n grid[gy][gx] = color;\n }\n }\n }\n}\n\n/** Layer order for stamping parts onto the grid. */\nconst LAYER_ORDER: { category: string; configKey: keyof FaceConfig }[] = [\n { category: 'faceShape', configKey: 'faceShape' },\n { category: 'ears', configKey: 'ears' },\n { category: 'nose', configKey: 'nose' },\n { category: 'mouth', configKey: 'mouth' },\n { category: 'eyes', configKey: 'eyes' },\n { category: 'eyebrows', configKey: 'eyebrows' },\n { category: 'hair', configKey: 'hair' },\n { category: 'beard', configKey: 'beard' },\n { category: 'accessories', configKey: 'accessories' },\n];\n\n/** Generate a 16×16 pixel grid from a FaceConfig. */\nexport function generateGrid(config: FaceConfig): PixelGrid {\n const grid: PixelGrid = Array.from({ length: BASE_SIZE }, () =>\n Array.from({ length: BASE_SIZE }, () => null)\n );\n\n const colorMap = buildColorMap(config);\n\n for (const layer of LAYER_ORDER) {\n const name = config[layer.configKey] as string | undefined;\n if (!name || name === 'none') continue;\n\n const part = getPart(layer.category, name);\n if (!part) continue;\n\n stampPart(grid, part, colorMap);\n }\n\n return grid;\n}\n\n/** Generate a thumbnail grid showing a single part on a neutral background. */\nexport function generatePartThumbnail(\n category: string,\n name: string,\n skinColor?: string,\n hairColor?: string,\n eyeColor?: string\n): PixelGrid {\n const grid: PixelGrid = Array.from({ length: BASE_SIZE }, () =>\n Array.from({ length: BASE_SIZE }, () => null)\n );\n\n const skin = resolveSkinColor(skinColor);\n const colorMap: Record<string, string> = {\n skin,\n skinShadow: resolveSkinShadow(skin),\n hair: resolveHairColor(hairColor),\n hairShadow: darkenColor(resolveHairColor(hairColor), 25),\n eyes: resolveEyeColor(eyeColor),\n pupil: '#111111',\n white: '#FFFFFF',\n mouth: '#C75050',\n accessoryPrimary: '#333333',\n accessorySecondary: '#1A1A1A',\n lens: '#87CEEB',\n };\n\n const part = getPart(category, name);\n if (part) {\n stampPart(grid, part, colorMap);\n }\n\n return grid;\n}\n","import type { PixelGrid } from '../types.ts';\nimport { sanitizeColor } from './palette.ts';\n\n/** Convert a pixel grid to an SVG string. Grid dimensions are inferred from the array. */\nexport function gridToSvg(grid: PixelGrid, backgroundColor?: string): string {\n const height = grid.length;\n const width = height > 0 ? grid[0].length : 0;\n const raw = backgroundColor ?? '#87CEEB';\n const bg = raw === 'transparent' ? 'transparent' : sanitizeColor(raw, '#87CEEB');\n const rects: string[] = [];\n\n // Background (skip only when explicitly transparent)\n if (bg !== 'transparent') {\n rects.push(`<rect width=\"${width}\" height=\"${height}\" fill=\"${bg}\"/>`);\n }\n\n // Merge adjacent same-color pixels horizontally for smaller SVG output.\n for (let y = 0; y < height; y++) {\n let x = 0;\n while (x < width) {\n const color = grid[y][x];\n if (color === null) {\n x++;\n continue;\n }\n // Find run of same color\n let runLen = 1;\n while (x + runLen < width && grid[y][x + runLen] === color) {\n runLen++;\n }\n rects.push(`<rect x=\"${x}\" y=\"${y}\" width=\"${runLen}\" height=\"1\" fill=\"${color}\"/>`);\n x += runLen;\n }\n }\n\n return [\n `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 ${width} ${height}\" shape-rendering=\"crispEdges\">`,\n ...rects,\n '</svg>',\n ].join('');\n}\n","import type { FaceConfig } from '../types.ts';\nimport { generateGrid, generatePartThumbnail } from './generator.ts';\nimport { gridToSvg } from './svg.ts';\nimport { getVariantNames, getAllCategories } from './parts/index.ts';\nimport { SKIN_PRESETS, HAIR_PRESETS, EYE_PRESETS } from './palette.ts';\n\nfunction pickRandom<T>(arr: T[]): T {\n return arr[Math.floor(Math.random() * arr.length)];\n}\n\n/** Generate a random FaceConfig by picking random parts and colors. */\nexport function generateRandomConfig(): FaceConfig {\n return {\n faceShape: pickRandom(getVariantNames('faceShape')),\n eyes: pickRandom(getVariantNames('eyes')),\n eyebrows: pickRandom(getVariantNames('eyebrows')),\n mouth: pickRandom(getVariantNames('mouth')),\n nose: pickRandom(getVariantNames('nose')),\n ears: pickRandom(getVariantNames('ears')),\n hair: pickRandom(getVariantNames('hair')),\n beard: pickRandom(getVariantNames('beard')),\n accessories: pickRandom(getVariantNames('accessories')),\n skinColor: pickRandom(Object.keys(SKIN_PRESETS)),\n hairColor: pickRandom(Object.keys(HAIR_PRESETS)),\n eyeColor: pickRandom(Object.keys(EYE_PRESETS)),\n };\n}\n\n/** Generate a complete face SVG string. If no config is provided, a random face is generated. */\nexport function generateFace(config?: FaceConfig): string {\n const resolved = config ?? generateRandomConfig();\n const grid = generateGrid(resolved);\n return gridToSvg(grid, resolved.backgroundColor);\n}\n\n/** Get all available part variant names, keyed by category. */\nexport function getAvailableParts(): Record<string, string[]> {\n const result: Record<string, string[]> = {};\n for (const category of getAllCategories()) {\n result[category] = getVariantNames(category);\n }\n return result;\n}\n\n/** Generate a thumbnail SVG string showing a single part variant. */\nexport function getPartThumbnail(\n category: string,\n name: string,\n skinColor?: string,\n hairColor?: string,\n eyeColor?: string\n): string {\n const grid = generatePartThumbnail(category, name, skinColor, hairColor, eyeColor);\n return gridToSvg(grid);\n}\n","import type { FaceConfig } from '../types.ts';\n\nexport interface AnimationFrame {\n duration: number; // milliseconds\n overrides: Partial<FaceConfig>;\n}\n\nexport interface AnimationSequence {\n name: string;\n frames: AnimationFrame[];\n}\n\nexport const ANIMATIONS: Record<string, AnimationSequence> = {\n idle: {\n name: 'idle',\n frames: [\n { duration: 3000, overrides: {} },\n { duration: 150, overrides: { eyes: 'happy' } },\n { duration: 150, overrides: {} },\n ],\n },\n talk: {\n name: 'talk',\n frames: [\n { duration: 200, overrides: { mouth: 'smile' } },\n { duration: 200, overrides: { mouth: 'open' } },\n { duration: 200, overrides: { mouth: 'flat' } },\n { duration: 200, overrides: { mouth: 'open' } },\n { duration: 300, overrides: { mouth: 'smile' } },\n ],\n },\n blink: {\n name: 'blink',\n frames: [\n { duration: 2500, overrides: {} },\n { duration: 100, overrides: { eyes: 'narrow' } },\n { duration: 100, overrides: { eyes: 'happy' } },\n { duration: 100, overrides: { eyes: 'narrow' } },\n { duration: 200, overrides: {} },\n ],\n },\n emote: {\n name: 'emote',\n frames: [\n { duration: 500, overrides: {} },\n { duration: 400, overrides: { eyebrows: 'arched', mouth: 'open' } },\n { duration: 400, overrides: { eyebrows: 'arched', mouth: 'smile' } },\n { duration: 300, overrides: {} },\n ],\n },\n};\n\nexport function getAnimationNames(): string[] {\n return Object.keys(ANIMATIONS);\n}\n"],"mappings":"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","names":[]}
|
package/dist/index.d.cts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { A as ANIMATIONS, a as AnimationFrame, b as AnimationSequence, F as FaceConfig, P as PartCategory, c as PartPattern, d as PixelGrid, g as generateFace, e as generateRandomConfig, f as getAnimationNames, h as getAvailableParts, i as getPartThumbnail } from './animations-BfYtmKFc.cjs';
|
|
2
|
+
|
|
3
|
+
declare const SKIN_PRESETS: Record<string, string>;
|
|
4
|
+
declare const HAIR_PRESETS: Record<string, string>;
|
|
5
|
+
declare const EYE_PRESETS: Record<string, string>;
|
|
6
|
+
|
|
7
|
+
export { EYE_PRESETS, HAIR_PRESETS, SKIN_PRESETS };
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { A as ANIMATIONS, a as AnimationFrame, b as AnimationSequence, F as FaceConfig, P as PartCategory, c as PartPattern, d as PixelGrid, g as generateFace, e as generateRandomConfig, f as getAnimationNames, h as getAvailableParts, i as getPartThumbnail } from './animations-BfYtmKFc.js';
|
|
2
|
+
|
|
3
|
+
declare const SKIN_PRESETS: Record<string, string>;
|
|
4
|
+
declare const HAIR_PRESETS: Record<string, string>;
|
|
5
|
+
declare const EYE_PRESETS: Record<string, string>;
|
|
6
|
+
|
|
7
|
+
export { EYE_PRESETS, HAIR_PRESETS, SKIN_PRESETS };
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ANIMATIONS,
|
|
3
|
+
EYE_PRESETS,
|
|
4
|
+
HAIR_PRESETS,
|
|
5
|
+
SKIN_PRESETS,
|
|
6
|
+
generateFace,
|
|
7
|
+
generateRandomConfig,
|
|
8
|
+
getAnimationNames,
|
|
9
|
+
getAvailableParts,
|
|
10
|
+
getPartThumbnail
|
|
11
|
+
} from "./chunk-SCBE5EEX.js";
|
|
12
|
+
export {
|
|
13
|
+
ANIMATIONS,
|
|
14
|
+
EYE_PRESETS,
|
|
15
|
+
HAIR_PRESETS,
|
|
16
|
+
SKIN_PRESETS,
|
|
17
|
+
generateFace,
|
|
18
|
+
generateRandomConfig,
|
|
19
|
+
getAnimationNames,
|
|
20
|
+
getAvailableParts,
|
|
21
|
+
getPartThumbnail
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|