@teammodlr/ui-kit 2.1.51 → 2.1.53
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/components/avatar/Avatar.vue.d.ts +1 -1
- package/lib/components/badge/style/Badge.css.d.ts +2 -2
- package/lib/components/button/Button.vue.d.ts +1 -1
- package/lib/components/button/style/Button.css.d.ts +3 -3
- package/lib/components/checkbox/Checkbox.vue.d.ts +1 -1
- package/lib/components/collapse/Collapse.vue.d.ts +82 -0
- package/lib/components/collapse/CollapseItem.vue.d.ts +43 -0
- package/lib/components/collapse/CollapseItemContent.vue.d.ts +29 -0
- package/lib/components/collapse/interface.d.ts +9 -0
- package/lib/components/collapse/style/Collapse.css.d.ts +8 -0
- package/lib/components/collapse/style/index.d.ts +1 -0
- package/lib/components/configprovider/ConfigProvider.vue.d.ts +0 -1
- package/lib/components/dialog/Dialog.vue.d.ts +1 -1
- package/lib/components/dropdown/Dropdown.vue.d.ts +2 -2
- package/lib/components/dropdown/DropdownItem.vue.d.ts +1 -1
- package/lib/components/dropdown/style/Dropdown.css.d.ts +1 -1
- package/lib/components/index.d.ts +3 -0
- package/lib/components/input/Input.vue.d.ts +3 -3
- package/lib/components/modal/Modal.vue.d.ts +1 -1
- package/lib/components/radio/Radio.vue.d.ts +2 -2
- package/lib/components/radiobutton/RadioButton.vue.d.ts +3 -3
- package/lib/components/select/Select.vue.d.ts +2 -2
- package/lib/components/switch/Switch.vue.d.ts +1 -1
- package/lib/components/textarea/Textarea.vue.d.ts +4 -4
- package/lib/components/tree/Tree.vue.d.ts +1 -1
- package/lib/index.cjs.js +7 -7
- package/lib/index.es.js +2369 -2127
- package/lib/style.css +1 -1
- package/lib/styles/theme.css.d.ts +1 -1
- package/package.json +3 -3
- package/src/call.ts +34 -34
- package/src/components/collapse/Collapse.vue +143 -0
- package/src/components/collapse/CollapseItem.vue +123 -0
- package/src/components/collapse/CollapseItemContent.vue +58 -0
- package/src/components/collapse/examples/basic.vue +13 -0
- package/src/components/collapse/examples/index.stories.ts +18 -0
- package/src/components/collapse/examples/index.ts +1 -0
- package/src/components/collapse/interface.ts +38 -0
- package/src/components/collapse/style/Collapse.css.ts +87 -0
- package/src/components/collapse/style/index.ts +1 -0
- package/src/components/index.ts +51 -48
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { computed, defineComponent, ref, toRef, type PropType } from 'vue'
|
|
3
|
+
import { useFalseUntilTruthy } from 'vooks'
|
|
4
|
+
import { collapseItemContentWrapper, collapseItemContentInner } from './style'
|
|
5
|
+
export default defineComponent({
|
|
6
|
+
name: 'CollapseItemContent',
|
|
7
|
+
props: {
|
|
8
|
+
displayDirective: {
|
|
9
|
+
type: String as PropType<'if' | 'show'>,
|
|
10
|
+
required: true
|
|
11
|
+
},
|
|
12
|
+
show: Boolean
|
|
13
|
+
},
|
|
14
|
+
setup(props, { slots }) {
|
|
15
|
+
const onceTrueRef = useFalseUntilTruthy(toRef(props, 'show'))
|
|
16
|
+
const useVShow = ref(props.displayDirective === 'show' && onceTrueRef.value)
|
|
17
|
+
|
|
18
|
+
const wrapperClassesComputed = computed(() => {
|
|
19
|
+
return {
|
|
20
|
+
[collapseItemContentWrapper]: true
|
|
21
|
+
}
|
|
22
|
+
})
|
|
23
|
+
|
|
24
|
+
const innerClassesComputed = computed(() => {
|
|
25
|
+
return {
|
|
26
|
+
[collapseItemContentInner]: true
|
|
27
|
+
}
|
|
28
|
+
})
|
|
29
|
+
|
|
30
|
+
return {
|
|
31
|
+
onceTrue: onceTrueRef,
|
|
32
|
+
useVShow,
|
|
33
|
+
slots,
|
|
34
|
+
wrapperClassesComputed,
|
|
35
|
+
innerClassesComputed
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
</script>
|
|
40
|
+
|
|
41
|
+
<template>
|
|
42
|
+
<div>
|
|
43
|
+
<div v-if="displayDirective === 'if' ? show : onceTrue">
|
|
44
|
+
<div :class="wrapperClassesComputed">
|
|
45
|
+
<div :class="innerClassesComputed">
|
|
46
|
+
<slot />
|
|
47
|
+
</div>
|
|
48
|
+
</div>
|
|
49
|
+
</div>
|
|
50
|
+
<div v-show="displayDirective === 'show' && onceTrue" v-if="!show">
|
|
51
|
+
<div :class="wrapperClassesComputed">
|
|
52
|
+
<div :class="innerClassesComputed">
|
|
53
|
+
<slot />
|
|
54
|
+
</div>
|
|
55
|
+
</div>
|
|
56
|
+
</div>
|
|
57
|
+
</div>
|
|
58
|
+
</template>
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<m-collapse :default-expanded-names="['1', '2']">
|
|
3
|
+
<m-collapse-item title="Ben is gay" name="1">
|
|
4
|
+
<div>yrs</div>
|
|
5
|
+
</m-collapse-item>
|
|
6
|
+
<m-collapse-item title="right" name="2">
|
|
7
|
+
<div>nice</div>
|
|
8
|
+
</m-collapse-item>
|
|
9
|
+
<m-collapse-item title="right" name="3">
|
|
10
|
+
<div>very good</div>
|
|
11
|
+
</m-collapse-item>
|
|
12
|
+
</m-collapse>
|
|
13
|
+
</template>
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/vue3';
|
|
2
|
+
import MCollapse from '../Collapse.vue';
|
|
3
|
+
import MCollapseItem from '../CollapseItem.vue';
|
|
4
|
+
import { MCollapseBasic } from './index';
|
|
5
|
+
import { createStory, sizeArgType } from '../../../__storybook__';
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
const meta: Meta<typeof MCollapse> = {
|
|
9
|
+
title: 'Components/Collapse',
|
|
10
|
+
component: MCollapse,
|
|
11
|
+
subcomponents: { MCollapse },
|
|
12
|
+
argTypes: {
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export default meta;
|
|
17
|
+
type Story = StoryObj<typeof MCollapse>;
|
|
18
|
+
export const Default = createStory(MCollapseBasic) as Story;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as MCollapseBasic } from './basic.vue';
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export type OnUpdateExpandedNames = <
|
|
2
|
+
T extends string[] &
|
|
3
|
+
number[] &
|
|
4
|
+
Array<string | number> &
|
|
5
|
+
(string | number | null) &
|
|
6
|
+
(string | null) &
|
|
7
|
+
(number | null)
|
|
8
|
+
>(
|
|
9
|
+
value: T
|
|
10
|
+
) => void
|
|
11
|
+
|
|
12
|
+
export type OnUpdateExpandedNamesImpl = <
|
|
13
|
+
T extends
|
|
14
|
+
| string[]
|
|
15
|
+
| number[]
|
|
16
|
+
| Array<string | number>
|
|
17
|
+
| (string | number | null)
|
|
18
|
+
| (string | null)
|
|
19
|
+
| (number | null)
|
|
20
|
+
>(
|
|
21
|
+
value: T
|
|
22
|
+
) => void
|
|
23
|
+
|
|
24
|
+
export type OnItemHeaderClick = <T extends string & number & (string | number) >(
|
|
25
|
+
info: HeaderClickInfo<T>
|
|
26
|
+
) => void
|
|
27
|
+
|
|
28
|
+
export type OnItemHeaderClickImpl = <
|
|
29
|
+
T extends string | number | (string | number)
|
|
30
|
+
>(
|
|
31
|
+
info: HeaderClickInfo<T>
|
|
32
|
+
) => void
|
|
33
|
+
|
|
34
|
+
export interface HeaderClickInfo<T> {
|
|
35
|
+
name: T
|
|
36
|
+
expanded: boolean
|
|
37
|
+
event: MouseEvent
|
|
38
|
+
}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import {
|
|
2
|
+
createVar,
|
|
3
|
+
style,
|
|
4
|
+
styleVariants
|
|
5
|
+
} from '@vanilla-extract/css';
|
|
6
|
+
import { themeVars } from '../../../styles/theme.css';
|
|
7
|
+
|
|
8
|
+
const vars = {
|
|
9
|
+
gap: createVar(),
|
|
10
|
+
fontSize: createVar(),
|
|
11
|
+
fontColor: createVar(),
|
|
12
|
+
borderColor: createVar(),
|
|
13
|
+
headerPadding: createVar()
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export const wrapper = style({
|
|
17
|
+
width: '100%',
|
|
18
|
+
display: 'block'
|
|
19
|
+
})
|
|
20
|
+
|
|
21
|
+
export const collapseItem = style({
|
|
22
|
+
vars: {
|
|
23
|
+
[vars.gap]: '16px',
|
|
24
|
+
[vars.fontSize]: '15px',
|
|
25
|
+
[vars.fontColor]: themeVars.color.gray[800],
|
|
26
|
+
[vars.borderColor]: themeVars.color.gray[200],
|
|
27
|
+
[vars.headerPadding]: '16px 0 0 0'
|
|
28
|
+
},
|
|
29
|
+
display: 'block',
|
|
30
|
+
fontSize: vars.fontSize,
|
|
31
|
+
color: vars.fontColor,
|
|
32
|
+
marginTop: vars.gap,
|
|
33
|
+
selectors: {
|
|
34
|
+
'&:not(:first-child)': {
|
|
35
|
+
borderTop: `1px solid ${vars.borderColor}`
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
export const collapseItemHeader = style({
|
|
42
|
+
fontSize: vars.fontSize,
|
|
43
|
+
display: 'flex',
|
|
44
|
+
flexWrap: 'nowrap',
|
|
45
|
+
alignItems: 'center',
|
|
46
|
+
position: 'relative',
|
|
47
|
+
color: vars.fontColor,
|
|
48
|
+
padding: vars.headerPadding
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
export const collapseItemHeaderMain = style({
|
|
53
|
+
display: 'flex',
|
|
54
|
+
flexWrap: 'nowrap',
|
|
55
|
+
alignItems: 'center',
|
|
56
|
+
width: '100%',
|
|
57
|
+
cursor: 'pointer',
|
|
58
|
+
flex: 1,
|
|
59
|
+
gap: '6px'
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
export const collapseItemHeaderArrow = style({
|
|
63
|
+
cursor: 'pointer',
|
|
64
|
+
display: 'flex',
|
|
65
|
+
width: '16px',
|
|
66
|
+
height: '16px',
|
|
67
|
+
color: vars.fontColor,
|
|
68
|
+
transform: 'rotate(0deg)',
|
|
69
|
+
transition: 'transform .2s ease-in-out',
|
|
70
|
+
verticalAlign: 'middle',
|
|
71
|
+
position: 'relative',
|
|
72
|
+
top: '1px'
|
|
73
|
+
})
|
|
74
|
+
|
|
75
|
+
export const collapseItemHeaderArrowActive = style({
|
|
76
|
+
transform: 'rotate(90deg)',
|
|
77
|
+
})
|
|
78
|
+
|
|
79
|
+
export const collapseItemContentWrapper = style({
|
|
80
|
+
display: 'block',
|
|
81
|
+
fontSize: vars.fontSize,
|
|
82
|
+
color: vars.fontColor,
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
export const collapseItemContentInner = style({
|
|
86
|
+
paddingTop: vars.gap,
|
|
87
|
+
})
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './Collapse.css';
|
package/src/components/index.ts
CHANGED
|
@@ -1,48 +1,51 @@
|
|
|
1
|
-
export { default as MRenderer } from './renderer/renderer';
|
|
2
|
-
export { default as
|
|
3
|
-
export { default as
|
|
4
|
-
export { default as
|
|
5
|
-
export { default as
|
|
6
|
-
export { default as
|
|
7
|
-
export { default as
|
|
8
|
-
export { default as
|
|
9
|
-
export { default as
|
|
10
|
-
export { default as
|
|
11
|
-
export { default as
|
|
12
|
-
export { default as
|
|
13
|
-
export { default as
|
|
14
|
-
export { default as
|
|
15
|
-
export { default as
|
|
16
|
-
export { default as
|
|
17
|
-
export { default as
|
|
18
|
-
export { default as
|
|
19
|
-
export { default as
|
|
20
|
-
export { default as
|
|
21
|
-
export { default as
|
|
22
|
-
export { default as
|
|
23
|
-
export { default as
|
|
24
|
-
export { default as
|
|
25
|
-
export { default as
|
|
26
|
-
export { default as
|
|
27
|
-
export { default as
|
|
28
|
-
export { default as
|
|
29
|
-
export { default as
|
|
30
|
-
export { default as
|
|
31
|
-
export { default as
|
|
32
|
-
export { default as
|
|
33
|
-
export { default as
|
|
34
|
-
export { default as
|
|
35
|
-
export { default as
|
|
36
|
-
export { default as
|
|
37
|
-
export { default as
|
|
38
|
-
export { default as
|
|
39
|
-
export { default as
|
|
40
|
-
export { default as
|
|
41
|
-
export { default as
|
|
42
|
-
export { default as
|
|
43
|
-
export { default as
|
|
44
|
-
export { default as
|
|
45
|
-
export { default as
|
|
46
|
-
export { default as
|
|
47
|
-
export { default as
|
|
48
|
-
export { default as
|
|
1
|
+
export { default as MRenderer } from './renderer/renderer';
|
|
2
|
+
export { default as MCollapse } from './collapse/Collapse.vue';
|
|
3
|
+
export { default as MCollapseItem } from './collapse/CollapseItem.vue';
|
|
4
|
+
export { default as MCollapseItemContent } from './collapse/CollapseItemContent.vue';
|
|
5
|
+
export { default as MConfigProvider } from './configprovider/ConfigProvider.vue';
|
|
6
|
+
export { default as MAvatar } from './avatar/Avatar.vue';
|
|
7
|
+
export { default as MAvatarGroup } from './avatargroup/AvatarGroup.vue';
|
|
8
|
+
export { default as MBadge } from './badge/Badge.vue';
|
|
9
|
+
export { default as MBreadcrumb } from './breadcrumb/Breadcrumb.vue';
|
|
10
|
+
export { default as MBreadcrumbItem } from './breadcrumb/BreadcrumbItem.vue';
|
|
11
|
+
export { default as MButton } from './button/Button.vue';
|
|
12
|
+
export { default as MButtonGroup } from './buttongroup/ButtonGroup.vue';
|
|
13
|
+
export { default as MCheckbox } from './checkbox/Checkbox.vue';
|
|
14
|
+
export { default as MColorPicker } from './colorpicker/ColorPicker.vue';
|
|
15
|
+
export { default as MDropdown } from './dropdown/Dropdown.vue';
|
|
16
|
+
export { default as MDropdownItem } from './dropdown/DropdownItem.vue';
|
|
17
|
+
export { default as MDropdownList } from './dropdown/DropdownList.vue';
|
|
18
|
+
export { default as MDropdownSeperator } from './dropdown/DropdownSeperator.vue';
|
|
19
|
+
export { default as MDropdownHeading } from './dropdown/DropdownHeading.vue';
|
|
20
|
+
export { default as MDropdownWrapper } from './dropdown/DropdownWrapper.vue';
|
|
21
|
+
export { default as MForm } from './form/Form.vue';
|
|
22
|
+
export { default as MImage } from './image/Image.vue';
|
|
23
|
+
export { default as MInput } from './input/Input.vue';
|
|
24
|
+
export { default as MLink } from './link/Link.vue';
|
|
25
|
+
export { default as MMessageProvider } from './messageprovider/MessageProvider.vue';
|
|
26
|
+
export { default as MModal } from './modal/Modal.vue';
|
|
27
|
+
export { default as MPagination } from './pagination/Pagination.vue';
|
|
28
|
+
export { default as MRadio } from './radio/Radio.vue';
|
|
29
|
+
export { default as MRadioButton } from './radiobutton/RadioButton.vue';
|
|
30
|
+
export { default as MRadioButtonGroup } from './radiobuttongroup/RadioButtonGroup.vue';
|
|
31
|
+
export { default as MSelect } from './select/Select.vue';
|
|
32
|
+
export { default as MSkeleton } from './skeleton/Skeleton.vue';
|
|
33
|
+
export { default as MSlider } from './slider/Slider.vue';
|
|
34
|
+
export { default as MSwitch } from './switch/Switch.vue';
|
|
35
|
+
export { default as MTab } from './tab/Tab.vue';
|
|
36
|
+
export { default as MTabGroup } from './tab/TabGroup.vue';
|
|
37
|
+
export { default as MTable } from './table/Table.vue';
|
|
38
|
+
export { default as MTableBody } from './table/TableBody.vue';
|
|
39
|
+
export { default as MTableCell } from './table/TableCell.vue';
|
|
40
|
+
export { default as MTableHead } from './table/TableHead.vue';
|
|
41
|
+
export { default as MTableHeadRow } from './table/TableHeadRow.vue';
|
|
42
|
+
export { default as MTableRow } from './table/TableRow.vue';
|
|
43
|
+
export { default as MTag } from './tag/Tag.vue';
|
|
44
|
+
export { default as MTextarea } from './textarea/Textarea.vue';
|
|
45
|
+
export { default as MTooltip } from './tooltip/Tooltip.vue';
|
|
46
|
+
export { default as MTransfer } from './transfer/Transfer.vue';
|
|
47
|
+
export { default as MVirtualScroll } from './virtualscroll/VirtualScroll.vue';
|
|
48
|
+
export { default as MConfirm } from './confirm/Confirm.vue';
|
|
49
|
+
export { default as MConfirmProvider } from './confirm/ConfirmProvider.vue';
|
|
50
|
+
export { default as MDialog } from './dialog/Dialog.vue';
|
|
51
|
+
export { default as MTree } from './tree/Tree.vue';
|