@tenon-io/tenon-ui
Advanced tools
Comparing version 1.0.0-beta.6 to 1.0.0
# Changelog | ||
## [1.0.0-alpha.14] 2018-08-21 | ||
### Added | ||
- Created initial component library | ||
## [1.0.0] 2018-11-12 | ||
### Release | ||
- Created initial component library release. |
@@ -0,1 +1,3 @@ | ||
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; | ||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } | ||
@@ -36,2 +38,4 @@ | ||
* block heading. | ||
* @prop {string, number} headingLevel - The level of heading to | ||
* render if not used inside the Heading component. | ||
*/ | ||
@@ -55,4 +59,6 @@ | ||
headingText = _props.headingText, | ||
forwardedRef = _props.forwardedRef; | ||
forwardedRef = _props.forwardedRef, | ||
headingLevel = _props.headingLevel; | ||
var controlNameArray = Object.keys(formControls); | ||
@@ -63,11 +69,17 @@ return controlNameArray.length > 0 ? React.createElement( | ||
React.createElement( | ||
Heading.H, | ||
Heading.LevelBoundary, | ||
{ | ||
id: this.headingId, | ||
className: 'block-heading', | ||
tabIndex: '-1', | ||
ref: forwardedRef | ||
levelOverride: headingLevel ? headingLevel : null | ||
}, | ||
React.createElement('span', { className: 'icon' }), | ||
headingText | ||
React.createElement( | ||
Heading.H, | ||
{ | ||
id: this.headingId, | ||
className: 'block-heading', | ||
tabIndex: '-1', | ||
ref: forwardedRef | ||
}, | ||
React.createElement('span', { className: 'icon' }), | ||
headingText | ||
) | ||
), | ||
@@ -106,14 +118,9 @@ React.createElement( | ||
}).isRequired, | ||
headingText: PropTypes.string.isRequired | ||
headingText: PropTypes.string.isRequired, | ||
headingLevel: PropTypes.oneOfType([PropTypes.string, PropTypes.number]) | ||
} : {}; | ||
export default forwardRef(function (_ref, ref) { | ||
var formControls = _ref.formControls, | ||
headingText = _ref.headingText; | ||
return React.createElement(ErrorBlock, { | ||
formControls: formControls, | ||
headingText: headingText, | ||
forwardedRef: ref | ||
}); | ||
export default forwardRef(function (props, ref) { | ||
return React.createElement(ErrorBlock, _extends({}, props, { forwardedRef: ref })); | ||
}); |
@@ -70,3 +70,3 @@ var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; | ||
'div', | ||
{ className: 'field-wrapper checkbox-wrapper' }, | ||
{ className: 'checkbox-wrapper' }, | ||
React.createElement('input', _extends({ | ||
@@ -73,0 +73,0 @@ ref: ref, |
@@ -0,1 +1,3 @@ | ||
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; | ||
import React, { forwardRef } from 'react'; | ||
@@ -32,8 +34,2 @@ import classNames from 'classnames'; | ||
* element. | ||
* @prop {function} getErrorProps - Prop getter function | ||
* from the smart checkbox group controller for the | ||
* error message container. | ||
* @prop {function} getContentHintProps - Prop getter | ||
* function from the smart checkbox group controller | ||
* for the content hint container. | ||
* @prop {boolean} showError - A flag to indicate when the | ||
@@ -58,4 +54,2 @@ * error container should be displayed. | ||
errorText = _ref.errorText, | ||
getErrorProps = _ref.getErrorProps, | ||
getContentHintProps = _ref.getContentHintProps, | ||
showError = _ref.showError, | ||
@@ -104,5 +98,6 @@ required = _ref.required, | ||
{ className: 'checkbox-wrapper' }, | ||
React.createElement('input', getCheckboxProps({ | ||
React.createElement('input', _extends({}, getCheckboxProps({ | ||
name: option, | ||
focusElement: i === 0, | ||
focusElement: i === 0 | ||
}), { | ||
ref: i === 0 ? ref : null | ||
@@ -138,4 +133,2 @@ })), | ||
getLabelProps: PropTypes.func.isRequired, | ||
getErrorProps: PropTypes.func, | ||
getContentHintProps: PropTypes.func, | ||
required: PropTypes.bool, | ||
@@ -142,0 +135,0 @@ contentHintText: PropTypes.string, |
@@ -394,9 +394,19 @@ var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; | ||
required = _props4.required, | ||
registerErrors = _props4.registerErrors; | ||
registerErrors = _props4.registerErrors, | ||
component = _props4.component, | ||
deregisterControl = _props4.deregisterControl, | ||
registerControl = _props4.registerControl, | ||
setControlValue = _props4.setControlValue, | ||
getControlValue = _props4.getControlValue, | ||
setControlValidity = _props4.setControlValidity, | ||
validators = _props4.validators, | ||
rest = _objectWithoutProperties(_props4, ['children', 'type', 'getControlValidity', 'getControlErrorText', 'name', 'required', 'registerErrors', 'component', 'deregisterControl', 'registerControl', 'setControlValue', 'getControlValue', 'setControlValidity', 'validators']); | ||
return children(_extends({ | ||
var renderProps = _extends({ | ||
showError: registerErrors ? !getControlValidity(name) : false, | ||
errorText: getControlErrorText(name), | ||
required: required === true || required === 'true' | ||
}, this.buildRenderObject(type))); | ||
}, this.buildRenderObject(type)); | ||
return component ? React.createElement(component, _extends({}, renderProps, rest), children) : children && children(renderProps); | ||
}; | ||
@@ -655,3 +665,4 @@ | ||
FormController.propTypes = process.env.NODE_ENV !== "production" ? { | ||
children: PropTypes.func.isRequired, | ||
children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]), | ||
component: PropTypes.any, | ||
deregisterControl: PropTypes.func.isRequired, | ||
@@ -684,5 +695,7 @@ registerControl: PropTypes.func.isRequired, | ||
var controllerPropTypes = { | ||
children: PropTypes.func.isRequired, | ||
children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]), | ||
component: PropTypes.any, | ||
validators: PropTypes.arrayOf(PropTypes.object), | ||
name: PropTypes.string.isRequired | ||
name: PropTypes.string.isRequired, | ||
required: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['true', 'false'])]) | ||
}; | ||
@@ -694,4 +707,6 @@ | ||
* | ||
* @prop required {function} children - Render function for the | ||
* @prop {function} children - Render function for the | ||
* text input view. | ||
* @prop {React Node} component - Component for the | ||
* text input view. | ||
* @prop required {string} name - The name to register the control | ||
@@ -711,4 +726,6 @@ * with, with the smartform. | ||
* | ||
* @prop required {function} children - Render function for the | ||
* text input view. | ||
* @prop {function} children - Render function for the | ||
* textarea view. | ||
* @prop {React Node} component - Component for the | ||
* textarea view. | ||
* @prop required {string} name - The name to register the control | ||
@@ -728,4 +745,6 @@ * with, with the smartform. | ||
* | ||
* @prop required {function} children - Render function for the | ||
* text input view. | ||
* @prop {function} children - Render function for the | ||
* select view. | ||
* @prop {React Node} component - Component for the | ||
* select view. | ||
* @prop required {string} name - The name to register the control | ||
@@ -745,4 +764,6 @@ * with, with the smartform. | ||
* | ||
* @prop required {function} children - Render function for the | ||
* text input view. | ||
* @prop {function} children - Render function for the | ||
* radiogroup view. | ||
* @prop {React Node} component - Component for the | ||
* radiogroup view. | ||
* @prop required {string} name - The name to register the control | ||
@@ -762,4 +783,6 @@ * with, with the smartform. | ||
* | ||
* @prop required {function} children - Render function for the | ||
* text input view. | ||
* @prop {function} children - Render function for the | ||
* checkbox view. | ||
* @prop {React Node} component - Component for the | ||
* checkbox view. | ||
* @prop required {string} name - The name to register the control | ||
@@ -779,4 +802,6 @@ * with, with the smartform. | ||
* | ||
* @prop required {function} children - Render function for the | ||
* text input view. | ||
* @prop {function} children - Render function for the | ||
* checkbox group view. | ||
* @prop {React Node} component - Component for the | ||
* checkbox group view. | ||
* @prop required {string} name - The name to register the control | ||
@@ -783,0 +808,0 @@ * with, with the smartform. |
@@ -25,15 +25,5 @@ import React, { forwardRef } from 'react'; | ||
* linkage will fail. | ||
* @prop required {function} getFieldsetProps - Prop getter function | ||
* from the smart radiogroup controller for each <input> | ||
* of the group. It is required to se the value in this | ||
* function or the component will fail. | ||
* @prop required {function} getRadioFieldsetProps - Prop getter function | ||
* from the smart radiogroup controller for the fiedset | ||
* element. | ||
* @prop {function} getErrorProps - Prop getter function | ||
* from the smart radiogroup controller for the | ||
* error message container. | ||
* @prop {function} getContentHintProps - Prop getter | ||
* function from the smart radiogroup controller | ||
* for the content hint container. | ||
* @prop {boolean} showError - A flag to indicate when the | ||
@@ -56,3 +46,2 @@ * error container should be displayed. | ||
getLabelProps = _ref.getLabelProps, | ||
getFieldsetProps = _ref.getFieldsetProps, | ||
contentHintText = _ref.contentHintText, | ||
@@ -136,4 +125,2 @@ errorText = _ref.errorText, | ||
getLabelProps: PropTypes.func.isRequired, | ||
getErrorProps: PropTypes.func, | ||
getContentHintProps: PropTypes.func, | ||
required: PropTypes.bool, | ||
@@ -140,0 +127,0 @@ contentHintText: PropTypes.string, |
@@ -50,3 +50,3 @@ var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; | ||
xmlns: 'http://www.w3.org/2000/svg', | ||
'aria-describedby': title ? this.svgTitleId : null, | ||
'aria-labelledby': title ? this.svgTitleId : null, | ||
className: className ? className : null | ||
@@ -53,0 +53,0 @@ }, props), |
@@ -5,2 +5,4 @@ 'use strict'; | ||
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; | ||
var _react = require('react'); | ||
@@ -54,2 +56,4 @@ | ||
* block heading. | ||
* @prop {string, number} headingLevel - The level of heading to | ||
* render if not used inside the Heading component. | ||
*/ | ||
@@ -72,4 +76,6 @@ var ErrorBlock = function (_Component) { | ||
headingText = _props.headingText, | ||
forwardedRef = _props.forwardedRef; | ||
forwardedRef = _props.forwardedRef, | ||
headingLevel = _props.headingLevel; | ||
var controlNameArray = Object.keys(formControls); | ||
@@ -80,11 +86,17 @@ return controlNameArray.length > 0 ? _react2.default.createElement( | ||
_react2.default.createElement( | ||
_Heading2.default.H, | ||
_Heading2.default.LevelBoundary, | ||
{ | ||
id: this.headingId, | ||
className: 'block-heading', | ||
tabIndex: '-1', | ||
ref: forwardedRef | ||
levelOverride: headingLevel ? headingLevel : null | ||
}, | ||
_react2.default.createElement('span', { className: 'icon' }), | ||
headingText | ||
_react2.default.createElement( | ||
_Heading2.default.H, | ||
{ | ||
id: this.headingId, | ||
className: 'block-heading', | ||
tabIndex: '-1', | ||
ref: forwardedRef | ||
}, | ||
_react2.default.createElement('span', { className: 'icon' }), | ||
headingText | ||
) | ||
), | ||
@@ -123,13 +135,8 @@ _react2.default.createElement( | ||
}).isRequired, | ||
headingText: _propTypes2.default.string.isRequired | ||
headingText: _propTypes2.default.string.isRequired, | ||
headingLevel: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]) | ||
} : {}; | ||
exports.default = (0, _react.forwardRef)(function (_ref, ref) { | ||
var formControls = _ref.formControls, | ||
headingText = _ref.headingText; | ||
return _react2.default.createElement(ErrorBlock, { | ||
formControls: formControls, | ||
headingText: headingText, | ||
forwardedRef: ref | ||
}); | ||
exports.default = (0, _react.forwardRef)(function (props, ref) { | ||
return _react2.default.createElement(ErrorBlock, _extends({}, props, { forwardedRef: ref })); | ||
}); | ||
module.exports = exports['default']; |
@@ -87,3 +87,3 @@ 'use strict'; | ||
'div', | ||
{ className: 'field-wrapper checkbox-wrapper' }, | ||
{ className: 'checkbox-wrapper' }, | ||
_react2.default.createElement('input', _extends({ | ||
@@ -90,0 +90,0 @@ ref: ref, |
@@ -5,2 +5,4 @@ 'use strict'; | ||
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; | ||
var _react = require('react'); | ||
@@ -53,8 +55,2 @@ | ||
* element. | ||
* @prop {function} getErrorProps - Prop getter function | ||
* from the smart checkbox group controller for the | ||
* error message container. | ||
* @prop {function} getContentHintProps - Prop getter | ||
* function from the smart checkbox group controller | ||
* for the content hint container. | ||
* @prop {boolean} showError - A flag to indicate when the | ||
@@ -79,4 +75,2 @@ * error container should be displayed. | ||
errorText = _ref.errorText, | ||
getErrorProps = _ref.getErrorProps, | ||
getContentHintProps = _ref.getContentHintProps, | ||
showError = _ref.showError, | ||
@@ -125,5 +119,6 @@ required = _ref.required, | ||
{ className: 'checkbox-wrapper' }, | ||
_react2.default.createElement('input', getCheckboxProps({ | ||
_react2.default.createElement('input', _extends({}, getCheckboxProps({ | ||
name: option, | ||
focusElement: i === 0, | ||
focusElement: i === 0 | ||
}), { | ||
ref: i === 0 ? ref : null | ||
@@ -159,4 +154,2 @@ })), | ||
getLabelProps: _propTypes2.default.func.isRequired, | ||
getErrorProps: _propTypes2.default.func, | ||
getContentHintProps: _propTypes2.default.func, | ||
required: _propTypes2.default.bool, | ||
@@ -163,0 +156,0 @@ contentHintText: _propTypes2.default.string, |
@@ -416,9 +416,19 @@ 'use strict'; | ||
required = _props4.required, | ||
registerErrors = _props4.registerErrors; | ||
registerErrors = _props4.registerErrors, | ||
component = _props4.component, | ||
deregisterControl = _props4.deregisterControl, | ||
registerControl = _props4.registerControl, | ||
setControlValue = _props4.setControlValue, | ||
getControlValue = _props4.getControlValue, | ||
setControlValidity = _props4.setControlValidity, | ||
validators = _props4.validators, | ||
rest = _objectWithoutProperties(_props4, ['children', 'type', 'getControlValidity', 'getControlErrorText', 'name', 'required', 'registerErrors', 'component', 'deregisterControl', 'registerControl', 'setControlValue', 'getControlValue', 'setControlValidity', 'validators']); | ||
return children(_extends({ | ||
var renderProps = _extends({ | ||
showError: registerErrors ? !getControlValidity(name) : false, | ||
errorText: getControlErrorText(name), | ||
required: required === true || required === 'true' | ||
}, this.buildRenderObject(type))); | ||
}, this.buildRenderObject(type)); | ||
return component ? _react2.default.createElement(component, _extends({}, renderProps, rest), children) : children && children(renderProps); | ||
}; | ||
@@ -677,3 +687,4 @@ | ||
FormController.propTypes = process.env.NODE_ENV !== "production" ? { | ||
children: _propTypes2.default.func.isRequired, | ||
children: _propTypes2.default.oneOfType([_propTypes2.default.node, _propTypes2.default.func]), | ||
component: _propTypes2.default.any, | ||
deregisterControl: _propTypes2.default.func.isRequired, | ||
@@ -706,5 +717,7 @@ registerControl: _propTypes2.default.func.isRequired, | ||
var controllerPropTypes = { | ||
children: _propTypes2.default.func.isRequired, | ||
children: _propTypes2.default.oneOfType([_propTypes2.default.node, _propTypes2.default.func]), | ||
component: _propTypes2.default.any, | ||
validators: _propTypes2.default.arrayOf(_propTypes2.default.object), | ||
name: _propTypes2.default.string.isRequired | ||
name: _propTypes2.default.string.isRequired, | ||
required: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.oneOf(['true', 'false'])]) | ||
}; | ||
@@ -716,4 +729,6 @@ | ||
* | ||
* @prop required {function} children - Render function for the | ||
* @prop {function} children - Render function for the | ||
* text input view. | ||
* @prop {React Node} component - Component for the | ||
* text input view. | ||
* @prop required {string} name - The name to register the control | ||
@@ -733,4 +748,6 @@ * with, with the smartform. | ||
* | ||
* @prop required {function} children - Render function for the | ||
* text input view. | ||
* @prop {function} children - Render function for the | ||
* textarea view. | ||
* @prop {React Node} component - Component for the | ||
* textarea view. | ||
* @prop required {string} name - The name to register the control | ||
@@ -750,4 +767,6 @@ * with, with the smartform. | ||
* | ||
* @prop required {function} children - Render function for the | ||
* text input view. | ||
* @prop {function} children - Render function for the | ||
* select view. | ||
* @prop {React Node} component - Component for the | ||
* select view. | ||
* @prop required {string} name - The name to register the control | ||
@@ -767,4 +786,6 @@ * with, with the smartform. | ||
* | ||
* @prop required {function} children - Render function for the | ||
* text input view. | ||
* @prop {function} children - Render function for the | ||
* radiogroup view. | ||
* @prop {React Node} component - Component for the | ||
* radiogroup view. | ||
* @prop required {string} name - The name to register the control | ||
@@ -784,4 +805,6 @@ * with, with the smartform. | ||
* | ||
* @prop required {function} children - Render function for the | ||
* text input view. | ||
* @prop {function} children - Render function for the | ||
* checkbox view. | ||
* @prop {React Node} component - Component for the | ||
* checkbox view. | ||
* @prop required {string} name - The name to register the control | ||
@@ -801,4 +824,6 @@ * with, with the smartform. | ||
* | ||
* @prop required {function} children - Render function for the | ||
* text input view. | ||
* @prop {function} children - Render function for the | ||
* checkbox group view. | ||
* @prop {React Node} component - Component for the | ||
* checkbox group view. | ||
* @prop required {string} name - The name to register the control | ||
@@ -805,0 +830,0 @@ * with, with the smartform. |
@@ -45,15 +45,5 @@ 'use strict'; | ||
* linkage will fail. | ||
* @prop required {function} getFieldsetProps - Prop getter function | ||
* from the smart radiogroup controller for each <input> | ||
* of the group. It is required to se the value in this | ||
* function or the component will fail. | ||
* @prop required {function} getRadioFieldsetProps - Prop getter function | ||
* from the smart radiogroup controller for the fiedset | ||
* element. | ||
* @prop {function} getErrorProps - Prop getter function | ||
* from the smart radiogroup controller for the | ||
* error message container. | ||
* @prop {function} getContentHintProps - Prop getter | ||
* function from the smart radiogroup controller | ||
* for the content hint container. | ||
* @prop {boolean} showError - A flag to indicate when the | ||
@@ -76,3 +66,2 @@ * error container should be displayed. | ||
getLabelProps = _ref.getLabelProps, | ||
getFieldsetProps = _ref.getFieldsetProps, | ||
contentHintText = _ref.contentHintText, | ||
@@ -156,4 +145,2 @@ errorText = _ref.errorText, | ||
getLabelProps: _propTypes2.default.func.isRequired, | ||
getErrorProps: _propTypes2.default.func, | ||
getContentHintProps: _propTypes2.default.func, | ||
required: _propTypes2.default.bool, | ||
@@ -160,0 +147,0 @@ contentHintText: _propTypes2.default.string, |
@@ -63,3 +63,3 @@ 'use strict'; | ||
xmlns: 'http://www.w3.org/2000/svg', | ||
'aria-describedby': title ? this.svgTitleId : null, | ||
'aria-labelledby': title ? this.svgTitleId : null, | ||
className: className ? className : null | ||
@@ -66,0 +66,0 @@ }, props), |
{ | ||
"name": "@tenon-io/tenon-ui", | ||
"version": "1.0.0-beta.6", | ||
"description": "Tenon ui components library", | ||
"version": "1.0.0", | ||
"description": "Tenon-ui components library", | ||
"contributors": [ | ||
@@ -17,3 +17,3 @@ "Karl Groves <karl@tenon.io>", | ||
}, | ||
"license": "UNLICENSED", | ||
"license": "MIT", | ||
"main": "lib/index.js", | ||
@@ -33,3 +33,3 @@ "module": "es/index.js", | ||
"clean": "nwb clean-module && nwb clean-demo", | ||
"clean-deploy":"rimraf {es,lib}/modules/**/{__tests__,__mocks__}", | ||
"clean-deploy": "rimraf {es,lib}/modules/**/{__tests__,__mocks__}", | ||
"start": "npm-run-all -p watch-css start-js", | ||
@@ -41,3 +41,4 @@ "start-js": "nwb serve-react-demo", | ||
"format-demo": "prettier --write demo/**/*.js !demo/dist/**", | ||
"format": "npm-run-all format-src format-demo", | ||
"format-www": "prettier --write www/**/*.js !www/.cache/** !www/public/**", | ||
"format": "npm-run-all format-src format-demo format-www", | ||
"lint": "eslint *.js src", | ||
@@ -58,3 +59,3 @@ "lint-demo": "eslint *.js demo" | ||
"@reach/router": "1.1.1", | ||
"@tenon-io/tenon-codeblock": "1.0.0-alpha.2", | ||
"@tenon-io/tenon-codeblock": "1.0.0-RC.2", | ||
"babel-core": "6.26.0", | ||
@@ -80,6 +81,6 @@ "babel-eslint": "7.2.3", | ||
"prop-types": "15.6.2", | ||
"react": "16.5.1", | ||
"react-dom": "16.5.1", | ||
"react-i18next": "^7.10.1", | ||
"react-loadable": "^5.5.0", | ||
"react": "16.6.0", | ||
"react-dom": "16.6.0", | ||
"react-i18next": "7.10.1", | ||
"react-loadable": "5.5.0", | ||
"react-testing-library": "4.1.5", | ||
@@ -86,0 +87,0 @@ "rimraf": "^2.6.2" |
@@ -1,20 +0,30 @@ | ||
# tenon-ui | ||
<p align="center"> | ||
<a href="https://ui.tenon.io/"> | ||
<img alt="Tenon-UI" src="./logo.png" style="width: 11em;"> | ||
</a> | ||
</p> | ||
This is an accessible ui component library. | ||
# Tenon-UI | ||
`npm install @tenon-io/ui` | ||
<p> | ||
<a href="https://www.npmjs.com/package/@tenon-io/tenon-ui"><img src="https://img.shields.io/npm/v/@tenon-io/tenon-ui.svg?style=flat-square"></a> | ||
<a href="https://www.npmjs.com/package/@tenon-io/tenon-ui"><img src="https://img.shields.io/npm/dm/@tenon-io/tenon-ui.svg?style=flat-square"></a> | ||
</p> | ||
or | ||
This is the home of [https://www.tenon.io](Tenon.io)'s the accessible React component library. | ||
`yarn add @tenon-io/ui` | ||
## Documentation | ||
##Usage | ||
For complete documentation and usage guides please visit the [Tenon-UI documentation site](https://tenon-ui.info/). | ||
Please refer to the style guide demo application in the code repository. After cloning the | ||
repository and installing the dependencies it can be started with: | ||
## Contributing | ||
`npm run start` | ||
We welcome any ideas and suggestion. Please let us know if you have issues or suggestions. | ||
or | ||
## Licensing | ||
`yarn start` | ||
MIT License Copyright (c) 2018-present, Tenon.io | ||
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Misc. License Issues
License(Experimental) A package's licensing information has fine-grained problems.
Found 1 instance in 1 package
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
382749
0
9297
1
31