dishui 0.0.106 → 0.0.110

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 (388) hide show
  1. package/dist/.release-verified.json +3 -2
  2. package/dist/components/Accordion/index.js.map +1 -1
  3. package/dist/components/Avatar/index.js.map +1 -1
  4. package/dist/components/Badge/index.js.map +1 -1
  5. package/dist/components/Button/index.js.map +1 -1
  6. package/dist/components/ButtonMenu/index.js.map +1 -1
  7. package/dist/components/Card/Metric2.js.map +1 -1
  8. package/dist/components/Card/Ticket2.js.map +1 -1
  9. package/dist/components/Card/index.js.map +1 -1
  10. package/dist/components/Chart/Chart.js.map +1 -1
  11. package/dist/components/Checkbox/index.js.map +1 -1
  12. package/dist/components/ChoicePicker/index.js.map +1 -1
  13. package/dist/components/Column/index.js.map +1 -1
  14. package/dist/components/ConfirmDialog/index.js.map +1 -1
  15. package/dist/components/DateTimeInput/index.js.map +1 -1
  16. package/dist/components/Demo/index.js.map +1 -1
  17. package/dist/components/Demo/source.js.map +1 -1
  18. package/dist/components/Divider/index.js.map +1 -1
  19. package/dist/components/EmptyState/index.js.map +1 -1
  20. package/dist/components/Field/index.js.map +1 -1
  21. package/dist/components/FileUploader/DropZone.js.map +1 -1
  22. package/dist/components/FileUploader/FileItem.js.map +1 -1
  23. package/dist/components/FileUploader/FileUploader.js.map +1 -1
  24. package/dist/components/FileUploader/UploadQueue.js.map +1 -1
  25. package/dist/components/GroupButton/index.js.map +1 -1
  26. package/dist/components/GroupedTable/index.js.map +1 -1
  27. package/dist/components/Icon/index.js.map +1 -1
  28. package/dist/components/Image/index.js.map +1 -1
  29. package/dist/components/Input/index.js.map +1 -1
  30. package/dist/components/Label/index.js.map +1 -1
  31. package/dist/components/Layout/index.js.map +1 -1
  32. package/dist/components/LayoutSuite/DashboardSuite.js.map +1 -1
  33. package/dist/components/LayoutSuite/index.js.map +1 -1
  34. package/dist/components/List/index.js.map +1 -1
  35. package/dist/components/Markdown/Markdown.js.map +1 -1
  36. package/dist/components/Markdown/codeThemes.js.map +1 -1
  37. package/dist/components/Markdown/markdownComponents.js.map +1 -1
  38. package/dist/components/Markdown/parseCodeBlockMeta.js.map +1 -1
  39. package/dist/components/Markdown/useMarkdownSource.js.map +1 -1
  40. package/dist/components/Markdown/useMarkmapRenderer.js.map +1 -1
  41. package/dist/components/Markdown/useMermaidRenderer.js.map +1 -1
  42. package/dist/components/Modal/focusScope.js.map +1 -1
  43. package/dist/components/Modal/index.js.map +1 -1
  44. package/dist/components/MultipleChoice/index.js.map +1 -1
  45. package/dist/components/NavigationList/index.js.map +1 -1
  46. package/dist/components/Page/Float2.js.map +1 -1
  47. package/dist/components/Page/index.js.map +1 -1
  48. package/dist/components/Page/resize2.js.map +1 -1
  49. package/dist/components/PageHeader/index.js.map +1 -1
  50. package/dist/components/PagePanel/index.js.map +1 -1
  51. package/dist/components/ProtectedRoute/index.js.map +1 -1
  52. package/dist/components/Resizable/ResizeGrip.js.map +1 -1
  53. package/dist/components/Resizable/index.js.map +1 -1
  54. package/dist/components/Resizable/useResize.js.map +1 -1
  55. package/dist/components/Row/index.js.map +1 -1
  56. package/dist/components/Section/index.js.map +1 -1
  57. package/dist/components/Select/index.js.map +1 -1
  58. package/dist/components/SidebarToggleButton/index.js.map +1 -1
  59. package/dist/components/Skeleton/index.js.map +1 -1
  60. package/dist/components/Slider/index.js.map +1 -1
  61. package/dist/components/Switch/index.js.map +1 -1
  62. package/dist/components/Tab/index.js.map +1 -1
  63. package/dist/components/Table/index.js.map +1 -1
  64. package/dist/components/Tabs/index.js.map +1 -1
  65. package/dist/components/Tabs/tabNavigation.js.map +1 -1
  66. package/dist/components/Text/index.js.map +1 -1
  67. package/dist/components/Textarea/index.js.map +1 -1
  68. package/dist/components/Tooltip/index.js.map +1 -1
  69. package/dist/components/Tree/Tree.js.map +1 -1
  70. package/dist/components/ai/AgentChat/index.js.map +1 -1
  71. package/dist/components/ai/AgentRunCard/index.js.map +1 -1
  72. package/dist/components/ai/AgentScreen/index.js.map +1 -1
  73. package/dist/components/ai/ApprovalCard/index.js.map +1 -1
  74. package/dist/components/ai/CodeView/index.js.map +1 -1
  75. package/dist/components/ai/CommandSearch/index.js.map +1 -1
  76. package/dist/components/ai/ContextCards/index.js.map +1 -1
  77. package/dist/components/ai/DiffTable/index.js.map +1 -1
  78. package/dist/components/ai/FilterTable/index.js.map +1 -1
  79. package/dist/components/ai/FineTuneCard/index.js.map +1 -1
  80. package/dist/components/ai/InsightCards/index.js.map +1 -1
  81. package/dist/components/ai/IssueCard/index.js.map +1 -1
  82. package/dist/components/ai/LoadingState/index.js.map +1 -1
  83. package/dist/components/ai/PromptBar/index.js.map +1 -1
  84. package/dist/components/ai/RecommendationCard/index.js.map +1 -1
  85. package/dist/components/ai/RecordsTable/index.js.map +1 -1
  86. package/dist/components/ai/SelectionActions/index.js.map +1 -1
  87. package/dist/components/ai/StateFlow/index.js.map +1 -1
  88. package/dist/components/ai/StreamingText/index.js.map +1 -1
  89. package/dist/components/ai/TaskRows/index.js.map +1 -1
  90. package/dist/components/ai/Thinking/index.js.map +1 -1
  91. package/dist/components/ai/ToolChips/index.js.map +1 -1
  92. package/dist/components/ai/shared.js.map +1 -1
  93. package/dist/components/pro/ArticleContextMenu/index.js.map +1 -1
  94. package/dist/components/pro/ArticleControl/ArticleControl2.js.map +1 -1
  95. package/dist/components/pro/ArticleControl/buildHeadingTree.js.map +1 -1
  96. package/dist/components/pro/ArticleControl/useArticleToc.js.map +1 -1
  97. package/dist/components/pro/Calendar/Calendar.js +165 -160
  98. package/dist/components/pro/Calendar/Calendar.js.map +1 -1
  99. package/dist/components/pro/Calendar/hooks/useCalendarDrag.js.map +1 -1
  100. package/dist/components/pro/Calendar/hooks/useCalendarState.js +31 -31
  101. package/dist/components/pro/Calendar/hooks/useCalendarState.js.map +1 -1
  102. package/dist/components/pro/Calendar/utils.js.map +1 -1
  103. package/dist/components/pro/CodeEditor/editors/CodeEditor.js.map +1 -1
  104. package/dist/components/pro/CodeEditor/editors/MarkdownEditor.js.map +1 -1
  105. package/dist/components/pro/CodeEditor/editors/markdownExtensions.js.map +1 -1
  106. package/dist/components/pro/CodeEditor/extensions/contextMenu.js.map +1 -1
  107. package/dist/components/pro/CodeEditor/extensions/index.js.map +1 -1
  108. package/dist/components/pro/CodeEditor/langs/index.js.map +1 -1
  109. package/dist/components/pro/CodeEditor/langs/javascript.js.map +1 -1
  110. package/dist/components/pro/CodeEditor/langs/python.js.map +1 -1
  111. package/dist/components/pro/CodeEditor/langs/snippets.js.map +1 -1
  112. package/dist/components/pro/CodeEditor/panels/FootnotePanel.js.map +1 -1
  113. package/dist/components/pro/CodeEditor/panels/HistoryPanel.js +65 -59
  114. package/dist/components/pro/CodeEditor/panels/HistoryPanel.js.map +1 -1
  115. package/dist/components/pro/CodeEditor/panels/OutlinePanel.js.map +1 -1
  116. package/dist/components/pro/CodeEditor/panels/TableOfContentsPanel.js.map +1 -1
  117. package/dist/components/pro/CodeEditor/panels/VariablePanel.js.map +1 -1
  118. package/dist/components/pro/CodeEditor/themes.js.map +1 -1
  119. package/dist/components/pro/CodeEditor/utils.js.map +1 -1
  120. package/dist/components/pro/DataTable/DataTable.js.map +1 -1
  121. package/dist/components/pro/DataTable/Filters.js.map +1 -1
  122. package/dist/components/pro/DataTable/PivotPanel.js.map +1 -1
  123. package/dist/components/pro/DataTable/PivotView.js.map +1 -1
  124. package/dist/components/pro/DataTable/components/BulkActions.js.map +1 -1
  125. package/dist/components/pro/DataTable/components/ColumnSelector.js.map +1 -1
  126. package/dist/components/pro/DataTable/components/FilterBar.js.map +1 -1
  127. package/dist/components/pro/DataTable/components/TableBody.js.map +1 -1
  128. package/dist/components/pro/DataTable/components/TableHeader.js.map +1 -1
  129. package/dist/components/pro/DataTable/components/TablePagination.js.map +1 -1
  130. package/dist/components/pro/DataTable/components/TableToolbar.js.map +1 -1
  131. package/dist/components/pro/DataTable/extension.js.map +1 -1
  132. package/dist/components/pro/DataTable/pivotEngine.js.map +1 -1
  133. package/dist/components/pro/DataTable/pivotExtension.js.map +1 -1
  134. package/dist/components/pro/DataTable/rowDetailExtension.js.map +1 -1
  135. package/dist/components/pro/DataTable/tanstack-table.js.map +1 -1
  136. package/dist/components/pro/DataTable/treeDataUtils.js.map +1 -1
  137. package/dist/components/pro/DataTable/useColumnDragReorder.js.map +1 -1
  138. package/dist/components/pro/DataTable/useDataTableModel.js +119 -104
  139. package/dist/components/pro/DataTable/useDataTableModel.js.map +1 -1
  140. package/dist/components/pro/DataTable/utils.js.map +1 -1
  141. package/dist/components/pro/FileExplorer/Breadcrumb.js.map +1 -1
  142. package/dist/components/pro/FileExplorer/CreateDialog.js.map +1 -1
  143. package/dist/components/pro/FileExplorer/FileExplorer.js.map +1 -1
  144. package/dist/components/pro/FileExplorer/FileIcon.js.map +1 -1
  145. package/dist/components/pro/FileExplorer/GridView.js.map +1 -1
  146. package/dist/components/pro/FileExplorer/ListView.js.map +1 -1
  147. package/dist/components/pro/FileExplorer/Toolbar.js.map +1 -1
  148. package/dist/components/pro/Flow/Flow.js.map +1 -1
  149. package/dist/components/pro/Flow/FlowCanvas.js.map +1 -1
  150. package/dist/components/pro/Flow/archify/build.js.map +1 -1
  151. package/dist/components/pro/Flow/archify/convert.js.map +1 -1
  152. package/dist/components/pro/Flow/archify/palette.js.map +1 -1
  153. package/dist/components/pro/Flow/archify/presets.js.map +1 -1
  154. package/dist/components/pro/Flow/archify/spec.js.map +1 -1
  155. package/dist/components/pro/Flow/canvas/AlignmentGuides.js.map +1 -1
  156. package/dist/components/pro/Flow/canvas/GridRenderer.js.map +1 -1
  157. package/dist/components/pro/Flow/canvas/MiniMapRenderer.js.map +1 -1
  158. package/dist/components/pro/Flow/canvas/PixiApp.js.map +1 -1
  159. package/dist/components/pro/Flow/canvas/SelectionOverlay.js.map +1 -1
  160. package/dist/components/pro/Flow/canvas/ViewportContainer.js.map +1 -1
  161. package/dist/components/pro/Flow/constants.js.map +1 -1
  162. package/dist/components/pro/Flow/context/FlowAIContext.js.map +1 -1
  163. package/dist/components/pro/Flow/context/FlowContext.js.map +1 -1
  164. package/dist/components/pro/Flow/context/FlowUIContext.js.map +1 -1
  165. package/dist/components/pro/Flow/edges/EdgeRenderer.js.map +1 -1
  166. package/dist/components/pro/Flow/edges/edgeMarkers.js.map +1 -1
  167. package/dist/components/pro/Flow/edges/edgePaths.js.map +1 -1
  168. package/dist/components/pro/Flow/hooks/useAlignmentGuides.js.map +1 -1
  169. package/dist/components/pro/Flow/hooks/useClipboard.js.map +1 -1
  170. package/dist/components/pro/Flow/hooks/useCompactMode.js.map +1 -1
  171. package/dist/components/pro/Flow/hooks/useDeleteSelection.js.map +1 -1
  172. package/dist/components/pro/Flow/hooks/useDraggablePanel.js.map +1 -1
  173. package/dist/components/pro/Flow/hooks/useEdgeMutations.js.map +1 -1
  174. package/dist/components/pro/Flow/hooks/useFlowImportExport.js.map +1 -1
  175. package/dist/components/pro/Flow/hooks/useKeyboardShortcuts.js.map +1 -1
  176. package/dist/components/pro/Flow/hooks/useLayoutActions.js.map +1 -1
  177. package/dist/components/pro/Flow/hooks/useLineMutations.js.map +1 -1
  178. package/dist/components/pro/Flow/hooks/useMindMap.js.map +1 -1
  179. package/dist/components/pro/Flow/hooks/useNodeMutations.js.map +1 -1
  180. package/dist/components/pro/Flow/hooks/usePdfExport.js.map +1 -1
  181. package/dist/components/pro/Flow/hooks/usePixiApp.js.map +1 -1
  182. package/dist/components/pro/Flow/hooks/useResizablePanel.js.map +1 -1
  183. package/dist/components/pro/Flow/hooks/useSelection.js.map +1 -1
  184. package/dist/components/pro/Flow/hooks/useUndoRedo.js.map +1 -1
  185. package/dist/components/pro/Flow/hooks/useViewport.js.map +1 -1
  186. package/dist/components/pro/Flow/lines/FreehandTool.js.map +1 -1
  187. package/dist/components/pro/Flow/lines/GeometricLineTool.js.map +1 -1
  188. package/dist/components/pro/Flow/lines/LineRenderer.js.map +1 -1
  189. package/dist/components/pro/Flow/lines/lineSmoothing.js.map +1 -1
  190. package/dist/components/pro/Flow/nodes/DataNodeView.js.map +1 -1
  191. package/dist/components/pro/Flow/nodes/MediaContent.js.map +1 -1
  192. package/dist/components/pro/Flow/nodes/MediaOverlay.js.map +1 -1
  193. package/dist/components/pro/Flow/nodes/Model3DView.js.map +1 -1
  194. package/dist/components/pro/Flow/nodes/NodeHandles.js.map +1 -1
  195. package/dist/components/pro/Flow/nodes/NodeRenderer.js.map +1 -1
  196. package/dist/components/pro/Flow/nodes/NodeText.js.map +1 -1
  197. package/dist/components/pro/Flow/nodes/aiClient.js.map +1 -1
  198. package/dist/components/pro/Flow/nodes/animAnchors.js.map +1 -1
  199. package/dist/components/pro/Flow/nodes/chartGeometryBudget.js.map +1 -1
  200. package/dist/components/pro/Flow/nodes/dataUtils.js.map +1 -1
  201. package/dist/components/pro/Flow/nodes/demandRender.js.map +1 -1
  202. package/dist/components/pro/Flow/nodes/nodeUtils.js.map +1 -1
  203. package/dist/components/pro/Flow/nodes/shapes.js.map +1 -1
  204. package/dist/components/pro/Flow/nodes/svgIconTexture.js.map +1 -1
  205. package/dist/components/pro/Flow/nodes/svgIcons.js.map +1 -1
  206. package/dist/components/pro/Flow/panels/AIPanel.js.map +1 -1
  207. package/dist/components/pro/Flow/panels/Breadcrumb.js.map +1 -1
  208. package/dist/components/pro/Flow/panels/ContextMenu.js.map +1 -1
  209. package/dist/components/pro/Flow/panels/DataInspectorSection.js.map +1 -1
  210. package/dist/components/pro/Flow/panels/ExpandableTextarea.js.map +1 -1
  211. package/dist/components/pro/Flow/panels/FlowPanelGroup.js.map +1 -1
  212. package/dist/components/pro/Flow/panels/FlowToolbar.js.map +1 -1
  213. package/dist/components/pro/Flow/panels/InspectorPanel.js.map +1 -1
  214. package/dist/components/pro/Flow/panels/OutlinePanel.js.map +1 -1
  215. package/dist/components/pro/Flow/panels/PresentationMode.js.map +1 -1
  216. package/dist/components/pro/Flow/panels/ProjectTitle.js.map +1 -1
  217. package/dist/components/pro/Flow/panels/ShapePalette.js.map +1 -1
  218. package/dist/components/pro/Flow/panels/toolbarIcons.js.map +1 -1
  219. package/dist/components/pro/Flow/types.js.map +1 -1
  220. package/dist/components/pro/Flow/utils/dashedLine.js.map +1 -1
  221. package/dist/components/pro/Flow/utils/gradient.js.map +1 -1
  222. package/dist/components/pro/Flow/utils/pdfExport.js.map +1 -1
  223. package/dist/components/pro/Flow/utils/themeColor.js.map +1 -1
  224. package/dist/components/pro/Gantt/Gantt.js.map +1 -1
  225. package/dist/components/pro/Gantt/hooks/useGanttDrag.js.map +1 -1
  226. package/dist/components/pro/Gantt/hooks/useGanttState.js +79 -71
  227. package/dist/components/pro/Gantt/hooks/useGanttState.js.map +1 -1
  228. package/dist/components/pro/Gantt/utils.js.map +1 -1
  229. package/dist/components/pro/Kanban/Kanban.js.map +1 -1
  230. package/dist/components/pro/Kanban/Swimlanes.js.map +1 -1
  231. package/dist/components/pro/Kanban/useKanbanDrag.js.map +1 -1
  232. package/dist/components/pro/Kanban/utils.js.map +1 -1
  233. package/dist/components/pro/RichTextEditor/AIRewrite.d.ts +1 -0
  234. package/dist/components/pro/RichTextEditor/AIRewrite.js +109 -88
  235. package/dist/components/pro/RichTextEditor/AIRewrite.js.map +1 -1
  236. package/dist/components/pro/RichTextEditor/BlockHandle.js.map +1 -1
  237. package/dist/components/pro/RichTextEditor/BubbleToolbar.js.map +1 -1
  238. package/dist/components/pro/RichTextEditor/CommentDialog.js.map +1 -1
  239. package/dist/components/pro/RichTextEditor/CommentPanel.js.map +1 -1
  240. package/dist/components/pro/RichTextEditor/CommentPopover.js.map +1 -1
  241. package/dist/components/pro/RichTextEditor/ContextMenu.js.map +1 -1
  242. package/dist/components/pro/RichTextEditor/RichTextEditor.js +133 -132
  243. package/dist/components/pro/RichTextEditor/RichTextEditor.js.map +1 -1
  244. package/dist/components/pro/RichTextEditor/SlashMenu.js.map +1 -1
  245. package/dist/components/pro/RichTextEditor/Toolbar/ColorPicker.js.map +1 -1
  246. package/dist/components/pro/RichTextEditor/Toolbar/FloatingDialogMenu.js.map +1 -1
  247. package/dist/components/pro/RichTextEditor/Toolbar/MarkdownTemplates.js.map +1 -1
  248. package/dist/components/pro/RichTextEditor/Toolbar/SelectDropdown.js.map +1 -1
  249. package/dist/components/pro/RichTextEditor/Toolbar/TableOpsMenu.js.map +1 -1
  250. package/dist/components/pro/RichTextEditor/Toolbar/Toolbar.js.map +1 -1
  251. package/dist/components/pro/RichTextEditor/Toolbar/ToolbarButton.js.map +1 -1
  252. package/dist/components/pro/RichTextEditor/Toolbar/useAnchoredDropdown.js.map +1 -1
  253. package/dist/components/pro/RichTextEditor/extensions/CodeBlockView.js.map +1 -1
  254. package/dist/components/pro/RichTextEditor/extensions/CommentMark.js.map +1 -1
  255. package/dist/components/pro/RichTextEditor/extensions/FloatingDialog.js.map +1 -1
  256. package/dist/components/pro/RichTextEditor/extensions/FontSize.js.map +1 -1
  257. package/dist/components/pro/RichTextEditor/extensions/MarkdownBlock.js.map +1 -1
  258. package/dist/components/pro/RichTextEditor/extensions/ResizableImage.js.map +1 -1
  259. package/dist/components/pro/RichTextEditor/extensions/legacyMermaid.js.map +1 -1
  260. package/dist/components/pro/RichTextEditor/types.d.ts +2 -0
  261. package/dist/components/pro/RichTextEditor/types.js.map +1 -1
  262. package/dist/components/pro/Sprite/Molly/animations.d.ts +6 -0
  263. package/dist/components/pro/Sprite/Molly/animations.js +52 -0
  264. package/dist/components/pro/Sprite/Molly/animations.js.map +1 -0
  265. package/dist/components/pro/Sprite/Molly/events.d.ts +2 -0
  266. package/dist/components/pro/Sprite/Molly/events.js +46 -0
  267. package/dist/components/pro/Sprite/Molly/events.js.map +1 -0
  268. package/dist/components/pro/Sprite/Molly/index.d.ts +1 -0
  269. package/dist/components/pro/Sprite/Molly/index.js +12 -0
  270. package/dist/components/pro/Sprite/Molly/index.js.map +1 -0
  271. package/dist/components/pro/Sprite/Molly/legFlexion.d.ts +3 -0
  272. package/dist/components/pro/Sprite/Molly/legFlexion.js +48 -0
  273. package/dist/components/pro/Sprite/Molly/legFlexion.js.map +1 -0
  274. package/dist/components/pro/Sprite/Molly/locomotion.d.ts +4 -0
  275. package/dist/components/pro/Sprite/Molly/locomotion.js +51 -0
  276. package/dist/components/pro/Sprite/Molly/locomotion.js.map +1 -0
  277. package/dist/components/pro/Sprite/Molly/model.d.ts +23 -0
  278. package/dist/components/pro/Sprite/Molly/model.js +614 -0
  279. package/dist/components/pro/Sprite/Molly/model.js.map +1 -0
  280. package/dist/components/pro/Sprite/Molly/rig.d.ts +25 -0
  281. package/dist/components/pro/Sprite/Molly/rig.js +102 -0
  282. package/dist/components/pro/Sprite/Molly/rig.js.map +1 -0
  283. package/dist/components/pro/Sprite/Ruby/animations.d.ts +6 -0
  284. package/dist/components/pro/Sprite/Ruby/animations.js +58 -0
  285. package/dist/components/pro/Sprite/Ruby/animations.js.map +1 -0
  286. package/dist/components/pro/Sprite/Ruby/events.d.ts +2 -0
  287. package/dist/components/pro/Sprite/Ruby/events.js +46 -0
  288. package/dist/components/pro/Sprite/Ruby/events.js.map +1 -0
  289. package/dist/components/pro/Sprite/Ruby/index.d.ts +1 -0
  290. package/dist/components/pro/Sprite/Ruby/index.js +12 -0
  291. package/dist/components/pro/Sprite/Ruby/index.js.map +1 -0
  292. package/dist/components/pro/Sprite/Ruby/locomotion.d.ts +4 -0
  293. package/dist/components/pro/Sprite/Ruby/locomotion.js +41 -0
  294. package/dist/components/pro/Sprite/Ruby/locomotion.js.map +1 -0
  295. package/dist/components/pro/Sprite/Ruby/model.d.ts +23 -0
  296. package/dist/components/pro/Sprite/Ruby/model.js +605 -0
  297. package/dist/components/pro/Sprite/Ruby/model.js.map +1 -0
  298. package/dist/components/pro/Sprite/Ruby/rig.d.ts +26 -0
  299. package/dist/components/pro/Sprite/Ruby/rig.js +112 -0
  300. package/dist/components/pro/Sprite/Ruby/rig.js.map +1 -0
  301. package/dist/components/pro/Sprite/Sprite.d.ts +23 -0
  302. package/dist/components/pro/Sprite/Sprite2.js +224 -0
  303. package/dist/components/pro/Sprite/Sprite2.js.map +1 -0
  304. package/dist/components/pro/Sprite/actions.d.ts +3 -0
  305. package/dist/components/pro/Sprite/actions.js +16 -0
  306. package/dist/components/pro/Sprite/actions.js.map +1 -0
  307. package/dist/components/pro/Sprite/createSpriteScene.d.ts +4 -0
  308. package/dist/components/pro/Sprite/createSpriteScene.js +14 -0
  309. package/dist/components/pro/Sprite/createSpriteScene.js.map +1 -0
  310. package/dist/components/pro/Sprite/index.d.ts +4 -0
  311. package/dist/components/pro/Sprite/shared/animation.d.ts +33 -0
  312. package/dist/components/pro/Sprite/shared/animation.js +39 -0
  313. package/dist/components/pro/Sprite/shared/animation.js.map +1 -0
  314. package/dist/components/pro/Sprite/shared/createSpriteStage.d.ts +14 -0
  315. package/dist/components/pro/Sprite/shared/createSpriteStage.js +127 -0
  316. package/dist/components/pro/Sprite/shared/createSpriteStage.js.map +1 -0
  317. package/dist/components/pro/Sprite/shared/events.d.ts +5 -0
  318. package/dist/components/pro/Sprite/shared/events.js +21 -0
  319. package/dist/components/pro/Sprite/shared/events.js.map +1 -0
  320. package/dist/components/pro/Sprite/shared/face.d.ts +15 -0
  321. package/dist/components/pro/Sprite/shared/face.js +33 -0
  322. package/dist/components/pro/Sprite/shared/face.js.map +1 -0
  323. package/dist/components/pro/Sprite/shared/faceSurface.d.ts +6 -0
  324. package/dist/components/pro/Sprite/shared/faceSurface.js +66 -0
  325. package/dist/components/pro/Sprite/shared/faceSurface.js.map +1 -0
  326. package/dist/components/pro/Sprite/shared/gait.d.ts +5 -0
  327. package/dist/components/pro/Sprite/shared/gait.js +19 -0
  328. package/dist/components/pro/Sprite/shared/gait.js.map +1 -0
  329. package/dist/components/pro/Sprite/shared/geometry.d.ts +8 -0
  330. package/dist/components/pro/Sprite/shared/geometry.js +59 -0
  331. package/dist/components/pro/Sprite/shared/geometry.js.map +1 -0
  332. package/dist/components/pro/Sprite/shared/magicEffect.d.ts +27 -0
  333. package/dist/components/pro/Sprite/shared/magicEffect.js +61 -0
  334. package/dist/components/pro/Sprite/shared/magicEffect.js.map +1 -0
  335. package/dist/components/pro/Sprite/shared/playback.d.ts +8 -0
  336. package/dist/components/pro/Sprite/shared/playback.js +74 -0
  337. package/dist/components/pro/Sprite/shared/playback.js.map +1 -0
  338. package/dist/components/pro/Sprite/shared/rig.d.ts +6 -0
  339. package/dist/components/pro/Sprite/shared/rig.js +48 -0
  340. package/dist/components/pro/Sprite/shared/rig.js.map +1 -0
  341. package/dist/components/pro/Sprite/shared/scene.d.ts +9 -0
  342. package/dist/components/pro/Sprite/shared/scene.js +21 -0
  343. package/dist/components/pro/Sprite/shared/scene.js.map +1 -0
  344. package/dist/components/pro/Sprite/shared/sculptor.d.ts +14 -0
  345. package/dist/components/pro/Sprite/shared/sculptor.js +78 -0
  346. package/dist/components/pro/Sprite/shared/sculptor.js.map +1 -0
  347. package/dist/components/pro/Sprite/shared/speechBubble.d.ts +15 -0
  348. package/dist/components/pro/Sprite/shared/speechBubble.js +129 -0
  349. package/dist/components/pro/Sprite/shared/speechBubble.js.map +1 -0
  350. package/dist/components/pro/Sprite/types.d.ts +40 -0
  351. package/dist/contexts/AppContext.js.map +1 -1
  352. package/dist/contexts/authentication.js.map +1 -1
  353. package/dist/data-table.js +3 -3
  354. package/dist/data-table.js.map +1 -1
  355. package/dist/dishui.css +1 -1
  356. package/dist/hooks/useClickOutside.js.map +1 -1
  357. package/dist/hooks/useContainerElement.js.map +1 -1
  358. package/dist/hooks/useControllableState.js.map +1 -1
  359. package/dist/hooks/useCopyToClipboard.js.map +1 -1
  360. package/dist/hooks/useDebounce.js.map +1 -1
  361. package/dist/hooks/useDraggable.js.map +1 -1
  362. package/dist/hooks/useTableColumns.js.map +1 -1
  363. package/dist/hooks/useTableData.js.map +1 -1
  364. package/dist/index-nostyled.d.ts +2 -0
  365. package/dist/index.d.ts +2 -0
  366. package/dist/index.js +116 -115
  367. package/dist/layouts/MainLayout.js.map +1 -1
  368. package/dist/layouts/Navbar.js.map +1 -1
  369. package/dist/layouts/Sidebar.js.map +1 -1
  370. package/dist/layouts/headbar/Headbar.js.map +1 -1
  371. package/dist/layouts/headbar/HeadbarLangSwitcher.js.map +1 -1
  372. package/dist/layouts/headbar/HeadbarSearch.js.map +1 -1
  373. package/dist/layouts/headbar/HeadbarThemeSwitcher.js.map +1 -1
  374. package/dist/layouts/headbar/HeadbarTitle.js.map +1 -1
  375. package/dist/sprite.js +2 -0
  376. package/dist/styles/themeStyles.js.map +1 -1
  377. package/dist/utils/cn.js.map +1 -1
  378. package/dist/utils/flexLayout.js.map +1 -1
  379. package/dist/utils/i18n.js.map +1 -1
  380. package/dist/utils/menu.js.map +1 -1
  381. package/dist/utils/rehype-code-meta.js.map +1 -1
  382. package/dist/utils/remark-code-meta.js.map +1 -1
  383. package/dist/utils/routerBuilder.js.map +1 -1
  384. package/dist/utils/safeStorage.js.map +1 -1
  385. package/dist/utils/selection.js +29 -20
  386. package/dist/utils/selection.js.map +1 -1
  387. package/dist/utils/themes.js.map +1 -1
  388. package/package.json +15 -11
@@ -0,0 +1,102 @@
1
+ import { bindFace as e } from "../shared/face.js";
2
+ import { bindPart as t, createGroundFeet as n, createRigDisposer as r } from "../shared/rig.js";
3
+ import { createMollyModel as i } from "./model.js";
4
+ import { createMollyLegFlexion as a } from "./legFlexion.js";
5
+ import * as o from "three";
6
+ //#region src/components/pro/Sprite/Molly/rig.ts
7
+ function s() {
8
+ let s = new o.Group();
9
+ s.name = "sprite-molly";
10
+ let c = i(), { body: l, head: u, front: d, back: f, tail: p, tailMesh: m, tailRest: h, tailLifted: g, ears: _, eyes: v, lids: y, brows: b, mouth: x, lip: S, opening: C, tongue: w } = c;
11
+ t(s, l, "body-rig", [
12
+ 0,
13
+ 0,
14
+ 0
15
+ ]);
16
+ for (let e = 0; e < 2; e++) {
17
+ let n = e ? 1 : -1;
18
+ t(l, f[e], `hind-leg-${n}`, [
19
+ n * .34,
20
+ .47,
21
+ -.12
22
+ ], 1 + e * 2), t(l, d[e], `fore-leg-${n}`, [
23
+ n * .285,
24
+ 1.03,
25
+ .115
26
+ ], 2 + e * 2);
27
+ }
28
+ t(l, p, "tail", [
29
+ 0,
30
+ .48,
31
+ -.3
32
+ ], 5), t(l, u, "head", [
33
+ 0,
34
+ 1.8,
35
+ .06
36
+ ], 6);
37
+ for (let e = 0; e < 2; e++) {
38
+ let n = e ? 1 : -1;
39
+ t(u, _[e], `ear-${n}`, [
40
+ n * .48,
41
+ .34,
42
+ -.05
43
+ ], 1 + e), _[e].rotation.z = n * -.12;
44
+ }
45
+ for (let e = 0; e < 2; e++) {
46
+ let n = e ? 1 : -1;
47
+ t(u, v[e], `eye-${n}`, [
48
+ n * .285,
49
+ .005,
50
+ .473
51
+ ], 19 + e * 4), v[e].rotation.y = n * .28, t(u, y[e], `eyelid-${n}`, [
52
+ n * .285,
53
+ .005,
54
+ .536
55
+ ], 20 + e * 4), y[e].rotation.y = n * .28, y[e].scale.y = .6, y[e].visible = !1, t(u, b[e], `brow-${n}`, [
56
+ n * .28,
57
+ .235,
58
+ .448
59
+ ], 21 + e * 4);
60
+ }
61
+ t(u, x, "mouth", [
62
+ 0,
63
+ -.3,
64
+ .577
65
+ ], 27), t(u, S, "lip", [
66
+ 0,
67
+ -.3,
68
+ .577
69
+ ], 28), C.scale.y = .00132, w.scale.y = .022 * .02, w.position.y = -.036 * .02, x.position.y = -.3 - .018 * .02;
70
+ let T = m.geometry.getAttribute("position"), E = -1;
71
+ return {
72
+ group: s,
73
+ body: l,
74
+ head: u,
75
+ front: d,
76
+ back: f,
77
+ tail: p,
78
+ ears: _,
79
+ eyes: v,
80
+ lids: y,
81
+ brows: b,
82
+ mouth: x,
83
+ lip: S,
84
+ opening: C,
85
+ tongue: w,
86
+ face: e(u, c.skin, c.patches),
87
+ shapeTail: (e) => {
88
+ if (e !== E) {
89
+ E = e;
90
+ for (let t = 0; t < T.count; t++) T.setXYZ(t, o.MathUtils.lerp(h[t * 3], g[t * 3], e), o.MathUtils.lerp(h[t * 3 + 1], g[t * 3 + 1], e), o.MathUtils.lerp(h[t * 3 + 2], g[t * 3 + 2], e));
91
+ T.needsUpdate = !0, m.geometry.computeVertexNormals(), m.geometry.computeBoundingSphere();
92
+ }
93
+ },
94
+ groundFeet: n(l, d, f),
95
+ flexLeg: a(d, f),
96
+ dispose: r(s, c.dispose)
97
+ };
98
+ }
99
+ //#endregion
100
+ export { s as createMollyRig };
101
+
102
+ //# sourceMappingURL=rig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rig.js","names":["THREE","createMollyRig","group","model","createMollyModel","body","i","side","bindPart","back","front","tail","head","ears","eyes","lids","brows","mouth","lip","positions","tailMesh","previous","bindFace","strength","tailRest","tailLifted","createGroundFeet","createMollyLegFlexion","createRigDisposer"],"sources":["../../../../../src/components/pro/Sprite/Molly/rig.ts"],"sourcesContent":["import * as THREE from 'three';\nimport { createMollyModel } from './model';\nimport { createMollyLegFlexion } from './legFlexion';\nimport { bindFace } from '../shared/face';\nimport { bindPart, createGroundFeet, createRigDisposer } from '../shared/rig';\n\nexport function createMollyRig() {\n const group = new THREE.Group();\n group.name = 'sprite-molly';\n const model = createMollyModel();\n const { body, head, front, back, tail, tailMesh, tailRest, tailLifted, ears, eyes, lids, brows, mouth, lip, opening, tongue } = model;\n bindPart(group, body, 'body-rig', [0, 0, 0]);\n\n // Indices preserve the original interleaving of joints and locally modeled meshes.\n for (let i = 0; i < 2; i++) {\n const side = i ? 1 : -1;\n bindPart(body, back[i], `hind-leg-${side}`, [side * 0.34, 0.47, -0.12], 1 + i * 2);\n bindPart(body, front[i], `fore-leg-${side}`, [side * 0.285, 1.03, 0.115], 2 + i * 2);\n }\n bindPart(body, tail, 'tail', [0, 0.48, -0.30], 5);\n bindPart(body, head, 'head', [0, 1.80, 0.06], 6);\n for (let i = 0; i < 2; i++) {\n const side = i ? 1 : -1;\n bindPart(head, ears[i], `ear-${side}`, [side * 0.48, 0.34, -0.05], 1 + i);\n ears[i].rotation.z = side * -0.12;\n }\n for (let i = 0; i < 2; i++) {\n const side = i ? 1 : -1;\n bindPart(head, eyes[i], `eye-${side}`, [side * 0.285, 0.005, 0.473], 19 + i * 4);\n eyes[i].rotation.y = side * 0.28;\n bindPart(head, lids[i], `eyelid-${side}`, [side * 0.285, 0.005, 0.536], 20 + i * 4);\n lids[i].rotation.y = side * 0.28;\n lids[i].scale.y = 0.6;\n lids[i].visible = false;\n bindPart(head, brows[i], `brow-${side}`, [side * 0.28, 0.235, 0.448], 21 + i * 4);\n }\n bindPart(head, mouth, 'mouth', [0, -0.30, 0.577], 27);\n bindPart(head, lip, 'lip', [0, -0.30, 0.577], 28);\n opening.scale.y = 0.066 * 0.02;\n tongue.scale.y = 0.022 * 0.02;\n tongue.position.y = -0.036 * 0.02;\n mouth.position.y = -0.30 - 0.018 * 0.02;\n\n const positions = tailMesh.geometry.getAttribute('position');\n let previous = -1;\n const shapeTail = (strength: number) => {\n if (strength === previous) return;\n previous = strength;\n for (let i = 0; i < positions.count; i++) positions.setXYZ(i,\n THREE.MathUtils.lerp(tailRest[i * 3], tailLifted[i * 3], strength),\n THREE.MathUtils.lerp(tailRest[i * 3 + 1], tailLifted[i * 3 + 1], strength),\n THREE.MathUtils.lerp(tailRest[i * 3 + 2], tailLifted[i * 3 + 2], strength));\n positions.needsUpdate = true;\n tailMesh.geometry.computeVertexNormals();\n tailMesh.geometry.computeBoundingSphere();\n };\n\n const face = bindFace(head, model.skin, model.patches);\n const groundFeet = createGroundFeet(body, front, back);\n const flexLeg = createMollyLegFlexion(front, back);\n const dispose = createRigDisposer(group, model.dispose);\n return {\n group, body, head, front, back, tail, ears, eyes, lids, brows,\n mouth, lip, opening, tongue, face, shapeTail, groundFeet, flexLeg, dispose,\n };\n}\n\nexport type MollyRig = ReturnType<typeof createMollyRig>;\n"],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { SpritePose } from '../types';
2
+ import type { RubyRig } from './rig';
3
+ export declare function createRubyAnimations(rig: RubyRig): {
4
+ pose: (input: SpritePose) => void;
5
+ dispose: () => void;
6
+ };
@@ -0,0 +1,58 @@
1
+ import { createRubyLocomotion as e } from "./locomotion.js";
2
+ import { animateFace as t, samplePose as n } from "../shared/animation.js";
3
+ import { createMagicEffect as r } from "../shared/magicEffect.js";
4
+ //#region src/components/pro/Sprite/Ruby/animations.ts
5
+ function i(i) {
6
+ let { body: a, head: o, front: s, back: c, tail: l, wings: u, tips: d } = i, f = e(i), p = r({
7
+ name: "rainbow-magic",
8
+ palette: [
9
+ 16745138,
10
+ 16758382,
11
+ 16770949,
12
+ 8972724,
13
+ 8965119,
14
+ 13082111
15
+ ],
16
+ core: {
17
+ shape: "gem",
18
+ growth: .11,
19
+ rotate: (e, t) => {
20
+ e.set(0, t * .8, t * .5);
21
+ }
22
+ },
23
+ haloColor: 14862335,
24
+ sparkSpeed: 1.6,
25
+ orbit: {
26
+ count: 6,
27
+ tube: .018,
28
+ arc: Math.PI * 1.45,
29
+ radius: .19,
30
+ spacing: .028,
31
+ opacity: .72,
32
+ rotate: (e, t, n) => {
33
+ e.set(.35, Math.sin(t * .8) * .35, t * (n % 2 ? -.8 : .8) + n * .22);
34
+ }
35
+ }
36
+ });
37
+ return i.horn.add(p.group), p.group.position.set(0, .54, 0), {
38
+ pose: (e) => {
39
+ let r = n(e), { t: m, happy: h, talk: g, comfort: _, curious: v, greet: y, bye: b, rise: x, sad: S, wave: C, phase: w, magic: T, beat: E } = r;
40
+ a.scale.set(1, 1, 1), a.position.y = h * (.045 + .045 * Math.sin(m * 10)) + x * (.4 * Math.sin(w * Math.PI)) - T * .07, a.rotation.set(-x * .045 + y * .06 + T * .16, -b * .65, h * .025 * E + _ * .025 - y * .025 + b * .045), a.position.z = T * .1, o.rotation.set(_ * .09 + g * .022 * Math.sin(m * 8) + y * .2 * Math.sin(w * Math.PI) + S * .24 + T * .12, v * .18 + b * .28, v * -.13 + _ * .12 + h * .035 * E - b * .1), o.position.y = 1.9 + h * .025 * E - S * .045 - T * .08, o.position.z = .25 + T * .16;
41
+ for (let e = 0; e < 2; e++) {
42
+ let t = e ? 1 : -1;
43
+ s[e].position.y = 1.05, s[e].rotation.set(-h * (.35 + t * .25 * E) - g * (.1 + .1 * Math.sin(m * 6 + e)) - v * (e ? .02 : .24) + x * .45 + T * (e ? -.65 : -.3) - (e ? y * 1.05 : b * .3), 0, t * (h * .18 + _ * .1 + x * .08) + (e ? y * .16 : -b * (1.72 + .28 * Math.sin(m * 14)))), c[e].position.y = .96, c[e].rotation.set(h * (t * .2 * E - .12) + x * .3 + T * (e ? .2 : .38), 0, t * (h * .045 + x * .05));
44
+ }
45
+ t(i, r, -.325, .08), l.rotation.set(0, h * .25 * E + v * .12 + C * .16 * Math.sin(m * 7), h * .2 * Math.sin(m * 10) + _ * .08 + S * .22);
46
+ for (let e = 0; e < u.length; e++) {
47
+ let t = e ? 1 : -1;
48
+ u[e].rotation.set(-.08 + h * .22 * Math.cos(m * 10) + x * .27 * Math.cos(m * 16), t * -.12, t * (.1 + h * (.18 + .24 * Math.sin(m * 10)) + x * (.25 + .38 * Math.sin(m * 16)) + C * .1 * Math.sin(m * 8) - _ * .08 - S * .22 - T * .24)), d[e].rotation.z = t * (h * .24 * Math.sin(m * 10 - .65) + v * .08 + x * .3 * Math.sin(m * 16 - .6));
49
+ }
50
+ T > 0 && i.groundFeet(), f(r), p.update(m, w, T), i.face.update();
51
+ },
52
+ dispose: p.dispose
53
+ };
54
+ }
55
+ //#endregion
56
+ export { i as createRubyAnimations };
57
+
58
+ //# sourceMappingURL=animations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"animations.js","names":["createRubyAnimations","rig","locomotion","createRubyLocomotion","magicEffect","createMagicEffect","i","state","samplePose","input","lunge","body","happy","t","rise","phase","greet","bye","beat","comfort","head","talk","sad","curious","side","front","back","animateFace","tail","wave","wings"],"sources":["../../../../../src/components/pro/Sprite/Ruby/animations.ts"],"sourcesContent":["import type { SpritePose } from '../types';\nimport type { RubyRig } from './rig';\nimport { createRubyLocomotion } from './locomotion';\nimport { animateFace, samplePose } from '../shared/animation';\nimport { createMagicEffect } from '../shared/magicEffect';\n\nexport function createRubyAnimations(rig: RubyRig) {\n const { body, head, front, back, tail, wings, tips } = rig;\n const locomotion = createRubyLocomotion(rig);\n const magicEffect = createMagicEffect({\n name: 'rainbow-magic',\n palette: [0xff82b2, 0xffb66e, 0xffe785, 0x88e9b4, 0x88cbff, 0xc79dff],\n core: { shape: 'gem', growth: 0.11, rotate: (rotation, t) => { rotation.set(0, t * 0.8, t * 0.5); } },\n haloColor: 0xe2c7ff, sparkSpeed: 1.6,\n orbit: {\n count: 6, tube: 0.018, arc: Math.PI * 1.45, radius: 0.19, spacing: 0.028, opacity: 0.72,\n rotate: (rotation, t, i) => { rotation.set(0.35, Math.sin(t * 0.8) * 0.35, t * (i % 2 ? -0.8 : 0.8) + i * 0.22); },\n },\n });\n rig.horn.add(magicEffect.group);\n magicEffect.group.position.set(0, 0.54, 0);\n\n const pose = (input: SpritePose) => {\n const state = samplePose(input);\n const { t, happy, talk, comfort, curious, greet, bye, rise, sad, wave, phase, magic: lunge, beat } = state;\n body.scale.set(1, 1, 1);\n body.position.y = happy * (0.045 + 0.045 * Math.sin(t * 10)) + rise * (0.40 * Math.sin(phase * Math.PI)) - lunge * 0.07;\n body.rotation.set(-rise * 0.045 + greet * 0.06 + lunge * 0.16, -bye * 0.65,\n happy * 0.025 * beat + comfort * 0.025 - greet * 0.025 + bye * 0.045);\n body.position.z = lunge * 0.10;\n head.rotation.set(comfort * 0.09 + talk * 0.022 * Math.sin(t * 8) + greet * 0.20 * Math.sin(phase * Math.PI) + sad * 0.24 + lunge * 0.12,\n curious * 0.18 + bye * 0.28,\n curious * -0.13 + comfort * 0.12 + happy * 0.035 * beat - bye * 0.10);\n head.position.y = 1.90 + happy * 0.025 * beat - sad * 0.045 - lunge * 0.08;\n head.position.z = 0.25 + lunge * 0.16;\n for (let i = 0; i < 2; i++) {\n const side = i ? 1 : -1;\n front[i].position.y = 1.05;\n // Hello reaches forward; goodbye raises the opposite hoof sideways.\n front[i].rotation.set(-happy * (0.35 + side * 0.25 * beat) - talk * (0.1 + 0.10 * Math.sin(t * 6 + i))\n - curious * (i ? 0.02 : 0.24) + rise * 0.45\n + lunge * (i ? -0.65 : -0.30) - (i ? greet * 1.05 : bye * 0.30),\n 0, side * (happy * 0.18 + comfort * 0.1 + rise * 0.08)\n + (i ? greet * 0.16 : -bye * (1.72 + 0.28 * Math.sin(t * 14))));\n back[i].position.y = 0.96;\n back[i].rotation.set(happy * (side * 0.2 * beat - 0.12) + rise * 0.30 + lunge * (i ? 0.20 : 0.38),\n 0, side * (happy * 0.045 + rise * 0.05));\n }\n animateFace(rig, state, -0.325, 0.08);\n tail.rotation.set(0, happy * 0.25 * beat + curious * 0.12 + wave * 0.16 * Math.sin(t * 7),\n happy * 0.2 * Math.sin(t * 10) + comfort * 0.08 + sad * 0.22);\n for (let i = 0; i < wings.length; i++) {\n const side = i ? 1 : -1;\n wings[i].rotation.set(-0.08 + happy * 0.22 * Math.cos(t * 10) + rise * 0.27 * Math.cos(t * 16), side * -0.12,\n side * (0.10 + happy * (0.18 + 0.24 * Math.sin(t * 10)) + rise * (0.25 + 0.38 * Math.sin(t * 16))\n + wave * 0.10 * Math.sin(t * 8) - comfort * 0.08 - sad * 0.22 - lunge * 0.24));\n tips[i].rotation.z = side * (happy * 0.24 * Math.sin(t * 10 - 0.65) + curious * 0.08 + rise * 0.3 * Math.sin(t * 16 - 0.6));\n }\n if (lunge > 0) rig.groundFeet();\n locomotion(state);\n magicEffect.update(t, phase, lunge);\n rig.face.update();\n };\n return { pose, dispose: magicEffect.dispose };\n}\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { SpriteCharacterEvents } from '../types';
2
+ export declare const rubyEvents: SpriteCharacterEvents;
@@ -0,0 +1,46 @@
1
+ import { SPRITE_ACTION_DURATIONS as e } from "../actions.js";
2
+ //#region src/components/pro/Sprite/Ruby/events.ts
3
+ var t = {
4
+ zh: "嗨!我是 Ruby,今天要一起寻找小小的魔法吗?",
5
+ en: "Hi! I’m Ruby. Shall we find a little magic today?"
6
+ }, n = {
7
+ greeting: t,
8
+ localReply(e, n) {
9
+ switch (e) {
10
+ case "greeting": return t[n];
11
+ case "comfort": return n === "zh" ? "抱抱你。先休息一下,我陪你慢慢走过今天。" : "A little hug for you. Take your time; I’m here.";
12
+ case "thanks": return n === "zh" ? "不客气!能陪你聊天我很开心。" : "You’re welcome! I love chatting with you.";
13
+ case "identity": return n === "zh" ? "我是会一点小魔法的天角兽 Ruby!" : "I’m Ruby, the little winged unicorn!";
14
+ case "default": return n === "zh" ? "听起来很有意思!你愿意再多告诉我一点吗?✨" : "That sounds lovely! Tell me a little more? ✨";
15
+ }
16
+ },
17
+ action(t) {
18
+ switch (t.type) {
19
+ case "greet": return {
20
+ mood: "greet",
21
+ duration: e.greet
22
+ };
23
+ case "turn": return {
24
+ mood: "curious",
25
+ duration: 580
26
+ };
27
+ case "message-pending": return {
28
+ mood: "talk",
29
+ duration: 700,
30
+ sustain: !0
31
+ };
32
+ case "message-replied": return {
33
+ mood: t.comfort ? "comfort" : "talk",
34
+ duration: 1100
35
+ };
36
+ case "message-failed": return {
37
+ mood: "comfort",
38
+ duration: 1100
39
+ };
40
+ }
41
+ }
42
+ };
43
+ //#endregion
44
+ export { n as rubyEvents };
45
+
46
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","names":["greeting","rubyEvents","intent","locale","event","SPRITE_ACTION_DURATIONS"],"sources":["../../../../../src/components/pro/Sprite/Ruby/events.ts"],"sourcesContent":["import { SPRITE_ACTION_DURATIONS } from '../actions';\nimport type { SpriteCharacterEvents } from '../types';\n\nconst greeting: SpriteCharacterEvents['greeting'] = {\n zh: '嗨!我是 Ruby,今天要一起寻找小小的魔法吗?',\n en: 'Hi! I’m Ruby. Shall we find a little magic today?',\n};\n\nexport const rubyEvents: SpriteCharacterEvents = {\n greeting,\n localReply(intent, locale) {\n switch (intent) {\n case 'greeting': return greeting[locale];\n case 'comfort': return locale === 'zh'\n ? '抱抱你。先休息一下,我陪你慢慢走过今天。'\n : 'A little hug for you. Take your time; I’m here.';\n case 'thanks': return locale === 'zh'\n ? '不客气!能陪你聊天我很开心。'\n : 'You’re welcome! I love chatting with you.';\n case 'identity': return locale === 'zh'\n ? '我是会一点小魔法的天角兽 Ruby!'\n : 'I’m Ruby, the little winged unicorn!';\n case 'default': return locale === 'zh'\n ? '听起来很有意思!你愿意再多告诉我一点吗?✨'\n : 'That sounds lovely! Tell me a little more? ✨';\n }\n },\n action(event) {\n switch (event.type) {\n case 'greet': return { mood: 'greet', duration: SPRITE_ACTION_DURATIONS.greet };\n case 'turn': return { mood: 'curious', duration: 580 };\n case 'message-pending': return { mood: 'talk', duration: 700, sustain: true };\n case 'message-replied': return { mood: event.comfort ? 'comfort' : 'talk', duration: 1100 };\n case 'message-failed': return { mood: 'comfort', duration: 1100 };\n }\n },\n};\n"],"mappings":";;AAGA,IAAMA,IAA8C;CAClD,IAAI;CACJ,IAAI;AACN,GAEaC,IAAoC;CAC/C;CACA,WAAW,GAAQ,GAAQ;EACzB,QAAQC,GAAR;GACE,KAAK,YAAY,OAAOF,EAASG;GACjC,KAAK,WAAW,OAAOA,MAAW,OAC9B,yBACA;GACJ,KAAK,UAAU,OAAOA,MAAW,OAC7B,mBACA;GACJ,KAAK,YAAY,OAAOA,MAAW,OAC/B,uBACA;GACJ,KAAK,WAAW,OAAOA,MAAW,OAC9B,0BACA;EACN;CACF;CACA,OAAO,GAAO;EACZ,QAAQC,EAAM,MAAd;GACE,KAAK,SAAS,OAAO;IAAE,MAAM;IAAS,UAAUC,EAAwB;GAAM;GAC9E,KAAK,QAAQ,OAAO;IAAE,MAAM;IAAW,UAAU;GAAI;GACrD,KAAK,mBAAmB,OAAO;IAAE,MAAM;IAAQ,UAAU;IAAK,SAAS;GAAK;GAC5E,KAAK,mBAAmB,OAAO;IAAE,MAAMD,EAAM,UAAU,YAAY;IAAQ,UAAU;GAAK;GAC1F,KAAK,kBAAkB,OAAO;IAAE,MAAM;IAAW,UAAU;GAAK;EAClE;CACF;AACF"}
@@ -0,0 +1 @@
1
+ export declare function createRuby(): import("../types").SpriteScene;
@@ -0,0 +1,12 @@
1
+ import { createRubyRig as e } from "./rig.js";
2
+ import { createRubyAnimations as t } from "./animations.js";
3
+ import { assembleSprite as n } from "../shared/scene.js";
4
+ //#region src/components/pro/Sprite/Ruby/index.ts
5
+ function r() {
6
+ let r = e();
7
+ return n(r, t(r));
8
+ }
9
+ //#endregion
10
+ export { r as createRuby };
11
+
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["createRuby","rig","createRubyRig","assembleSprite","createRubyAnimations"],"sources":["../../../../../src/components/pro/Sprite/Ruby/index.ts"],"sourcesContent":["import { createRubyRig } from './rig';\nimport { createRubyAnimations } from './animations';\nimport { assembleSprite } from '../shared/scene';\n\nexport function createRuby() {\n const rig = createRubyRig();\n return assembleSprite(rig, createRubyAnimations(rig));\n}\n"],"mappings":";;;;AAIA,SAAgBA,IAAa;CAC3B,IAAMC,IAAMC,EAAc;CAC1B,OAAOC,EAAeF,GAAKG,EAAqBH,CAAG,CAAC;AACtD"}
@@ -0,0 +1,4 @@
1
+ import type { RubyRig } from './rig';
2
+ import type { samplePose } from '../shared/animation';
3
+ /** Four-beat walk and a faster, staggered gallop. The studio position stays fixed. */
4
+ export declare function createRubyLocomotion(rig: RubyRig): ({ t, walk, run }: ReturnType<typeof samplePose>) => void;
@@ -0,0 +1,41 @@
1
+ import { sampleFootstep as e } from "../shared/gait.js";
2
+ //#region src/components/pro/Sprite/Ruby/locomotion.ts
3
+ var t = [
4
+ 0,
5
+ .5,
6
+ .75,
7
+ .25
8
+ ], n = [
9
+ 0,
10
+ .12,
11
+ .5,
12
+ .62
13
+ ];
14
+ function r(r) {
15
+ let { body: i, head: a, front: o, back: s, tail: c, wings: l, tips: u } = r, d = [...o, ...s], f = [
16
+ 0,
17
+ 0,
18
+ 0,
19
+ 0
20
+ ];
21
+ return ({ t: o, walk: s, run: p }) => {
22
+ let m = s + p;
23
+ if (m === 0) return;
24
+ let h = p > 0, g = o * (h ? 2.5 : 1.15), _ = g * Math.PI * 2, v = p * .11 * Math.max(0, Math.sin(_)) ** 2;
25
+ i.position.y = s * (.012 + .012 * Math.cos(_ * 2)) + v, i.rotation.set(p * (.1 + .055 * Math.cos(_)) + s * .02, 0, s * .018 * Math.sin(_)), a.rotation.x = -i.rotation.x * .65 + s * .025 * Math.sin(_ * 2), a.position.y = 1.9 + m * .018 * Math.cos(_ * 2);
26
+ for (let r = 0; r < d.length; r++) {
27
+ let i = e(g, (h ? n : t)[r], h ? .55 : .35);
28
+ d[r].rotation.set(-m * (h ? .7 : .32) * i.travel, 0, (r % 2 ? 1 : -1) * m * .025), f[r] = v + m * (h ? .15 : .075) * i.lift;
29
+ }
30
+ c.rotation.set(p * .06, m * .18 * Math.sin(_), m * .08 * Math.cos(_));
31
+ for (let e = 0; e < l.length; e++) {
32
+ let t = e ? 1 : -1;
33
+ l[e].rotation.z = t * (.1 - p * .1 + s * .025 * Math.sin(_)), u[e].rotation.z = -t * p * .08;
34
+ }
35
+ r.groundFeet(f);
36
+ };
37
+ }
38
+ //#endregion
39
+ export { r as createRubyLocomotion };
40
+
41
+ //# sourceMappingURL=locomotion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"locomotion.js","names":["walkOffsets","runOffsets","createRubyLocomotion","rig","legs","front","back","clearance","amount","walk","run","running","cycle","t","angle","air","body","i","step","sampleFootstep","wings","side"],"sources":["../../../../../src/components/pro/Sprite/Ruby/locomotion.ts"],"sourcesContent":["import type { RubyRig } from './rig';\nimport type { samplePose } from '../shared/animation';\nimport { sampleFootstep } from '../shared/gait';\n\nconst walkOffsets = [0, 0.5, 0.75, 0.25];\nconst runOffsets = [0, 0.12, 0.5, 0.62];\n\n/** Four-beat walk and a faster, staggered gallop. The studio position stays fixed. */\nexport function createRubyLocomotion(rig: RubyRig) {\n const { body, head, front, back, tail, wings, tips } = rig;\n const legs = [...front, ...back];\n const clearance = [0, 0, 0, 0];\n return ({ t, walk, run }: ReturnType<typeof samplePose>) => {\n const amount = walk + run;\n if (amount === 0) return;\n const running = run > 0;\n const cycle = t * (running ? 2.5 : 1.15);\n const angle = cycle * Math.PI * 2;\n const air = run * 0.11 * Math.pow(Math.max(0, Math.sin(angle)), 2);\n body.position.y = walk * (0.012 + 0.012 * Math.cos(angle * 2)) + air;\n body.rotation.set(run * (0.10 + 0.055 * Math.cos(angle)) + walk * 0.02, 0, walk * 0.018 * Math.sin(angle));\n head.rotation.x = -body.rotation.x * 0.65 + walk * 0.025 * Math.sin(angle * 2);\n head.position.y = 1.90 + amount * 0.018 * Math.cos(angle * 2);\n for (let i = 0; i < legs.length; i++) {\n const step = sampleFootstep(cycle, (running ? runOffsets : walkOffsets)[i], running ? 0.55 : 0.35);\n legs[i].rotation.set(-amount * (running ? 0.70 : 0.32) * step.travel, 0, (i % 2 ? 1 : -1) * amount * 0.025);\n clearance[i] = air + amount * (running ? 0.15 : 0.075) * step.lift;\n }\n tail.rotation.set(run * 0.06, amount * 0.18 * Math.sin(angle), amount * 0.08 * Math.cos(angle));\n for (let i = 0; i < wings.length; i++) {\n const side = i ? 1 : -1;\n wings[i].rotation.z = side * (0.10 - run * 0.10 + walk * 0.025 * Math.sin(angle));\n tips[i].rotation.z = -side * run * 0.08;\n }\n rig.groundFeet(clearance);\n };\n}\n"],"mappings":";;AAIA,IAAMA,IAAc;CAAC;CAAG;CAAK;CAAM;AAAI,GACjCC,IAAa;CAAC;CAAG;CAAM;CAAK;AAAI;AAGtC,SAAgBC,EAAqB,GAAc;CACjD,IAAM,EAAE,SAAM,SAAM,UAAO,SAAM,SAAM,UAAO,YAASC,GACjDC,IAAO,CAAC,GAAGC,GAAO,GAAGC,CAAI,GACzBC,IAAY;EAAC;EAAG;EAAG;EAAG;CAAC;CAC7B,QAAQ,EAAE,MAAG,SAAM,aAAyC;EAC1D,IAAMC,IAASC,IAAOC;EACtB,IAAIF,MAAW,GAAG;EAClB,IAAMG,IAAUD,IAAM,GAChBE,IAAQC,KAAKF,IAAU,MAAM,OAC7BG,IAAQF,IAAQ,KAAK,KAAK,GAC1BG,IAAML,IAAM,MAAgB,KAAK,IAAI,GAAG,KAAK,IAAII,CAAK,CAAC,KAAG;EAIhE,AAHA,EAAK,SAAS,IAAIL,KAAQ,OAAQ,OAAQ,KAAK,IAAIK,IAAQ,CAAC,KAAKC,GACjEC,EAAK,SAAS,IAAIN,KAAO,KAAO,OAAQ,KAAK,IAAII,CAAK,KAAKL,IAAO,KAAM,GAAGA,IAAO,OAAQ,KAAK,IAAIK,CAAK,CAAC,GACzG,EAAK,SAAS,IAAI,CAACE,EAAK,SAAS,IAAI,MAAOP,IAAO,OAAQ,KAAK,IAAIK,IAAQ,CAAC,GAC7E,EAAK,SAAS,IAAI,MAAON,IAAS,OAAQ,KAAK,IAAIM,IAAQ,CAAC;EAC5D,KAAK,IAAIG,IAAI,GAAGA,IAAIb,EAAK,QAAQ,KAAK;GACpC,IAAMc,IAAOC,EAAeP,IAAQD,IAAUV,IAAaD,EAAA,CAAaiB,IAAIN,IAAU,MAAO,GAAI;GAEjG,AADAP,EAAKa,EAAE,CAAC,SAAS,IAAI,CAACT,KAAUG,IAAU,KAAO,OAAQO,EAAK,QAAQ,IAAID,IAAI,IAAI,IAAI,MAAMT,IAAS,IAAK,GAC1G,EAAUS,KAAKF,IAAMP,KAAUG,IAAU,MAAO,QAASO,EAAK;EAChE;EACA,EAAK,SAAS,IAAIR,IAAM,KAAMF,IAAS,MAAO,KAAK,IAAIM,CAAK,GAAGN,IAAS,MAAO,KAAK,IAAIM,CAAK,CAAC;EAC9F,KAAK,IAAIG,IAAI,GAAGA,IAAIG,EAAM,QAAQ,KAAK;GACrC,IAAMC,IAAOJ,IAAI,IAAI;GAErB,AADA,EAAMA,EAAE,CAAC,SAAS,IAAII,KAAQ,KAAOX,IAAM,KAAOD,IAAO,OAAQ,KAAK,IAAIK,CAAK,IAC/E,EAAKG,EAAE,CAAC,SAAS,IAAI,CAACI,IAAOX,IAAM;EACrC;EACA,EAAI,WAAWH,CAAS;CAC1B;AACF"}
@@ -0,0 +1,23 @@
1
+ import * as THREE from 'three';
2
+ /** Local shapes only. Articulated groups remain unbound until createRubyRig. */
3
+ export declare function createRubyModel(): {
4
+ body: THREE.Group<THREE.Object3DEventMap>;
5
+ head: THREE.Group<THREE.Object3DEventMap>;
6
+ front: THREE.Group<THREE.Object3DEventMap>[];
7
+ back: THREE.Group<THREE.Object3DEventMap>[];
8
+ tail: THREE.Group<THREE.Object3DEventMap>;
9
+ wings: THREE.Group<THREE.Object3DEventMap>[];
10
+ tips: THREE.Group<THREE.Object3DEventMap>[];
11
+ horn: THREE.Group<THREE.Object3DEventMap>;
12
+ ears: THREE.Group<THREE.Object3DEventMap>[];
13
+ eyes: THREE.Group<THREE.Object3DEventMap>[];
14
+ lids: THREE.Group<THREE.Object3DEventMap>[];
15
+ brows: THREE.Group<THREE.Object3DEventMap>[];
16
+ mouth: THREE.Group<THREE.Object3DEventMap>;
17
+ lip: THREE.Group<THREE.Object3DEventMap>;
18
+ opening: THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap>, THREE.Object3DEventMap>;
19
+ tongue: THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap>, THREE.Object3DEventMap>;
20
+ skin: THREE.Mesh<THREE.BufferGeometry<THREE.NormalBufferAttributes, THREE.BufferGeometryEventMap>, THREE.Material<THREE.MaterialEventMap>[] | THREE.Material<THREE.MaterialEventMap>, THREE.Object3DEventMap>[];
21
+ patches: import("../shared/face").FacePatch[];
22
+ dispose: () => void;
23
+ };