Those templates dependencies are maintained via [pnpm](https://pnpm.io) via `pnpm up -Lri`.
Those templates dependencies are maintained via pnpm via pnpm up -Lri.
This is the reason you see a pnpm-lock.yaml. That being said, any package manager will work. This file can be safely be removed once you clone a template.
``bash`
$ npm install # or pnpm install or yarn install
In the project directory, you can run:
Runs the app in the development mode.
Open http://localhost:3000 to view it in the browser.
The page will reload if you make edits.
Builds the app for production to the dist folder.
It correctly bundles Solid in production mode and optimizes the build for the best performance.
The build is minified and the filenames include the hashes.
Your app is ready to be deployed!
You can deploy the dist folder to any static host provider (netlify, surge, now, etc.)
`
import { ActionButtons } from '@brainfish-ai/solid-components'; // import component
import styles from '@brainfish-ai/solid-components/styles?inline'; // import styles
...
// use it as per normal
`
#### Using it as part of WebComponent
To use it as part of a web component, the styles will need to be injected into the ShadowDOM:
`
import { ActionButtons } from '@brainfish-ai/solid-components'; // import component
import styles from '@brainfish-ai/solid-components/styles?inline'; // import styles
...
// use it as per normal
`
// create a wrapper component for the web component.
import type { ActionButtonsProps } from '@brainfish-ai/solid-components';
import React, { useEffect, useRef } from 'react';
declare global {
namespace JSX {
interface IntrinsicElements {
'action-buttons': React.DetailedHTMLProps<
React.HTMLAttributes,
HTMLElement
> & { class?: string };
}
}
}
type ActionButtonsElement = HTMLElement & ActionButtonsProps;
const ActionButtons: React.FC = ({ ...actions }) => {
const ref = useRef(null);
useEffect(() => {
// Dynamically import the web components
(async () => {
await import('@brainfish-ai/solid-components/web-components');
})();
// No cleanup function is needed for this effect
}, []); // Empty dependency array means this effect runs once on mount
useEffect(() => {
if (!ref.current) {
return;
}
Object.assign(ref.current, actions);
}, [actions]);
return ;
};
export default ActionButtons;
``