dishui 0.0.108 → 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.
- package/dist/.release-verified.json +3 -2
- package/dist/components/Accordion/index.js.map +1 -1
- package/dist/components/Avatar/index.js.map +1 -1
- package/dist/components/Badge/index.js.map +1 -1
- package/dist/components/Button/index.js.map +1 -1
- package/dist/components/ButtonMenu/index.js.map +1 -1
- package/dist/components/Card/Metric2.js.map +1 -1
- package/dist/components/Card/Ticket2.js.map +1 -1
- package/dist/components/Card/index.js.map +1 -1
- package/dist/components/Chart/Chart.js.map +1 -1
- package/dist/components/Checkbox/index.js.map +1 -1
- package/dist/components/ChoicePicker/index.js.map +1 -1
- package/dist/components/Column/index.js.map +1 -1
- package/dist/components/ConfirmDialog/index.js.map +1 -1
- package/dist/components/DateTimeInput/index.js.map +1 -1
- package/dist/components/Demo/index.js.map +1 -1
- package/dist/components/Demo/source.js.map +1 -1
- package/dist/components/Divider/index.js.map +1 -1
- package/dist/components/EmptyState/index.js.map +1 -1
- package/dist/components/Field/index.js.map +1 -1
- package/dist/components/FileUploader/DropZone.js.map +1 -1
- package/dist/components/FileUploader/FileItem.js.map +1 -1
- package/dist/components/FileUploader/FileUploader.js.map +1 -1
- package/dist/components/FileUploader/UploadQueue.js.map +1 -1
- package/dist/components/GroupButton/index.js.map +1 -1
- package/dist/components/GroupedTable/index.js.map +1 -1
- package/dist/components/Icon/index.js.map +1 -1
- package/dist/components/Image/index.js.map +1 -1
- package/dist/components/Input/index.js.map +1 -1
- package/dist/components/Label/index.js.map +1 -1
- package/dist/components/Layout/index.js.map +1 -1
- package/dist/components/LayoutSuite/DashboardSuite.js.map +1 -1
- package/dist/components/LayoutSuite/index.js.map +1 -1
- package/dist/components/List/index.js.map +1 -1
- package/dist/components/Markdown/Markdown.js.map +1 -1
- package/dist/components/Markdown/codeThemes.js.map +1 -1
- package/dist/components/Markdown/markdownComponents.js.map +1 -1
- package/dist/components/Markdown/parseCodeBlockMeta.js.map +1 -1
- package/dist/components/Markdown/useMarkdownSource.js.map +1 -1
- package/dist/components/Markdown/useMarkmapRenderer.js.map +1 -1
- package/dist/components/Markdown/useMermaidRenderer.js.map +1 -1
- package/dist/components/Modal/focusScope.js.map +1 -1
- package/dist/components/Modal/index.js.map +1 -1
- package/dist/components/MultipleChoice/index.js.map +1 -1
- package/dist/components/NavigationList/index.js.map +1 -1
- package/dist/components/Page/Float2.js.map +1 -1
- package/dist/components/Page/index.js.map +1 -1
- package/dist/components/Page/resize2.js.map +1 -1
- package/dist/components/PageHeader/index.js.map +1 -1
- package/dist/components/PagePanel/index.js.map +1 -1
- package/dist/components/ProtectedRoute/index.js.map +1 -1
- package/dist/components/Resizable/ResizeGrip.js.map +1 -1
- package/dist/components/Resizable/index.js.map +1 -1
- package/dist/components/Resizable/useResize.js.map +1 -1
- package/dist/components/Row/index.js.map +1 -1
- package/dist/components/Section/index.js.map +1 -1
- package/dist/components/Select/index.js.map +1 -1
- package/dist/components/SidebarToggleButton/index.js.map +1 -1
- package/dist/components/Skeleton/index.js.map +1 -1
- package/dist/components/Slider/index.js.map +1 -1
- package/dist/components/Switch/index.js.map +1 -1
- package/dist/components/Tab/index.js.map +1 -1
- package/dist/components/Table/index.js.map +1 -1
- package/dist/components/Tabs/index.js.map +1 -1
- package/dist/components/Tabs/tabNavigation.js.map +1 -1
- package/dist/components/Text/index.js.map +1 -1
- package/dist/components/Textarea/index.js.map +1 -1
- package/dist/components/Tooltip/index.js.map +1 -1
- package/dist/components/Tree/Tree.js.map +1 -1
- package/dist/components/ai/AgentChat/index.js.map +1 -1
- package/dist/components/ai/AgentRunCard/index.js.map +1 -1
- package/dist/components/ai/AgentScreen/index.js.map +1 -1
- package/dist/components/ai/ApprovalCard/index.js.map +1 -1
- package/dist/components/ai/CodeView/index.js.map +1 -1
- package/dist/components/ai/CommandSearch/index.js.map +1 -1
- package/dist/components/ai/ContextCards/index.js.map +1 -1
- package/dist/components/ai/DiffTable/index.js.map +1 -1
- package/dist/components/ai/FilterTable/index.js.map +1 -1
- package/dist/components/ai/FineTuneCard/index.js.map +1 -1
- package/dist/components/ai/InsightCards/index.js.map +1 -1
- package/dist/components/ai/IssueCard/index.js.map +1 -1
- package/dist/components/ai/LoadingState/index.js.map +1 -1
- package/dist/components/ai/PromptBar/index.js.map +1 -1
- package/dist/components/ai/RecommendationCard/index.js.map +1 -1
- package/dist/components/ai/RecordsTable/index.js.map +1 -1
- package/dist/components/ai/SelectionActions/index.js.map +1 -1
- package/dist/components/ai/StateFlow/index.js.map +1 -1
- package/dist/components/ai/StreamingText/index.js.map +1 -1
- package/dist/components/ai/TaskRows/index.js.map +1 -1
- package/dist/components/ai/Thinking/index.js.map +1 -1
- package/dist/components/ai/ToolChips/index.js.map +1 -1
- package/dist/components/ai/shared.js.map +1 -1
- package/dist/components/pro/ArticleContextMenu/index.js.map +1 -1
- package/dist/components/pro/ArticleControl/ArticleControl2.js.map +1 -1
- package/dist/components/pro/ArticleControl/buildHeadingTree.js.map +1 -1
- package/dist/components/pro/ArticleControl/useArticleToc.js.map +1 -1
- package/dist/components/pro/Calendar/Calendar.js +165 -160
- package/dist/components/pro/Calendar/Calendar.js.map +1 -1
- package/dist/components/pro/Calendar/hooks/useCalendarDrag.js.map +1 -1
- package/dist/components/pro/Calendar/hooks/useCalendarState.js +31 -31
- package/dist/components/pro/Calendar/hooks/useCalendarState.js.map +1 -1
- package/dist/components/pro/Calendar/utils.js.map +1 -1
- package/dist/components/pro/CodeEditor/editors/CodeEditor.js.map +1 -1
- package/dist/components/pro/CodeEditor/editors/MarkdownEditor.js.map +1 -1
- package/dist/components/pro/CodeEditor/editors/markdownExtensions.js.map +1 -1
- package/dist/components/pro/CodeEditor/extensions/contextMenu.js.map +1 -1
- package/dist/components/pro/CodeEditor/extensions/index.js.map +1 -1
- package/dist/components/pro/CodeEditor/langs/index.js.map +1 -1
- package/dist/components/pro/CodeEditor/langs/javascript.js.map +1 -1
- package/dist/components/pro/CodeEditor/langs/python.js.map +1 -1
- package/dist/components/pro/CodeEditor/langs/snippets.js.map +1 -1
- package/dist/components/pro/CodeEditor/panels/FootnotePanel.js.map +1 -1
- package/dist/components/pro/CodeEditor/panels/HistoryPanel.js +65 -59
- package/dist/components/pro/CodeEditor/panels/HistoryPanel.js.map +1 -1
- package/dist/components/pro/CodeEditor/panels/OutlinePanel.js.map +1 -1
- package/dist/components/pro/CodeEditor/panels/TableOfContentsPanel.js.map +1 -1
- package/dist/components/pro/CodeEditor/panels/VariablePanel.js.map +1 -1
- package/dist/components/pro/CodeEditor/themes.js.map +1 -1
- package/dist/components/pro/CodeEditor/utils.js.map +1 -1
- package/dist/components/pro/DataTable/DataTable.js.map +1 -1
- package/dist/components/pro/DataTable/Filters.js.map +1 -1
- package/dist/components/pro/DataTable/PivotPanel.js.map +1 -1
- package/dist/components/pro/DataTable/PivotView.js.map +1 -1
- package/dist/components/pro/DataTable/components/BulkActions.js.map +1 -1
- package/dist/components/pro/DataTable/components/ColumnSelector.js.map +1 -1
- package/dist/components/pro/DataTable/components/FilterBar.js.map +1 -1
- package/dist/components/pro/DataTable/components/TableBody.js.map +1 -1
- package/dist/components/pro/DataTable/components/TableHeader.js.map +1 -1
- package/dist/components/pro/DataTable/components/TablePagination.js.map +1 -1
- package/dist/components/pro/DataTable/components/TableToolbar.js.map +1 -1
- package/dist/components/pro/DataTable/extension.js.map +1 -1
- package/dist/components/pro/DataTable/pivotEngine.js.map +1 -1
- package/dist/components/pro/DataTable/pivotExtension.js.map +1 -1
- package/dist/components/pro/DataTable/rowDetailExtension.js.map +1 -1
- package/dist/components/pro/DataTable/tanstack-table.js.map +1 -1
- package/dist/components/pro/DataTable/treeDataUtils.js.map +1 -1
- package/dist/components/pro/DataTable/useColumnDragReorder.js.map +1 -1
- package/dist/components/pro/DataTable/useDataTableModel.js +119 -104
- package/dist/components/pro/DataTable/useDataTableModel.js.map +1 -1
- package/dist/components/pro/DataTable/utils.js.map +1 -1
- package/dist/components/pro/FileExplorer/Breadcrumb.js.map +1 -1
- package/dist/components/pro/FileExplorer/CreateDialog.js.map +1 -1
- package/dist/components/pro/FileExplorer/FileExplorer.js.map +1 -1
- package/dist/components/pro/FileExplorer/FileIcon.js.map +1 -1
- package/dist/components/pro/FileExplorer/GridView.js.map +1 -1
- package/dist/components/pro/FileExplorer/ListView.js.map +1 -1
- package/dist/components/pro/FileExplorer/Toolbar.js.map +1 -1
- package/dist/components/pro/Flow/Flow.js.map +1 -1
- package/dist/components/pro/Flow/FlowCanvas.js.map +1 -1
- package/dist/components/pro/Flow/archify/build.js.map +1 -1
- package/dist/components/pro/Flow/archify/convert.js.map +1 -1
- package/dist/components/pro/Flow/archify/palette.js.map +1 -1
- package/dist/components/pro/Flow/archify/presets.js.map +1 -1
- package/dist/components/pro/Flow/archify/spec.js.map +1 -1
- package/dist/components/pro/Flow/canvas/AlignmentGuides.js.map +1 -1
- package/dist/components/pro/Flow/canvas/GridRenderer.js.map +1 -1
- package/dist/components/pro/Flow/canvas/MiniMapRenderer.js.map +1 -1
- package/dist/components/pro/Flow/canvas/PixiApp.js.map +1 -1
- package/dist/components/pro/Flow/canvas/SelectionOverlay.js.map +1 -1
- package/dist/components/pro/Flow/canvas/ViewportContainer.js.map +1 -1
- package/dist/components/pro/Flow/constants.js.map +1 -1
- package/dist/components/pro/Flow/context/FlowAIContext.js.map +1 -1
- package/dist/components/pro/Flow/context/FlowContext.js.map +1 -1
- package/dist/components/pro/Flow/context/FlowUIContext.js.map +1 -1
- package/dist/components/pro/Flow/edges/EdgeRenderer.js.map +1 -1
- package/dist/components/pro/Flow/edges/edgeMarkers.js.map +1 -1
- package/dist/components/pro/Flow/edges/edgePaths.js.map +1 -1
- package/dist/components/pro/Flow/hooks/useAlignmentGuides.js.map +1 -1
- package/dist/components/pro/Flow/hooks/useClipboard.js.map +1 -1
- package/dist/components/pro/Flow/hooks/useCompactMode.js.map +1 -1
- package/dist/components/pro/Flow/hooks/useDeleteSelection.js.map +1 -1
- package/dist/components/pro/Flow/hooks/useDraggablePanel.js.map +1 -1
- package/dist/components/pro/Flow/hooks/useEdgeMutations.js.map +1 -1
- package/dist/components/pro/Flow/hooks/useFlowImportExport.js.map +1 -1
- package/dist/components/pro/Flow/hooks/useKeyboardShortcuts.js.map +1 -1
- package/dist/components/pro/Flow/hooks/useLayoutActions.js.map +1 -1
- package/dist/components/pro/Flow/hooks/useLineMutations.js.map +1 -1
- package/dist/components/pro/Flow/hooks/useMindMap.js.map +1 -1
- package/dist/components/pro/Flow/hooks/useNodeMutations.js.map +1 -1
- package/dist/components/pro/Flow/hooks/usePdfExport.js.map +1 -1
- package/dist/components/pro/Flow/hooks/usePixiApp.js.map +1 -1
- package/dist/components/pro/Flow/hooks/useResizablePanel.js.map +1 -1
- package/dist/components/pro/Flow/hooks/useSelection.js.map +1 -1
- package/dist/components/pro/Flow/hooks/useUndoRedo.js.map +1 -1
- package/dist/components/pro/Flow/hooks/useViewport.js.map +1 -1
- package/dist/components/pro/Flow/lines/FreehandTool.js.map +1 -1
- package/dist/components/pro/Flow/lines/GeometricLineTool.js.map +1 -1
- package/dist/components/pro/Flow/lines/LineRenderer.js.map +1 -1
- package/dist/components/pro/Flow/lines/lineSmoothing.js.map +1 -1
- package/dist/components/pro/Flow/nodes/DataNodeView.js.map +1 -1
- package/dist/components/pro/Flow/nodes/MediaContent.js.map +1 -1
- package/dist/components/pro/Flow/nodes/MediaOverlay.js.map +1 -1
- package/dist/components/pro/Flow/nodes/Model3DView.js.map +1 -1
- package/dist/components/pro/Flow/nodes/NodeHandles.js.map +1 -1
- package/dist/components/pro/Flow/nodes/NodeRenderer.js.map +1 -1
- package/dist/components/pro/Flow/nodes/NodeText.js.map +1 -1
- package/dist/components/pro/Flow/nodes/aiClient.js.map +1 -1
- package/dist/components/pro/Flow/nodes/animAnchors.js.map +1 -1
- package/dist/components/pro/Flow/nodes/chartGeometryBudget.js.map +1 -1
- package/dist/components/pro/Flow/nodes/dataUtils.js.map +1 -1
- package/dist/components/pro/Flow/nodes/demandRender.js.map +1 -1
- package/dist/components/pro/Flow/nodes/nodeUtils.js.map +1 -1
- package/dist/components/pro/Flow/nodes/shapes.js.map +1 -1
- package/dist/components/pro/Flow/nodes/svgIconTexture.js.map +1 -1
- package/dist/components/pro/Flow/nodes/svgIcons.js.map +1 -1
- package/dist/components/pro/Flow/panels/AIPanel.js.map +1 -1
- package/dist/components/pro/Flow/panels/Breadcrumb.js.map +1 -1
- package/dist/components/pro/Flow/panels/ContextMenu.js.map +1 -1
- package/dist/components/pro/Flow/panels/DataInspectorSection.js.map +1 -1
- package/dist/components/pro/Flow/panels/ExpandableTextarea.js.map +1 -1
- package/dist/components/pro/Flow/panels/FlowPanelGroup.js.map +1 -1
- package/dist/components/pro/Flow/panels/FlowToolbar.js.map +1 -1
- package/dist/components/pro/Flow/panels/InspectorPanel.js.map +1 -1
- package/dist/components/pro/Flow/panels/OutlinePanel.js.map +1 -1
- package/dist/components/pro/Flow/panels/PresentationMode.js.map +1 -1
- package/dist/components/pro/Flow/panels/ProjectTitle.js.map +1 -1
- package/dist/components/pro/Flow/panels/ShapePalette.js.map +1 -1
- package/dist/components/pro/Flow/panels/toolbarIcons.js.map +1 -1
- package/dist/components/pro/Flow/types.js.map +1 -1
- package/dist/components/pro/Flow/utils/dashedLine.js.map +1 -1
- package/dist/components/pro/Flow/utils/gradient.js.map +1 -1
- package/dist/components/pro/Flow/utils/pdfExport.js.map +1 -1
- package/dist/components/pro/Flow/utils/themeColor.js.map +1 -1
- package/dist/components/pro/Gantt/Gantt.js.map +1 -1
- package/dist/components/pro/Gantt/hooks/useGanttDrag.js.map +1 -1
- package/dist/components/pro/Gantt/hooks/useGanttState.js +79 -71
- package/dist/components/pro/Gantt/hooks/useGanttState.js.map +1 -1
- package/dist/components/pro/Gantt/utils.js.map +1 -1
- package/dist/components/pro/Kanban/Kanban.js.map +1 -1
- package/dist/components/pro/Kanban/Swimlanes.js.map +1 -1
- package/dist/components/pro/Kanban/useKanbanDrag.js.map +1 -1
- package/dist/components/pro/Kanban/utils.js.map +1 -1
- package/dist/components/pro/RichTextEditor/AIRewrite.js.map +1 -1
- package/dist/components/pro/RichTextEditor/BlockHandle.js.map +1 -1
- package/dist/components/pro/RichTextEditor/BubbleToolbar.js.map +1 -1
- package/dist/components/pro/RichTextEditor/CommentDialog.js.map +1 -1
- package/dist/components/pro/RichTextEditor/CommentPanel.js.map +1 -1
- package/dist/components/pro/RichTextEditor/CommentPopover.js.map +1 -1
- package/dist/components/pro/RichTextEditor/ContextMenu.js.map +1 -1
- package/dist/components/pro/RichTextEditor/RichTextEditor.js.map +1 -1
- package/dist/components/pro/RichTextEditor/SlashMenu.js.map +1 -1
- package/dist/components/pro/RichTextEditor/Toolbar/ColorPicker.js.map +1 -1
- package/dist/components/pro/RichTextEditor/Toolbar/FloatingDialogMenu.js.map +1 -1
- package/dist/components/pro/RichTextEditor/Toolbar/MarkdownTemplates.js.map +1 -1
- package/dist/components/pro/RichTextEditor/Toolbar/SelectDropdown.js.map +1 -1
- package/dist/components/pro/RichTextEditor/Toolbar/TableOpsMenu.js.map +1 -1
- package/dist/components/pro/RichTextEditor/Toolbar/Toolbar.js.map +1 -1
- package/dist/components/pro/RichTextEditor/Toolbar/ToolbarButton.js.map +1 -1
- package/dist/components/pro/RichTextEditor/Toolbar/useAnchoredDropdown.js.map +1 -1
- package/dist/components/pro/RichTextEditor/extensions/CodeBlockView.js.map +1 -1
- package/dist/components/pro/RichTextEditor/extensions/CommentMark.js.map +1 -1
- package/dist/components/pro/RichTextEditor/extensions/FloatingDialog.js.map +1 -1
- package/dist/components/pro/RichTextEditor/extensions/FontSize.js.map +1 -1
- package/dist/components/pro/RichTextEditor/extensions/MarkdownBlock.js.map +1 -1
- package/dist/components/pro/RichTextEditor/extensions/ResizableImage.js.map +1 -1
- package/dist/components/pro/RichTextEditor/extensions/legacyMermaid.js.map +1 -1
- package/dist/components/pro/RichTextEditor/types.js.map +1 -1
- package/dist/components/pro/Sprite/Molly/animations.d.ts +6 -0
- package/dist/components/pro/Sprite/Molly/animations.js +52 -0
- package/dist/components/pro/Sprite/Molly/animations.js.map +1 -0
- package/dist/components/pro/Sprite/Molly/events.d.ts +2 -0
- package/dist/components/pro/Sprite/Molly/events.js +46 -0
- package/dist/components/pro/Sprite/Molly/events.js.map +1 -0
- package/dist/components/pro/Sprite/Molly/index.d.ts +1 -0
- package/dist/components/pro/Sprite/Molly/index.js +12 -0
- package/dist/components/pro/Sprite/Molly/index.js.map +1 -0
- package/dist/components/pro/Sprite/Molly/legFlexion.d.ts +3 -0
- package/dist/components/pro/Sprite/Molly/legFlexion.js +48 -0
- package/dist/components/pro/Sprite/Molly/legFlexion.js.map +1 -0
- package/dist/components/pro/Sprite/Molly/locomotion.d.ts +4 -0
- package/dist/components/pro/Sprite/Molly/locomotion.js +51 -0
- package/dist/components/pro/Sprite/Molly/locomotion.js.map +1 -0
- package/dist/components/pro/Sprite/Molly/model.d.ts +23 -0
- package/dist/components/pro/Sprite/Molly/model.js +614 -0
- package/dist/components/pro/Sprite/Molly/model.js.map +1 -0
- package/dist/components/pro/Sprite/Molly/rig.d.ts +25 -0
- package/dist/components/pro/Sprite/Molly/rig.js +102 -0
- package/dist/components/pro/Sprite/Molly/rig.js.map +1 -0
- package/dist/components/pro/Sprite/Ruby/animations.d.ts +6 -0
- package/dist/components/pro/Sprite/Ruby/animations.js +58 -0
- package/dist/components/pro/Sprite/Ruby/animations.js.map +1 -0
- package/dist/components/pro/Sprite/Ruby/events.d.ts +2 -0
- package/dist/components/pro/Sprite/Ruby/events.js +46 -0
- package/dist/components/pro/Sprite/Ruby/events.js.map +1 -0
- package/dist/components/pro/Sprite/Ruby/index.d.ts +1 -0
- package/dist/components/pro/Sprite/Ruby/index.js +12 -0
- package/dist/components/pro/Sprite/Ruby/index.js.map +1 -0
- package/dist/components/pro/Sprite/Ruby/locomotion.d.ts +4 -0
- package/dist/components/pro/Sprite/Ruby/locomotion.js +41 -0
- package/dist/components/pro/Sprite/Ruby/locomotion.js.map +1 -0
- package/dist/components/pro/Sprite/Ruby/model.d.ts +23 -0
- package/dist/components/pro/Sprite/Ruby/model.js +605 -0
- package/dist/components/pro/Sprite/Ruby/model.js.map +1 -0
- package/dist/components/pro/Sprite/Ruby/rig.d.ts +26 -0
- package/dist/components/pro/Sprite/Ruby/rig.js +112 -0
- package/dist/components/pro/Sprite/Ruby/rig.js.map +1 -0
- package/dist/components/pro/Sprite/Sprite.d.ts +23 -0
- package/dist/components/pro/Sprite/Sprite2.js +224 -0
- package/dist/components/pro/Sprite/Sprite2.js.map +1 -0
- package/dist/components/pro/Sprite/actions.d.ts +3 -0
- package/dist/components/pro/Sprite/actions.js +16 -0
- package/dist/components/pro/Sprite/actions.js.map +1 -0
- package/dist/components/pro/Sprite/createSpriteScene.d.ts +4 -0
- package/dist/components/pro/Sprite/createSpriteScene.js +14 -0
- package/dist/components/pro/Sprite/createSpriteScene.js.map +1 -0
- package/dist/components/pro/Sprite/index.d.ts +4 -0
- package/dist/components/pro/Sprite/shared/animation.d.ts +33 -0
- package/dist/components/pro/Sprite/shared/animation.js +39 -0
- package/dist/components/pro/Sprite/shared/animation.js.map +1 -0
- package/dist/components/pro/Sprite/shared/createSpriteStage.d.ts +14 -0
- package/dist/components/pro/Sprite/shared/createSpriteStage.js +127 -0
- package/dist/components/pro/Sprite/shared/createSpriteStage.js.map +1 -0
- package/dist/components/pro/Sprite/shared/events.d.ts +5 -0
- package/dist/components/pro/Sprite/shared/events.js +21 -0
- package/dist/components/pro/Sprite/shared/events.js.map +1 -0
- package/dist/components/pro/Sprite/shared/face.d.ts +15 -0
- package/dist/components/pro/Sprite/shared/face.js +33 -0
- package/dist/components/pro/Sprite/shared/face.js.map +1 -0
- package/dist/components/pro/Sprite/shared/faceSurface.d.ts +6 -0
- package/dist/components/pro/Sprite/shared/faceSurface.js +66 -0
- package/dist/components/pro/Sprite/shared/faceSurface.js.map +1 -0
- package/dist/components/pro/Sprite/shared/gait.d.ts +5 -0
- package/dist/components/pro/Sprite/shared/gait.js +19 -0
- package/dist/components/pro/Sprite/shared/gait.js.map +1 -0
- package/dist/components/pro/Sprite/shared/geometry.d.ts +8 -0
- package/dist/components/pro/Sprite/shared/geometry.js +59 -0
- package/dist/components/pro/Sprite/shared/geometry.js.map +1 -0
- package/dist/components/pro/Sprite/shared/magicEffect.d.ts +27 -0
- package/dist/components/pro/Sprite/shared/magicEffect.js +61 -0
- package/dist/components/pro/Sprite/shared/magicEffect.js.map +1 -0
- package/dist/components/pro/Sprite/shared/playback.d.ts +8 -0
- package/dist/components/pro/Sprite/shared/playback.js +74 -0
- package/dist/components/pro/Sprite/shared/playback.js.map +1 -0
- package/dist/components/pro/Sprite/shared/rig.d.ts +6 -0
- package/dist/components/pro/Sprite/shared/rig.js +48 -0
- package/dist/components/pro/Sprite/shared/rig.js.map +1 -0
- package/dist/components/pro/Sprite/shared/scene.d.ts +9 -0
- package/dist/components/pro/Sprite/shared/scene.js +21 -0
- package/dist/components/pro/Sprite/shared/scene.js.map +1 -0
- package/dist/components/pro/Sprite/shared/sculptor.d.ts +14 -0
- package/dist/components/pro/Sprite/shared/sculptor.js +78 -0
- package/dist/components/pro/Sprite/shared/sculptor.js.map +1 -0
- package/dist/components/pro/Sprite/shared/speechBubble.d.ts +15 -0
- package/dist/components/pro/Sprite/shared/speechBubble.js +129 -0
- package/dist/components/pro/Sprite/shared/speechBubble.js.map +1 -0
- package/dist/components/pro/Sprite/types.d.ts +40 -0
- package/dist/contexts/AppContext.js.map +1 -1
- package/dist/contexts/authentication.js.map +1 -1
- package/dist/data-table.js +3 -3
- package/dist/data-table.js.map +1 -1
- package/dist/dishui.css +1 -1
- package/dist/hooks/useClickOutside.js.map +1 -1
- package/dist/hooks/useContainerElement.js.map +1 -1
- package/dist/hooks/useControllableState.js.map +1 -1
- package/dist/hooks/useCopyToClipboard.js.map +1 -1
- package/dist/hooks/useDebounce.js.map +1 -1
- package/dist/hooks/useDraggable.js.map +1 -1
- package/dist/hooks/useTableColumns.js.map +1 -1
- package/dist/hooks/useTableData.js.map +1 -1
- package/dist/index-nostyled.d.ts +2 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +116 -115
- package/dist/layouts/MainLayout.js.map +1 -1
- package/dist/layouts/Navbar.js.map +1 -1
- package/dist/layouts/Sidebar.js.map +1 -1
- package/dist/layouts/headbar/Headbar.js.map +1 -1
- package/dist/layouts/headbar/HeadbarLangSwitcher.js.map +1 -1
- package/dist/layouts/headbar/HeadbarSearch.js.map +1 -1
- package/dist/layouts/headbar/HeadbarThemeSwitcher.js.map +1 -1
- package/dist/layouts/headbar/HeadbarTitle.js.map +1 -1
- package/dist/sprite.js +2 -0
- package/dist/styles/themeStyles.js.map +1 -1
- package/dist/utils/cn.js.map +1 -1
- package/dist/utils/flexLayout.js.map +1 -1
- package/dist/utils/i18n.js.map +1 -1
- package/dist/utils/menu.js.map +1 -1
- package/dist/utils/rehype-code-meta.js.map +1 -1
- package/dist/utils/remark-code-meta.js.map +1 -1
- package/dist/utils/routerBuilder.js.map +1 -1
- package/dist/utils/safeStorage.js.map +1 -1
- package/dist/utils/selection.js +29 -20
- package/dist/utils/selection.js.map +1 -1
- package/dist/utils/themes.js.map +1 -1
- 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,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,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
|
+
};
|