@vmz/ui 0.1.15 → 0.1.17

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.
Files changed (58) hide show
  1. package/contracts/token-requirements.v0.json +39 -0
  2. package/package.json +1 -1
  3. package/src/components/Accordion.vmz +13 -13
  4. package/src/components/Alert.vmz +4 -4
  5. package/src/components/AppShell.vmz +4 -4
  6. package/src/components/Autocomplete.vmz +22 -23
  7. package/src/components/Avatar.vmz +1 -1
  8. package/src/components/Badge.vmz +1 -1
  9. package/src/components/Breadcrumb.vmz +4 -4
  10. package/src/components/BulkActions.vmz +3 -3
  11. package/src/components/Button.vmz +9 -9
  12. package/src/components/Callout.vmz +4 -4
  13. package/src/components/Card.vmz +4 -4
  14. package/src/components/Checkbox.vmz +7 -7
  15. package/src/components/CodeBlock.vmz +3 -3
  16. package/src/components/Collapse.vmz +7 -3
  17. package/src/components/ConsoleShell.vmz +7 -7
  18. package/src/components/DataTable.vmz +23 -24
  19. package/src/components/DatePicker.vmz +33 -36
  20. package/src/components/Dialog.vmz +8 -8
  21. package/src/components/Divider.vmz +2 -2
  22. package/src/components/Drawer.vmz +8 -8
  23. package/src/components/Dropdown.vmz +8 -3
  24. package/src/components/Empty.vmz +2 -2
  25. package/src/components/Field.vmz +14 -14
  26. package/src/components/FilterBar.vmz +1 -1
  27. package/src/components/Flex.vmz +1 -1
  28. package/src/components/Form.vmz +7 -7
  29. package/src/components/FormItem.vmz +7 -7
  30. package/src/components/Grid.vmz +1 -1
  31. package/src/components/Icon.vmz +17 -17
  32. package/src/components/Link.vmz +3 -3
  33. package/src/components/List.vmz +12 -13
  34. package/src/components/Menu.vmz +14 -15
  35. package/src/components/Notification.vmz +4 -4
  36. package/src/components/Pagination.vmz +6 -6
  37. package/src/components/Popover.vmz +8 -8
  38. package/src/components/Progress.vmz +3 -3
  39. package/src/components/QueryForm.vmz +2 -2
  40. package/src/components/RadioGroup.vmz +17 -18
  41. package/src/components/Result.vmz +3 -3
  42. package/src/components/Segmented.vmz +7 -7
  43. package/src/components/Select.vmz +36 -36
  44. package/src/components/Skeleton.vmz +6 -6
  45. package/src/components/Space.vmz +1 -1
  46. package/src/components/Spinner.vmz +1 -1
  47. package/src/components/Steps.vmz +9 -10
  48. package/src/components/Switch.vmz +8 -8
  49. package/src/components/Table.vmz +13 -13
  50. package/src/components/Tabs.vmz +14 -15
  51. package/src/components/Tag.vmz +8 -1
  52. package/src/components/TextArea.vmz +12 -12
  53. package/src/components/Timeline.vmz +5 -5
  54. package/src/components/Toc.vmz +7 -8
  55. package/src/components/Tooltip.vmz +4 -4
  56. package/src/components/Tree.vmz +20 -21
  57. package/src/components/Typography.vmz +1 -1
  58. package/src/components/Upload.vmz +44 -45
@@ -1,75 +1,75 @@
1
1
  <template>
2
2
  <div
3
- class={'vmz-ui-select' + (open ? ' is-opened' : '') + (isMultiple ? ' is-multiple' : '')}
3
+ :class="'vmz-ui-select' + (open ? ' is-opened' : '') + (isMultiple ? ' is-multiple' : '')"
4
4
  data-vmz-ui="select"
5
- data-mode={mode}
6
- data-searchable={searchableAttr}
7
- data-invalid={invalidAttr}
5
+ :data-mode="mode"
6
+ :data-searchable="searchableAttr"
7
+ :data-invalid="invalidAttr"
8
8
  >
9
- <label if={label} class="vmz-ui-select__label" for={controlId}>{label}</label>
9
+ <label v-if="label" class="vmz-ui-select__label" :for="controlId">{{ label }}</label>
10
10
  <button
11
11
  type="button"
12
- id={controlId}
12
+ :id="controlId"
13
13
  class="vmz-ui-select__control"
14
14
  role="combobox"
15
- disabled={disabled}
15
+ :disabled="disabled"
16
16
  aria-haspopup="listbox"
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
- onClick={toggle}
23
- onKeyDown={onTriggerKeyDown}
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={open}
30
- id={listId}
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={searchable} class="vmz-ui-select__search">
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={searchQuery}
42
- placeholder={searchPlaceholder}
43
- aria-label={searchPlaceholder}
44
- onInput={onSearchInput}
45
- onKeyDown={onSearchKeyDown}
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={isMultiple ? 'true' : 'false'}
51
+ :aria-multiselectable="isMultiple ? 'true' : 'false'"
52
52
  tabindex="-1"
53
- onKeyDown={onListKeyDown}
53
+ :onKeyDown="onListKeyDown"
54
54
  >
55
- <li if={showEmpty} class="vmz-ui-select__empty" role="presentation">{emptyText}</li>
56
- <li each={visibleOptions} as="opt" key={opt.value} role="presentation">
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={'vmz-ui-select__option' + (opt.selected ? ' is-on' : '')}
59
+ :class="'vmz-ui-select__option' + (opt.selected ? ' is-on' : '')"
60
60
  role="option"
61
- data-vmz-option={opt.value}
62
- aria-selected={opt.selected ? 'true' : 'false'}
63
- onClick={onOptionClick}
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={isMultiple} class="vmz-ui-select__footer">
68
- <button type="button" class="vmz-ui-select__done" data-vmz-select="done" onClick={close}>Done</button>
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={description} id={descriptionId} class="vmz-ui-select__description">{description}</p>
72
- <p if={error} id={errorId} class="vmz-ui-select__error" role="alert">{error}</p>
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={loadingAttr}
5
+ :data-loading="loadingAttr"
6
6
  role="status"
7
7
  aria-live="polite"
8
- aria-busy={loadingAttr}
8
+ :aria-busy="loadingAttr"
9
9
  >
10
- <div if={loading} class="vmz-ui-skeleton__block" data-vmz-skeleton="block"></div>
11
- <div if={loading} class="vmz-ui-skeleton__line" data-vmz-skeleton="line"></div>
12
- <div if={loading} class="vmz-ui-skeleton__line" data-vmz-skeleton="line"></div>
13
- <div if={!loading} class="vmz-ui-skeleton__content">
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>
@@ -1,4 +1,4 @@
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>
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}
@@ -3,7 +3,7 @@
3
3
  class="vmz-ui-spinner"
4
4
  data-vmz-ui="spinner"
5
5
  role="status"
6
- aria-label={label}
6
+ :aria-label="label"
7
7
  ></span>
8
8
  </template>
9
9
 
@@ -1,18 +1,17 @@
1
1
  <template>
2
- <ol class="vmz-ui-steps" data-vmz-ui="steps" aria-label={label}>
2
+ <ol class="vmz-ui-steps" data-vmz-ui="steps" :aria-label="label">
3
3
  <li
4
- each={items}
5
- as="item"
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={item.id}
9
- data-status={item.status}
10
- aria-current={current === item.id ? 'step' : 'false'}
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={item.id}>{item.index}</span>
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={item.description} class="vmz-ui-steps__description">{item.description}</span>
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={controlId}>
2
+ <label class="vmz-ui-switch" data-vmz-ui="switch" :for="controlId">
3
3
  <button
4
- id={controlId}
4
+ :id="controlId"
5
5
  type="button"
6
6
  class="vmz-ui-switch__control"
7
7
  role="switch"
8
- aria-checked={checked}
9
- aria-describedby={describedBy}
10
- disabled={disabled}
11
- onClick={toggle}
12
- onKeyDown={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
 
@@ -1,27 +1,27 @@
1
1
  <template>
2
- <div class="vmz-ui-table-wrap" data-vmz-ui="table" data-sort-key={sortKey} data-sort-dir={sortDir}>
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 onClick={onHeadClick}>
4
+ <thead @click="onHeadClick">
5
5
  <tr>
6
- <th each={columns} as="col" 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}
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={hasRowAction} scope="col">{actionTitle}</th>
11
+ <th v-if="hasRowAction" scope="col">{{ actionTitle }}</th>
12
12
  </tr>
13
13
  </thead>
14
- <tbody onClick={onBodyClick}>
15
- <tr each={rows} as="row" key={row.id} data-vmz-row={row.id}>
16
- <td each={row.cells} as="cell">{cell}</td>
17
- <td if={hasRowAction}>
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={row.id}
22
- disabled={rowActionDisabled}
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>
@@ -3,32 +3,31 @@
3
3
  <div
4
4
  class="vmz-ui-tabs__list"
5
5
  role="tablist"
6
- aria-label={label}
7
- onKeyDown={onListKeyDown}
8
- onClick={onListClick}
6
+ :aria-label="label"
7
+ :onKeyDown="onListKeyDown"
8
+ @click="onListClick"
9
9
  >
10
10
  <button
11
- each={items}
12
- as="item"
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={item.id}
18
- data-vmz-tab={item.id}
19
- aria-selected={selected === item.id ? 'true' : 'false'}
20
- aria-controls={item.controls}
21
- tabindex={selected === item.id ? 0 : -1}
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={panelId}
30
- data-vmz-tab-panel={selected}
31
- aria-labelledby={selected}
28
+ :id="panelId"
29
+ :data-vmz-tab-panel="selected"
30
+ :aria-labelledby="selected"
32
31
  tabindex="0"
33
32
  >
34
33
  <slot />
@@ -1,4 +1,11 @@
1
- <template><span class="vmz-ui-tag" data-vmz-ui="tag" data-status={status||undefined}><slot /></span></template>
1
+ <template>
2
+ <span
3
+ class="vmz-ui-tag"
4
+ data-vmz-ui="tag"
5
+ :data-status="status || undefined"
6
+ :data-vmz-tag-status="status || undefined"
7
+ ><slot /></span>
8
+ </template>
2
9
  <style>
3
10
  .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
11
  .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={invalidAttr}>
3
- <label if={label} class="vmz-ui-textarea__label" for={controlId}>{label}</label>
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={controlId}
5
+ :id="controlId"
6
6
  class="vmz-ui-textarea__control"
7
- rows={rows}
8
- value={value}
9
- disabled={disabled}
10
- readonly={readonly}
11
- aria-invalid={error ? 'true' : 'false'}
12
- aria-describedby={describedBy}
13
- onInput={onInput}
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={description} id={descriptionId} class="vmz-ui-textarea__description">{description}</p>
16
- <p if={error} id={errorId} class="vmz-ui-textarea__error" role="alert">{error}</p>
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={label}>
3
- <li each={items} as="item" 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 if={item.detail} class="vmz-ui-timeline__detail">{item.detail}</p>
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>
@@ -1,16 +1,15 @@
1
1
  <template>
2
- <aside class="vmz-ui-toc" data-vmz-ui="toc" aria-label={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
- each={items}
7
- as="item"
8
- key={item.id}
6
+ v-for="item in items"
7
+ :key="item.id"
9
8
  class="vmz-ui-toc__link"
10
- href={item.href}
11
- data-vmz-toc={item.id}
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={openAttr}
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={open}
11
+ v-if="open"
12
12
  class="vmz-ui-tooltip__bubble"
13
13
  role="tooltip"
14
- id={tooltipId}
14
+ :id="tooltipId"
15
15
  data-vmz-tooltip="bubble"
16
16
  >
17
- {content}
17
+ {{ content }}
18
18
  </div>
19
19
  </div>
20
20
  </template>
@@ -1,40 +1,39 @@
1
1
  <template>
2
2
  <div class="vmz-ui-tree" data-vmz-ui="tree">
3
- <p if={label} class="vmz-ui-tree__label" id={labelId}>{label}</p>
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={labelId}
8
- aria-label={label}
9
- onClick={onTreeClick}
10
- onKeyDown={onTreeKeyDown}
7
+ :aria-labelledby="labelId"
8
+ :aria-label="label"
9
+ @click="onTreeClick"
10
+ :onKeyDown="onTreeKeyDown"
11
11
  >
12
12
  <li
13
- each={items}
14
- as="item"
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={item.id}
19
- data-vmz-tree-item={item.id}
20
- data-depth={item.depth}
21
- aria-selected={selected === item.id ? 'true' : 'false'}
22
- aria-expanded={item.expandedAttr}
23
- tabindex={selected === item.id ? 0 : -1}
24
- style={item.padStyle}
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={item.expandable}
26
+ v-if="item.expandable"
28
27
  type="button"
29
28
  class="vmz-ui-tree__twist"
30
- data-vmz-tree-twist={item.id}
31
- aria-label={item.twistLabel}
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={!item.expandable} class="vmz-ui-tree__twist-spacer" aria-hidden="true"></span>
37
- <span class="vmz-ui-tree__title" data-vmz-tree-title={item.id}>{item.title}</span>
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={variant}><slot /></div></template>
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={'vmz-ui-upload' + (dragOver ? ' is-dragover' : '')}
3
+ :class="'vmz-ui-upload' + (dragOver ? ' is-dragover' : '')"
4
4
  data-vmz-ui="upload"
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}
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={label} class="vmz-ui-upload__label" for={controlId}>{label}</label>
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={controlId}
22
+ :id="controlId"
23
23
  class="vmz-ui-upload__control"
24
24
  type="file"
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
- onChange={onPick}
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={hasItems} class="vmz-ui-upload__queue" data-vmz-upload="queue">
36
+ <ul v-if="hasItems" class="vmz-ui-upload__queue" data-vmz-upload="queue">
37
37
  <li
38
- each={queue}
39
- as="item"
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={item.key}
43
- data-status={item.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={item.showBar} class="vmz-ui-upload__item-bar" style={item.barStyle} aria-hidden="true"></span>
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={emptyHint} class="vmz-ui-upload__empty" data-vmz-upload="empty">{emptyText}</p>
50
+ <p v-if="emptyHint" class="vmz-ui-upload__empty" data-vmz-upload="empty">{{ emptyText }}</p>
52
51
 
53
- <div 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}>
54
- <div class="vmz-ui-upload__bar" style={progressStyle}></div>
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={statusText} class="vmz-ui-upload__status" data-vmz-upload="status">{statusText}</p>
59
- <p if={resultText} class="vmz-ui-upload__result" data-vmz-upload="result">{resultText}</p>
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={showActions} class="vmz-ui-upload__actions" data-vmz-upload="actions">
62
- <button if={canCancel} type="button" class="vmz-ui-upload__cancel" data-vmz-upload="cancel" onClick={onCancelClick}>
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={canResume} type="button" class="vmz-ui-upload__resume" data-vmz-upload="resume" onClick={onResumeClick}>
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={description} id={descriptionId} class="vmz-ui-upload__description">{description}</p>
71
- <p if={error} id={errorId} class="vmz-ui-upload__error" role="alert">{error}</p>
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