Skip to content

Implement new 3D primitives for React in the @playcanvas/blocks package #142

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 7 commits into from
May 21, 2025

Conversation

marklundin
Copy link
Member

@marklundin marklundin commented May 21, 2025

  • Introduced a new separated @playcanvas/blocks package for high-level 3D primitives, including components like SplatViewer, Controls, and various UI elements (Button, Card, Dialog, etc.).
  • Updated package.json and package-lock.json to include new dependencies and devDependencies.
  • Enhanced the SplatViewer with improved camera controls and UI interactions.
  • Added comprehensive documentation for the new components and their usage.
  • Removed unused components and streamlined the project structure for better maintainability.

- Introduced a new package for high-level 3D primitives, including components like SplatViewer, Controls, and various UI elements (Button, Card, Dialog, etc.).
- Updated package.json and package-lock.json to include new dependencies and devDependencies.
- Enhanced the SplatViewer with improved camera controls and UI interactions.
- Added comprehensive documentation for the new components and their usage.
- Removed unused components and streamlined the project structure for better maintainability.

These changes significantly enhance the functionality and usability of the PlayCanvas React library, providing developers with powerful tools for creating immersive 3D experiences.
@marklundin marklundin self-assigned this May 21, 2025
…w job

- Changed the build script for blocks in package.json to reference the correct workspace (@playcanvas/blocks).
- Renamed the GitHub workflow job from 'lint' to 'publish' for clarity in the CI/CD process.
- Added a publishConfig section to package.json for the blocks package, specifying public access for publishing.
…option

- Modified the build script for the @playcanvas/blocks workspace to simplify the build process by removing the no-mangling option, ensuring a more straightforward build configuration.
Copy link

pkg-pr-new bot commented May 21, 2025

Open in StackBlitz

npm i https://pkg.pr.new/playcanvas/react/@playcanvas/react@142

commit: 35f0783

…patibility

- Deleted package-lock.json to streamline dependency management.
- Updated scripts in package.json to utilize pnpm for workspace commands, enhancing build and development processes.
- Adjusted dependencies in blocks and docs package.json files to ensure proper workspace linking and compatibility.
- Introduced pnpm as the package manager by adding pnpm-lock.yaml and pnpm-workspace.yaml files.
- Updated GitHub workflows to utilize pnpm for dependency installation, linting, testing, and building processes.
- Enhanced documentation components by integrating the Viewer from @playcanvas/blocks and updating related MDX files.
- Adjusted package.json scripts in the lib package to ensure proper build execution during publish and post-installation.
…blishing

- Modified the test script in package.json to remove the '--if-present' flag for consistency.
- Updated the GitHub workflows to change the library build step from 'build:lib' to 'build:blocks' for better clarity.
- Adjusted the publish workflow to utilize 'pnpm dlx' for the publish command, enhancing the publishing process.
@marklundin marklundin requested a review from Copilot May 21, 2025 16:02
Copy link
Contributor

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR implements new 3D primitives for React in the @playcanvas/blocks package by introducing high-level UI components and refactoring project configuration.

  • Introduces new components like Button and Badge for building 3D UIs.
  • Updates import aliases throughout the codebase and adjusts build scripts and workflows to use pnpm.
  • Enhances documentation and streamlines the overall project structure.

Reviewed Changes

Copilot reviewed 58 out of 58 changed files in this pull request and generated no comments.

Show a summary per file
File Description
packages/blocks/src/components/ui/toggle-group.tsx Updated import aliases for utility functions and toggle variants.
packages/blocks/src/components/ui/tabs.tsx Updated import alias for the utility function.
packages/blocks/src/components/ui/table.tsx Updated import alias for the utility function.
packages/blocks/src/components/ui/switch.tsx Updated import alias for the utility function.
packages/blocks/src/components/ui/slider.tsx Updated import alias for the utility function.
packages/blocks/src/components/ui/separator.tsx Updated import alias for the utility function.
packages/blocks/src/components/ui/dropdown-menu.tsx Updated import alias for the utility function.
packages/blocks/src/components/ui/drawer.tsx Updated import alias for the utility function.
packages/blocks/src/components/ui/dialog.tsx Updated import alias for the utility function.
packages/blocks/src/components/ui/card.tsx Updated import alias for the utility function.
packages/blocks/src/components/ui/button.tsx Introduced new Button component with customizable variants and sizes.
packages/blocks/src/components/ui/badge.tsx Introduced new Badge component with variant options.
packages/blocks/package.json Added new package configuration for the blocks module.
packages/blocks/README.md Provided documentation for installing and using the new components.
package.json Transitioned build scripts from npm to pnpm and updated dependency management.
.github/workflows/* Updated CI/CD workflows to use pnpm and Node.js 22.x for consistency.
Comments suppressed due to low confidence (1)

packages/blocks/src/components/ui/toggle-group.tsx:7

  • The updated import alias '@lib/utils' is used consistently across multiple files; please confirm that the TS configuration and bundler settings are updated accordingly to correctly resolve these new paths.
import { cn } from "@lib/utils"

@marklundin marklundin added the enhancement New feature or request label May 21, 2025
@marklundin marklundin merged commit 6c7e9dc into main May 21, 2025
7 checks passed
@marklundin marklundin deleted the feat-blocks-3d branch May 21, 2025 16:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Blocks enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant