@wix/ai-assistant-avatar 0.43.0 → 0.44.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.
@@ -38,7 +38,7 @@ const AiAssistantAvatar = exports.AiAssistantAvatar = /*#__PURE__*/(0, _react.fo
38
38
  hideDots,
39
39
  moveFromOffsetWithDots,
40
40
  moveToOffsetWithDots
41
- } = (0, _hooks.useDotAnimation)(setCenter, setAvatarHidden, AriaAvatar.setState);
41
+ } = (0, _hooks.useDotAnimation)(setCenter, setAvatarHidden, AriaAvatar.setState, mode);
42
42
  const onTravelHomeFrom = async (x, y, options) => {
43
43
  const pos = {
44
44
  x,
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_AstroModule","_interopRequireDefault","_config","_hooks","_DotTrail","_ariaAiAvatar","_jsxFileName","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","AiAssistantAvatar","exports","forwardRef","mode","variant","sleepTimeout","ref","wrapperRef","useRef","typingTimeout","isTyping","setIsTyping","useState","showBg","setShowBg","AriaAvatar","avatarHidden","setAvatarHidden","useAvatarSetup","setCenter","useMovement","ASTRO_SIZE","WIDTH","HEIGHT","leadDotRef","trailRefs","hideDots","moveFromOffsetWithDots","moveToOffsetWithDots","useDotAnimation","setState","onTravelHomeFrom","x","y","options","pos","onTravelAwayTo","onMouseMove","clientX","clientY","lookAt","onUserTyping","caretX","caretY","current","clearTimeout","setTimeout","err","console","error","useEffect","hideAvatar","withDots","showAvatar","useImperativeHandle","trigger","shrink","getState","AvatarState","SMALL","IDLE","smallLoader","SMALL_LOADER","pulse","Promise","resolve","idle","undo","fireEvent","AvatarEvent","UNDO_EVENT","boredom","SLEEPING","bigLoader","BIG_LOADER","ideaSpark","IDEA_SPARK","publish","PUBLISH_EVENT","wrapper","changeAstroColor","color","setAvatarColor","toggleAvatarBackground","hideBg","hide","show","createElement","className","s","avatar","__self","__source","fileName","lineNumber","columnNumber","DotTrail","astro","style","opacity","width","height"],"sources":["../../../src/Astro/Astro.tsx"],"sourcesContent":["import React, {\n forwardRef,\n Ref,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from 'react';\nimport s from './Astro.module.css';\nimport type { AstroRef, AstroProps, MoveOptions } from './types';\nimport { ASTRO_SIZE } from './config';\nimport { useAvatarSetup, useMovement, useDotAnimation } from './hooks';\nimport { DotTrail } from './components/DotTrail';\nimport { AvatarEvent, AvatarState } from '@wix/aria-ai-avatar';\n\nexport const AiAssistantAvatar = forwardRef<AstroRef, AstroProps>(\n ({ mode, variant, sleepTimeout }, ref: Ref<AstroRef> | null) => {\n const wrapperRef = useRef<HTMLDivElement | null>(null);\n const typingTimeout = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n const [isTyping, setIsTyping] = useState(false);\n\n const [showBg, setShowBg] = useState(false);\n\n const { AriaAvatar, avatarHidden, setAvatarHidden } = useAvatarSetup({\n mode,\n variant,\n sleepTimeout,\n });\n\n const { setCenter } = useMovement(\n wrapperRef,\n ASTRO_SIZE.WIDTH,\n ASTRO_SIZE.HEIGHT,\n );\n\n const {\n leadDotRef,\n trailRefs,\n hideDots,\n moveFromOffsetWithDots,\n moveToOffsetWithDots,\n } = useDotAnimation(setCenter, setAvatarHidden, AriaAvatar.setState);\n\n const onTravelHomeFrom = async (\n x: number,\n y: number,\n options?: MoveOptions,\n ) => {\n const pos = { x, y };\n await moveFromOffsetWithDots(pos, options);\n };\n\n const onTravelAwayTo = async (\n x: number,\n y: number,\n options?: MoveOptions,\n ) => {\n const pos = { x, y };\n await moveToOffsetWithDots(pos, options);\n };\n\n const onMouseMove = (clientX: number, clientY: number) => {\n if (isTyping) {\n return;\n }\n\n AriaAvatar.lookAt(clientX, clientY);\n };\n\n const onUserTyping = (caretX: number, caretY: number) => {\n try {\n setIsTyping(true);\n AriaAvatar.lookAt(caretX, caretY);\n\n if (typingTimeout.current) {\n clearTimeout(typingTimeout.current);\n }\n\n typingTimeout.current = setTimeout(() => {\n setIsTyping(false);\n }, 500);\n } catch (err) {\n console.error('[Astro] Error tracking typing:', err);\n }\n };\n\n useEffect(() => {\n return () => {\n if (typingTimeout.current) {\n clearTimeout(typingTimeout.current);\n }\n };\n }, []);\n\n const hideAvatar = ({ withDots = false }: { withDots?: boolean } = {}) => {\n setAvatarHidden(true);\n\n if (withDots) {\n hideDots();\n }\n };\n\n const showAvatar = () => {\n setAvatarHidden(false);\n };\n\n useImperativeHandle(ref, () => ({\n trigger: {\n shrink: () => {\n if (AriaAvatar.getState() === AvatarState.SMALL) {\n return AriaAvatar.setState(AvatarState.IDLE);\n }\n return AriaAvatar.setState(AvatarState.SMALL);\n },\n smallLoader: () => {\n if (AriaAvatar.getState() === AvatarState.SMALL) {\n return AriaAvatar.setState(AvatarState.SMALL_LOADER);\n }\n return AriaAvatar.setState(AvatarState.SMALL);\n },\n pulse: () => Promise.resolve(),\n idle: async () => {\n if (AriaAvatar.getState() === AvatarState.SMALL_LOADER) {\n await AriaAvatar.setState(AvatarState.SMALL);\n }\n return AriaAvatar.setState(AvatarState.IDLE);\n },\n undo: () => AriaAvatar.fireEvent(AvatarEvent.UNDO_EVENT),\n boredom: () => {\n if (AriaAvatar.getState() === AvatarState.SLEEPING) {\n return AriaAvatar.setState(AvatarState.IDLE);\n }\n return AriaAvatar.setState(AvatarState.SLEEPING);\n },\n bigLoader: () => {\n if (AriaAvatar.getState() === AvatarState.BIG_LOADER) {\n return AriaAvatar.setState(AvatarState.IDLE);\n }\n return AriaAvatar.setState(AvatarState.BIG_LOADER);\n },\n ideaSpark: () => AriaAvatar.fireEvent(AvatarEvent.IDEA_SPARK),\n publish: () => AriaAvatar.fireEvent(AvatarEvent.PUBLISH_EVENT),\n },\n avatarHidden,\n wrapper: wrapperRef.current,\n getState: AriaAvatar.getState,\n\n onMouseMove,\n onUserTyping,\n onTravelHomeFrom,\n onTravelAwayTo,\n\n changeAstroColor: (color: string) => {\n AriaAvatar.setAvatarColor(color);\n },\n\n toggleAvatarBackground: () => {\n if (showBg) {\n setShowBg(false);\n AriaAvatar.hideBg();\n } else {\n setShowBg(true);\n AriaAvatar.showBg();\n }\n },\n\n hide: hideAvatar,\n show: showAvatar,\n }));\n\n return (\n <div className={s.avatar}>\n <DotTrail leadDotRef={leadDotRef} trailRefs={trailRefs} />\n\n <div\n ref={wrapperRef}\n className={s.astro}\n style={{\n opacity: avatarHidden ? 0 : 1,\n }}\n >\n <div style={{ width: ASTRO_SIZE.WIDTH, height: ASTRO_SIZE.HEIGHT }}>\n <AriaAvatar.AriaAvatar />\n </div>\n </div>\n </div>\n );\n },\n);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_AstroModule","_interopRequireDefault","_config","_hooks","_DotTrail","_ariaAiAvatar","_jsxFileName","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","AiAssistantAvatar","exports","forwardRef","mode","variant","sleepTimeout","ref","wrapperRef","useRef","typingTimeout","isTyping","setIsTyping","useState","showBg","setShowBg","AriaAvatar","avatarHidden","setAvatarHidden","useAvatarSetup","setCenter","useMovement","ASTRO_SIZE","WIDTH","HEIGHT","leadDotRef","trailRefs","hideDots","moveFromOffsetWithDots","moveToOffsetWithDots","useDotAnimation","setState","onTravelHomeFrom","x","y","options","pos","onTravelAwayTo","onMouseMove","clientX","clientY","lookAt","onUserTyping","caretX","caretY","current","clearTimeout","setTimeout","err","console","error","useEffect","hideAvatar","withDots","showAvatar","useImperativeHandle","trigger","shrink","getState","AvatarState","SMALL","IDLE","smallLoader","SMALL_LOADER","pulse","Promise","resolve","idle","undo","fireEvent","AvatarEvent","UNDO_EVENT","boredom","SLEEPING","bigLoader","BIG_LOADER","ideaSpark","IDEA_SPARK","publish","PUBLISH_EVENT","wrapper","changeAstroColor","color","setAvatarColor","toggleAvatarBackground","hideBg","hide","show","createElement","className","s","avatar","__self","__source","fileName","lineNumber","columnNumber","DotTrail","astro","style","opacity","width","height"],"sources":["../../../src/Astro/Astro.tsx"],"sourcesContent":["import React, {\n forwardRef,\n Ref,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from 'react';\nimport s from './Astro.module.css';\nimport type { AstroRef, AstroProps, MoveOptions } from './types';\nimport { ASTRO_SIZE } from './config';\nimport { useAvatarSetup, useMovement, useDotAnimation } from './hooks';\nimport { DotTrail } from './components/DotTrail';\nimport { AvatarEvent, AvatarState } from '@wix/aria-ai-avatar';\n\nexport const AiAssistantAvatar = forwardRef<AstroRef, AstroProps>(\n ({ mode, variant, sleepTimeout }, ref: Ref<AstroRef> | null) => {\n const wrapperRef = useRef<HTMLDivElement | null>(null);\n const typingTimeout = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n const [isTyping, setIsTyping] = useState(false);\n\n const [showBg, setShowBg] = useState(false);\n\n const { AriaAvatar, avatarHidden, setAvatarHidden } = useAvatarSetup({\n mode,\n variant,\n sleepTimeout,\n });\n\n const { setCenter } = useMovement(\n wrapperRef,\n ASTRO_SIZE.WIDTH,\n ASTRO_SIZE.HEIGHT,\n );\n\n const {\n leadDotRef,\n trailRefs,\n hideDots,\n moveFromOffsetWithDots,\n moveToOffsetWithDots,\n } = useDotAnimation(setCenter, setAvatarHidden, AriaAvatar.setState, mode);\n\n const onTravelHomeFrom = async (\n x: number,\n y: number,\n options?: MoveOptions,\n ) => {\n const pos = { x, y };\n await moveFromOffsetWithDots(pos, options);\n };\n\n const onTravelAwayTo = async (\n x: number,\n y: number,\n options?: MoveOptions,\n ) => {\n const pos = { x, y };\n await moveToOffsetWithDots(pos, options);\n };\n\n const onMouseMove = (clientX: number, clientY: number) => {\n if (isTyping) {\n return;\n }\n\n AriaAvatar.lookAt(clientX, clientY);\n };\n\n const onUserTyping = (caretX: number, caretY: number) => {\n try {\n setIsTyping(true);\n AriaAvatar.lookAt(caretX, caretY);\n\n if (typingTimeout.current) {\n clearTimeout(typingTimeout.current);\n }\n\n typingTimeout.current = setTimeout(() => {\n setIsTyping(false);\n }, 500);\n } catch (err) {\n console.error('[Astro] Error tracking typing:', err);\n }\n };\n\n useEffect(() => {\n return () => {\n if (typingTimeout.current) {\n clearTimeout(typingTimeout.current);\n }\n };\n }, []);\n\n const hideAvatar = ({ withDots = false }: { withDots?: boolean } = {}) => {\n setAvatarHidden(true);\n\n if (withDots) {\n hideDots();\n }\n };\n\n const showAvatar = () => {\n setAvatarHidden(false);\n };\n\n useImperativeHandle(ref, () => ({\n trigger: {\n shrink: () => {\n if (AriaAvatar.getState() === AvatarState.SMALL) {\n return AriaAvatar.setState(AvatarState.IDLE);\n }\n return AriaAvatar.setState(AvatarState.SMALL);\n },\n smallLoader: () => {\n if (AriaAvatar.getState() === AvatarState.SMALL) {\n return AriaAvatar.setState(AvatarState.SMALL_LOADER);\n }\n return AriaAvatar.setState(AvatarState.SMALL);\n },\n pulse: () => Promise.resolve(),\n idle: async () => {\n if (AriaAvatar.getState() === AvatarState.SMALL_LOADER) {\n await AriaAvatar.setState(AvatarState.SMALL);\n }\n return AriaAvatar.setState(AvatarState.IDLE);\n },\n undo: () => AriaAvatar.fireEvent(AvatarEvent.UNDO_EVENT),\n boredom: () => {\n if (AriaAvatar.getState() === AvatarState.SLEEPING) {\n return AriaAvatar.setState(AvatarState.IDLE);\n }\n return AriaAvatar.setState(AvatarState.SLEEPING);\n },\n bigLoader: () => {\n if (AriaAvatar.getState() === AvatarState.BIG_LOADER) {\n return AriaAvatar.setState(AvatarState.IDLE);\n }\n return AriaAvatar.setState(AvatarState.BIG_LOADER);\n },\n ideaSpark: () => AriaAvatar.fireEvent(AvatarEvent.IDEA_SPARK),\n publish: () => AriaAvatar.fireEvent(AvatarEvent.PUBLISH_EVENT),\n },\n avatarHidden,\n wrapper: wrapperRef.current,\n getState: AriaAvatar.getState,\n\n onMouseMove,\n onUserTyping,\n onTravelHomeFrom,\n onTravelAwayTo,\n\n changeAstroColor: (color: string) => {\n AriaAvatar.setAvatarColor(color);\n },\n\n toggleAvatarBackground: () => {\n if (showBg) {\n setShowBg(false);\n AriaAvatar.hideBg();\n } else {\n setShowBg(true);\n AriaAvatar.showBg();\n }\n },\n\n hide: hideAvatar,\n show: showAvatar,\n }));\n\n return (\n <div className={s.avatar}>\n <DotTrail leadDotRef={leadDotRef} trailRefs={trailRefs} />\n\n <div\n ref={wrapperRef}\n className={s.astro}\n style={{\n opacity: avatarHidden ? 0 : 1,\n }}\n >\n <div style={{ width: ASTRO_SIZE.WIDTH, height: ASTRO_SIZE.HEIGHT }}>\n <AriaAvatar.AriaAvatar />\n </div>\n </div>\n </div>\n );\n },\n);\n"],"mappings":"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","ignoreList":[]}
@@ -12,7 +12,24 @@
12
12
  transition: opacity 80ms linear;
13
13
  transform: translate3d(0, 0, 0);
14
14
 
15
- clip-path: inset(23px 23px 23px 23px); /* cut off the edges to stop hijacking mouse events. maybe we need to reduce canvas size itself instead of this. */
15
+ clip-path: inset(12px); /* cut off the edges to stop hijacking mouse events. maybe we need to reduce canvas size itself instead of this. */
16
+
17
+ [class*='_wrapper_'] [class*='_hitbox_'] {
18
+ transform: scale(0.47);
19
+ }
20
+
21
+ [class*='_wrapper_'] [class*='_hitbox_'] [class*='_head_'][class*='_dark_'][class*='_shrunk_'] {
22
+ background: #557dff;
23
+ }
24
+
25
+ [class*='_wrapper_'] [class*='_hitbox_'] [class*='_head_'][class*='_dark_']:not([class*='_shrunk_']) {
26
+ box-shadow:
27
+ 0 12px 15px #2f5dffb2,
28
+ 0 8px 8px #3ca1ff40,
29
+ 0 0 6px #ffffff60,
30
+ 0 0 6px 2px #ffffff40,
31
+ 0 0 6px #2f5dffb2;
32
+ }
16
33
 
17
34
  @starting-style {
18
35
  opacity: 0;
@@ -6,7 +6,7 @@ var _react = require("react");
6
6
  var _config = require("../config");
7
7
  var _utils = require("../utils");
8
8
  var _ariaAiAvatar = require("@wix/aria-ai-avatar");
9
- const useDotAnimation = (moveToPosition, setAvatarHidden, triggerAvatarAnimationState) => {
9
+ const useDotAnimation = (moveToPosition, setAvatarHidden, triggerAvatarAnimationState, mode) => {
10
10
  const leadDotRef = (0, _react.useRef)(null);
11
11
  const trailRefs = (0, _react.useRef)([]);
12
12
  const isMountedRef = (0, _react.useRef)(true);
@@ -33,10 +33,11 @@ const useDotAnimation = (moveToPosition, setAvatarHidden, triggerAvatarAnimation
33
33
  d.style.opacity = String(opacity);
34
34
  d.style.transform = `scale(${scale})`;
35
35
  });
36
+ const leadStartColor = mode === 'dark' ? _config.ANIMATION_CONFIG.DOT_COLOR : '#000000';
36
37
  lead.style.opacity = '1';
37
- lead.style.background = '#000000';
38
+ lead.style.background = leadStartColor;
38
39
  lead.animate([{
39
- background: '#000000'
40
+ background: leadStartColor
40
41
  }, {
41
42
  background: _config.ANIMATION_CONFIG.DOT_COLOR
42
43
  }], {
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_config","_utils","_ariaAiAvatar","useDotAnimation","moveToPosition","setAvatarHidden","triggerAvatarAnimationState","leadDotRef","useRef","trailRefs","isMountedRef","animateDotsAlongPath","start","end","options","current","lead","skipShrink","AvatarState","SMALL","forEach","d","i","ratio","ANIMATION_CONFIG","TRAIL_COUNT","scale","TRAIL_MIN_SCALE","opacity","TRAIL_FADE","style","String","transform","background","animate","DOT_COLOR","duration","TIMING","DOT_FADE_DURATION","easing","fill","pathD","buildPathD","prepDot","el","setMotionPath","setOffsetDistance","setOffsetRotate","setOffsetAnchor","td","leadAnim","offsetDistance","TRAVEL_DURATION","EASING","delay","TRAIL_STAGGER","finished","hideDots","waitForNextFrame","Promise","r","requestAnimationFrame","moveFromOffsetWithDots","currentPosition","x","y","console","log","home","endState","IDLE","moveToOffsetWithDots","targetPosition","useEffect","exports"],"sources":["../../../../src/Astro/hooks/useDotAnimation.ts"],"sourcesContent":["import { useRef, useEffect } from 'react';\nimport type { Position, MoveOptions } from '../types';\nimport { ANIMATION_CONFIG, TIMING } from '../config';\nimport {\n buildPathD,\n setMotionPath,\n setOffsetDistance,\n setOffsetRotate,\n setOffsetAnchor,\n} from '../utils';\nimport { AvatarState } from '@wix/aria-ai-avatar';\n\nexport const useDotAnimation = (\n moveToPosition: (position: Position) => void,\n setAvatarHidden: (hidden: boolean) => void,\n triggerAvatarAnimationState: (state: AvatarState) => void,\n) => {\n const leadDotRef = useRef<HTMLDivElement | null>(null);\n const trailRefs = useRef<(HTMLDivElement | null)[]>([]);\n const isMountedRef = useRef(true);\n\n const animateDotsAlongPath = async (\n start: Position,\n end: Position,\n options: MoveOptions = {},\n ): Promise<void> => {\n if (!isMountedRef.current) {\n return;\n }\n\n const lead = leadDotRef.current;\n if (!lead) {\n return;\n }\n\n if (!options.skipShrink) {\n try {\n triggerAvatarAnimationState(AvatarState.SMALL);\n } catch {}\n }\n\n trailRefs.current.forEach((d, i) => {\n if (!d) {\n return;\n }\n const ratio = (i + 1) / ANIMATION_CONFIG.TRAIL_COUNT;\n const scale =\n ANIMATION_CONFIG.TRAIL_MIN_SCALE +\n (1 - ANIMATION_CONFIG.TRAIL_MIN_SCALE) * (1 - ratio);\n const opacity =\n ANIMATION_CONFIG.TRAIL_FADE +\n (1 - ANIMATION_CONFIG.TRAIL_FADE) * (1 - ratio);\n d.style.opacity = String(opacity);\n d.style.transform = `scale(${scale})`;\n });\n\n lead.style.opacity = '1';\n lead.style.background = '#000000';\n\n lead.animate(\n [{ background: '#000000' }, { background: ANIMATION_CONFIG.DOT_COLOR }],\n {\n duration: TIMING.DOT_FADE_DURATION,\n easing: 'ease-out',\n fill: 'forwards',\n },\n );\n\n const pathD = buildPathD(start, end);\n\n const prepDot = (el: HTMLElement) => {\n if (!el) {\n return;\n }\n setMotionPath(el, pathD);\n setOffsetDistance(el, '0%');\n setOffsetRotate(el, '0deg');\n setOffsetAnchor(el, '50% 50%');\n };\n\n prepDot(lead);\n\n trailRefs.current.forEach((td) => td && prepDot(td));\n\n const leadAnim = lead.animate(\n [{ offsetDistance: '0%' }, { offsetDistance: '100%' }],\n {\n duration: TIMING.TRAVEL_DURATION,\n easing: ANIMATION_CONFIG.EASING,\n fill: 'forwards',\n },\n );\n\n trailRefs.current.forEach((td, i) => {\n if (!td) {\n return;\n }\n td.animate([{ offsetDistance: '0%' }, { offsetDistance: '100%' }], {\n duration: TIMING.TRAVEL_DURATION,\n delay: (i + 1) * ANIMATION_CONFIG.TRAIL_STAGGER,\n easing: ANIMATION_CONFIG.EASING,\n fill: 'forwards',\n });\n });\n\n await leadAnim.finished;\n\n lead.style.opacity = '0';\n trailRefs.current.forEach((td) => td && (td.style.opacity = '0'));\n };\n\n const hideDots = () => {\n const lead = leadDotRef.current;\n if (lead) {\n lead.style.opacity = '0';\n }\n trailRefs.current.forEach((td) => {\n if (td) {\n td.style.opacity = '0';\n }\n });\n };\n\n const waitForNextFrame = () =>\n new Promise<void>((r) => requestAnimationFrame(() => r()));\n\n const moveFromOffsetWithDots = async (\n currentPosition: Position,\n options: MoveOptions = {},\n ): Promise<void> => {\n if (\n typeof currentPosition.x !== 'number' ||\n typeof currentPosition.y !== 'number'\n ) {\n console.log('[Astro] Invalid position, skipping animation');\n return;\n }\n\n const home = { x: 0, y: 0 };\n await animateDotsAlongPath(currentPosition, home, options);\n\n moveToPosition(home);\n setAvatarHidden(false);\n\n await waitForNextFrame();\n\n if (isMountedRef.current) {\n if (options.endState) {\n await triggerAvatarAnimationState(options.endState);\n } else {\n await triggerAvatarAnimationState(AvatarState.IDLE);\n }\n }\n };\n\n const moveToOffsetWithDots = async (\n targetPosition: Position,\n options: MoveOptions = {},\n ): Promise<void> => {\n if (\n typeof targetPosition.x !== 'number' ||\n typeof targetPosition.y !== 'number'\n ) {\n console.log('[Astro] Invalid position, skipping animation');\n return;\n }\n\n setAvatarHidden(true);\n await waitForNextFrame();\n\n const home = { x: 0, y: 0 };\n await animateDotsAlongPath(home, targetPosition, options);\n\n hideDots();\n };\n\n useEffect(() => {\n return () => {\n isMountedRef.current = false;\n };\n }, []);\n\n return {\n leadDotRef,\n trailRefs,\n moveFromOffsetWithDots,\n moveToOffsetWithDots,\n hideDots,\n };\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_config","_utils","_ariaAiAvatar","useDotAnimation","moveToPosition","setAvatarHidden","triggerAvatarAnimationState","mode","leadDotRef","useRef","trailRefs","isMountedRef","animateDotsAlongPath","start","end","options","current","lead","skipShrink","AvatarState","SMALL","forEach","d","i","ratio","ANIMATION_CONFIG","TRAIL_COUNT","scale","TRAIL_MIN_SCALE","opacity","TRAIL_FADE","style","String","transform","leadStartColor","DOT_COLOR","background","animate","duration","TIMING","DOT_FADE_DURATION","easing","fill","pathD","buildPathD","prepDot","el","setMotionPath","setOffsetDistance","setOffsetRotate","setOffsetAnchor","td","leadAnim","offsetDistance","TRAVEL_DURATION","EASING","delay","TRAIL_STAGGER","finished","hideDots","waitForNextFrame","Promise","r","requestAnimationFrame","moveFromOffsetWithDots","currentPosition","x","y","console","log","home","endState","IDLE","moveToOffsetWithDots","targetPosition","useEffect","exports"],"sources":["../../../../src/Astro/hooks/useDotAnimation.ts"],"sourcesContent":["import { useRef, useEffect } from 'react';\nimport type { Position, MoveOptions } from '../types';\nimport { ANIMATION_CONFIG, TIMING } from '../config';\nimport {\n buildPathD,\n setMotionPath,\n setOffsetDistance,\n setOffsetRotate,\n setOffsetAnchor,\n} from '../utils';\nimport { AvatarState } from '@wix/aria-ai-avatar';\n\nexport const useDotAnimation = (\n moveToPosition: (position: Position) => void,\n setAvatarHidden: (hidden: boolean) => void,\n triggerAvatarAnimationState: (state: AvatarState) => void,\n mode?: 'light' | 'dark',\n) => {\n const leadDotRef = useRef<HTMLDivElement | null>(null);\n const trailRefs = useRef<(HTMLDivElement | null)[]>([]);\n const isMountedRef = useRef(true);\n\n const animateDotsAlongPath = async (\n start: Position,\n end: Position,\n options: MoveOptions = {},\n ): Promise<void> => {\n if (!isMountedRef.current) {\n return;\n }\n\n const lead = leadDotRef.current;\n if (!lead) {\n return;\n }\n\n if (!options.skipShrink) {\n try {\n triggerAvatarAnimationState(AvatarState.SMALL);\n } catch {}\n }\n\n trailRefs.current.forEach((d, i) => {\n if (!d) {\n return;\n }\n const ratio = (i + 1) / ANIMATION_CONFIG.TRAIL_COUNT;\n const scale =\n ANIMATION_CONFIG.TRAIL_MIN_SCALE +\n (1 - ANIMATION_CONFIG.TRAIL_MIN_SCALE) * (1 - ratio);\n const opacity =\n ANIMATION_CONFIG.TRAIL_FADE +\n (1 - ANIMATION_CONFIG.TRAIL_FADE) * (1 - ratio);\n d.style.opacity = String(opacity);\n d.style.transform = `scale(${scale})`;\n });\n\n const leadStartColor =\n mode === 'dark' ? ANIMATION_CONFIG.DOT_COLOR : '#000000';\n\n lead.style.opacity = '1';\n lead.style.background = leadStartColor;\n\n lead.animate(\n [\n { background: leadStartColor },\n { background: ANIMATION_CONFIG.DOT_COLOR },\n ],\n {\n duration: TIMING.DOT_FADE_DURATION,\n easing: 'ease-out',\n fill: 'forwards',\n },\n );\n\n const pathD = buildPathD(start, end);\n\n const prepDot = (el: HTMLElement) => {\n if (!el) {\n return;\n }\n setMotionPath(el, pathD);\n setOffsetDistance(el, '0%');\n setOffsetRotate(el, '0deg');\n setOffsetAnchor(el, '50% 50%');\n };\n\n prepDot(lead);\n\n trailRefs.current.forEach((td) => td && prepDot(td));\n\n const leadAnim = lead.animate(\n [{ offsetDistance: '0%' }, { offsetDistance: '100%' }],\n {\n duration: TIMING.TRAVEL_DURATION,\n easing: ANIMATION_CONFIG.EASING,\n fill: 'forwards',\n },\n );\n\n trailRefs.current.forEach((td, i) => {\n if (!td) {\n return;\n }\n td.animate([{ offsetDistance: '0%' }, { offsetDistance: '100%' }], {\n duration: TIMING.TRAVEL_DURATION,\n delay: (i + 1) * ANIMATION_CONFIG.TRAIL_STAGGER,\n easing: ANIMATION_CONFIG.EASING,\n fill: 'forwards',\n });\n });\n\n await leadAnim.finished;\n\n lead.style.opacity = '0';\n trailRefs.current.forEach((td) => td && (td.style.opacity = '0'));\n };\n\n const hideDots = () => {\n const lead = leadDotRef.current;\n if (lead) {\n lead.style.opacity = '0';\n }\n trailRefs.current.forEach((td) => {\n if (td) {\n td.style.opacity = '0';\n }\n });\n };\n\n const waitForNextFrame = () =>\n new Promise<void>((r) => requestAnimationFrame(() => r()));\n\n const moveFromOffsetWithDots = async (\n currentPosition: Position,\n options: MoveOptions = {},\n ): Promise<void> => {\n if (\n typeof currentPosition.x !== 'number' ||\n typeof currentPosition.y !== 'number'\n ) {\n console.log('[Astro] Invalid position, skipping animation');\n return;\n }\n\n const home = { x: 0, y: 0 };\n await animateDotsAlongPath(currentPosition, home, options);\n\n moveToPosition(home);\n setAvatarHidden(false);\n\n await waitForNextFrame();\n\n if (isMountedRef.current) {\n if (options.endState) {\n await triggerAvatarAnimationState(options.endState);\n } else {\n await triggerAvatarAnimationState(AvatarState.IDLE);\n }\n }\n };\n\n const moveToOffsetWithDots = async (\n targetPosition: Position,\n options: MoveOptions = {},\n ): Promise<void> => {\n if (\n typeof targetPosition.x !== 'number' ||\n typeof targetPosition.y !== 'number'\n ) {\n console.log('[Astro] Invalid position, skipping animation');\n return;\n }\n\n setAvatarHidden(true);\n await waitForNextFrame();\n\n const home = { x: 0, y: 0 };\n await animateDotsAlongPath(home, targetPosition, options);\n\n hideDots();\n };\n\n useEffect(() => {\n return () => {\n isMountedRef.current = false;\n };\n }, []);\n\n return {\n leadDotRef,\n trailRefs,\n moveFromOffsetWithDots,\n moveToOffsetWithDots,\n hideDots,\n };\n};\n"],"mappings":"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","ignoreList":[]}
@@ -26,7 +26,7 @@ export const AiAssistantAvatar = /*#__PURE__*/forwardRef((_ref, ref) => {
26
26
  setAvatarHidden = _useAvatarSetup.setAvatarHidden;
27
27
  const _useMovement = useMovement(wrapperRef, ASTRO_SIZE.WIDTH, ASTRO_SIZE.HEIGHT),
28
28
  setCenter = _useMovement.setCenter;
29
- const _useDotAnimation = useDotAnimation(setCenter, setAvatarHidden, AriaAvatar.setState),
29
+ const _useDotAnimation = useDotAnimation(setCenter, setAvatarHidden, AriaAvatar.setState, mode),
30
30
  leadDotRef = _useDotAnimation.leadDotRef,
31
31
  trailRefs = _useDotAnimation.trailRefs,
32
32
  hideDots = _useDotAnimation.hideDots,
@@ -1 +1 @@
1
- {"version":3,"names":["React","forwardRef","useEffect","useImperativeHandle","useRef","useState","s","ASTRO_SIZE","useAvatarSetup","useMovement","useDotAnimation","DotTrail","AvatarEvent","AvatarState","AiAssistantAvatar","_ref","ref","mode","variant","sleepTimeout","wrapperRef","typingTimeout","_useState","isTyping","setIsTyping","_useState2","showBg","setShowBg","_useAvatarSetup","AriaAvatar","avatarHidden","setAvatarHidden","_useMovement","WIDTH","HEIGHT","setCenter","_useDotAnimation","setState","leadDotRef","trailRefs","hideDots","moveFromOffsetWithDots","moveToOffsetWithDots","onTravelHomeFrom","x","y","options","pos","onTravelAwayTo","onMouseMove","clientX","clientY","lookAt","onUserTyping","caretX","caretY","current","clearTimeout","setTimeout","err","console","error","hideAvatar","_temp","_ref2","_ref2$withDots","withDots","showAvatar","trigger","shrink","getState","SMALL","IDLE","smallLoader","SMALL_LOADER","pulse","Promise","resolve","idle","undo","fireEvent","UNDO_EVENT","boredom","SLEEPING","bigLoader","BIG_LOADER","ideaSpark","IDEA_SPARK","publish","PUBLISH_EVENT","wrapper","changeAstroColor","color","setAvatarColor","toggleAvatarBackground","hideBg","hide","show","createElement","className","avatar","astro","style","opacity","width","height"],"sources":["../../../src/Astro/Astro.tsx"],"sourcesContent":["import React, {\n forwardRef,\n Ref,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from 'react';\nimport s from './Astro.module.css';\nimport type { AstroRef, AstroProps, MoveOptions } from './types';\nimport { ASTRO_SIZE } from './config';\nimport { useAvatarSetup, useMovement, useDotAnimation } from './hooks';\nimport { DotTrail } from './components/DotTrail';\nimport { AvatarEvent, AvatarState } from '@wix/aria-ai-avatar';\n\nexport const AiAssistantAvatar = forwardRef<AstroRef, AstroProps>(\n ({ mode, variant, sleepTimeout }, ref: Ref<AstroRef> | null) => {\n const wrapperRef = useRef<HTMLDivElement | null>(null);\n const typingTimeout = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n const [isTyping, setIsTyping] = useState(false);\n\n const [showBg, setShowBg] = useState(false);\n\n const { AriaAvatar, avatarHidden, setAvatarHidden } = useAvatarSetup({\n mode,\n variant,\n sleepTimeout,\n });\n\n const { setCenter } = useMovement(\n wrapperRef,\n ASTRO_SIZE.WIDTH,\n ASTRO_SIZE.HEIGHT,\n );\n\n const {\n leadDotRef,\n trailRefs,\n hideDots,\n moveFromOffsetWithDots,\n moveToOffsetWithDots,\n } = useDotAnimation(setCenter, setAvatarHidden, AriaAvatar.setState);\n\n const onTravelHomeFrom = async (\n x: number,\n y: number,\n options?: MoveOptions,\n ) => {\n const pos = { x, y };\n await moveFromOffsetWithDots(pos, options);\n };\n\n const onTravelAwayTo = async (\n x: number,\n y: number,\n options?: MoveOptions,\n ) => {\n const pos = { x, y };\n await moveToOffsetWithDots(pos, options);\n };\n\n const onMouseMove = (clientX: number, clientY: number) => {\n if (isTyping) {\n return;\n }\n\n AriaAvatar.lookAt(clientX, clientY);\n };\n\n const onUserTyping = (caretX: number, caretY: number) => {\n try {\n setIsTyping(true);\n AriaAvatar.lookAt(caretX, caretY);\n\n if (typingTimeout.current) {\n clearTimeout(typingTimeout.current);\n }\n\n typingTimeout.current = setTimeout(() => {\n setIsTyping(false);\n }, 500);\n } catch (err) {\n console.error('[Astro] Error tracking typing:', err);\n }\n };\n\n useEffect(() => {\n return () => {\n if (typingTimeout.current) {\n clearTimeout(typingTimeout.current);\n }\n };\n }, []);\n\n const hideAvatar = ({ withDots = false }: { withDots?: boolean } = {}) => {\n setAvatarHidden(true);\n\n if (withDots) {\n hideDots();\n }\n };\n\n const showAvatar = () => {\n setAvatarHidden(false);\n };\n\n useImperativeHandle(ref, () => ({\n trigger: {\n shrink: () => {\n if (AriaAvatar.getState() === AvatarState.SMALL) {\n return AriaAvatar.setState(AvatarState.IDLE);\n }\n return AriaAvatar.setState(AvatarState.SMALL);\n },\n smallLoader: () => {\n if (AriaAvatar.getState() === AvatarState.SMALL) {\n return AriaAvatar.setState(AvatarState.SMALL_LOADER);\n }\n return AriaAvatar.setState(AvatarState.SMALL);\n },\n pulse: () => Promise.resolve(),\n idle: async () => {\n if (AriaAvatar.getState() === AvatarState.SMALL_LOADER) {\n await AriaAvatar.setState(AvatarState.SMALL);\n }\n return AriaAvatar.setState(AvatarState.IDLE);\n },\n undo: () => AriaAvatar.fireEvent(AvatarEvent.UNDO_EVENT),\n boredom: () => {\n if (AriaAvatar.getState() === AvatarState.SLEEPING) {\n return AriaAvatar.setState(AvatarState.IDLE);\n }\n return AriaAvatar.setState(AvatarState.SLEEPING);\n },\n bigLoader: () => {\n if (AriaAvatar.getState() === AvatarState.BIG_LOADER) {\n return AriaAvatar.setState(AvatarState.IDLE);\n }\n return AriaAvatar.setState(AvatarState.BIG_LOADER);\n },\n ideaSpark: () => AriaAvatar.fireEvent(AvatarEvent.IDEA_SPARK),\n publish: () => AriaAvatar.fireEvent(AvatarEvent.PUBLISH_EVENT),\n },\n avatarHidden,\n wrapper: wrapperRef.current,\n getState: AriaAvatar.getState,\n\n onMouseMove,\n onUserTyping,\n onTravelHomeFrom,\n onTravelAwayTo,\n\n changeAstroColor: (color: string) => {\n AriaAvatar.setAvatarColor(color);\n },\n\n toggleAvatarBackground: () => {\n if (showBg) {\n setShowBg(false);\n AriaAvatar.hideBg();\n } else {\n setShowBg(true);\n AriaAvatar.showBg();\n }\n },\n\n hide: hideAvatar,\n show: showAvatar,\n }));\n\n return (\n <div className={s.avatar}>\n <DotTrail leadDotRef={leadDotRef} trailRefs={trailRefs} />\n\n <div\n ref={wrapperRef}\n className={s.astro}\n style={{\n opacity: avatarHidden ? 0 : 1,\n }}\n >\n <div style={{ width: ASTRO_SIZE.WIDTH, height: ASTRO_SIZE.HEIGHT }}>\n <AriaAvatar.AriaAvatar />\n </div>\n </div>\n </div>\n );\n },\n);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","forwardRef","useEffect","useImperativeHandle","useRef","useState","s","ASTRO_SIZE","useAvatarSetup","useMovement","useDotAnimation","DotTrail","AvatarEvent","AvatarState","AiAssistantAvatar","_ref","ref","mode","variant","sleepTimeout","wrapperRef","typingTimeout","_useState","isTyping","setIsTyping","_useState2","showBg","setShowBg","_useAvatarSetup","AriaAvatar","avatarHidden","setAvatarHidden","_useMovement","WIDTH","HEIGHT","setCenter","_useDotAnimation","setState","leadDotRef","trailRefs","hideDots","moveFromOffsetWithDots","moveToOffsetWithDots","onTravelHomeFrom","x","y","options","pos","onTravelAwayTo","onMouseMove","clientX","clientY","lookAt","onUserTyping","caretX","caretY","current","clearTimeout","setTimeout","err","console","error","hideAvatar","_temp","_ref2","_ref2$withDots","withDots","showAvatar","trigger","shrink","getState","SMALL","IDLE","smallLoader","SMALL_LOADER","pulse","Promise","resolve","idle","undo","fireEvent","UNDO_EVENT","boredom","SLEEPING","bigLoader","BIG_LOADER","ideaSpark","IDEA_SPARK","publish","PUBLISH_EVENT","wrapper","changeAstroColor","color","setAvatarColor","toggleAvatarBackground","hideBg","hide","show","createElement","className","avatar","astro","style","opacity","width","height"],"sources":["../../../src/Astro/Astro.tsx"],"sourcesContent":["import React, {\n forwardRef,\n Ref,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from 'react';\nimport s from './Astro.module.css';\nimport type { AstroRef, AstroProps, MoveOptions } from './types';\nimport { ASTRO_SIZE } from './config';\nimport { useAvatarSetup, useMovement, useDotAnimation } from './hooks';\nimport { DotTrail } from './components/DotTrail';\nimport { AvatarEvent, AvatarState } from '@wix/aria-ai-avatar';\n\nexport const AiAssistantAvatar = forwardRef<AstroRef, AstroProps>(\n ({ mode, variant, sleepTimeout }, ref: Ref<AstroRef> | null) => {\n const wrapperRef = useRef<HTMLDivElement | null>(null);\n const typingTimeout = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n const [isTyping, setIsTyping] = useState(false);\n\n const [showBg, setShowBg] = useState(false);\n\n const { AriaAvatar, avatarHidden, setAvatarHidden } = useAvatarSetup({\n mode,\n variant,\n sleepTimeout,\n });\n\n const { setCenter } = useMovement(\n wrapperRef,\n ASTRO_SIZE.WIDTH,\n ASTRO_SIZE.HEIGHT,\n );\n\n const {\n leadDotRef,\n trailRefs,\n hideDots,\n moveFromOffsetWithDots,\n moveToOffsetWithDots,\n } = useDotAnimation(setCenter, setAvatarHidden, AriaAvatar.setState, mode);\n\n const onTravelHomeFrom = async (\n x: number,\n y: number,\n options?: MoveOptions,\n ) => {\n const pos = { x, y };\n await moveFromOffsetWithDots(pos, options);\n };\n\n const onTravelAwayTo = async (\n x: number,\n y: number,\n options?: MoveOptions,\n ) => {\n const pos = { x, y };\n await moveToOffsetWithDots(pos, options);\n };\n\n const onMouseMove = (clientX: number, clientY: number) => {\n if (isTyping) {\n return;\n }\n\n AriaAvatar.lookAt(clientX, clientY);\n };\n\n const onUserTyping = (caretX: number, caretY: number) => {\n try {\n setIsTyping(true);\n AriaAvatar.lookAt(caretX, caretY);\n\n if (typingTimeout.current) {\n clearTimeout(typingTimeout.current);\n }\n\n typingTimeout.current = setTimeout(() => {\n setIsTyping(false);\n }, 500);\n } catch (err) {\n console.error('[Astro] Error tracking typing:', err);\n }\n };\n\n useEffect(() => {\n return () => {\n if (typingTimeout.current) {\n clearTimeout(typingTimeout.current);\n }\n };\n }, []);\n\n const hideAvatar = ({ withDots = false }: { withDots?: boolean } = {}) => {\n setAvatarHidden(true);\n\n if (withDots) {\n hideDots();\n }\n };\n\n const showAvatar = () => {\n setAvatarHidden(false);\n };\n\n useImperativeHandle(ref, () => ({\n trigger: {\n shrink: () => {\n if (AriaAvatar.getState() === AvatarState.SMALL) {\n return AriaAvatar.setState(AvatarState.IDLE);\n }\n return AriaAvatar.setState(AvatarState.SMALL);\n },\n smallLoader: () => {\n if (AriaAvatar.getState() === AvatarState.SMALL) {\n return AriaAvatar.setState(AvatarState.SMALL_LOADER);\n }\n return AriaAvatar.setState(AvatarState.SMALL);\n },\n pulse: () => Promise.resolve(),\n idle: async () => {\n if (AriaAvatar.getState() === AvatarState.SMALL_LOADER) {\n await AriaAvatar.setState(AvatarState.SMALL);\n }\n return AriaAvatar.setState(AvatarState.IDLE);\n },\n undo: () => AriaAvatar.fireEvent(AvatarEvent.UNDO_EVENT),\n boredom: () => {\n if (AriaAvatar.getState() === AvatarState.SLEEPING) {\n return AriaAvatar.setState(AvatarState.IDLE);\n }\n return AriaAvatar.setState(AvatarState.SLEEPING);\n },\n bigLoader: () => {\n if (AriaAvatar.getState() === AvatarState.BIG_LOADER) {\n return AriaAvatar.setState(AvatarState.IDLE);\n }\n return AriaAvatar.setState(AvatarState.BIG_LOADER);\n },\n ideaSpark: () => AriaAvatar.fireEvent(AvatarEvent.IDEA_SPARK),\n publish: () => AriaAvatar.fireEvent(AvatarEvent.PUBLISH_EVENT),\n },\n avatarHidden,\n wrapper: wrapperRef.current,\n getState: AriaAvatar.getState,\n\n onMouseMove,\n onUserTyping,\n onTravelHomeFrom,\n onTravelAwayTo,\n\n changeAstroColor: (color: string) => {\n AriaAvatar.setAvatarColor(color);\n },\n\n toggleAvatarBackground: () => {\n if (showBg) {\n setShowBg(false);\n AriaAvatar.hideBg();\n } else {\n setShowBg(true);\n AriaAvatar.showBg();\n }\n },\n\n hide: hideAvatar,\n show: showAvatar,\n }));\n\n return (\n <div className={s.avatar}>\n <DotTrail leadDotRef={leadDotRef} trailRefs={trailRefs} />\n\n <div\n ref={wrapperRef}\n className={s.astro}\n style={{\n opacity: avatarHidden ? 0 : 1,\n }}\n >\n <div style={{ width: ASTRO_SIZE.WIDTH, height: ASTRO_SIZE.HEIGHT }}>\n <AriaAvatar.AriaAvatar />\n </div>\n </div>\n </div>\n );\n },\n);\n"],"mappings":"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","ignoreList":[]}
@@ -12,7 +12,24 @@
12
12
  transition: opacity 80ms linear;
13
13
  transform: translate3d(0, 0, 0);
14
14
 
15
- clip-path: inset(23px 23px 23px 23px); /* cut off the edges to stop hijacking mouse events. maybe we need to reduce canvas size itself instead of this. */
15
+ clip-path: inset(12px); /* cut off the edges to stop hijacking mouse events. maybe we need to reduce canvas size itself instead of this. */
16
+
17
+ [class*='_wrapper_'] [class*='_hitbox_'] {
18
+ transform: scale(0.47);
19
+ }
20
+
21
+ [class*='_wrapper_'] [class*='_hitbox_'] [class*='_head_'][class*='_dark_'][class*='_shrunk_'] {
22
+ background: #557dff;
23
+ }
24
+
25
+ [class*='_wrapper_'] [class*='_hitbox_'] [class*='_head_'][class*='_dark_']:not([class*='_shrunk_']) {
26
+ box-shadow:
27
+ 0 12px 15px #2f5dffb2,
28
+ 0 8px 8px #3ca1ff40,
29
+ 0 0 6px #ffffff60,
30
+ 0 0 6px 2px #ffffff40,
31
+ 0 0 6px #2f5dffb2;
32
+ }
16
33
 
17
34
  @starting-style {
18
35
  opacity: 0;
@@ -2,7 +2,7 @@ import { useRef, useEffect } from 'react';
2
2
  import { ANIMATION_CONFIG, TIMING } from '../config';
3
3
  import { buildPathD, setMotionPath, setOffsetDistance, setOffsetRotate, setOffsetAnchor } from '../utils';
4
4
  import { AvatarState } from '@wix/aria-ai-avatar';
5
- export const useDotAnimation = (moveToPosition, setAvatarHidden, triggerAvatarAnimationState) => {
5
+ export const useDotAnimation = (moveToPosition, setAvatarHidden, triggerAvatarAnimationState, mode) => {
6
6
  const leadDotRef = useRef(null);
7
7
  const trailRefs = useRef([]);
8
8
  const isMountedRef = useRef(true);
@@ -32,10 +32,11 @@ export const useDotAnimation = (moveToPosition, setAvatarHidden, triggerAvatarAn
32
32
  d.style.opacity = String(opacity);
33
33
  d.style.transform = `scale(${scale})`;
34
34
  });
35
+ const leadStartColor = mode === 'dark' ? ANIMATION_CONFIG.DOT_COLOR : '#000000';
35
36
  lead.style.opacity = '1';
36
- lead.style.background = '#000000';
37
+ lead.style.background = leadStartColor;
37
38
  lead.animate([{
38
- background: '#000000'
39
+ background: leadStartColor
39
40
  }, {
40
41
  background: ANIMATION_CONFIG.DOT_COLOR
41
42
  }], {
@@ -1 +1 @@
1
- {"version":3,"names":["useRef","useEffect","ANIMATION_CONFIG","TIMING","buildPathD","setMotionPath","setOffsetDistance","setOffsetRotate","setOffsetAnchor","AvatarState","useDotAnimation","moveToPosition","setAvatarHidden","triggerAvatarAnimationState","leadDotRef","trailRefs","isMountedRef","animateDotsAlongPath","start","end","options","current","lead","skipShrink","SMALL","forEach","d","i","ratio","TRAIL_COUNT","scale","TRAIL_MIN_SCALE","opacity","TRAIL_FADE","style","String","transform","background","animate","DOT_COLOR","duration","DOT_FADE_DURATION","easing","fill","pathD","prepDot","el","td","leadAnim","offsetDistance","TRAVEL_DURATION","EASING","delay","TRAIL_STAGGER","finished","hideDots","waitForNextFrame","Promise","r","requestAnimationFrame","moveFromOffsetWithDots","currentPosition","x","y","console","log","home","endState","IDLE","moveToOffsetWithDots","targetPosition"],"sources":["../../../../src/Astro/hooks/useDotAnimation.ts"],"sourcesContent":["import { useRef, useEffect } from 'react';\nimport type { Position, MoveOptions } from '../types';\nimport { ANIMATION_CONFIG, TIMING } from '../config';\nimport {\n buildPathD,\n setMotionPath,\n setOffsetDistance,\n setOffsetRotate,\n setOffsetAnchor,\n} from '../utils';\nimport { AvatarState } from '@wix/aria-ai-avatar';\n\nexport const useDotAnimation = (\n moveToPosition: (position: Position) => void,\n setAvatarHidden: (hidden: boolean) => void,\n triggerAvatarAnimationState: (state: AvatarState) => void,\n) => {\n const leadDotRef = useRef<HTMLDivElement | null>(null);\n const trailRefs = useRef<(HTMLDivElement | null)[]>([]);\n const isMountedRef = useRef(true);\n\n const animateDotsAlongPath = async (\n start: Position,\n end: Position,\n options: MoveOptions = {},\n ): Promise<void> => {\n if (!isMountedRef.current) {\n return;\n }\n\n const lead = leadDotRef.current;\n if (!lead) {\n return;\n }\n\n if (!options.skipShrink) {\n try {\n triggerAvatarAnimationState(AvatarState.SMALL);\n } catch {}\n }\n\n trailRefs.current.forEach((d, i) => {\n if (!d) {\n return;\n }\n const ratio = (i + 1) / ANIMATION_CONFIG.TRAIL_COUNT;\n const scale =\n ANIMATION_CONFIG.TRAIL_MIN_SCALE +\n (1 - ANIMATION_CONFIG.TRAIL_MIN_SCALE) * (1 - ratio);\n const opacity =\n ANIMATION_CONFIG.TRAIL_FADE +\n (1 - ANIMATION_CONFIG.TRAIL_FADE) * (1 - ratio);\n d.style.opacity = String(opacity);\n d.style.transform = `scale(${scale})`;\n });\n\n lead.style.opacity = '1';\n lead.style.background = '#000000';\n\n lead.animate(\n [{ background: '#000000' }, { background: ANIMATION_CONFIG.DOT_COLOR }],\n {\n duration: TIMING.DOT_FADE_DURATION,\n easing: 'ease-out',\n fill: 'forwards',\n },\n );\n\n const pathD = buildPathD(start, end);\n\n const prepDot = (el: HTMLElement) => {\n if (!el) {\n return;\n }\n setMotionPath(el, pathD);\n setOffsetDistance(el, '0%');\n setOffsetRotate(el, '0deg');\n setOffsetAnchor(el, '50% 50%');\n };\n\n prepDot(lead);\n\n trailRefs.current.forEach((td) => td && prepDot(td));\n\n const leadAnim = lead.animate(\n [{ offsetDistance: '0%' }, { offsetDistance: '100%' }],\n {\n duration: TIMING.TRAVEL_DURATION,\n easing: ANIMATION_CONFIG.EASING,\n fill: 'forwards',\n },\n );\n\n trailRefs.current.forEach((td, i) => {\n if (!td) {\n return;\n }\n td.animate([{ offsetDistance: '0%' }, { offsetDistance: '100%' }], {\n duration: TIMING.TRAVEL_DURATION,\n delay: (i + 1) * ANIMATION_CONFIG.TRAIL_STAGGER,\n easing: ANIMATION_CONFIG.EASING,\n fill: 'forwards',\n });\n });\n\n await leadAnim.finished;\n\n lead.style.opacity = '0';\n trailRefs.current.forEach((td) => td && (td.style.opacity = '0'));\n };\n\n const hideDots = () => {\n const lead = leadDotRef.current;\n if (lead) {\n lead.style.opacity = '0';\n }\n trailRefs.current.forEach((td) => {\n if (td) {\n td.style.opacity = '0';\n }\n });\n };\n\n const waitForNextFrame = () =>\n new Promise<void>((r) => requestAnimationFrame(() => r()));\n\n const moveFromOffsetWithDots = async (\n currentPosition: Position,\n options: MoveOptions = {},\n ): Promise<void> => {\n if (\n typeof currentPosition.x !== 'number' ||\n typeof currentPosition.y !== 'number'\n ) {\n console.log('[Astro] Invalid position, skipping animation');\n return;\n }\n\n const home = { x: 0, y: 0 };\n await animateDotsAlongPath(currentPosition, home, options);\n\n moveToPosition(home);\n setAvatarHidden(false);\n\n await waitForNextFrame();\n\n if (isMountedRef.current) {\n if (options.endState) {\n await triggerAvatarAnimationState(options.endState);\n } else {\n await triggerAvatarAnimationState(AvatarState.IDLE);\n }\n }\n };\n\n const moveToOffsetWithDots = async (\n targetPosition: Position,\n options: MoveOptions = {},\n ): Promise<void> => {\n if (\n typeof targetPosition.x !== 'number' ||\n typeof targetPosition.y !== 'number'\n ) {\n console.log('[Astro] Invalid position, skipping animation');\n return;\n }\n\n setAvatarHidden(true);\n await waitForNextFrame();\n\n const home = { x: 0, y: 0 };\n await animateDotsAlongPath(home, targetPosition, options);\n\n hideDots();\n };\n\n useEffect(() => {\n return () => {\n isMountedRef.current = false;\n };\n }, []);\n\n return {\n leadDotRef,\n trailRefs,\n moveFromOffsetWithDots,\n moveToOffsetWithDots,\n hideDots,\n };\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useRef","useEffect","ANIMATION_CONFIG","TIMING","buildPathD","setMotionPath","setOffsetDistance","setOffsetRotate","setOffsetAnchor","AvatarState","useDotAnimation","moveToPosition","setAvatarHidden","triggerAvatarAnimationState","mode","leadDotRef","trailRefs","isMountedRef","animateDotsAlongPath","start","end","options","current","lead","skipShrink","SMALL","forEach","d","i","ratio","TRAIL_COUNT","scale","TRAIL_MIN_SCALE","opacity","TRAIL_FADE","style","String","transform","leadStartColor","DOT_COLOR","background","animate","duration","DOT_FADE_DURATION","easing","fill","pathD","prepDot","el","td","leadAnim","offsetDistance","TRAVEL_DURATION","EASING","delay","TRAIL_STAGGER","finished","hideDots","waitForNextFrame","Promise","r","requestAnimationFrame","moveFromOffsetWithDots","currentPosition","x","y","console","log","home","endState","IDLE","moveToOffsetWithDots","targetPosition"],"sources":["../../../../src/Astro/hooks/useDotAnimation.ts"],"sourcesContent":["import { useRef, useEffect } from 'react';\nimport type { Position, MoveOptions } from '../types';\nimport { ANIMATION_CONFIG, TIMING } from '../config';\nimport {\n buildPathD,\n setMotionPath,\n setOffsetDistance,\n setOffsetRotate,\n setOffsetAnchor,\n} from '../utils';\nimport { AvatarState } from '@wix/aria-ai-avatar';\n\nexport const useDotAnimation = (\n moveToPosition: (position: Position) => void,\n setAvatarHidden: (hidden: boolean) => void,\n triggerAvatarAnimationState: (state: AvatarState) => void,\n mode?: 'light' | 'dark',\n) => {\n const leadDotRef = useRef<HTMLDivElement | null>(null);\n const trailRefs = useRef<(HTMLDivElement | null)[]>([]);\n const isMountedRef = useRef(true);\n\n const animateDotsAlongPath = async (\n start: Position,\n end: Position,\n options: MoveOptions = {},\n ): Promise<void> => {\n if (!isMountedRef.current) {\n return;\n }\n\n const lead = leadDotRef.current;\n if (!lead) {\n return;\n }\n\n if (!options.skipShrink) {\n try {\n triggerAvatarAnimationState(AvatarState.SMALL);\n } catch {}\n }\n\n trailRefs.current.forEach((d, i) => {\n if (!d) {\n return;\n }\n const ratio = (i + 1) / ANIMATION_CONFIG.TRAIL_COUNT;\n const scale =\n ANIMATION_CONFIG.TRAIL_MIN_SCALE +\n (1 - ANIMATION_CONFIG.TRAIL_MIN_SCALE) * (1 - ratio);\n const opacity =\n ANIMATION_CONFIG.TRAIL_FADE +\n (1 - ANIMATION_CONFIG.TRAIL_FADE) * (1 - ratio);\n d.style.opacity = String(opacity);\n d.style.transform = `scale(${scale})`;\n });\n\n const leadStartColor =\n mode === 'dark' ? ANIMATION_CONFIG.DOT_COLOR : '#000000';\n\n lead.style.opacity = '1';\n lead.style.background = leadStartColor;\n\n lead.animate(\n [\n { background: leadStartColor },\n { background: ANIMATION_CONFIG.DOT_COLOR },\n ],\n {\n duration: TIMING.DOT_FADE_DURATION,\n easing: 'ease-out',\n fill: 'forwards',\n },\n );\n\n const pathD = buildPathD(start, end);\n\n const prepDot = (el: HTMLElement) => {\n if (!el) {\n return;\n }\n setMotionPath(el, pathD);\n setOffsetDistance(el, '0%');\n setOffsetRotate(el, '0deg');\n setOffsetAnchor(el, '50% 50%');\n };\n\n prepDot(lead);\n\n trailRefs.current.forEach((td) => td && prepDot(td));\n\n const leadAnim = lead.animate(\n [{ offsetDistance: '0%' }, { offsetDistance: '100%' }],\n {\n duration: TIMING.TRAVEL_DURATION,\n easing: ANIMATION_CONFIG.EASING,\n fill: 'forwards',\n },\n );\n\n trailRefs.current.forEach((td, i) => {\n if (!td) {\n return;\n }\n td.animate([{ offsetDistance: '0%' }, { offsetDistance: '100%' }], {\n duration: TIMING.TRAVEL_DURATION,\n delay: (i + 1) * ANIMATION_CONFIG.TRAIL_STAGGER,\n easing: ANIMATION_CONFIG.EASING,\n fill: 'forwards',\n });\n });\n\n await leadAnim.finished;\n\n lead.style.opacity = '0';\n trailRefs.current.forEach((td) => td && (td.style.opacity = '0'));\n };\n\n const hideDots = () => {\n const lead = leadDotRef.current;\n if (lead) {\n lead.style.opacity = '0';\n }\n trailRefs.current.forEach((td) => {\n if (td) {\n td.style.opacity = '0';\n }\n });\n };\n\n const waitForNextFrame = () =>\n new Promise<void>((r) => requestAnimationFrame(() => r()));\n\n const moveFromOffsetWithDots = async (\n currentPosition: Position,\n options: MoveOptions = {},\n ): Promise<void> => {\n if (\n typeof currentPosition.x !== 'number' ||\n typeof currentPosition.y !== 'number'\n ) {\n console.log('[Astro] Invalid position, skipping animation');\n return;\n }\n\n const home = { x: 0, y: 0 };\n await animateDotsAlongPath(currentPosition, home, options);\n\n moveToPosition(home);\n setAvatarHidden(false);\n\n await waitForNextFrame();\n\n if (isMountedRef.current) {\n if (options.endState) {\n await triggerAvatarAnimationState(options.endState);\n } else {\n await triggerAvatarAnimationState(AvatarState.IDLE);\n }\n }\n };\n\n const moveToOffsetWithDots = async (\n targetPosition: Position,\n options: MoveOptions = {},\n ): Promise<void> => {\n if (\n typeof targetPosition.x !== 'number' ||\n typeof targetPosition.y !== 'number'\n ) {\n console.log('[Astro] Invalid position, skipping animation');\n return;\n }\n\n setAvatarHidden(true);\n await waitForNextFrame();\n\n const home = { x: 0, y: 0 };\n await animateDotsAlongPath(home, targetPosition, options);\n\n hideDots();\n };\n\n useEffect(() => {\n return () => {\n isMountedRef.current = false;\n };\n }, []);\n\n return {\n leadDotRef,\n trailRefs,\n moveFromOffsetWithDots,\n moveToOffsetWithDots,\n hideDots,\n };\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,6 @@
1
1
  import type { Position, MoveOptions } from '../types';
2
2
  import { AvatarState } from '@wix/aria-ai-avatar';
3
- export declare const useDotAnimation: (moveToPosition: (position: Position) => void, setAvatarHidden: (hidden: boolean) => void, triggerAvatarAnimationState: (state: AvatarState) => void) => {
3
+ export declare const useDotAnimation: (moveToPosition: (position: Position) => void, setAvatarHidden: (hidden: boolean) => void, triggerAvatarAnimationState: (state: AvatarState) => void, mode?: "light" | "dark") => {
4
4
  leadDotRef: import("react").MutableRefObject<HTMLDivElement | null>;
5
5
  trailRefs: import("react").MutableRefObject<(HTMLDivElement | null)[]>;
6
6
  moveFromOffsetWithDots: (currentPosition: Position, options?: MoveOptions) => Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"useDotAnimation.d.ts","sourceRoot":"","sources":["../../../../src/Astro/hooks/useDotAnimation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAStD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,eAAO,MAAM,eAAe,GAC1B,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,EAC5C,iBAAiB,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,EAC1C,6BAA6B,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI;;;8CAgHtC,QAAQ,YAChB,WAAW,KACnB,OAAO,CAAC,IAAI,CAAC;2CA2BE,QAAQ,YACf,WAAW,KACnB,OAAO,CAAC,IAAI,CAAC;;CA+BjB,CAAC"}
1
+ {"version":3,"file":"useDotAnimation.d.ts","sourceRoot":"","sources":["../../../../src/Astro/hooks/useDotAnimation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAStD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,eAAO,MAAM,eAAe,GAC1B,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,EAC5C,iBAAiB,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,EAC1C,6BAA6B,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,EACzD,OAAO,OAAO,GAAG,MAAM;;;8CAsHJ,QAAQ,YAChB,WAAW,KACnB,OAAO,CAAC,IAAI,CAAC;2CA2BE,QAAQ,YACf,WAAW,KACnB,OAAO,CAAC,IAAI,CAAC;;CA+BjB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wix/ai-assistant-avatar",
3
- "version": "0.43.0",
3
+ "version": "0.44.0",
4
4
  "main": "dist/cjs/index.js",
5
5
  "module": "dist/esm/index.js",
6
6
  "types": "dist/types/index.d.ts",
@@ -83,5 +83,5 @@
83
83
  "yoshiFlowLibrary": {
84
84
  "buildEsmWithBabel": true
85
85
  },
86
- "falconPackageHash": "8b6ba56dfae6f3043780e41b4f5086e866dd7f987c49a1e8b29bb707"
86
+ "falconPackageHash": "ee4e8d64c4bcf3d3601630411400915769682025c2ad163b34383166"
87
87
  }