Skip to content

Commit 58de42c

Browse files
committed
chore: setup default values
1 parent a85e005 commit 58de42c

File tree

9 files changed

+378
-143
lines changed

9 files changed

+378
-143
lines changed

packages/layout/src/align.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,20 @@ import { defineComponent } from 'sciux-laplace'
55
export const AlignType = type(`'left' | 'center' | 'right' | 'top' | 'bottom' | 'horizontal' | 'start' | 'end'`)
66
const T = type({
77
type: AlignType,
8-
}).partial()
8+
})
99

1010
export default defineComponent<'align', typeof T.infer>(
1111
(attrs, _context) => {
1212
return {
1313
name: 'align',
1414
attrs: T,
15+
defaults: {
16+
type: 'start',
17+
},
1518
setup: (children) => {
1619
const element = document.createElement('div')
1720
element.style.display = 'flex'
18-
element.style.alignItems = toValue(attrs.type ?? 'start') as string
21+
element.style.alignItems = toValue(attrs.type)
1922
element.append(...children())
2023
return element
2124
},

packages/layout/src/block.ts

Lines changed: 25 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -16,24 +16,38 @@ export const BlockType = type({
1616
'padding-bottom': 'string | number',
1717
'padding-left': 'string | number',
1818
'align': AlignType,
19-
}).partial()
19+
})
2020

2121
export default defineComponent<'block', typeof BlockType.infer>((attrs, _context) => {
2222
return {
2323
name: 'block',
2424
attrs: BlockType,
25+
defaults: {
26+
margin: '0',
27+
marginTop: '0',
28+
marginRight: '0',
29+
marginBottom: '0',
30+
marginLeft: '0',
31+
padding: '0',
32+
paddingTop: '0',
33+
paddingRight: '0',
34+
paddingBottom: '0',
35+
paddingLeft: '0',
36+
align: 'start',
37+
},
2538
setup: (children) => {
2639
const element = document.createElement('div')
27-
element.style.margin = size(toValue(attrs.margin ?? '0') as string)
28-
element.style.marginTop = size(toValue(attrs.margin ?? '0') as string)
29-
element.style.marginRight = size(toValue(attrs.margin ?? '0') as string)
30-
element.style.marginBottom = size(toValue(attrs.margin ?? '0') as string)
31-
element.style.marginLeft = size(toValue(attrs.margin ?? '0') as string)
32-
element.style.padding = size(toValue(attrs.padding ?? '0') as string)
33-
element.style.paddingTop = size(toValue(attrs.padding ?? '0') as string)
34-
element.style.paddingRight = size(toValue(attrs.padding ?? '0') as string)
35-
element.style.paddingBottom = size(toValue(attrs.padding ?? '0') as string)
36-
element.style.paddingLeft = size(toValue(attrs.padding ?? '0') as string)
40+
element.style.margin = size(toValue(attrs.margin))
41+
element.style.marginTop = size(toValue(attrs['margin-top']))
42+
element.style.marginRight = size(toValue(attrs['margin-right']))
43+
element.style.marginBottom = size(toValue(attrs['margin-bottom']))
44+
element.style.marginLeft = size(toValue(attrs['margin-left']))
45+
element.style.padding = size(toValue(attrs.padding))
46+
element.style.paddingTop = size(toValue(attrs['padding-top']))
47+
element.style.paddingRight = size(toValue(attrs['padding-right']))
48+
element.style.paddingBottom = size(toValue(attrs['padding-bottom']))
49+
element.style.paddingLeft = size(toValue(attrs['padding-left']))
50+
element.style.alignItems = toValue(attrs.align)
3751
element.append(...children())
3852
return element
3953
},

packages/layout/src/flexbox.ts

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,14 @@ import { size } from './utils/size'
88
const Position = type(`'start' | 'end' | 'center'`)
99
export const FlexboxType = type({
1010
direction: `'row' | 'column'`,
11-
justify: Position,
12-
align: Position,
13-
gap: `string | number`,
11+
justify: Position.optional(),
12+
align: Position.optional(),
13+
gap: type(`string | number`).optional(),
1414
wrap: `'nowrap' | 'wrap' | 'wrap-reverse'`,
1515
grow: `number`,
1616
shrink: `number`,
17-
basis: `string | number`,
18-
}).partial().and(BlockType)
17+
basis: type(`string | number`).optional(),
18+
}).and(BlockType)
1919

2020
export default defineComponent<'flexbox', typeof FlexboxType.infer, { direction: Ref<'row' | 'column'> }>((attrs, context) => {
2121
const extend = block(attrs, context)
@@ -25,6 +25,12 @@ export default defineComponent<'flexbox', typeof FlexboxType.infer, { direction:
2525
return {
2626
name: 'flexbox',
2727
attrs: FlexboxType,
28+
defaults: {
29+
direction: 'row',
30+
wrap: 'nowrap',
31+
grow: 1,
32+
shrink: 0,
33+
},
2834
setup: (children) => {
2935
const element = extend.setup!(children) as HTMLDivElement
3036

@@ -34,15 +40,15 @@ export default defineComponent<'flexbox', typeof FlexboxType.infer, { direction:
3440
element.style.width = '100%'
3541
if (selfDirection === 'column')
3642
element.style.height = '100%'
37-
element.style.flexDirection = toValue(attrs.direction ?? 'row') as string
38-
direction.value = toValue(attrs.direction ?? 'row') as string
39-
element.style.justifyContent = toValue(attrs.justify ?? 'auto') as string
40-
element.style.alignItems = toValue(attrs.align ?? 'auto') as string
41-
element.style.gap = size(toValue(attrs.gap ?? 'auto') as string)
42-
element.style.flexWrap = toValue(attrs.wrap ?? 'nowrap') as string
43+
element.style.flexDirection = toValue(attrs.direction)
44+
direction.value = toValue(attrs.direction)
45+
element.style.justifyContent = toValue(attrs.justify ?? 'auto')!
46+
element.style.alignItems = toValue(attrs.align ?? 'auto')!
47+
element.style.gap = size(toValue(attrs.gap) ?? 'auto')
48+
element.style.flexWrap = toValue(attrs.wrap)
4349
element.style.flexGrow = (toValue(attrs.grow) ?? 1).toString()
4450
element.style.flexShrink = (toValue(attrs.shrink) ?? 0).toString()
45-
element.style.flexBasis = size(toValue(attrs.basis ?? 'auto') as string)
51+
element.style.flexBasis = size(toValue(attrs.basis) ?? 'auto')
4652
return element
4753
},
4854
provides: {

packages/layout/src/grid.ts

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,22 +12,31 @@ const T = type({
1212
'row-gutter': `string | number`,
1313
'align': AlignType,
1414
'inset': `string | number`,
15-
}).partial()
15+
})
1616

1717
export default defineComponent<'grid', typeof T.infer>((attrs, _context) => {
1818
return {
1919
name: 'grid',
2020
attrs: T,
21+
defaults: {
22+
'columns': '1fr',
23+
'rows': '1fr',
24+
'gutter': '0',
25+
'column-gutter': '0',
26+
'row-gutter': '0',
27+
'align': 'start',
28+
'inset': '0',
29+
},
2130
setup: (children) => {
2231
const element = document.createElement('div')
2332
element.style.display = 'grid'
24-
element.style.gridTemplateColumns = toValue(attrs.columns ?? '') as string
25-
element.style.gridTemplateRows = toValue(attrs.rows ?? '') as string
26-
element.style.gap = size(toValue(attrs.gutter ?? '0') as string)
27-
element.style.columnGap = size(toValue(attrs['column-gutter'] ?? '0') as string)
28-
element.style.rowGap = size(toValue(attrs['row-gutter'] ?? '0') as string)
29-
element.style.justifyContent = toValue(attrs.align ?? 'start') as string
30-
element.style.inset = size(toValue(attrs.inset ?? '0') as string)
33+
element.style.gridTemplateColumns = toValue(attrs.columns) as string
34+
element.style.gridTemplateRows = toValue(attrs.rows) as string
35+
element.style.gap = size(toValue(attrs.gutter))
36+
element.style.columnGap = size(toValue(attrs['column-gutter']))
37+
element.style.rowGap = size(toValue(attrs['row-gutter']))
38+
element.style.justifyContent = toValue(attrs.align) as string
39+
element.style.inset = size(toValue(attrs.inset))
3140
element.append(...children())
3241
return element
3342
},

packages/model/src/button.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,18 @@ import { defineComponent } from 'sciux-laplace'
55

66
const T = type({
77
disabled: 'boolean',
8-
}).partial()
8+
})
99

1010
export default defineComponent<'button', typeof T.infer, Context>((attrs, _context) => {
1111
return {
1212
name: 'button',
1313
attrs: T,
14+
defaults: {
15+
disabled: false,
16+
},
1417
setup: (children) => {
1518
const element = document.createElement('button')
16-
element.disabled = toValue(attrs.disabled ?? false) as boolean
19+
element.disabled = toValue(attrs.disabled)
1720
element.append(...children())
1821
return element
1922
},

packages/model/src/input.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ const T = type({
99
model: 'string',
1010
placeholder: 'string',
1111
disabled: 'boolean',
12-
}).partial()
12+
})
1313

1414
export default defineComponent<'input', typeof T.infer, Context>((attrs, context) => {
1515
const input = document.createElement('input')
@@ -22,8 +22,8 @@ export default defineComponent<'input', typeof T.infer, Context>((attrs, context
2222
name: 'input',
2323
attrs: T,
2424
setup: () => {
25-
input.placeholder = toValue(attrs.placeholder ?? '') as string
26-
input.disabled = toValue(attrs.disabled ?? false) as boolean
25+
input.placeholder = toValue(attrs.placeholder)
26+
input.disabled = toValue(attrs.disabled)
2727
return input
2828
},
2929
}

packages/model/src/select.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
import { type } from "arktype"
1+
import { type } from 'arktype'
22

3-
const SelectType = type({
3+
export const SelectType = type({
44
model: 'string',
5-
}).partial()
5+
})
66

7-
const SelectOptionType = type({
7+
export const SelectOptionType = type({
88
value: 'string',
99
selected: 'boolean',
1010
disabled: 'boolean',
11-
}).partial()
11+
})

packages/widget/src/link.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,18 @@ import { defineComponent, toValue } from 'sciux-laplace'
33

44
const T = type({
55
target: 'string',
6-
}).partial()
6+
})
77

88
export default defineComponent<'link', typeof T.infer>((attrs, _context) => {
99
return {
1010
name: 'link',
1111
attrs: T,
12+
defaults: {
13+
target: '_blank',
14+
},
1215
setup(children) {
1316
const element = document.createElement('a')
14-
element.href = toValue(attrs.target) ?? ''
17+
element.href = toValue(attrs.target)
1518
element.append(...children())
1619
return element
1720
},

0 commit comments

Comments
 (0)