Skip to content
This repository was archived by the owner on Sep 20, 2024. It is now read-only.

Dev/use extend #72

Closed
wants to merge 47 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
d236321
refactor(pseudobox): use extend for composition
codebender828 Mar 24, 2020
c48cddc
refactor(alert): use extend for composition
codebender828 Mar 24, 2020
29722d6
refactor(alertdialog): use extend for composition
codebender828 Mar 24, 2020
4359786
refactor(aspectratiobox): use extend for composition
codebender828 Mar 24, 2020
c173b4d
refactor(avatar): use extend for composition
codebender828 Mar 24, 2020
31443fe
refactor(avatargroup): useextend for composition and fix prop forwarding
codebender828 Mar 24, 2020
50f8e3c
refactor(breadcrumb): use extend for composition
codebender828 Mar 24, 2020
a6a04c9
refactor(button): use extend for composition
codebender828 Mar 24, 2020
05a0568
refactor(buttongrou): use extend for composition
codebender828 Mar 24, 2020
0776861
refactor(checkbox): use extend for composition
codebender828 Mar 24, 2020
b7bcbe0
refactor(checkboxgroup): use extend for composition
codebender828 Mar 24, 2020
1b6229b
refactor(circularprogress): use extend for composition
codebender828 Mar 24, 2020
fa945c9
refactor(closebutton): use extend for composition
codebender828 Mar 24, 2020
94a622e
refactor(code): use extend for composition
codebender828 Mar 24, 2020
66c1f67
refactor(drawer): use extend for composition
codebender828 Mar 24, 2020
e43fd50
refactor(flex): use extend for composition
codebender828 Mar 24, 2020
3767222
refactor(formcontrol): use extend for composition
codebender828 Mar 24, 2020
14e59fa
refactor(formhelpertext): use extend for composition
codebender828 Mar 24, 2020
e1c21f6
refactor(formlabel): use extend for composition
codebender828 Mar 24, 2020
632a6ce
refactor(icon): use extend for composition
codebender828 Mar 24, 2020
8aa14aa
refactor(iconbutton): use extend for composition
codebender828 Mar 24, 2020
e418e46
refactor(image): use extend for composition
codebender828 Mar 24, 2020
dede4df
refactor(list): use extend for composition
codebender828 Mar 24, 2020
2af4725
refactor(listitems): use extend for composition
codebender828 Mar 24, 2020
069cb10
refactor(menu): use extend for composition
codebender828 Mar 24, 2020
a2adc95
refactor(modal): use extend for composition
codebender828 Mar 24, 2020
e8229bf
refactor(numberinput): use extend for composition
codebender828 Mar 24, 2020
3282eea
refactor(popover): use extend for composition
codebender828 Mar 24, 2020
0e04171
improvement(popover): debug close on clickaway
codebender828 Mar 24, 2020
b105a9a
refactor(progress): use extend for composition
codebender828 Mar 24, 2020
2c862e8
refactor(radio): use extend for composition
codebender828 Mar 24, 2020
50b5e6e
refactor(radiogroup): use extend for composition
codebender828 Mar 24, 2020
6039b2c
refactor(input): use extend for composition
codebender828 Mar 24, 2020
d953dc6
refactor(slideer): use extend for composition
codebender828 Mar 24, 2020
82191f9
refactor(switch): use extend for composition
codebender828 Mar 24, 2020
9f5e2b9
refactor(tabs): use extend for composition
codebender828 Mar 24, 2020
01e7054
refactor(tags text): use extend for composition
codebender828 Mar 24, 2020
351d989
refactor(textarea): use extend for composition
codebender828 Mar 24, 2020
9884508
refactor(toast): use extend for composition
codebender828 Mar 24, 2020
ff1881e
refactor(tooltip): use extend for composition
codebender828 Mar 24, 2020
e6c5987
refactor(popper): use extend for composition
codebender828 Mar 24, 2020
f3aaee9
test: update snapshots
codebender828 Mar 24, 2020
d366448
chore: linting fixes
codebender828 Mar 24, 2020
1ace102
fix(stat): displaying colors
codebender828 Mar 24, 2020
a0f6f73
test: update stat snapshot
codebender828 Mar 24, 2020
98b0197
chore: remove attrs from stories
codebender828 Mar 24, 2020
0de7d4e
Merge branch 'master' of https://github.com/chakra-ui/chakra-ui-vue i…
codebender828 Mar 24, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 5 additions & 7 deletions packages/chakra-ui-core/src/Accordion/Accordion.js
Original file line number Diff line number Diff line change
@@ -1,16 +1,14 @@
import { baseProps } from '../config'
import Box from '../Box'
import { forwardProps, cloneVNodes, useId, isDef } from '../utils'
import PseudoBox from '../PseudoBox'
import styleProps from '../config/props'
import Collapse from '../Collapse'
import Icon from '../Icon'
import { iconProps } from '../Icon/icon.props'

const Accordion = {
name: 'Accordion',
extends: Box,
props: {
...baseProps,
allowMultiple: Boolean,
allowToggle: Boolean,
index: {
Expand Down Expand Up @@ -117,8 +115,8 @@ const Accordion = {

const AccordionItem = {
name: 'AccordionItem',
extends: PseudoBox,
props: {
...styleProps,
isOpen: {
type: Boolean,
default: null
Expand Down Expand Up @@ -204,7 +202,7 @@ const AccordionItem = {
const AccordionHeader = {
name: 'AccordionHeader',
inject: ['$AccordionContext'],
props: styleProps,
extends: PseudoBox,
computed: {
context () {
return this.$AccordionContext()
Expand Down Expand Up @@ -248,7 +246,7 @@ const AccordionHeader = {
const AccordionPanel = {
name: 'AccordionPanel',
inject: ['$AccordionContext'],
props: baseProps,
extends: Box,
computed: {
context () {
return this.$AccordionContext()
Expand Down Expand Up @@ -279,8 +277,8 @@ const AccordionPanel = {
const AccordionIcon = {
name: 'AccordionIcon',
inject: ['$AccordionContext'],
extends: Box,
props: {
...baseProps,
...iconProps
},
computed: {
Expand Down
17 changes: 6 additions & 11 deletions packages/chakra-ui-core/src/Alert/Alert.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import Box from '../Box'
import Icon from '../Icon'
import { baseProps } from '../config/props'
import { forwardProps } from '../utils'
import useAlertStyle, { useAlertIconStyle } from './alert.styles'

Expand All @@ -14,6 +13,7 @@ export const statuses = {
const Alert = {
name: 'Alert',
inject: ['$theme', '$colorMode'],
extends: Box,
provide () {
return {
_status: this.status,
Expand All @@ -33,8 +33,7 @@ const Alert = {
variant: {
type: [String, Array],
default: 'subtle'
},
...baseProps
}
},
render (h) {
const alertStyles = useAlertStyle({
Expand All @@ -60,12 +59,12 @@ const Alert = {
const AlertIcon = {
name: 'AlertIcon',
inject: ['_status', '_variant', '$colorMode', '$theme'],
extends: Box,
props: {
size: {
default: 5
},
name: String,
...baseProps
name: String
},
computed: {
colorMode () {
Expand Down Expand Up @@ -96,9 +95,7 @@ const AlertIcon = {

const AlertTitle = {
name: 'AlertTitle',
props: {
...baseProps
},
extends: Box,
render (h) {
return h(Box, {
props: {
Expand All @@ -112,9 +109,7 @@ const AlertTitle = {

const AlertDescription = {
name: 'AlertDescription',
props: {
...baseProps
},
extends: Box,
render (h) {
return h(Box, { props: forwardProps(this.$props) }, this.$slots.default)
}
Expand Down
4 changes: 2 additions & 2 deletions packages/chakra-ui-core/src/AspectRatioBox/AspectRatioBox.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import styleProps from '../config/props'

import PseudoBox from '../PseudoBox'
import { cloneVNode, forwardProps } from '../utils'

const AspectRatioBox = {
name: 'AspectRatioBox',
extends: PseudoBox,
props: {
...styleProps,
ratio: {
type: Number,
default: 4 / 3
Expand Down
17 changes: 8 additions & 9 deletions packages/chakra-ui-core/src/Avatar/Avatar.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import { baseProps } from '../config/props'
import { forwardProps, canUseDOM } from '../utils/'
import useAvatarStyles, { avatarSizes } from './avatar.styles'
import Box from '../Box'
Expand All @@ -24,9 +23,9 @@ const getInitials = (name) => {
export const AvatarBadge = {
name: 'AvatarBadge',
inject: ['$theme', '$colorMode'],
extends: Box,
props: {
size: [String, Number, Array],
...baseProps
size: [String, Number, Array]
},
computed: {
theme () {
Expand Down Expand Up @@ -63,10 +62,10 @@ export const AvatarBadge = {
*/
const AvatarName = {
name: 'AvatarName',
extends: Box,
props: {
name: [String, Array],
size: [String, Array],
...baseProps
size: [String, Array]
},
render (h) {
return h(Box, {
Expand All @@ -90,9 +89,9 @@ const AvatarName = {
*/
const DefaultAvatar = {
name: 'DefaultAvatar',
extends: Box,
props: {
size: [String, Number, Array],
...baseProps
size: [String, Number, Array]
},
render (h) {
return h(Box, {
Expand Down Expand Up @@ -122,6 +121,7 @@ const DefaultAvatar = {
export const Avatar = {
name: 'Avatar',
inject: ['$theme', '$colorMode'],
extends: Box,
computed: {
theme () {
return this.$theme()
Expand All @@ -141,8 +141,7 @@ export const Avatar = {
},
name: [String, Array],
src: [String, Array],
borderColor: [String],
...baseProps
borderColor: [String]
},
data () {
return {
Expand Down
20 changes: 11 additions & 9 deletions packages/chakra-ui-core/src/AvatarGroup/AvatarGroup.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import Flex from '../Flex'
import { avatarSizes } from '../Avatar/avatar.styles'
import { baseProps } from '../config/props'
import { forwardProps } from '../utils'

/**
Expand All @@ -9,10 +8,10 @@ import { forwardProps } from '../utils'
const MoreAvatarLabel = {
name: 'MoreAvatarLabel',
inject: ['$theme', '$colorMode'],
extends: Flex,
props: {
size: [String, Array],
label: String,
...baseProps
label: String
},
computed: {
theme () {
Expand Down Expand Up @@ -51,8 +50,9 @@ const MoreAvatarLabel = {

const AvatarGroup = {
name: 'AvatarGroup',
extends: Flex,
props: {
groupSize: {
size: {
type: [Number, String, Array],
default: 'md'
},
Expand All @@ -61,8 +61,7 @@ const AvatarGroup = {
spacing: {
type: [Number, String, Array],
default: -3
},
...baseProps
}
},
render (h) {
// Get the number of slot nodes inside AvatarGroup
Expand All @@ -77,7 +76,7 @@ const AvatarGroup = {
// Change VNode component options
const { propsData } = node.componentOptions
propsData['ml'] = isFirstAvatar ? 0 : this.spacing
propsData['size'] = this.groupSize
propsData['size'] = this.size
propsData['showBorder'] = true
propsData['borderColor'] = this.borderColor || propsData['borderColor']
propsData['zIndex'] = count - index
Expand All @@ -87,19 +86,22 @@ const AvatarGroup = {
if (max && index === max) {
return h(MoreAvatarLabel, {
props: {
size: this.groupSize,
size: this.size,
ml: this.spacing,
label: `+${count - max}`
}
})
}
})

// Drop size, borderColor, max, spacing props from final rendered AvatarGroup props for consistency.
const { size, borderColor, max: _max, spacing, ...rest } = this.$props

return h(Flex, {
props: {
alignItems: 'center',
zIndex: 0,
...forwardProps(this.$props)
...forwardProps(rest)
}
}, clones)
}
Expand Down
5 changes: 2 additions & 3 deletions packages/chakra-ui-core/src/Badge/Badge.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import Box from '../Box'
import { forwardProps } from '../utils'
import { baseProps } from '../config/props'
import useBadgeStyles from './badge.styles'

export default {
name: 'Badge',
inject: ['$theme', '$colorMode'],
extends: Box,
props: {
variant: {
type: String,
Expand All @@ -14,8 +14,7 @@ export default {
variantColor: {
type: String,
default: 'gray'
},
...baseProps
}
},
computed: {
colorMode () {
Expand Down
7 changes: 3 additions & 4 deletions packages/chakra-ui-core/src/Button/Button.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import styleProps from '../config/props'
import { buttonProps } from './button.props'
import { forwardProps } from '../utils'
import createButtonStyles, { setIconSizes } from './button.styles'
Expand All @@ -12,14 +11,14 @@ import Icon from '../Icon'
*/
const ButtonIcon = {
name: 'ButtonIcon',
extends: Box,
props: {
icon: {
type: [String, Object]
},
size: {
type: [String, Number]
},
...styleProps
}
},
render (h) {
if (typeof this.icon === 'string') {
Expand Down Expand Up @@ -54,10 +53,10 @@ const ButtonIcon = {
*/
export default {
name: 'Button',
extends: PseudoBox,
inject: ['$theme', '$colorMode'],
props: {
...buttonProps,
...styleProps,
to: [String, Object]
},
computed: {
Expand Down
2 changes: 1 addition & 1 deletion packages/chakra-ui-core/src/Button/Button.stories.js
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ storiesOf('UI | Button', module)
this.loading = false
this.buttonText = 'Success'
this.variantColor = 'green'
}, 1500)
}, 60000)
}
}
}))
Expand Down
2 changes: 1 addition & 1 deletion packages/chakra-ui-core/src/Button/button.props.js
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ export const buttonProps = {
type: String,
default: null
},
rounded: {
isRounded: {
type: Boolean,
default: false
},
Expand Down
5 changes: 2 additions & 3 deletions packages/chakra-ui-core/src/ButtonGroup/ButtonGroup.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import Box from '../Box'
import { baseProps } from '../config/props'
import { forwardProps } from '../utils'

const ButtonGroup = {
name: 'ButtonGroup',
extends: Box,
props: {
size: [String, Array],
variantColor: [String, Array],
Expand All @@ -12,8 +12,7 @@ const ButtonGroup = {
spacing: {
type: [Number, Array, String],
default: 2
},
...baseProps
}
},
render (h) {
const children = this.$slots.default.filter(e => e.tag)
Expand Down
7 changes: 3 additions & 4 deletions packages/chakra-ui-core/src/Checkbox/Checkbox.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import { StringNumber, StringArray } from '../config/props/props.types'
import { baseProps } from '../config'
import { useVariantColorWarning, useId } from '../utils'
import { useVariantColorWarning, useId, forwardProps } from '../utils'
import useCheckboxStyle from './checkbox.styles'
import Box from '../Box'
import VisuallyHidden from '../VisuallyHidden'
Expand All @@ -10,12 +9,12 @@ import Icon from '../Icon'
const Checkbox = {
name: 'Checkbox',
inject: ['$theme', '$colorMode'],
extends: Box,
model: {
prop: 'isChecked',
event: 'change'
},
props: {
...baseProps,
id: String,
name: String,
value: [String, Boolean],
Expand Down Expand Up @@ -77,7 +76,7 @@ const Checkbox = {

return h(Box, {
props: {
...this.$props,
...forwardProps(this.$props),
as: 'label',
display: 'inline-flex',
verticalAlign: 'top',
Expand Down
Loading