This project contains some standalone Web Components using StencilJS. All these components are just Web Components, so they work in any framework or with no framework at all.
Name | Link |
---|---|
Dialog | Documentation |
Multidropdown | Documentation |
Email Box | Documentation |
OCR | Documentation |
Object Counter | Documentation |
Loader | Documentation |
File Uploader | Documentation |
To start building a new web component using Stencil, clone this repo to a new directory:
git clone https://github.com/Cotecna-Inspection/cotecna-stencil.git cotecna-stencil
cd cotecna-stencil
git remote rm origin
and run:
npm install
npm start
To build the component for production, run:
npm run build
To run the unit tests for the components, run:
npm test
Need help? Check out our docs here.
When creating new component tags, we recommend not using stencil
in the component name (ex: <stencil-datepicker>
). This is because the generated component has little to nothing to do with Stencil; it's just a web component!
Instead, use a prefix that fits your company or any name for a group of related components. For example, all of the Ionic generated web components use the prefix ion
.
There are three strategies we recommend for using web components built with Stencil.
The first step for all three of these strategies is to publish to NPM.
- Put a script tag similar to this
<script type='module' src='https://unpkg.com/my-component@0.0.1/dist/my-component.esm.js'></script>
in the head of your index.html - Then you can use the element anywhere in your template, JSX, html etc
- Run
npm install my-component --save
- Put a script tag similar to this
<script type='module' src='node_modules/@cotecna/my-component/dist/my-component.esm.js'></script>
in the head of your index.html - Then you can use the element anywhere in your template, JSX, html etc
- Add this import to your main.ts on your app:
import { defineCustomElements as CotecnaStencilComponents } from '@cotecna/stencil-components/loader';
- Add
CotecnaStencilComponents(window);
to your main.ts