Package Exports
- solid-ui
Readme
solid-ui
User Interface widgets and utilities for Solid (solid-ui)
These are HTML5 widgets which connect to a solid store. Building blocks for solid-based apps. Vanilla JS. Includes large widgets like chat, table, matrix, form fields, and small widgets.
See Solid-Ui Storybook for UI widgets. See Solid-UI API for UI functions. See Forms introduction for UI vocabulary implementation.
Table of content:
- Getting started(#getting-started)
- Further documentation(#further-ocumentation)
Getting started
Contributions of bug fixes and new functionality, documentation, and tests are always appreciated.
Install via npm
npm install solid-ui import * as UI from 'solid-ui'Use directly in a browser
All bundels, DO NOT bundle rdflin and solid-logic. These need to be provided separately.
Files
- For browser UMD, without rdflib, solid-logic:
dist/solid-ui.js(globalwindow.UI) - For browser ESM, without rdflib, solid-logic:
dist/solid-ui.esm.js(import as module) - UMD bundles come in chunked files
- both version also containe minified versions.
UMD bundle (global variable)
<!-- Load dependencies first -->
<script src="https://cdn.jsdelivr.net/npm/rdflib/dist/rdflib.min.js"></script>
<!-- or -->
<!-- script src="https://cdn.jsdelivr.net/npm/rdflib/dist/rdflib.min.js"></script -->
<script src="https://unpkg.com/solid-logic/dist/solid-logic.min.js"></script>
<!-- Load solid-ui UMD bundle -->
<script src="https://unpkg.com/solid-ui/dist/solid-ui.min.js"></script>
<!-- or -->
<!-- script src="https://cdn.jsdelivr.net/npm/solid-ui/dist/solid-ui.min.js"></script -->
<!-- or -->
<!-- script src="dist/solid-ui.js"></script -->
<script>
// Access via global variable
const logic = window.SolidLogic;
const UI = window.UI;
// Create a button
const solidLogo = 'https://solidproject.org/assets/img/solid-emblem.svg'
const myButton = UI.widgets.button(document, solidLogo, 'test', () => window.alert('clicked!'))
UI.widgets.clearElement(document.body)
document.body.appendChild(myButton)
</script>ESM bundle (import as module)
<script type="module">
import * as $rdf from 'https://esm.sh/rdflib'
import { store } from 'https://esm.sh/solid-logic'
import { widgets } from 'https://esm.sh/solid-ui'
// Example usage
// someFunction(...)
</script>or
ESM bundle with import map (bare specifiers)
<script type="importmap">
{
"imports": {
"rdflib": "https://esm.sh/rdflib",
"solid-logic": "https://esm.sh/solid-logic",
"solid-ui": "https://esm.sh/solid-ui"
}
}
</script>
<script type="module">
import * as $rdf from 'rdflib'
import { store } from 'solid-logic'
import { widgets } from 'solid-ui'
// Example usage
// someFunction(...)
</script>Development new components
When developing a component in solid-ui you can test it in isolation using storybook
npm run build
npm run storybookIf there is no story for the component yet, add a new one to ./src/stories.
When you want to test the component within a solid-pane, you can use the development mode of solid-panes.
Adding Tests
One can run extisting tests with:
npm run testor with coverage
npm run test-coverageThe following document gives guidance on how to add and perform testing in solid-ui. Testing in solid-ui
Girhub Pages
- The github pages should contain the storybook and further documentation. In order to make sure it is deployed there is a step in the CI (gh-pages). This depends on the previous
buildstep. It MUST containbuild-storybookotherwise the storybook is not being published.