@vmz/ui 0.1.15 → 0.1.16
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/package.json +1 -1
- package/src/components/Accordion.vmz +13 -13
- package/src/components/Alert.vmz +4 -4
- package/src/components/AppShell.vmz +4 -4
- package/src/components/Autocomplete.vmz +22 -23
- package/src/components/Avatar.vmz +1 -1
- package/src/components/Badge.vmz +1 -1
- package/src/components/Breadcrumb.vmz +4 -4
- package/src/components/BulkActions.vmz +3 -3
- package/src/components/Button.vmz +9 -9
- package/src/components/Callout.vmz +4 -4
- package/src/components/Card.vmz +4 -4
- package/src/components/Checkbox.vmz +7 -7
- package/src/components/CodeBlock.vmz +3 -3
- package/src/components/Collapse.vmz +3 -3
- package/src/components/ConsoleShell.vmz +7 -7
- package/src/components/DataTable.vmz +23 -24
- package/src/components/DatePicker.vmz +33 -36
- package/src/components/Dialog.vmz +8 -8
- package/src/components/Divider.vmz +2 -2
- package/src/components/Drawer.vmz +8 -8
- package/src/components/Dropdown.vmz +2 -2
- package/src/components/Empty.vmz +2 -2
- package/src/components/Field.vmz +14 -14
- package/src/components/FilterBar.vmz +1 -1
- package/src/components/Flex.vmz +1 -1
- package/src/components/Form.vmz +7 -7
- package/src/components/FormItem.vmz +7 -7
- package/src/components/Grid.vmz +1 -1
- package/src/components/Icon.vmz +17 -17
- package/src/components/Link.vmz +3 -3
- package/src/components/List.vmz +12 -13
- package/src/components/Menu.vmz +14 -15
- package/src/components/Notification.vmz +4 -4
- package/src/components/Pagination.vmz +6 -6
- package/src/components/Popover.vmz +8 -8
- package/src/components/Progress.vmz +3 -3
- package/src/components/QueryForm.vmz +2 -2
- package/src/components/RadioGroup.vmz +17 -18
- package/src/components/Result.vmz +3 -3
- package/src/components/Segmented.vmz +6 -7
- package/src/components/Select.vmz +36 -36
- package/src/components/Skeleton.vmz +6 -6
- package/src/components/Space.vmz +1 -1
- package/src/components/Spinner.vmz +1 -1
- package/src/components/Steps.vmz +9 -10
- package/src/components/Switch.vmz +8 -8
- package/src/components/Table.vmz +13 -13
- package/src/components/Tabs.vmz +14 -15
- package/src/components/Tag.vmz +1 -1
- package/src/components/TextArea.vmz +12 -12
- package/src/components/Timeline.vmz +5 -5
- package/src/components/Toc.vmz +7 -8
- package/src/components/Tooltip.vmz +4 -4
- package/src/components/Tree.vmz +20 -21
- package/src/components/Typography.vmz +1 -1
- package/src/components/Upload.vmz +44 -45
|
@@ -1,75 +1,75 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div
|
|
3
|
-
class=
|
|
3
|
+
:class="'vmz-ui-select' + (open ? ' is-opened' : '') + (isMultiple ? ' is-multiple' : '')"
|
|
4
4
|
data-vmz-ui="select"
|
|
5
|
-
data-mode=
|
|
6
|
-
data-searchable=
|
|
7
|
-
data-invalid=
|
|
5
|
+
:data-mode="mode"
|
|
6
|
+
:data-searchable="searchableAttr"
|
|
7
|
+
:data-invalid="invalidAttr"
|
|
8
8
|
>
|
|
9
|
-
<label if=
|
|
9
|
+
<label v-if="label" class="vmz-ui-select__label" :for="controlId">{{ label }}</label>
|
|
10
10
|
<button
|
|
11
11
|
type="button"
|
|
12
|
-
id=
|
|
12
|
+
:id="controlId"
|
|
13
13
|
class="vmz-ui-select__control"
|
|
14
14
|
role="combobox"
|
|
15
|
-
disabled=
|
|
15
|
+
:disabled="disabled"
|
|
16
16
|
aria-haspopup="listbox"
|
|
17
|
-
aria-expanded=
|
|
18
|
-
aria-controls=
|
|
19
|
-
aria-invalid=
|
|
20
|
-
aria-describedby=
|
|
21
|
-
aria-multiselectable=
|
|
22
|
-
|
|
23
|
-
onKeyDown=
|
|
17
|
+
:aria-expanded="open ? 'true' : 'false'"
|
|
18
|
+
:aria-controls="listId"
|
|
19
|
+
:aria-invalid="error ? 'true' : 'false'"
|
|
20
|
+
:aria-describedby="describedBy"
|
|
21
|
+
:aria-multiselectable="isMultiple ? 'true' : 'false'"
|
|
22
|
+
@click="toggle"
|
|
23
|
+
:onKeyDown="onTriggerKeyDown"
|
|
24
24
|
>
|
|
25
|
-
<span class="vmz-ui-select__value">{displayLabel}</span>
|
|
25
|
+
<span class="vmz-ui-select__value">{{ displayLabel }}</span>
|
|
26
26
|
<span class="vmz-ui-select__chev" aria-hidden="true"></span>
|
|
27
27
|
</button>
|
|
28
28
|
<div
|
|
29
|
-
if=
|
|
30
|
-
id=
|
|
29
|
+
v-if="open"
|
|
30
|
+
:id="listId"
|
|
31
31
|
class="vmz-ui-select__panel"
|
|
32
32
|
data-vmz-overlay="select"
|
|
33
33
|
data-vmz-overlay-owner="select"
|
|
34
34
|
data-vmz-focus="enter"
|
|
35
35
|
>
|
|
36
|
-
<div if=
|
|
36
|
+
<div v-if="searchable" class="vmz-ui-select__search">
|
|
37
37
|
<input
|
|
38
38
|
type="search"
|
|
39
39
|
class="vmz-ui-select__search-input"
|
|
40
40
|
data-vmz-select="search"
|
|
41
|
-
value=
|
|
42
|
-
placeholder=
|
|
43
|
-
aria-label=
|
|
44
|
-
|
|
45
|
-
onKeyDown=
|
|
41
|
+
:value="searchQuery"
|
|
42
|
+
:placeholder="searchPlaceholder"
|
|
43
|
+
:aria-label="searchPlaceholder"
|
|
44
|
+
@input="onSearchInput"
|
|
45
|
+
:onKeyDown="onSearchKeyDown"
|
|
46
46
|
/>
|
|
47
47
|
</div>
|
|
48
48
|
<ul
|
|
49
49
|
class="vmz-ui-select__list"
|
|
50
50
|
role="listbox"
|
|
51
|
-
aria-multiselectable=
|
|
51
|
+
:aria-multiselectable="isMultiple ? 'true' : 'false'"
|
|
52
52
|
tabindex="-1"
|
|
53
|
-
onKeyDown=
|
|
53
|
+
:onKeyDown="onListKeyDown"
|
|
54
54
|
>
|
|
55
|
-
<li if=
|
|
56
|
-
<li
|
|
55
|
+
<li v-if="showEmpty" class="vmz-ui-select__empty" role="presentation">{{ emptyText }}</li>
|
|
56
|
+
<li v-for="opt in visibleOptions" :key="opt.value" role="presentation">
|
|
57
57
|
<button
|
|
58
58
|
type="button"
|
|
59
|
-
class=
|
|
59
|
+
:class="'vmz-ui-select__option' + (opt.selected ? ' is-on' : '')"
|
|
60
60
|
role="option"
|
|
61
|
-
data-vmz-option=
|
|
62
|
-
aria-selected=
|
|
63
|
-
|
|
64
|
-
>{opt.label}</button>
|
|
61
|
+
:data-vmz-option="opt.value"
|
|
62
|
+
:aria-selected="opt.selected ? 'true' : 'false'"
|
|
63
|
+
@click="onOptionClick"
|
|
64
|
+
>{{ opt.label }}</button>
|
|
65
65
|
</li>
|
|
66
66
|
</ul>
|
|
67
|
-
<div if=
|
|
68
|
-
<button type="button" class="vmz-ui-select__done" data-vmz-select="done"
|
|
67
|
+
<div v-if="isMultiple" class="vmz-ui-select__footer">
|
|
68
|
+
<button type="button" class="vmz-ui-select__done" data-vmz-select="done" @click="close">Done</button>
|
|
69
69
|
</div>
|
|
70
70
|
</div>
|
|
71
|
-
<p if=
|
|
72
|
-
<p if=
|
|
71
|
+
<p v-if="description" :id="descriptionId" class="vmz-ui-select__description">{{ description }}</p>
|
|
72
|
+
<p v-if="error" :id="errorId" class="vmz-ui-select__error" role="alert">{{ error }}</p>
|
|
73
73
|
</div>
|
|
74
74
|
</template>
|
|
75
75
|
|
|
@@ -2,15 +2,15 @@
|
|
|
2
2
|
<div
|
|
3
3
|
class="vmz-ui-skeleton"
|
|
4
4
|
data-vmz-ui="skeleton"
|
|
5
|
-
data-loading=
|
|
5
|
+
:data-loading="loadingAttr"
|
|
6
6
|
role="status"
|
|
7
7
|
aria-live="polite"
|
|
8
|
-
aria-busy=
|
|
8
|
+
:aria-busy="loadingAttr"
|
|
9
9
|
>
|
|
10
|
-
<div if=
|
|
11
|
-
<div if=
|
|
12
|
-
<div if=
|
|
13
|
-
<div if=
|
|
10
|
+
<div v-if="loading" class="vmz-ui-skeleton__block" data-vmz-skeleton="block"></div>
|
|
11
|
+
<div v-if="loading" class="vmz-ui-skeleton__line" data-vmz-skeleton="line"></div>
|
|
12
|
+
<div v-if="loading" class="vmz-ui-skeleton__line" data-vmz-skeleton="line"></div>
|
|
13
|
+
<div v-if="!loading" class="vmz-ui-skeleton__content">
|
|
14
14
|
<slot />
|
|
15
15
|
</div>
|
|
16
16
|
</div>
|
package/src/components/Space.vmz
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<template><div class="vmz-ui-space" data-vmz-ui="space" data-direction=
|
|
1
|
+
<template><div class="vmz-ui-space" data-vmz-ui="space" :data-direction="direction" :data-size="size" :data-wrap="wrap?'true':'false'"><slot /></div></template>
|
|
2
2
|
<style>
|
|
3
3
|
.vmz-ui-space{display:flex;gap:var(--vmz-density-control-gap,.75rem)}
|
|
4
4
|
.vmz-ui-space[data-direction='vertical']{flex-direction:column}
|
package/src/components/Steps.vmz
CHANGED
|
@@ -1,18 +1,17 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<ol class="vmz-ui-steps" data-vmz-ui="steps" aria-label=
|
|
2
|
+
<ol class="vmz-ui-steps" data-vmz-ui="steps" :aria-label="label">
|
|
3
3
|
<li
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
key={item.id}
|
|
4
|
+
v-for="item in items"
|
|
5
|
+
:key="item.id"
|
|
7
6
|
class="vmz-ui-steps__item"
|
|
8
|
-
data-vmz-step=
|
|
9
|
-
data-status=
|
|
10
|
-
aria-current=
|
|
7
|
+
:data-vmz-step="item.id"
|
|
8
|
+
:data-status="item.status"
|
|
9
|
+
:aria-current="current === item.id ? 'step' : 'false'"
|
|
11
10
|
>
|
|
12
|
-
<span class="vmz-ui-steps__index" data-vmz-step-index=
|
|
11
|
+
<span class="vmz-ui-steps__index" :data-vmz-step-index="item.id">{{ item.index }}</span>
|
|
13
12
|
<span class="vmz-ui-steps__body">
|
|
14
|
-
<span class="vmz-ui-steps__title">{item.title}</span>
|
|
15
|
-
<span if=
|
|
13
|
+
<span class="vmz-ui-steps__title">{{ item.title }}</span>
|
|
14
|
+
<span v-if="item.description" class="vmz-ui-steps__description">{{ item.description }}</span>
|
|
16
15
|
</span>
|
|
17
16
|
</li>
|
|
18
17
|
</ol>
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<label class="vmz-ui-switch" data-vmz-ui="switch" for=
|
|
2
|
+
<label class="vmz-ui-switch" data-vmz-ui="switch" :for="controlId">
|
|
3
3
|
<button
|
|
4
|
-
id=
|
|
4
|
+
:id="controlId"
|
|
5
5
|
type="button"
|
|
6
6
|
class="vmz-ui-switch__control"
|
|
7
7
|
role="switch"
|
|
8
|
-
aria-checked=
|
|
9
|
-
aria-describedby=
|
|
10
|
-
disabled=
|
|
11
|
-
|
|
12
|
-
onKeyDown=
|
|
8
|
+
:aria-checked="checked"
|
|
9
|
+
:aria-describedby="describedBy"
|
|
10
|
+
:disabled="disabled"
|
|
11
|
+
@click="toggle"
|
|
12
|
+
:onKeyDown="onKeyDown"
|
|
13
13
|
>
|
|
14
14
|
<span class="vmz-ui-switch__thumb" aria-hidden="true"></span>
|
|
15
15
|
</button>
|
|
16
|
-
<span class="vmz-ui-switch__label">{label}</span>
|
|
16
|
+
<span class="vmz-ui-switch__label">{{ label }}</span>
|
|
17
17
|
</label>
|
|
18
18
|
</template>
|
|
19
19
|
|
package/src/components/Table.vmz
CHANGED
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div class="vmz-ui-table-wrap" data-vmz-ui="table" data-sort-key=
|
|
2
|
+
<div class="vmz-ui-table-wrap" data-vmz-ui="table" :data-sort-key="sortKey" :data-sort-dir="sortDir">
|
|
3
3
|
<table class="vmz-ui-table">
|
|
4
|
-
<thead
|
|
4
|
+
<thead @click="onHeadClick">
|
|
5
5
|
<tr>
|
|
6
|
-
<th
|
|
7
|
-
<button type="button" class="vmz-ui-table__sort" data-vmz-sort=
|
|
8
|
-
{col.title}
|
|
6
|
+
<th v-for="col in columns" :key="col.id" scope="col" :data-vmz-col="col.id">
|
|
7
|
+
<button type="button" class="vmz-ui-table__sort" :data-vmz-sort="col.id">
|
|
8
|
+
{{ col.title }}
|
|
9
9
|
</button>
|
|
10
10
|
</th>
|
|
11
|
-
<th if=
|
|
11
|
+
<th v-if="hasRowAction" scope="col">{{ actionTitle }}</th>
|
|
12
12
|
</tr>
|
|
13
13
|
</thead>
|
|
14
|
-
<tbody
|
|
15
|
-
<tr
|
|
16
|
-
<td
|
|
17
|
-
<td if=
|
|
14
|
+
<tbody @click="onBodyClick">
|
|
15
|
+
<tr v-for="row in rows" :key="row.id" :data-vmz-row="row.id">
|
|
16
|
+
<td v-for="cell in row.cells">{{ cell }}</td>
|
|
17
|
+
<td v-if="hasRowAction">
|
|
18
18
|
<button
|
|
19
19
|
type="button"
|
|
20
20
|
class="vmz-ui-table__row-action"
|
|
21
|
-
data-vmz-row-action=
|
|
22
|
-
disabled=
|
|
21
|
+
:data-vmz-row-action="row.id"
|
|
22
|
+
:disabled="rowActionDisabled"
|
|
23
23
|
>
|
|
24
|
-
{actionLabel}
|
|
24
|
+
{{ actionLabel }}
|
|
25
25
|
</button>
|
|
26
26
|
</td>
|
|
27
27
|
</tr>
|
package/src/components/Tabs.vmz
CHANGED
|
@@ -3,32 +3,31 @@
|
|
|
3
3
|
<div
|
|
4
4
|
class="vmz-ui-tabs__list"
|
|
5
5
|
role="tablist"
|
|
6
|
-
aria-label=
|
|
7
|
-
onKeyDown=
|
|
8
|
-
|
|
6
|
+
:aria-label="label"
|
|
7
|
+
:onKeyDown="onListKeyDown"
|
|
8
|
+
@click="onListClick"
|
|
9
9
|
>
|
|
10
10
|
<button
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
key={item.id}
|
|
11
|
+
v-for="item in items"
|
|
12
|
+
:key="item.id"
|
|
14
13
|
type="button"
|
|
15
14
|
class="vmz-ui-tabs__tab"
|
|
16
15
|
role="tab"
|
|
17
|
-
id=
|
|
18
|
-
data-vmz-tab=
|
|
19
|
-
aria-selected=
|
|
20
|
-
aria-controls=
|
|
21
|
-
tabindex=
|
|
16
|
+
:id="item.id"
|
|
17
|
+
:data-vmz-tab="item.id"
|
|
18
|
+
:aria-selected="selected === item.id ? 'true' : 'false'"
|
|
19
|
+
:aria-controls="item.controls"
|
|
20
|
+
:tabindex="selected === item.id ? 0 : -1"
|
|
22
21
|
>
|
|
23
|
-
{item.title}
|
|
22
|
+
{{ item.title }}
|
|
24
23
|
</button>
|
|
25
24
|
</div>
|
|
26
25
|
<div
|
|
27
26
|
class="vmz-ui-tabs__panel"
|
|
28
27
|
role="tabpanel"
|
|
29
|
-
id=
|
|
30
|
-
data-vmz-tab-panel=
|
|
31
|
-
aria-labelledby=
|
|
28
|
+
:id="panelId"
|
|
29
|
+
:data-vmz-tab-panel="selected"
|
|
30
|
+
:aria-labelledby="selected"
|
|
32
31
|
tabindex="0"
|
|
33
32
|
>
|
|
34
33
|
<slot />
|
package/src/components/Tag.vmz
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<template><span class="vmz-ui-tag" data-vmz-ui="tag" data-status=
|
|
1
|
+
<template><span class="vmz-ui-tag" data-vmz-ui="tag" :data-status="status||undefined"><slot /></span></template>
|
|
2
2
|
<style>
|
|
3
3
|
.vmz-ui-tag{display:inline-flex;align-items:center;min-height:1.5rem;padding:0 .45rem;border:1px solid var(--vmz-line-default);border-radius:var(--vmz-radius-sm,2px);background:var(--vmz-surface-mist);color:var(--vmz-text-steel);font-size:.75rem;line-height:1}
|
|
4
4
|
.vmz-ui-tag[data-status='success']{color:var(--vmz-status-success-foreground);background:color-mix(in srgb,var(--vmz-status-success-accent) 12%,var(--vmz-surface-paper));border-color:color-mix(in srgb,var(--vmz-status-success-accent) 45%,var(--vmz-line-default))}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div class="vmz-ui-textarea" data-vmz-ui="textarea" data-invalid=
|
|
3
|
-
<label if=
|
|
2
|
+
<div class="vmz-ui-textarea" data-vmz-ui="textarea" :data-invalid="invalidAttr">
|
|
3
|
+
<label v-if="label" class="vmz-ui-textarea__label" :for="controlId">{{ label }}</label>
|
|
4
4
|
<textarea
|
|
5
|
-
id=
|
|
5
|
+
:id="controlId"
|
|
6
6
|
class="vmz-ui-textarea__control"
|
|
7
|
-
rows=
|
|
8
|
-
value=
|
|
9
|
-
disabled=
|
|
10
|
-
readonly=
|
|
11
|
-
aria-invalid=
|
|
12
|
-
aria-describedby=
|
|
13
|
-
|
|
7
|
+
:rows="rows"
|
|
8
|
+
:value="value"
|
|
9
|
+
:disabled="disabled"
|
|
10
|
+
:readonly="readonly"
|
|
11
|
+
:aria-invalid="error ? 'true' : 'false'"
|
|
12
|
+
:aria-describedby="describedBy"
|
|
13
|
+
@input="onInput"
|
|
14
14
|
></textarea>
|
|
15
|
-
<p if=
|
|
16
|
-
<p if=
|
|
15
|
+
<p v-if="description" :id="descriptionId" class="vmz-ui-textarea__description">{{ description }}</p>
|
|
16
|
+
<p v-if="error" :id="errorId" class="vmz-ui-textarea__error" role="alert">{{ error }}</p>
|
|
17
17
|
</div>
|
|
18
18
|
</template>
|
|
19
19
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<ol class="vmz-ui-timeline" data-vmz-ui="timeline" aria-label=
|
|
3
|
-
<li
|
|
4
|
-
<p class="vmz-ui-timeline__time">{item.time}</p>
|
|
5
|
-
<p class="vmz-ui-timeline__title">{item.title}</p>
|
|
6
|
-
<p if=
|
|
2
|
+
<ol class="vmz-ui-timeline" data-vmz-ui="timeline" :aria-label="label">
|
|
3
|
+
<li v-for="item in items" :key="item.id" class="vmz-ui-timeline__item" :data-vmz-audit="item.id">
|
|
4
|
+
<p class="vmz-ui-timeline__time">{{ item.time }}</p>
|
|
5
|
+
<p class="vmz-ui-timeline__title">{{ item.title }}</p>
|
|
6
|
+
<p v-if="item.detail" class="vmz-ui-timeline__detail">{{ item.detail }}</p>
|
|
7
7
|
</li>
|
|
8
8
|
</ol>
|
|
9
9
|
</template>
|
package/src/components/Toc.vmz
CHANGED
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<aside class="vmz-ui-toc" data-vmz-ui="toc" aria-label=
|
|
3
|
-
<p class="vmz-ui-toc__title">{label}</p>
|
|
2
|
+
<aside class="vmz-ui-toc" data-vmz-ui="toc" :aria-label="label">
|
|
3
|
+
<p class="vmz-ui-toc__title">{{ label }}</p>
|
|
4
4
|
<nav class="vmz-ui-toc__nav">
|
|
5
5
|
<a
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
key={item.id}
|
|
6
|
+
v-for="item in items"
|
|
7
|
+
:key="item.id"
|
|
9
8
|
class="vmz-ui-toc__link"
|
|
10
|
-
href=
|
|
11
|
-
data-vmz-toc=
|
|
9
|
+
:href="item.href"
|
|
10
|
+
:data-vmz-toc="item.id"
|
|
12
11
|
>
|
|
13
|
-
{item.title}
|
|
12
|
+
{{ item.title }}
|
|
14
13
|
</a>
|
|
15
14
|
</nav>
|
|
16
15
|
</aside>
|
|
@@ -2,19 +2,19 @@
|
|
|
2
2
|
<div
|
|
3
3
|
class="vmz-ui-tooltip"
|
|
4
4
|
data-vmz-ui="tooltip"
|
|
5
|
-
data-open=
|
|
5
|
+
:data-open="openAttr"
|
|
6
6
|
>
|
|
7
7
|
<div class="vmz-ui-tooltip__trigger" data-vmz-tooltip="trigger">
|
|
8
8
|
<slot />
|
|
9
9
|
</div>
|
|
10
10
|
<div
|
|
11
|
-
if=
|
|
11
|
+
v-if="open"
|
|
12
12
|
class="vmz-ui-tooltip__bubble"
|
|
13
13
|
role="tooltip"
|
|
14
|
-
id=
|
|
14
|
+
:id="tooltipId"
|
|
15
15
|
data-vmz-tooltip="bubble"
|
|
16
16
|
>
|
|
17
|
-
{content}
|
|
17
|
+
{{ content }}
|
|
18
18
|
</div>
|
|
19
19
|
</div>
|
|
20
20
|
</template>
|
package/src/components/Tree.vmz
CHANGED
|
@@ -1,40 +1,39 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="vmz-ui-tree" data-vmz-ui="tree">
|
|
3
|
-
<p if=
|
|
3
|
+
<p v-if="label" class="vmz-ui-tree__label" :id="labelId">{{ label }}</p>
|
|
4
4
|
<ul
|
|
5
5
|
class="vmz-ui-tree__items"
|
|
6
6
|
role="tree"
|
|
7
|
-
aria-labelledby=
|
|
8
|
-
aria-label=
|
|
9
|
-
|
|
10
|
-
onKeyDown=
|
|
7
|
+
:aria-labelledby="labelId"
|
|
8
|
+
:aria-label="label"
|
|
9
|
+
@click="onTreeClick"
|
|
10
|
+
:onKeyDown="onTreeKeyDown"
|
|
11
11
|
>
|
|
12
12
|
<li
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
key={item.id}
|
|
13
|
+
v-for="item in items"
|
|
14
|
+
:key="item.id"
|
|
16
15
|
class="vmz-ui-tree__item"
|
|
17
16
|
role="treeitem"
|
|
18
|
-
id=
|
|
19
|
-
data-vmz-tree-item=
|
|
20
|
-
data-depth=
|
|
21
|
-
aria-selected=
|
|
22
|
-
aria-expanded=
|
|
23
|
-
tabindex=
|
|
24
|
-
style=
|
|
17
|
+
:id="item.id"
|
|
18
|
+
:data-vmz-tree-item="item.id"
|
|
19
|
+
:data-depth="item.depth"
|
|
20
|
+
:aria-selected="selected === item.id ? 'true' : 'false'"
|
|
21
|
+
:aria-expanded="item.expandedAttr"
|
|
22
|
+
:tabindex="selected === item.id ? 0 : -1"
|
|
23
|
+
:style="item.padStyle"
|
|
25
24
|
>
|
|
26
25
|
<button
|
|
27
|
-
if=
|
|
26
|
+
v-if="item.expandable"
|
|
28
27
|
type="button"
|
|
29
28
|
class="vmz-ui-tree__twist"
|
|
30
|
-
data-vmz-tree-twist=
|
|
31
|
-
aria-label=
|
|
29
|
+
:data-vmz-tree-twist="item.id"
|
|
30
|
+
:aria-label="item.twistLabel"
|
|
32
31
|
tabindex="-1"
|
|
33
32
|
>
|
|
34
|
-
{item.expanded ? '−' : '+'}
|
|
33
|
+
{{ item.expanded ? '−' : '+' }}
|
|
35
34
|
</button>
|
|
36
|
-
<span if=
|
|
37
|
-
<span class="vmz-ui-tree__title" data-vmz-tree-title=
|
|
35
|
+
<span v-if="!item.expandable" class="vmz-ui-tree__twist-spacer" aria-hidden="true"></span>
|
|
36
|
+
<span class="vmz-ui-tree__title" :data-vmz-tree-title="item.id">{{ item.title }}</span>
|
|
38
37
|
</li>
|
|
39
38
|
</ul>
|
|
40
39
|
</div>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<template><div class="vmz-ui-typography" data-vmz-ui="typography" data-variant=
|
|
1
|
+
<template><div class="vmz-ui-typography" data-vmz-ui="typography" :data-variant="variant"><slot /></div></template>
|
|
2
2
|
<style>
|
|
3
3
|
.vmz-ui-typography{margin:0;color:var(--vmz-text-ink);font:inherit;line-height:1.6}
|
|
4
4
|
.vmz-ui-typography[data-variant='title']{font-family:var(--vmz-font-display,var(--vmz-font-sans));font-size:1.5rem;font-weight:650;line-height:1.3}
|
|
@@ -1,74 +1,73 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div
|
|
3
|
-
class=
|
|
3
|
+
:class="'vmz-ui-upload' + (dragOver ? ' is-dragover' : '')"
|
|
4
4
|
data-vmz-ui="upload"
|
|
5
|
-
data-vmz-upload-destination=
|
|
6
|
-
data-vmz-upload-mode=
|
|
7
|
-
data-vmz-upload-directory=
|
|
8
|
-
data-vmz-upload-chunk=
|
|
9
|
-
data-vmz-upload-session=
|
|
10
|
-
data-invalid=
|
|
11
|
-
data-vmz-upload-status=
|
|
12
|
-
data-progress=
|
|
13
|
-
onDragEnter=
|
|
14
|
-
onDragOver=
|
|
15
|
-
onDragLeave=
|
|
16
|
-
onDrop=
|
|
5
|
+
:data-vmz-upload-destination="destination"
|
|
6
|
+
:data-vmz-upload-mode="selectionMode"
|
|
7
|
+
:data-vmz-upload-directory="directoryAttr"
|
|
8
|
+
:data-vmz-upload-chunk="chunkAttr"
|
|
9
|
+
:data-vmz-upload-session="sessionAttr"
|
|
10
|
+
:data-invalid="invalidAttr"
|
|
11
|
+
:data-vmz-upload-status="status"
|
|
12
|
+
:data-progress="progress"
|
|
13
|
+
:onDragEnter="onDragEnter"
|
|
14
|
+
:onDragOver="onDragOver"
|
|
15
|
+
:onDragLeave="onDragLeave"
|
|
16
|
+
:onDrop="onDrop"
|
|
17
17
|
>
|
|
18
|
-
<label if=
|
|
18
|
+
<label v-if="label" class="vmz-ui-upload__label" :for="controlId">{{ label }}</label>
|
|
19
19
|
|
|
20
20
|
<div class="vmz-ui-upload__zone" data-vmz-upload="zone">
|
|
21
21
|
<input
|
|
22
|
-
id=
|
|
22
|
+
:id="controlId"
|
|
23
23
|
class="vmz-ui-upload__control"
|
|
24
24
|
type="file"
|
|
25
|
-
accept=
|
|
26
|
-
multiple=
|
|
27
|
-
disabled=
|
|
28
|
-
aria-invalid=
|
|
29
|
-
aria-describedby=
|
|
30
|
-
data-vmz-upload-directory=
|
|
31
|
-
|
|
25
|
+
:accept="accept"
|
|
26
|
+
:multiple="multiple"
|
|
27
|
+
:disabled="inputDisabled"
|
|
28
|
+
:aria-invalid="error ? 'true' : 'false'"
|
|
29
|
+
:aria-describedby="describedBy"
|
|
30
|
+
:data-vmz-upload-directory="directoryAttr"
|
|
31
|
+
@change="onPick"
|
|
32
32
|
/>
|
|
33
|
-
<p class="vmz-ui-upload__hint" data-vmz-upload="hint">{zoneHint}</p>
|
|
33
|
+
<p class="vmz-ui-upload__hint" data-vmz-upload="hint">{{ zoneHint }}</p>
|
|
34
34
|
</div>
|
|
35
35
|
|
|
36
|
-
<ul if=
|
|
36
|
+
<ul v-if="hasItems" class="vmz-ui-upload__queue" data-vmz-upload="queue">
|
|
37
37
|
<li
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
key={item.key}
|
|
38
|
+
v-for="item in queue"
|
|
39
|
+
:key="item.key"
|
|
41
40
|
class="vmz-ui-upload__item"
|
|
42
|
-
data-vmz-upload-item=
|
|
43
|
-
data-status=
|
|
41
|
+
:data-vmz-upload-item="item.key"
|
|
42
|
+
:data-status="item.status"
|
|
44
43
|
>
|
|
45
|
-
<span class="vmz-ui-upload__item-name" data-vmz-upload="file">{item.name}</span>
|
|
46
|
-
<span class="vmz-ui-upload__item-meta">{item.meta}</span>
|
|
47
|
-
<span if=
|
|
44
|
+
<span class="vmz-ui-upload__item-name" data-vmz-upload="file">{{ item.name }}</span>
|
|
45
|
+
<span class="vmz-ui-upload__item-meta">{{ item.meta }}</span>
|
|
46
|
+
<span v-if="item.showBar" class="vmz-ui-upload__item-bar" :style="item.barStyle" aria-hidden="true"></span>
|
|
48
47
|
</li>
|
|
49
48
|
</ul>
|
|
50
49
|
|
|
51
|
-
<p if=
|
|
50
|
+
<p v-if="emptyHint" class="vmz-ui-upload__empty" data-vmz-upload="empty">{{ emptyText }}</p>
|
|
52
51
|
|
|
53
|
-
<div if=
|
|
54
|
-
<div class="vmz-ui-upload__bar" style=
|
|
55
|
-
<span class="vmz-ui-upload__pct" data-vmz-upload="pct">{progressLabel}</span>
|
|
52
|
+
<div v-if="showProgress" class="vmz-ui-upload__progress" data-vmz-upload="progress" role="progressbar" aria-valuemin="0" aria-valuemax="100" :aria-valuenow="progress" :aria-label="progressLabel">
|
|
53
|
+
<div class="vmz-ui-upload__bar" :style="progressStyle"></div>
|
|
54
|
+
<span class="vmz-ui-upload__pct" data-vmz-upload="pct">{{ progressLabel }}</span>
|
|
56
55
|
</div>
|
|
57
56
|
|
|
58
|
-
<p if=
|
|
59
|
-
<p if=
|
|
57
|
+
<p v-if="statusText" class="vmz-ui-upload__status" data-vmz-upload="status">{{ statusText }}</p>
|
|
58
|
+
<p v-if="resultText" class="vmz-ui-upload__result" data-vmz-upload="result">{{ resultText }}</p>
|
|
60
59
|
|
|
61
|
-
<div if=
|
|
62
|
-
<button if=
|
|
63
|
-
{cancelLabel}
|
|
60
|
+
<div v-if="showActions" class="vmz-ui-upload__actions" data-vmz-upload="actions">
|
|
61
|
+
<button v-if="canCancel" type="button" class="vmz-ui-upload__cancel" data-vmz-upload="cancel" @click="onCancelClick">
|
|
62
|
+
{{ cancelLabel }}
|
|
64
63
|
</button>
|
|
65
|
-
<button if=
|
|
66
|
-
{resumeLabel}
|
|
64
|
+
<button v-if="canResume" type="button" class="vmz-ui-upload__resume" data-vmz-upload="resume" @click="onResumeClick">
|
|
65
|
+
{{ resumeLabel }}
|
|
67
66
|
</button>
|
|
68
67
|
</div>
|
|
69
68
|
|
|
70
|
-
<p if=
|
|
71
|
-
<p if=
|
|
69
|
+
<p v-if="description" :id="descriptionId" class="vmz-ui-upload__description">{{ description }}</p>
|
|
70
|
+
<p v-if="error" :id="errorId" class="vmz-ui-upload__error" role="alert">{{ error }}</p>
|
|
72
71
|
</div>
|
|
73
72
|
</template>
|
|
74
73
|
|