@limetech/lime-elements 39.27.0 → 39.28.1

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 (284) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/cjs/lime-elements.cjs.js +1 -1
  3. package/dist/cjs/limel-action-bar_3.cjs.entry.js +1 -1
  4. package/dist/cjs/limel-ai-avatar.cjs.entry.js +136 -12
  5. package/dist/cjs/limel-badge.cjs.entry.js +2 -2
  6. package/dist/cjs/limel-banner.cjs.entry.js +1 -1
  7. package/dist/cjs/limel-breadcrumbs_8.cjs.entry.js +8 -8
  8. package/dist/cjs/limel-button-group.cjs.entry.js +1 -1
  9. package/dist/cjs/limel-button.cjs.entry.js +2 -2
  10. package/dist/cjs/limel-callout.cjs.entry.js +2 -2
  11. package/dist/cjs/limel-card.cjs.entry.js +1 -1
  12. package/dist/cjs/limel-chart.cjs.entry.js +1 -1
  13. package/dist/cjs/limel-checkbox.cjs.entry.js +1 -1
  14. package/dist/cjs/limel-chip-set.cjs.entry.js +2 -2
  15. package/dist/cjs/limel-chip_2.cjs.entry.js +2 -2
  16. package/dist/cjs/limel-circular-progress.cjs.entry.js +1 -1
  17. package/dist/cjs/limel-code-diff.cjs.entry.js +2 -2
  18. package/dist/cjs/limel-code-editor.cjs.entry.js +2 -2
  19. package/dist/cjs/limel-collapsible-section.cjs.entry.js +2 -2
  20. package/dist/cjs/limel-color-picker-palette.cjs.entry.js +2 -2
  21. package/dist/cjs/limel-color-picker.cjs.entry.js +1 -1
  22. package/dist/cjs/limel-dialog.cjs.entry.js +2 -2
  23. package/dist/cjs/limel-dock.cjs.entry.js +2 -2
  24. package/dist/cjs/limel-drag-handle.cjs.entry.js +2 -2
  25. package/dist/cjs/limel-email-viewer.cjs.entry.js +2 -2
  26. package/dist/cjs/limel-file-dropzone_2.cjs.entry.js +2 -2
  27. package/dist/cjs/limel-file-viewer.cjs.entry.js +1 -1
  28. package/dist/cjs/limel-file.cjs.entry.js +2 -2
  29. package/dist/cjs/limel-flatpickr-adapter.cjs.entry.js +2 -2
  30. package/dist/cjs/limel-flex-container.cjs.entry.js +1 -1
  31. package/dist/cjs/limel-form.cjs.entry.js +1 -1
  32. package/dist/cjs/limel-grid.cjs.entry.js +1 -1
  33. package/dist/cjs/limel-header.cjs.entry.js +1 -1
  34. package/dist/cjs/limel-help-content.cjs.entry.js +1 -1
  35. package/dist/cjs/limel-help.cjs.entry.js +2 -2
  36. package/dist/cjs/limel-helper-line.cjs.entry.js +2 -2
  37. package/dist/cjs/limel-hotkey_4.cjs.entry.js +5 -5
  38. package/dist/cjs/limel-icon-button.cjs.entry.js +1 -1
  39. package/dist/cjs/limel-icon.cjs.entry.js +23 -1
  40. package/dist/cjs/limel-info-tile.cjs.entry.js +2 -2
  41. package/dist/cjs/limel-list-item.cjs.entry.js +4 -4
  42. package/dist/cjs/limel-markdown.cjs.entry.js +1 -1
  43. package/dist/cjs/limel-masonry-layout.cjs.entry.js +1 -1
  44. package/dist/cjs/limel-menu-item-meta.cjs.entry.js +1 -1
  45. package/dist/cjs/limel-picker.cjs.entry.js +2 -2
  46. package/dist/cjs/limel-popover_2.cjs.entry.js +2 -2
  47. package/dist/cjs/limel-profile-picture.cjs.entry.js +1 -1
  48. package/dist/cjs/limel-prosemirror-adapter.cjs.entry.js +2 -2
  49. package/dist/cjs/limel-radio-button-group.cjs.entry.js +1 -1
  50. package/dist/cjs/limel-radio-button.cjs.entry.js +2 -2
  51. package/dist/cjs/limel-select.cjs.entry.js +1 -1
  52. package/dist/cjs/limel-shortcut.cjs.entry.js +1 -1
  53. package/dist/cjs/limel-slider.cjs.entry.js +2 -2
  54. package/dist/cjs/limel-snackbar.cjs.entry.js +3 -3
  55. package/dist/cjs/limel-split-button.cjs.entry.js +2 -2
  56. package/dist/cjs/limel-switch.cjs.entry.js +1 -1
  57. package/dist/cjs/limel-tab-bar.cjs.entry.js +2 -2
  58. package/dist/cjs/limel-tab-panel.cjs.entry.js +1 -1
  59. package/dist/cjs/limel-table.cjs.entry.js +4 -4
  60. package/dist/cjs/limel-text-editor-link-menu.cjs.entry.js +4 -4
  61. package/dist/cjs/limel-text-editor.cjs.entry.js +1 -1
  62. package/dist/cjs/loader.cjs.js +1 -1
  63. package/dist/cjs/{translations-BCHv7JrI.js → translations-VEsa81QY.js} +40 -0
  64. package/dist/collection/components/ai-avatar/ai-avatar.css +363 -124
  65. package/dist/collection/components/ai-avatar/ai-avatar.js +199 -16
  66. package/dist/collection/components/ai-avatar/ai-avatar.types.js +1 -0
  67. package/dist/collection/components/badge/badge.js +2 -2
  68. package/dist/collection/components/banner/banner.js +1 -1
  69. package/dist/collection/components/breadcrumbs/breadcrumbs.js +1 -1
  70. package/dist/collection/components/button/button.js +2 -2
  71. package/dist/collection/components/button-group/button-group.js +1 -1
  72. package/dist/collection/components/callout/callout.js +1 -1
  73. package/dist/collection/components/card/card.js +1 -1
  74. package/dist/collection/components/checkbox/checkbox.js +1 -1
  75. package/dist/collection/components/chip/chip.js +1 -1
  76. package/dist/collection/components/chip-set/chip-set.js +1 -1
  77. package/dist/collection/components/circular-progress/circular-progress.js +1 -1
  78. package/dist/collection/components/code-diff/code-diff.js +1 -1
  79. package/dist/collection/components/code-editor/code-editor.js +1 -1
  80. package/dist/collection/components/collapsible-section/collapsible-section.js +1 -1
  81. package/dist/collection/components/color-picker/color-picker-palette.js +2 -2
  82. package/dist/collection/components/color-picker/color-picker.js +1 -1
  83. package/dist/collection/components/date-picker/flatpickr-adapter/flatpickr-adapter.js +1 -1
  84. package/dist/collection/components/dialog/dialog.js +2 -2
  85. package/dist/collection/components/dock/dock.js +2 -2
  86. package/dist/collection/components/drag-handle/drag-handle.js +1 -1
  87. package/dist/collection/components/email-viewer/email-viewer.js +1 -1
  88. package/dist/collection/components/file/file.js +1 -1
  89. package/dist/collection/components/file-dropzone/file-dropzone.js +1 -1
  90. package/dist/collection/components/file-input/file-input.js +1 -1
  91. package/dist/collection/components/flex-container/flex-container.js +1 -1
  92. package/dist/collection/components/form/form.js +1 -1
  93. package/dist/collection/components/grid/grid.js +1 -1
  94. package/dist/collection/components/header/header.js +1 -1
  95. package/dist/collection/components/help/help-content.js +1 -1
  96. package/dist/collection/components/help/help.js +2 -2
  97. package/dist/collection/components/helper-line/helper-line.js +2 -2
  98. package/dist/collection/components/hotkey/hotkey.js +1 -1
  99. package/dist/collection/components/icon/icon.js +43 -1
  100. package/dist/collection/components/icon-button/icon-button.js +1 -1
  101. package/dist/collection/components/info-tile/info-tile.js +2 -2
  102. package/dist/collection/components/input-field/input-field.js +1 -1
  103. package/dist/collection/components/list/list.js +1 -1
  104. package/dist/collection/components/list-item/list-item.css +1 -1
  105. package/dist/collection/components/list-item/list-item.js +2 -2
  106. package/dist/collection/components/list-item/menu-item-meta/menu-item-meta.js +1 -1
  107. package/dist/collection/components/markdown/markdown.js +1 -1
  108. package/dist/collection/components/masonry-layout/masonry-layout.js +1 -1
  109. package/dist/collection/components/menu/menu.js +1 -1
  110. package/dist/collection/components/menu-list/menu-list.js +1 -1
  111. package/dist/collection/components/menu-surface/menu-surface.js +1 -1
  112. package/dist/collection/components/notched-outline/notched-outline.js +1 -1
  113. package/dist/collection/components/picker/picker.js +1 -1
  114. package/dist/collection/components/popover/popover.js +1 -1
  115. package/dist/collection/components/popover-surface/popover-surface.js +1 -1
  116. package/dist/collection/components/portal/portal.js +1 -1
  117. package/dist/collection/components/radio-button-group/radio-button-group.js +1 -1
  118. package/dist/collection/components/radio-button-group/radio-button.js +2 -2
  119. package/dist/collection/components/select/select.js +1 -1
  120. package/dist/collection/components/shortcut/shortcut.js +1 -1
  121. package/dist/collection/components/slider/slider.js +2 -2
  122. package/dist/collection/components/snackbar/snackbar.js +2 -2
  123. package/dist/collection/components/spinner/spinner.js +1 -1
  124. package/dist/collection/components/split-button/split-button.js +2 -2
  125. package/dist/collection/components/switch/switch.js +1 -1
  126. package/dist/collection/components/tab-bar/tab-bar.js +2 -2
  127. package/dist/collection/components/tab-panel/tab-panel.js +1 -1
  128. package/dist/collection/components/table/table.js +3 -3
  129. package/dist/collection/components/text-editor/link-menu/editor-link-menu.js +3 -3
  130. package/dist/collection/components/text-editor/prosemirror-adapter/prosemirror-adapter.js +1 -1
  131. package/dist/collection/components/text-editor/text-editor.js +1 -1
  132. package/dist/collection/components/tooltip/tooltip-content.js +1 -1
  133. package/dist/collection/components/tooltip/tooltip.js +2 -2
  134. package/dist/collection/translations/da.js +5 -0
  135. package/dist/collection/translations/de.js +5 -0
  136. package/dist/collection/translations/en.js +5 -0
  137. package/dist/collection/translations/fi.js +5 -0
  138. package/dist/collection/translations/fr.js +5 -0
  139. package/dist/collection/translations/nl.js +5 -0
  140. package/dist/collection/translations/no.js +5 -0
  141. package/dist/collection/translations/sv.js +5 -0
  142. package/dist/esm/lime-elements.js +1 -1
  143. package/dist/esm/limel-action-bar_3.entry.js +1 -1
  144. package/dist/esm/limel-ai-avatar.entry.js +136 -12
  145. package/dist/esm/limel-badge.entry.js +2 -2
  146. package/dist/esm/limel-banner.entry.js +1 -1
  147. package/dist/esm/limel-breadcrumbs_8.entry.js +8 -8
  148. package/dist/esm/limel-button-group.entry.js +1 -1
  149. package/dist/esm/limel-button.entry.js +2 -2
  150. package/dist/esm/limel-callout.entry.js +2 -2
  151. package/dist/esm/limel-card.entry.js +1 -1
  152. package/dist/esm/limel-chart.entry.js +1 -1
  153. package/dist/esm/limel-checkbox.entry.js +1 -1
  154. package/dist/esm/limel-chip-set.entry.js +2 -2
  155. package/dist/esm/limel-chip_2.entry.js +2 -2
  156. package/dist/esm/limel-circular-progress.entry.js +1 -1
  157. package/dist/esm/limel-code-diff.entry.js +2 -2
  158. package/dist/esm/limel-code-editor.entry.js +2 -2
  159. package/dist/esm/limel-collapsible-section.entry.js +2 -2
  160. package/dist/esm/limel-color-picker-palette.entry.js +2 -2
  161. package/dist/esm/limel-color-picker.entry.js +1 -1
  162. package/dist/esm/limel-dialog.entry.js +2 -2
  163. package/dist/esm/limel-dock.entry.js +2 -2
  164. package/dist/esm/limel-drag-handle.entry.js +2 -2
  165. package/dist/esm/limel-email-viewer.entry.js +2 -2
  166. package/dist/esm/limel-file-dropzone_2.entry.js +2 -2
  167. package/dist/esm/limel-file-viewer.entry.js +1 -1
  168. package/dist/esm/limel-file.entry.js +2 -2
  169. package/dist/esm/limel-flatpickr-adapter.entry.js +2 -2
  170. package/dist/esm/limel-flex-container.entry.js +1 -1
  171. package/dist/esm/limel-form.entry.js +1 -1
  172. package/dist/esm/limel-grid.entry.js +1 -1
  173. package/dist/esm/limel-header.entry.js +1 -1
  174. package/dist/esm/limel-help-content.entry.js +1 -1
  175. package/dist/esm/limel-help.entry.js +2 -2
  176. package/dist/esm/limel-helper-line.entry.js +2 -2
  177. package/dist/esm/limel-hotkey_4.entry.js +5 -5
  178. package/dist/esm/limel-icon-button.entry.js +1 -1
  179. package/dist/esm/limel-icon.entry.js +23 -1
  180. package/dist/esm/limel-info-tile.entry.js +2 -2
  181. package/dist/esm/limel-list-item.entry.js +4 -4
  182. package/dist/esm/limel-markdown.entry.js +1 -1
  183. package/dist/esm/limel-masonry-layout.entry.js +1 -1
  184. package/dist/esm/limel-menu-item-meta.entry.js +1 -1
  185. package/dist/esm/limel-picker.entry.js +2 -2
  186. package/dist/esm/limel-popover_2.entry.js +2 -2
  187. package/dist/esm/limel-profile-picture.entry.js +1 -1
  188. package/dist/esm/limel-prosemirror-adapter.entry.js +2 -2
  189. package/dist/esm/limel-radio-button-group.entry.js +1 -1
  190. package/dist/esm/limel-radio-button.entry.js +2 -2
  191. package/dist/esm/limel-select.entry.js +1 -1
  192. package/dist/esm/limel-shortcut.entry.js +1 -1
  193. package/dist/esm/limel-slider.entry.js +2 -2
  194. package/dist/esm/limel-snackbar.entry.js +3 -3
  195. package/dist/esm/limel-split-button.entry.js +2 -2
  196. package/dist/esm/limel-switch.entry.js +1 -1
  197. package/dist/esm/limel-tab-bar.entry.js +2 -2
  198. package/dist/esm/limel-tab-panel.entry.js +1 -1
  199. package/dist/esm/limel-table.entry.js +4 -4
  200. package/dist/esm/limel-text-editor-link-menu.entry.js +4 -4
  201. package/dist/esm/limel-text-editor.entry.js +1 -1
  202. package/dist/esm/loader.js +1 -1
  203. package/dist/esm/{translations-PPDjFxtV.js → translations-EPnIW0K5.js} +40 -0
  204. package/dist/lime-elements/lime-elements.esm.js +1 -1
  205. package/dist/lime-elements/{p-96ee6090.entry.js → p-08a261ce.entry.js} +1 -1
  206. package/dist/lime-elements/p-122cd39d.entry.js +1 -0
  207. package/dist/lime-elements/{p-469ec146.entry.js → p-140afd9f.entry.js} +1 -1
  208. package/dist/lime-elements/{p-e6b2b277.entry.js → p-1614ad86.entry.js} +1 -1
  209. package/dist/lime-elements/{p-3c79f422.entry.js → p-19a259ff.entry.js} +1 -1
  210. package/dist/lime-elements/{p-8b2f5ef5.entry.js → p-1a5541f1.entry.js} +1 -1
  211. package/dist/lime-elements/{p-cd85d670.entry.js → p-1ae8b33a.entry.js} +1 -1
  212. package/dist/lime-elements/{p-25aa2667.entry.js → p-1efd78ee.entry.js} +1 -1
  213. package/dist/lime-elements/{p-cc17846b.entry.js → p-22f34040.entry.js} +1 -1
  214. package/dist/lime-elements/{p-5442e09e.entry.js → p-263bfd74.entry.js} +1 -1
  215. package/dist/lime-elements/{p-a026cc24.entry.js → p-2a92790c.entry.js} +1 -1
  216. package/dist/lime-elements/{p-a49c1c48.entry.js → p-2a9e7bf5.entry.js} +1 -1
  217. package/dist/lime-elements/{p-cb10df74.entry.js → p-2b0a8066.entry.js} +1 -1
  218. package/dist/lime-elements/{p-aa43c751.entry.js → p-46900c5b.entry.js} +1 -1
  219. package/dist/lime-elements/{p-1c244f85.entry.js → p-49901dd7.entry.js} +1 -1
  220. package/dist/lime-elements/{p-ddd7cb78.entry.js → p-4d948ed5.entry.js} +1 -1
  221. package/dist/lime-elements/{p-3c09f58b.entry.js → p-5017cb3f.entry.js} +1 -1
  222. package/dist/lime-elements/{p-fbdca779.entry.js → p-50f51eb9.entry.js} +1 -1
  223. package/dist/lime-elements/p-59716b48.entry.js +1 -0
  224. package/dist/lime-elements/{p-87c1d5f0.entry.js → p-5d9adcbb.entry.js} +1 -1
  225. package/dist/lime-elements/{p-da4429a8.entry.js → p-5f121609.entry.js} +1 -1
  226. package/dist/lime-elements/{p-32e893de.entry.js → p-6015621e.entry.js} +1 -1
  227. package/dist/lime-elements/{p-c4813e26.entry.js → p-60518e6b.entry.js} +1 -1
  228. package/dist/lime-elements/{p-374ec191.entry.js → p-61ec46d5.entry.js} +1 -1
  229. package/dist/lime-elements/{p-cba72cd6.entry.js → p-6b7e58c3.entry.js} +1 -1
  230. package/dist/lime-elements/{p-6a26ea78.entry.js → p-6ca1da96.entry.js} +1 -1
  231. package/dist/lime-elements/{p-f6e58e6c.entry.js → p-730ba357.entry.js} +1 -1
  232. package/dist/lime-elements/{p-e7e2737b.entry.js → p-7b074737.entry.js} +1 -1
  233. package/dist/lime-elements/{p-79c797f5.entry.js → p-8203eea8.entry.js} +1 -1
  234. package/dist/lime-elements/{p-19d0861e.entry.js → p-82fb5c74.entry.js} +1 -1
  235. package/dist/lime-elements/{p-bcf03d4e.entry.js → p-871eb795.entry.js} +1 -1
  236. package/dist/lime-elements/{p-6f6c28f8.entry.js → p-8fde4714.entry.js} +1 -1
  237. package/dist/lime-elements/p-91990c64.entry.js +1 -0
  238. package/dist/lime-elements/{p-1f0d571e.entry.js → p-9359e870.entry.js} +1 -1
  239. package/dist/lime-elements/{p-db022b46.entry.js → p-989f4a52.entry.js} +1 -1
  240. package/dist/lime-elements/{p-a435d1c3.entry.js → p-9b3e8f43.entry.js} +1 -1
  241. package/dist/lime-elements/{p-f2f01f2a.entry.js → p-9e1a4d63.entry.js} +1 -1
  242. package/dist/lime-elements/{p-3364b078.entry.js → p-9f4f1854.entry.js} +1 -1
  243. package/dist/lime-elements/p-EPnIW0K5.js +1 -0
  244. package/dist/lime-elements/p-a6805c64.entry.js +1 -0
  245. package/dist/lime-elements/{p-97c401f1.entry.js → p-a7764b6d.entry.js} +1 -1
  246. package/dist/lime-elements/{p-d227f4df.entry.js → p-a85b2734.entry.js} +1 -1
  247. package/dist/lime-elements/p-ac5a3f55.entry.js +1 -0
  248. package/dist/lime-elements/{p-d1477eca.entry.js → p-afd4be62.entry.js} +1 -1
  249. package/dist/lime-elements/{p-a712087a.entry.js → p-b61a1d27.entry.js} +1 -1
  250. package/dist/lime-elements/{p-4ecd565b.entry.js → p-bffbd011.entry.js} +1 -1
  251. package/dist/lime-elements/p-c9fa7a09.entry.js +1 -0
  252. package/dist/lime-elements/{p-733ebba6.entry.js → p-cc1e3d79.entry.js} +1 -1
  253. package/dist/lime-elements/{p-72b9d03e.entry.js → p-d0607ba8.entry.js} +1 -1
  254. package/dist/lime-elements/{p-2eea146d.entry.js → p-d09e74b1.entry.js} +1 -1
  255. package/dist/lime-elements/{p-9e35468c.entry.js → p-d23af300.entry.js} +1 -1
  256. package/dist/lime-elements/{p-eecef02e.entry.js → p-d4a94dce.entry.js} +1 -1
  257. package/dist/lime-elements/{p-ea3c3dfd.entry.js → p-d5f189b9.entry.js} +2 -2
  258. package/dist/lime-elements/{p-abd1fde1.entry.js → p-d8b640e8.entry.js} +1 -1
  259. package/dist/lime-elements/{p-6eaa9776.entry.js → p-dcffc27b.entry.js} +3 -3
  260. package/dist/lime-elements/{p-92539877.entry.js → p-de203f64.entry.js} +1 -1
  261. package/dist/lime-elements/{p-4acb7438.entry.js → p-dee5717c.entry.js} +1 -1
  262. package/dist/lime-elements/{p-86a001e2.entry.js → p-df0b927e.entry.js} +1 -1
  263. package/dist/lime-elements/{p-d00ec6c2.entry.js → p-f5d60f9c.entry.js} +1 -1
  264. package/dist/lime-elements/{p-d4d4236b.entry.js → p-faceccc0.entry.js} +1 -1
  265. package/dist/types/components/ai-avatar/ai-avatar.d.ts +31 -7
  266. package/dist/types/components/ai-avatar/ai-avatar.types.d.ts +26 -0
  267. package/dist/types/components/icon/icon.d.ts +15 -0
  268. package/dist/types/components.d.ts +59 -18
  269. package/dist/types/translations/da.d.ts +5 -0
  270. package/dist/types/translations/de.d.ts +5 -0
  271. package/dist/types/translations/en.d.ts +5 -0
  272. package/dist/types/translations/fi.d.ts +5 -0
  273. package/dist/types/translations/fr.d.ts +5 -0
  274. package/dist/types/translations/nl.d.ts +5 -0
  275. package/dist/types/translations/no.d.ts +5 -0
  276. package/dist/types/translations/sv.d.ts +5 -0
  277. package/package.json +1 -1
  278. package/dist/lime-elements/p-0e24eb2b.entry.js +0 -1
  279. package/dist/lime-elements/p-438652d6.entry.js +0 -1
  280. package/dist/lime-elements/p-56cc6800.entry.js +0 -1
  281. package/dist/lime-elements/p-58615011.entry.js +0 -1
  282. package/dist/lime-elements/p-8dc61e1b.entry.js +0 -1
  283. package/dist/lime-elements/p-PPDjFxtV.js +0 -1
  284. package/dist/lime-elements/p-eece0f01.entry.js +0 -1
@@ -74,6 +74,11 @@ Du kan fortsætte med at blokere billeder (e-mailen kan se ufuldstændig ud) ell
74
74
  'progress-bar': 'Fremskridtsindikator',
75
75
  'ai-avatar.label': 'AI-avatar',
76
76
  'ai-avatar.thinking': 'tænker',
77
+ 'ai-avatar.mode.active': 'aktiv',
78
+ 'ai-avatar.mode.thinking': 'tænker',
79
+ 'ai-avatar.mode.typing': 'skriver',
80
+ 'ai-avatar.mode.working': 'arbejder',
81
+ 'ai-avatar.mode.waiting': 'venter på input',
77
82
  'table.select-all': 'Vælg alle rækker',
78
83
  'table.select-row': 'Vælg denne række',
79
84
  'code-diff.table-label': 'Kodesammenligning',
@@ -186,6 +191,11 @@ Sie können Bilder weiterhin blockieren (die E-Mail kann unvollständig aussehen
186
191
  'progress-bar': 'Fortschrittsbalken',
187
192
  'ai-avatar.label': 'KI-Avatar',
188
193
  'ai-avatar.thinking': 'denkt',
194
+ 'ai-avatar.mode.active': 'aktiv',
195
+ 'ai-avatar.mode.thinking': 'denkt',
196
+ 'ai-avatar.mode.typing': 'tippt',
197
+ 'ai-avatar.mode.working': 'arbeitet',
198
+ 'ai-avatar.mode.waiting': 'wartet auf Eingabe',
189
199
  'table.select-all': 'Alle Zeilen auswählen',
190
200
  'table.select-row': 'Diese Zeile auswählen',
191
201
  'code-diff.table-label': 'Code-Vergleich',
@@ -298,6 +308,11 @@ You can keep images blocked (the email may look incomplete), or load them if you
298
308
  'progress-bar': 'Progress bar',
299
309
  'ai-avatar.label': 'AI Avatar',
300
310
  'ai-avatar.thinking': 'thinking',
311
+ 'ai-avatar.mode.active': 'active',
312
+ 'ai-avatar.mode.thinking': 'thinking',
313
+ 'ai-avatar.mode.typing': 'typing',
314
+ 'ai-avatar.mode.working': 'working',
315
+ 'ai-avatar.mode.waiting': 'waiting for input',
301
316
  'table.select-all': 'Select all rows',
302
317
  'table.select-row': 'Select this row',
303
318
  'code-diff.table-label': 'Code diff',
@@ -410,6 +425,11 @@ Voit pitää kuvat estettyinä (sähköposti voi näyttää puutteelliselta) tai
410
425
  'progress-bar': 'Edistymispalkki',
411
426
  'ai-avatar.label': 'Tekoälyavatar',
412
427
  'ai-avatar.thinking': 'ajattelee',
428
+ 'ai-avatar.mode.active': 'aktiivinen',
429
+ 'ai-avatar.mode.thinking': 'ajattelee',
430
+ 'ai-avatar.mode.typing': 'kirjoittaa',
431
+ 'ai-avatar.mode.working': 'työskentelee',
432
+ 'ai-avatar.mode.waiting': 'odottaa syötettä',
413
433
  'table.select-all': 'Valitse kaikki rivit',
414
434
  'table.select-row': 'Valitse tämä rivi',
415
435
  'code-diff.table-label': 'Koodin vertailu',
@@ -522,6 +542,11 @@ Vous pouvez laisser les images bloquées (l'e-mail peut sembler incomplet) ou le
522
542
  'progress-bar': 'Barre de progression',
523
543
  'ai-avatar.label': 'Avatar IA',
524
544
  'ai-avatar.thinking': 'en réflexion',
545
+ 'ai-avatar.mode.active': 'actif',
546
+ 'ai-avatar.mode.thinking': 'en réflexion',
547
+ 'ai-avatar.mode.typing': 'en train d’écrire',
548
+ 'ai-avatar.mode.working': 'au travail',
549
+ 'ai-avatar.mode.waiting': 'en attente de saisie',
525
550
  'table.select-all': 'Sélectionner toutes les lignes',
526
551
  'table.select-row': 'Sélectionner cette ligne',
527
552
  'code-diff.table-label': 'Comparaison de code',
@@ -634,6 +659,11 @@ Je kunt afbeeldingen geblokkeerd houden (de e-mail kan er onvolledig uitzien) of
634
659
  'progress-bar': 'Voortgangsbalk',
635
660
  'ai-avatar.label': 'AI-avatar',
636
661
  'ai-avatar.thinking': 'aan het denken',
662
+ 'ai-avatar.mode.active': 'actief',
663
+ 'ai-avatar.mode.thinking': 'aan het denken',
664
+ 'ai-avatar.mode.typing': 'aan het typen',
665
+ 'ai-avatar.mode.working': 'aan het werk',
666
+ 'ai-avatar.mode.waiting': 'wacht op invoer',
637
667
  'table.select-all': 'Alle rijen selecteren',
638
668
  'table.select-row': 'Deze rij selecteren',
639
669
  'code-diff.table-label': 'Codevergelijking',
@@ -746,6 +776,11 @@ Du kan fortsette å blokkere bilder (e-posten kan se ufullstendig ut), eller las
746
776
  'snackbar.dismiss': 'Lukk',
747
777
  'ai-avatar.label': 'KI-avatar',
748
778
  'ai-avatar.thinking': 'tenker',
779
+ 'ai-avatar.mode.active': 'aktiv',
780
+ 'ai-avatar.mode.thinking': 'tenker',
781
+ 'ai-avatar.mode.typing': 'skriver',
782
+ 'ai-avatar.mode.working': 'arbeider',
783
+ 'ai-avatar.mode.waiting': 'venter på inndata',
749
784
  'table.select-all': 'Velg alle rader',
750
785
  'table.select-row': 'Velg denne raden',
751
786
  'code-diff.table-label': 'Kodesammenligning',
@@ -858,6 +893,11 @@ Du kan fortsätta blockera bilder (e-posten kan se ofullständig ut) eller ladda
858
893
  'progress-bar': 'Förloppsindikator',
859
894
  'ai-avatar.label': 'AI-avatar',
860
895
  'ai-avatar.thinking': 'tänker',
896
+ 'ai-avatar.mode.active': 'aktiv',
897
+ 'ai-avatar.mode.thinking': 'tänker',
898
+ 'ai-avatar.mode.typing': 'skriver',
899
+ 'ai-avatar.mode.working': 'arbetar',
900
+ 'ai-avatar.mode.waiting': 'väntar på indata',
861
901
  'table.select-all': 'Markera alla rader',
862
902
  'table.select-row': 'Markera denna rad',
863
903
  'code-diff.table-label': 'Kodjämförelse',
@@ -1,104 +1,316 @@
1
+ @charset "UTF-8";
1
2
  /**
2
- * @prop --ai-avatar-animation-play-state: Set it to `running` to start the animation.
3
- * @prop --ai-avatar-core-blend-mode: Controls the blend mode for the core and orbitals. Defaults to `plus-lighter`.
4
- * @prop --ai-avatar-rings-blend-mode: Controls the blend mode for the SVG circles. Defaults to `screen`.
5
- * @prop --ai-avatar-color-one: Controls the color of the first ring. Defaults to `var(--color-red-default)`.
6
- * @prop --ai-avatar-color-two: Controls the color of the second ring. Defaults to `var(--color-green-default)`.
7
- * @prop --ai-avatar-color-three: Controls the color of the third ring. Defaults to `var(--color-blue-default)`.
8
- * @prop --ai-avatar-color-four: Controls the color of the fourth ring. Defaults to `var(--color-orange-default)`.
9
- */
3
+ * @prop --ai-avatar-primary-color: Dominant color of the avatar the body of the orb and the bulk of most gradients. Highest visual impact.
4
+ * @prop --ai-avatar-accent-color: Secondary color used throughout the outline ring, internal reflections, and as the endpoints of the hover ring.
5
+ * @prop --ai-avatar-orb-edge-color: Deep tint applied at the orb's outer edge, used to suggest depth where the body falls off.
6
+ * @prop --ai-avatar-orb-inner-highlight-color: Color of the bright spot inside the orb. This spot rotates around the orb's interior during `thinking` mode.
7
+ * @prop --ai-avatar-hover-ring-accent-color: Bright stop within the hover ring's gradient — the warm highlight that appears in the middle of the ring on hover.
8
+ * @prop --ai-avatar-hover-glow-color: Color of the soft halo that fades in around the avatar on hover.
9
+ * @prop --ai-avatar-stars-eyes-mouth-color: Color of the avatar's facial features (the two star-shaped eyes and the mouth). For the `minimal` variant, these default to `--contrast-100` when the color is defined (in Lime's apps, which are using Lime Elements). For the `outlined` variant they default to `currentColor`. Otherwise they fall back to white.
10
+ */
10
11
  :host(limel-ai-avatar) {
11
- display: flex;
12
+ display: inline-flex;
12
13
  justify-content: center;
13
- align-self: center;
14
+ align-items: center;
14
15
  position: relative;
15
16
  aspect-ratio: 1;
16
- max-width: 10rem;
17
- max-height: 8rem;
17
+ max-width: 20rem;
18
+ max-height: 20rem;
18
19
  min-width: 1.75rem;
19
20
  min-height: 1.75rem;
20
- border-radius: 0.5rem;
21
+ content-visibility: auto;
22
+ contain-intrinsic-size: auto 5rem;
21
23
  }
22
24
 
23
25
  * {
24
26
  box-sizing: border-box;
25
27
  }
26
28
 
27
- :host(limel-ai-avatar[is-thinking]:not([is-thinking=false])) {
28
- --ai-avatar-animation-play-state: running;
29
- --ai-avatar-orbitals-opacity: 0.6;
30
- --ai-avatar-orbitals-animation-play-state: running;
29
+ svg {
30
+ display: block;
31
+ width: 100%;
32
+ height: 100%;
33
+ overflow: visible;
31
34
  }
32
35
 
33
- .core,
34
- .orbitals {
35
- position: absolute;
36
- inset: 0;
37
- margin: auto;
38
- display: flex;
39
- align-items: center;
40
- justify-content: center;
41
- aspect-ratio: 1;
42
- border-radius: 50%;
36
+ svg.variant-minimal {
37
+ --limel-ai-avatar-stars-eyes-mouth-color: rgb(var(--contrast-100));
38
+ }
39
+
40
+ svg.variant-outlined {
41
+ --limel-ai-avatar-stars-eyes-mouth-color: currentColor;
42
+ }
43
+
44
+ svg.variant-detailed .dark-ball,
45
+ svg.variant-detailed .light-ball {
46
+ opacity: 0.8;
47
+ }
48
+
49
+ .variant-detailed .variant-minimal-body,
50
+ .variant-detailed .variant-solid-body {
51
+ display: none;
52
+ }
53
+
54
+ .variant-minimal .ring-group {
55
+ display: none;
56
+ }
57
+ .variant-minimal .variant-detailed-body,
58
+ .variant-minimal .variant-solid-body {
59
+ display: none;
60
+ }
61
+
62
+ .variant-solid .ring-group,
63
+ .variant-outlined .ring-group {
64
+ display: none;
65
+ }
66
+ .variant-solid .variant-detailed-body,
67
+ .variant-solid .variant-minimal-body,
68
+ .variant-outlined .variant-detailed-body,
69
+ .variant-outlined .variant-minimal-body {
70
+ display: none;
71
+ }
72
+ .variant-solid .outer-ring,
73
+ .variant-outlined .outer-ring {
74
+ fill: none;
75
+ stroke: currentColor;
76
+ stroke-width: 31;
77
+ }
78
+ .variant-solid .typing-ellipsis .circle,
79
+ .variant-outlined .typing-ellipsis .circle {
80
+ fill: currentColor;
81
+ --limel-ai-avatar-typing-dot-flash-color: currentColor;
82
+ }
83
+
84
+ .variant-solid .dark-ball {
85
+ fill: currentColor;
86
+ }
87
+
88
+ .variant-outlined .dark-ball {
89
+ fill: none;
90
+ stroke: currentColor;
91
+ stroke-width: 15;
92
+ }
93
+
94
+ .variant-minimal .glow-minimal {
95
+ opacity: 0;
96
+ transform: scale(0.9);
97
+ }
98
+ .variant-minimal .light-ball {
99
+ opacity: 0;
100
+ }
101
+
102
+ .eye {
103
+ transform-origin: 298px 360px;
104
+ transition: transform 600ms cubic-bezier(0.2, 0.8, 0.2, 1);
105
+ will-change: transform, rotate;
106
+ }
107
+
108
+ .mouth {
109
+ transform-origin: 379px 457px;
110
+ opacity: 0;
111
+ transform: scale(0.2);
112
+ transition: transform 600ms cubic-bezier(0.2, 0.8, 0.2, 1), opacity 300ms ease;
113
+ will-change: transform, opacity;
43
114
  }
44
115
 
45
- .core {
116
+ .eye-left {
117
+ transform: translate(48px, 34px) scale(1.48);
118
+ }
119
+
120
+ .eye-right {
121
+ transform: translate(152px, -74px) scale(0.66);
122
+ }
123
+
124
+ .glow-minimal,
125
+ .light-ball {
126
+ transition: transform 1s ease, opacity 300ms ease;
127
+ will-change: transform, opacity;
128
+ transform-origin: 370px 370px;
129
+ transform-box: view-box;
130
+ }
131
+
132
+ .outer-ring,
133
+ .ring,
134
+ .glow,
135
+ .glow-minimal {
136
+ transform-origin: 370px 370px;
137
+ transform-box: view-box;
138
+ }
139
+
140
+ .outer-ring {
141
+ transform: scale(0.9);
142
+ opacity: 0;
143
+ transition: opacity 600ms ease, transform 700ms cubic-bezier(0.55, 0.3, 0.22, 1.54);
144
+ }
145
+
146
+ .ring,
147
+ .glow {
148
+ scale: 0.95;
149
+ opacity: 0;
150
+ transition: opacity 600ms ease;
151
+ }
152
+
153
+ svg:hover .outer-ring {
154
+ opacity: 0.9;
155
+ transform: scale(1);
156
+ }
157
+ svg:hover .ring,
158
+ svg:hover .glow {
159
+ opacity: 0.5;
160
+ }
161
+
162
+ .mode-active .eye-left,
163
+ .mode-thinking .eye-left,
164
+ .mode-typing .eye-left,
165
+ .mode-waiting .eye-left {
166
+ transform: translate(0) scale(0.96);
167
+ }
168
+ .mode-active .eye-right,
169
+ .mode-thinking .eye-right,
170
+ .mode-typing .eye-right,
171
+ .mode-waiting .eye-right {
172
+ transform: translate(156px, -20px) scale(0.8);
173
+ }
174
+ .mode-active .mouth,
175
+ .mode-thinking .mouth,
176
+ .mode-typing .mouth,
177
+ .mode-waiting .mouth {
178
+ opacity: 1;
179
+ transform: scale(1);
180
+ }
181
+ .mode-active.variant-minimal .light-ball,
182
+ .mode-thinking.variant-minimal .light-ball,
183
+ .mode-typing.variant-minimal .light-ball,
184
+ .mode-waiting.variant-minimal .light-ball {
185
+ opacity: 0.16;
186
+ }
187
+
188
+ .mode-active .eye,
189
+ .mode-thinking .eye,
190
+ .mode-waiting .eye {
191
+ animation: ai-avatar-blink 4.5s ease-in-out infinite;
192
+ }
193
+
194
+ .mode-thinking .eye-left {
195
+ animation: ai-avatar-blink 4.5s ease-in-out infinite, ai-avatar-look-around-left-eye 9s ease-in-out infinite;
196
+ }
197
+ .mode-thinking .eye-right {
198
+ animation: ai-avatar-blink 4.5s ease-in-out infinite, ai-avatar-look-around-right-eye 9s ease-in-out infinite;
199
+ }
200
+ .mode-thinking .mouth {
201
+ animation: ai-avatar-mouth-look-around 9s ease-in-out infinite;
202
+ }
203
+ .mode-thinking .light-ball {
204
+ animation: ai-avatar-light-ball-swirl 3s linear infinite;
205
+ }
206
+ .mode-thinking .glow-minimal {
46
207
  opacity: 0.3;
47
- width: 70%;
48
- animation: breathe 3s ease infinite var(--ai-avatar-animation-play-state, paused);
49
- background-color: rgb(var(--color-glaucous-darker), 0.6);
50
- mix-blend-mode: var(--ai-avatar-core-blend-mode, plus-lighter);
208
+ animation: ai-avatar-breathing 5s ease-in-out infinite;
51
209
  }
52
210
 
53
- .orbitals {
54
- mix-blend-mode: var(--ai-avatar-core-blend-mode, plus-lighter);
55
- width: clamp(0.375rem, 20%, 3.5rem);
56
- animation: rotate 5s linear infinite var(--ai-avatar-orbitals-animation-play-state, paused);
57
- transition: opacity 0.2s ease;
58
- opacity: var(--ai-avatar-orbitals-opacity, 0);
211
+ .mode-waiting .glow,
212
+ .mode-waiting .glow-minimal {
213
+ animation: ai-avatar-breathing 5s ease-in-out infinite;
59
214
  }
60
- .orbitals:after, .orbitals:before {
61
- content: "";
62
- display: block;
63
- position: absolute;
64
- inset: 0;
65
- margin: auto;
66
- width: clamp(0.125rem, 50%, 0.75rem);
67
- aspect-ratio: 1;
68
- border-radius: 50%;
69
- background-color: rgb(var(--color-glaucous-lighter));
215
+ .mode-waiting .glow-minimal {
216
+ opacity: 0.3;
217
+ }
218
+ .mode-waiting .outer-ring {
219
+ animation: ai-avatar-mode-active-ring 2s ease-out infinite;
220
+ }
221
+ .mode-waiting.variant-minimal .outer-ring, .mode-waiting.variant-solid .outer-ring, .mode-waiting.variant-outlined .outer-ring {
222
+ scale: 1.1;
70
223
  }
71
- .orbitals:before {
72
- animation: orbit 1s linear infinite var(--ai-avatar-orbitals-animation-play-state, paused);
73
- opacity: 0.6;
74
- transform-origin: -220% 0;
75
- margin-right: -70%;
224
+
225
+ .mode-active .glow-minimal {
226
+ opacity: 0.3;
227
+ transform: scale(1);
228
+ }
229
+
230
+ .mode-typing .eye-left {
231
+ animation: ai-avatar-typing-left-eye 2.5s ease-in-out infinite;
232
+ }
233
+ .mode-typing .eye-right {
234
+ animation: ai-avatar-typing-right-eye 2.5s ease-in-out infinite;
235
+ }
236
+ .mode-typing .mouth {
237
+ animation: ai-avatar-typing-mouth 2.5s ease-in-out infinite;
238
+ }
239
+ .mode-typing .typing-ellipsis {
240
+ opacity: 1;
241
+ transform: scale(1);
242
+ }
243
+ .mode-typing .typing-ellipsis .circle {
244
+ animation: ai-avatar-typing-dot 1.2s infinite;
76
245
  }
77
- .orbitals:after {
78
- animation: orbit 2s linear infinite var(--ai-avatar-orbitals-animation-play-state, paused);
246
+ .mode-typing .typing-ellipsis .circle:nth-of-type(2) {
247
+ animation-delay: 0.2s;
248
+ }
249
+ .mode-typing .typing-ellipsis .circle:nth-of-type(3) {
250
+ animation-delay: 0.4s;
251
+ }
252
+ .mode-typing.variant-minimal .light-ball {
253
+ animation: ai-avatar-breathing 5s ease-in-out infinite;
254
+ }
255
+
256
+ .mode-working .eye-left {
257
+ animation: ai-avatar-working-left-star 12s steps(50, end) infinite;
258
+ }
259
+ .mode-working .eye-right {
260
+ animation: ai-avatar-working-right-star 4s steps(30, end) infinite reverse;
261
+ }
262
+ .mode-working .light-ball {
263
+ animation: ai-avatar-light-ball-swirl 6s linear infinite;
264
+ }
265
+ .mode-working .outer-ring {
79
266
  opacity: 0.8;
80
- scale: 0.7;
81
- transform-origin: 0% -250%;
82
- margin-bottom: -70%;
267
+ animation: ai-avatar-breathing 5s ease-in-out infinite;
268
+ }
269
+ .mode-working.variant-minimal .outer-ring, .mode-working.variant-solid .outer-ring, .mode-working.variant-outlined .outer-ring {
270
+ scale: 1.1;
271
+ }
272
+ .mode-working.variant-minimal .light-ball {
273
+ opacity: 0.16;
274
+ }
275
+
276
+ .typing-ellipsis {
277
+ opacity: 0;
278
+ transform-origin: 370px 620px;
279
+ transform-box: view-box;
280
+ scale: 2.2;
281
+ transition: opacity 300ms ease, transform 300ms ease;
282
+ }
283
+ .typing-ellipsis .circle {
284
+ fill: var(--ai-avatar-primary-color, rgb(var(--lime-brand-color-ocean-teal, 111, 205, 182)));
83
285
  }
84
286
 
85
- @keyframes orbit {
287
+ @keyframes ai-avatar-typing-dot {
86
288
  0% {
87
- transform: rotateZ(0deg) translate3d(0, 0, 0);
289
+ transform: translateY(0);
88
290
  }
89
- 100% {
90
- transform: rotateZ(360deg) translate3d(0, 0, 0);
291
+ 6.25% {
292
+ transform: translateY(-3px);
293
+ }
294
+ 12.5% {
295
+ transform: translateY(0);
296
+ fill: var(--limel-ai-avatar-typing-dot-flash-color, var(--ai-avatar-accent-color, rgb(var(--lime-brand-color-aqua, 166, 239, 255))));
297
+ }
298
+ 18.75% {
299
+ transform: translateY(3px);
300
+ }
301
+ 25% {
302
+ transform: translateY(0);
91
303
  }
92
304
  }
93
- @keyframes breathe {
94
- 1%, 100% {
95
- transform: scale(1);
305
+ @keyframes ai-avatar-blink {
306
+ 0%, 93%, 99%, 100% {
307
+ rotate: x 0deg;
96
308
  }
97
- 50% {
98
- transform: scale(0.86);
309
+ 96% {
310
+ rotate: x 85deg;
99
311
  }
100
312
  }
101
- @keyframes rotate {
313
+ @keyframes ai-avatar-light-ball-swirl {
102
314
  0% {
103
315
  transform: rotate(0deg);
104
316
  }
@@ -106,80 +318,107 @@
106
318
  transform: rotate(360deg);
107
319
  }
108
320
  }
109
- svg {
110
- position: absolute;
111
- margin: auto;
112
- mix-blend-mode: var(--ai-avatar-rings-blend-mode, screen);
113
- animation-iteration-count: infinite;
114
- animation-play-state: var(--ai-avatar-animation-play-state, paused);
115
- }
116
-
117
- .red {
118
- rotate: 20deg;
119
- color: var(--ai-avatar-color-one, rgb(var(--color-red-default)));
120
- animation-name: rotate, scale-circle-one;
121
- animation-duration: 5s;
122
- }
123
-
124
- .green {
125
- rotate: 36deg;
126
- color: var(--ai-avatar-color-two, rgb(var(--color-green-default)));
127
- animation-name: rotate, scale-circle-two;
128
- animation-duration: 5.5s;
321
+ @keyframes ai-avatar-look-around-left-eye {
322
+ 0%, 15%, 95%, 100% {
323
+ transform: translate(0) scale(0.96);
324
+ }
325
+ 25%, 40% {
326
+ transform: translate(65px, -40px) scale(1.004) rotate(-13deg);
327
+ }
328
+ 55%, 70% {
329
+ transform: translate(-67px, -91px) scale(0.72) rotate(29deg);
330
+ }
129
331
  }
130
-
131
- .blue {
132
- rotate: 100deg;
133
- color: var(--ai-avatar-color-three, rgb(var(--color-blue-default)));
134
- animation-name: rotate, scale-circle-three;
135
- animation-duration: 4.5s;
332
+ @keyframes ai-avatar-look-around-right-eye {
333
+ 0%, 15%, 95%, 100% {
334
+ transform: translate(156px, -20px) scale(0.8);
335
+ }
336
+ 25%, 40% {
337
+ transform: translate(203px, -92px) scale(0.76) rotate(-24deg);
338
+ }
339
+ 55%, 70% {
340
+ transform: translate(80px, -45px) scale(1) rotate(12deg);
341
+ }
136
342
  }
137
-
138
- .orange {
139
- rotate: 165deg;
140
- color: var(--ai-avatar-color-four, rgb(var(--color-orange-default)));
141
- animation-name: rotate, scale-circle-four;
142
- animation-duration: 6.5s;
343
+ @keyframes ai-avatar-mouth-look-around {
344
+ 0%, 15%, 95%, 100% {
345
+ transform: scale(1);
346
+ }
347
+ 25%, 40% {
348
+ transform: translate(75px, -40px) scale(1.004) rotate(-9deg);
349
+ }
350
+ 55%, 70% {
351
+ transform: translate(-99px, -45px) scale(1) rotate(9deg);
352
+ }
143
353
  }
144
-
145
- @keyframes scale-circle-one {
354
+ @keyframes ai-avatar-typing-left-eye {
146
355
  0%, 100% {
147
- transform: scaleX(1) scaleY(0.8);
356
+ transform: translate(0, 80px) scale(0.94);
148
357
  }
149
- 25%, 75% {
150
- transform: scaleX(0.8) scaleY(0.9);
358
+ 25% {
359
+ transform: translate(12px, 80px) scale(0.94) rotate(-4deg);
151
360
  }
152
- 50% {
153
- transform: scaleX(1) scaleY(0.7);
361
+ 75% {
362
+ transform: translate(-12px, 80px) scale(0.94) rotate(4deg);
154
363
  }
155
364
  }
156
- @keyframes scale-circle-two {
365
+ @keyframes ai-avatar-typing-right-eye {
157
366
  0%, 100% {
158
- transform: scaleX(0.8) scaleY(1);
367
+ transform: translate(156px, 60px) scale(0.78);
159
368
  }
160
- 25%, 75% {
161
- transform: scaleX(0.9) scaleY(0.75);
369
+ 25% {
370
+ transform: translate(168px, 60px) scale(0.78) rotate(-5deg);
162
371
  }
163
- 50% {
164
- transform: scaleX(0.72) scaleY(1);
372
+ 75% {
373
+ transform: translate(144px, 60px) scale(0.78) rotate(5deg);
165
374
  }
166
375
  }
167
- @keyframes scale-circle-three {
376
+ @keyframes ai-avatar-typing-mouth {
168
377
  0%, 100% {
169
- transform: scaleX(0.9) scaleY(0.8);
378
+ transform: translate(0, 70px) scale(1);
379
+ }
380
+ 25% {
381
+ transform: translate(6px, 70px) scale(1);
170
382
  }
171
- 50% {
172
- transform: scaleX(0.75) scaleY(0.9);
383
+ 75% {
384
+ transform: translate(-6px, 70px) scale(1);
173
385
  }
174
386
  }
175
- @keyframes scale-circle-four {
176
- 0%, 100% {
177
- transform: scaleX(0.8) scaleY(0.95);
387
+ @keyframes ai-avatar-working-left-star {
388
+ 0% {
389
+ transform: translate(48px, 34px) scale(1.48) rotate(0deg);
178
390
  }
179
- 25%, 75% {
180
- transform: scaleX(0.95) scaleY(0.75);
391
+ 100% {
392
+ transform: translate(48px, 34px) scale(1.48) rotate(360deg);
181
393
  }
182
- 50% {
183
- transform: scaleX(0.75) scaleY(0.95);
394
+ }
395
+ @keyframes ai-avatar-working-right-star {
396
+ 0% {
397
+ transform: translate(152px, -74px) scale(0.66) rotate(0deg);
398
+ }
399
+ 100% {
400
+ transform: translate(152px, -74px) scale(0.66) rotate(360deg);
401
+ }
402
+ }
403
+ @keyframes ai-avatar-mode-active-ring {
404
+ 0% {
405
+ transform: scale(0.9);
406
+ opacity: 0;
407
+ }
408
+ 30% {
409
+ transform: scale(1);
410
+ opacity: 1;
411
+ }
412
+ 100% {
413
+ transform: scale(1);
414
+ opacity: 0;
415
+ }
416
+ }
417
+ @keyframes ai-avatar-breathing {
418
+ 0%, 60%, 100% {
419
+ transform: scale(0.9);
420
+ }
421
+ 25% {
422
+ transform: scale(1);
184
423
  }
185
424
  }