Compare commits

..

23 Commits

Author SHA1 Message Date
031971b859 v0.8.1 2021-04-01 23:34:02 +02:00
1488386e1d Merge branch 'master' of github.com:dzeiocom/components 2021-04-01 20:43:51 +02:00
26c2c50f23 v0.8.0 2021-04-01 10:19:52 +02:00
c591c2f0a8 Made Loader Stable
Signed-off-by: Florian BOUILLON <florian.bouillon@delta-wings.net>
2021-04-01 10:19:32 +02:00
7fe816c997 v0.7.6 2021-04-01 10:09:59 +02:00
7e28baf2aa Fixed Text
Signed-off-by: Florian BOUILLON <florian.bouillon@delta-wings.net>
2021-04-01 10:09:26 +02:00
b19992b57c v0.7.5 2021-04-01 09:57:32 +02:00
0bb84f9946 Fixed rollup config
Signed-off-by: Florian BOUILLON <florian.bouillon@delta-wings.net>
2021-04-01 09:57:08 +02:00
8cddeab594 v0.7.4 2021-03-31 14:40:22 +02:00
68939d8390 Fixed External link
Signed-off-by: Florian BOUILLON <florian.bouillon@delta-wings.net>
2021-03-31 14:38:33 +02:00
8186284ded GradientBackground is now stable
Signed-off-by: Florian BOUILLON <florian.bouillon@delta-wings.net>
2021-03-31 13:51:04 +02:00
e173bd2a37 Changed generated classes names to be shorter
Signed-off-by: Florian BOUILLON <florian.bouillon@delta-wings.net>
2021-03-31 10:48:48 +02:00
754da58a68 v0.7.3 2021-03-31 10:41:12 +02:00
3b314d5307 Fixed missing global file
Signed-off-by: Florian BOUILLON <florian.bouillon@delta-wings.net>
2021-03-31 10:40:45 +02:00
4a55f00ff0 v0.7.2 2021-03-31 10:17:23 +02:00
d30ae95a0d Fixed everything :D
Signed-off-by: Florian BOUILLON <florian.bouillon@delta-wings.net>
2021-03-31 10:16:46 +02:00
264e9a4cad v0.7.1 2021-03-31 09:55:47 +02:00
6a8fb50b0e Made Logo optionnal
Signed-off-by: Florian BOUILLON <florian.bouillon@delta-wings.net>
2021-03-31 09:54:20 +02:00
8c64a57a16 Merge branch 'master' of github.com:dzeiocom/components
Signed-off-by: Avior <florian.bouillon@delta-wings.net>
2021-03-30 21:33:54 +02:00
c1e40c6789 v0.5.4 2021-03-30 01:48:12 +02:00
bd0787d0ec Fixed Problems
Signed-off-by: Avior <florian.bouillon@delta-wings.net>
2021-03-30 01:47:40 +02:00
5f51088ab0 v0.5.3 2021-03-29 18:49:45 +02:00
d7a09a4dcd Finished Work On Navbar
Signed-off-by: Avior <florian.bouillon@delta-wings.net>
2021-03-29 18:49:23 +02:00
13 changed files with 65 additions and 50 deletions

View File

@ -1,8 +1,8 @@
{ {
"name": "@dzeio/components", "name": "@dzeio/components",
"version": "0.7.0", "version": "0.8.1",
"license": "MIT", "license": "MIT",
"main": "./index.mjs", "main": "./index.js",
"types": "./types/index.d.ts", "types": "./types/index.d.ts",
"devDependencies": { "devDependencies": {
"@babel/core": "^7.12.16", "@babel/core": "^7.12.16",
@ -36,7 +36,7 @@
"typescript": "^4.2.3" "typescript": "^4.2.3"
}, },
"scripts": { "scripts": {
"dev": "rm -rf src/dzeio/**/*.js && start-storybook -p 6006", "dev": "rm -rf src/dzeio/**/*.js && start-storybook -s ./.storybook/public -p 6006",
"build": "rollup --config", "build": "rollup --config",
"prepublishOnly": "yarn build", "prepublishOnly": "yarn build",
"postinstall": "rollup --config" "postinstall": "rollup --config"

View File

@ -12,14 +12,16 @@ export default [
url: false, url: false,
autoModules: true, autoModules: true,
mode: 'extract', mode: 'extract',
modules: {
generateScopedName: '[local][hash:5]'
}
}), }),
typescript({useTsconfigDeclarationDir: true}), // so Rollup can convert TypeScript to JavaScript typescript({useTsconfigDeclarationDir: true}), // so Rollup can convert TypeScript to JavaScript
], ],
output: [ output: [
{ {
file: pkg.main, file: pkg.main,
format: 'es', format: 'cjs',
assetFileNames: 'style.css' assetFileNames: 'style.css'
} }
] ]

View File

@ -1,34 +1,29 @@
@import "../config" @import "../config"
$transparent = 75% $transparent = 15%
.back .back
transition all $transition transition all $transition
background linear-gradient(to left, $default, transparentify($default, $transparent)) background $mainGradient
.primary &.fullscreen
$color = $primary min-height 100vh
background linear-gradient(to left, $color, transparentify($color, $transparent))
.secondary
$color = $secondary
background linear-gradient(to left, $color, transparentify($color, $transparent))
.info .info
$color = $info $color = $info
background linear-gradient(to left, $color, transparentify($color, $transparent)) background linear-gradient(to left, $color, lighten($color, $transparent))
.success .success
$color = $success $color = $success
background linear-gradient(to left, $color, transparentify($color, $transparent)) background linear-gradient(to left, $color, lighten($color, $transparent))
.danger .danger
$color = $danger $color = $danger
background linear-gradient(to left, $color, transparentify($color, $transparent)) background linear-gradient(to left, $color, lighten($color, $transparent))
.warning .warning
$color = $warning $color = $warning
background linear-gradient(to left, $color, transparentify($color, $transparent)) background linear-gradient(to left, $color, lighten($color, $transparent))
@media (prefers-color-scheme dark) @media (prefers-color-scheme dark)
.back .back

View File

@ -8,12 +8,18 @@ interface Props {
color?: ColorType color?: ColorType
className?: string className?: string
children: React.ReactNode children: React.ReactNode
fullscreen?: boolean
} }
/**
* Make the background a linear-gradient
*
* @version 1.0.0
*/
export default class GradientBackground extends React.Component<Props> { export default class GradientBackground extends React.Component<Props> {
public render = () => ( public render = () => (
<div className={buildClassName([css.back], [css[this.props.color as string], this.props.color], [this.props.className])}> <div className={buildClassName(css.back, [css[this.props.color as string], this.props.color], this.props.className)}>
{this.props.children} {this.props.children}
</div> </div>
) )

View File

@ -24,7 +24,7 @@ interface Props {
export default class Link extends React.Component<Props> { export default class Link extends React.Component<Props> {
public render() { public render() {
const external = this.props.external ?? !this.props.href.startsWith('/') const external = this.props.external ?? this.props.href.startsWith('http')
if (external) { if (external) {
// external link // external link
return ( return (

View File

@ -6,6 +6,7 @@
width 100% width 100%
height 7px height 7px
pointer-events none pointer-events none
z-index 200
top 0 top 0
&.hide &.hide

View File

@ -4,9 +4,22 @@ import { buildClassName } from '../Util'
import css from './Loader.module.styl' import css from './Loader.module.styl'
interface Props { interface Props {
/**
* The new Percentage (if you calculate it yourself)
*/
percent?: number percent?: number
/**
* Auto random loader
*/
auto?: { auto?: {
/**
* the minimum and maximum interval between two increment
*/
interval: [number, number] interval: [number, number]
/**
* the minimum and maximum incrementation (MUST be an integer)
*/
increment: [number, number] increment: [number, number]
} }
} }
@ -15,6 +28,11 @@ interface State {
percent?: number percent?: number
} }
/**
* Display a simple loading animation at the top of the page
*
* @version 1.0.0
*/
export default class Loader extends React.Component<Props, State> { export default class Loader extends React.Component<Props, State> {
public state: State = {} public state: State = {}

View File

@ -216,9 +216,7 @@
margin 0 margin 0
padding 0 padding 0
.userMenu .userMenu a
// padding-bottom 16px
a
padding 16px 0 padding 16px 0

View File

@ -21,7 +21,7 @@ interface Props {
/** /**
* Logo to display * Logo to display
*/ */
logo: ImageProps & {height: number, width: number} logo?: ImageProps & {height: number, width: number}
/** /**
* Login URL * Login URL
*/ */
@ -68,7 +68,7 @@ interface Props {
name: string name: string
}> }>
/** /**
* Internal Usem don't use it ! * Internal Use don't use it !
*/ */
mobileMenu?: () => void mobileMenu?: () => void
} }
@ -82,7 +82,7 @@ interface State {
/** /**
* Navbar/Sidebar Component * Navbar/Sidebar Component
* @version 1.0.0 * @version 1.0.1
*/ */
export default class Navbar extends React.Component<Props, State> { export default class Navbar extends React.Component<Props, State> {
@ -164,11 +164,13 @@ export default class Navbar extends React.Component<Props, State> {
<> <>
<nav className={buildClassName(css[this.getType()], [css.short, this.state.short && !this.props.mobileMenu], [css.mobile, this.props.mobileMenu])}> <nav className={buildClassName(css[this.getType()], [css.short, this.state.short && !this.props.mobileMenu], [css.mobile, this.props.mobileMenu])}>
<Row nowrap className={css.header} align="center"> <Row nowrap className={css.header} align="center">
{this.props.logo && (
<Col className={css.imgContainer}> <Col className={css.imgContainer}>
<Link href="/"> <Link href="/">
<Image {...this.props.logo} height={34} width={this.props.logo.width*34/this.props.logo.height} /> <Image {...this.props.logo} height={34} width={this.props.logo.width*34/this.props.logo.height} />
</Link> </Link>
</Col> </Col>
)}
{this.getType() === 'sidebar' && ( {this.getType() === 'sidebar' && (
<Col nogrow><Text><div onClick={this.onSidebarButton}> <Col nogrow><Text><div onClick={this.onSidebarButton}>
{this.state.short ? ( {this.state.short ? (

View File

@ -3,14 +3,12 @@
.row .row
display flex display flex
flex-wrap wrap flex-wrap wrap
&:not(.nomargin)
margin (0 - $gapSize) 0 0
padding 0 $gapSize * 2 0 $gapSize
.row:not(.nomargin)
padding 0
margin (0 - $gapSize) 0 0 (0 - $gapSize) margin (0 - $gapSize) 0 0 (0 - $gapSize)
padding $gapSize
&.nomargin
.row
padding 0
.nowrap .nowrap
flex-wrap nowrap flex-wrap nowrap

View File

@ -12,7 +12,6 @@ interface Props {
export default class Text extends React.Component<Props> { export default class Text extends React.Component<Props> {
public render() { public render() {
const classes = buildClassName( const classes = buildClassName(
css.text, css.text,
@ -23,16 +22,10 @@ export default class Text extends React.Component<Props> {
this.props.className this.props.className
) )
switch (this.props.type || 'p') { if (this.props.type === 'em') {
case 'h1': return (<h1 className={classes}>{this.props.children}</h1>) return (<p className={classes}><em>{this.props.children}</em></p>)
case 'h2': return (<h2 className={classes}>{this.props.children}</h2>) }
case 'h3': return (<h3 className={classes}>{this.props.children}</h3>)
case 'h4': return (<h4 className={classes}>{this.props.children}</h4>) return React.createElement(this.props.type || 'p', {className: classes, children: this.props.children})
case 'h5': return (<h5 className={classes}>{this.props.children}</h5>)
case 'h6': return (<h6 className={classes}>{this.props.children}</h6>)
case 'em': return (<p className={classes}><em>{this.props.children}</em></p>)
case 'span': return (<span className={classes}>{this.props.children}</span>)
default: return (<p className={classes}>{this.props.children}</p>)
}
} }
} }

View File

@ -1,6 +1,6 @@
import { SVGAttributes } from 'react' import { SVGAttributes } from 'react'
export type ColorType = 'primary' | 'info' | 'success' | 'error' | 'warning' export type ColorType = 'info' | 'success' | 'error' | 'warning'
export interface IconProps extends SVGAttributes<SVGElement> { export interface IconProps extends SVGAttributes<SVGElement> {
color?: string color?: string

View File

@ -4,6 +4,8 @@
* @summary DZEIO Component Library * @summary DZEIO Component Library
*/ */
import './dzeio/general.styl'
import Box from './dzeio/Box' import Box from './dzeio/Box'
import Button from './dzeio/Button' import Button from './dzeio/Button'
import Checkbox from './dzeio/Checkbox' import Checkbox from './dzeio/Checkbox'