Security News
Input Validation Vulnerabilities Dominate MITRE's 2024 CWE Top 25 List
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
@volvo-cars/ced-os-react-components
Advanced tools
Set of components for developing UIs in the onboarding and support apps
This a component library created to standardize the creation and articulation of support article data provided via an API in JSON. Meaning when the new API provides content in JSON, it will have a structure that maps to these components. That way the data from the backend will dictate the structure and not the actual components.
The components can be viewed in this Storybook
npm install
npm run dev
to run storybooknpm test
to run testsThe library is automatically published to Github packages and NPM when
a new tag in the format v.X.X.X
is pushed to Github.
The steps to publish are:
npm run build
npm version <major>.<minor>.<patch>
to bump versionSometimes it may be useful to create a pre-release version for testing, these are the steps needed (replace "major" in the commands with patch|minor|major ad needed)
npm version premajor --preid=rc
will add a prefix to a new major, eg. 2.0.0-rc.0
npm version prerelease
to create new pre-release version with bumped prefix, eg 2.0.0-rc.0
npm version major
The library is published as an NPM package and also a Github package.
Run npm install @volvo-cars/ced-os-react-components
.
To be able to install the package from the Github registry some configuration and Github authentication is needed.
Add a file called .npmrc
to your project and paste the lines below into it to configure NPM to load @volvo-cars packages from the Github registry. The second line
references an environment variable on your machine: VCC_GITHUB_PACKAGES_TOKEN
.
@volvo-cars:registry=https://npm.pkg.github.com/
//npm.pkg.github.com/:_authToken=${VCC_GITHUB_PACKAGES_TOKEN}
The value of VCC_GITHUB_PACKAGES_TOKEN should be a Github Personal Access token with at least "read:packages" permissions.
If you use the dotenv package in your project it's also possible to define the
variable in the .env
file. In which case you need to do dotenv npm install
@volvo-cars/ced-os-react-components/lib/index.css
@volvo-cars/ced-os-react-components/lib/theme-polestar.css
@volvo-cars/ced-os-react-components/lib/theme-volvo.css
, and add the class.dcs-base-theme
in your own styles to create a custom theme (See all variables in lib/theme-base.css).classNames
are applied automatically - .dcs-base-theme
for base styles and if either "volvo" or "polestar"
is passed to the theme
prop the respective theme className of dcs-volvo-theme
or dcs-polestar-theme
is set.The main entrypoint
Pass JSON article content to the data prop. Set a theme name, and pass an optional config
// ...
import { JSONArticle } from '@volvo-cars/ced-os-react-components';
const Article = ({ articleId, content }) => {
return (
<JSONArticle data-article-id={articleId} data={content} theme="volvo" config={{
locale: 'en-GB', // optional - will set correct direction based on locale
linkComponent: (props)=> {/* optional custom link component eg. next/link */}
icons: {
// Supply URL:s to icons here if needed
note: 'some/path/note.svg';
warning: 'some/path/warning.svg';
important: 'some/path/important.svg';
}
}} />
);
};
If you want to use the renderer without creating a full JS project, with NPM etc, you can use the standalone solution.
Include the standalone-example.iife.js
and standalone-example.css
files found in the npm package under @volvo-cars/ced-onboarding-support-components/lib
, in the HTML template file, make sure to make the following replacements:
article: null
must be replaced with article: '<article>'
, where article
is the (JSON representation) of an article. It must contain an externalId
. It must also contain the content of the document, i.e. a title
and optionally also a description
and body
. These fields may be directly on the article
object itself, or nested inside of article.content
or article.jsonContent
.articleLinkClicked: null
may be replaced with articleLinkClicked: function(articleId, targetId) { ... }
, where the function will be called whenever the user clicks a link to another article. The function takes two arguments: the ID of the article being linked to, as well as (optionally) the ID of the target element (will typically just be null
). If articleLinkClicked
is left as null
, it will default to working as a normal link, such that if the current URL is foo/bar/articleId1
, and the user clicks a link to an article with ID articleId2
, it will navigate to foo/bar/articleId2
(or foo/bar/articleId2#targetId
, if targetId
is not null).linkClicked: null
may be replaced with linkClicked: function(href) { ... }
, where the function will be called whenever the user clicks on an external link. The function takes one argument: the URL of the link target. If linkClicked
is left as null, it will default to simply navigating to the link.Run directly using npx
without install
npx @volvo-cars/ced-os-react-components [JSON file path or JSON string] [options]
Or install globally and then use the command
support-content-to-html [JSON file path or JSON string] [options]
Options:
--file=[input filename]
- The file contents is used as input to render
--out=[output filename]
- The render result is written to a file
--json=[JSON string]
- The string is used as input to render
--clean
Option to remove all classnames
FAQs
Set of components for developing UIs in the onboarding and support apps
We found that @volvo-cars/ced-os-react-components demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.
Research
Security News
A threat actor's playbook for exploiting the npm ecosystem was exposed on the dark web, detailing how to build a blockchain-powered botnet.