@varlet/ui 3.17.0 → 3.18.0-alpha.1781190469654
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/README.md +1 -1
- package/README.zh-CN.md +1 -1
- package/es/action-sheet/style/index.mjs +1 -1
- package/es/app-bar/AppBar.mjs +2 -0
- package/es/app-bar/appBar.css +1 -1
- package/es/app-bar/props.mjs +8 -0
- package/es/badge/badge.css +1 -1
- package/es/bottom-navigation-item/BottomNavigationItem.mjs +1 -1
- package/es/bottom-navigation-item/bottomNavigationItem.css +1 -1
- package/es/button/Button.mjs +13 -6
- package/es/button/button.css +1 -1
- package/es/button/props.mjs +2 -0
- package/es/collapse-transition/useCollapseTransition.mjs +27 -8
- package/es/data-table/DataTable.mjs +656 -0
- package/es/data-table/DataTableBodyCell.mjs +210 -0
- package/es/data-table/DataTableHeaderCell.mjs +237 -0
- package/es/data-table/DataTableSfc.css +0 -0
- package/es/data-table/dataTable.css +1 -0
- package/es/data-table/index.mjs +12 -0
- package/es/data-table/props.mjs +94 -0
- package/es/data-table/span.mjs +29 -0
- package/es/data-table/style/index.mjs +17 -0
- package/es/data-table/useBodyRows.mjs +141 -0
- package/es/data-table/useColumnSizes.mjs +175 -0
- package/es/data-table/useColumnsFixedOffsets.mjs +90 -0
- package/es/data-table/useContainerScroll.mjs +35 -0
- package/es/data-table/useExpandRow.mjs +46 -0
- package/es/data-table/useFootRows.mjs +49 -0
- package/es/data-table/useHeaderRows.mjs +113 -0
- package/es/data-table/usePagination.mjs +101 -0
- package/es/data-table/useSelectionColumn.mjs +242 -0
- package/es/data-table/useSorter.mjs +70 -0
- package/es/data-table/useTreeExpand.mjs +69 -0
- package/es/icon/icon.css +1 -1
- package/es/index.bundle.mjs +25 -1
- package/es/index.mjs +21 -1
- package/es/locale/en-US.mjs +3 -1
- package/es/locale/fa-IR.mjs +3 -1
- package/es/locale/ja-JP.mjs +3 -1
- package/es/locale/zh-CN.mjs +3 -1
- package/es/locale/zh-TW.mjs +3 -1
- package/es/menu/Menu.mjs +1 -0
- package/es/menu/menu.css +1 -1
- package/es/menu-select/MenuSelect.mjs +1 -1
- package/es/menu-select/menuSelect.css +1 -1
- package/es/otp-input/OtpInput.mjs +39 -12
- package/es/pagination/pagination.css +1 -1
- package/es/rail-navigation/RailNavigation.mjs +87 -0
- package/es/rail-navigation/RailNavigationSfc.css +0 -0
- package/es/rail-navigation/index.mjs +12 -0
- package/es/rail-navigation/props.mjs +21 -0
- package/es/rail-navigation/provide.mjs +12 -0
- package/es/rail-navigation/railNavigation.css +1 -0
- package/es/rail-navigation/style/index.mjs +3 -0
- package/es/rail-navigation-item/RailNavigationItem.mjs +177 -0
- package/es/rail-navigation-item/RailNavigationItemSfc.css +0 -0
- package/es/rail-navigation-item/index.mjs +12 -0
- package/es/rail-navigation-item/props.mjs +19 -0
- package/es/rail-navigation-item/provide.mjs +17 -0
- package/es/rail-navigation-item/railNavigationItem.css +1 -0
- package/es/rail-navigation-item/style/index.mjs +6 -0
- package/es/select/Select.mjs +1 -1
- package/es/select/select.css +1 -1
- package/es/style.mjs +4 -0
- package/es/styles/common.css +1 -1
- package/es/table/Table.mjs +22 -9
- package/es/table/props.mjs +3 -1
- package/es/table/table.css +1 -1
- package/es/themes/dark/appBar.mjs +3 -0
- package/es/themes/dark/bottomNavigationItem.mjs +1 -0
- package/es/themes/dark/button.mjs +3 -0
- package/es/themes/dark/dataTable.mjs +31 -0
- package/es/themes/dark/index.mjs +6 -2
- package/es/themes/dark/railNavigation.mjs +12 -0
- package/es/themes/dark/railNavigationItem.mjs +18 -0
- package/es/themes/dark/table.mjs +4 -1
- package/es/themes/dark/treeMenu.mjs +32 -0
- package/es/themes/md3-dark/appBar.mjs +3 -0
- package/es/themes/md3-dark/bottomNavigationItem.mjs +1 -0
- package/es/themes/md3-dark/button.mjs +3 -0
- package/es/themes/md3-dark/dataTable.mjs +31 -0
- package/es/themes/md3-dark/index.mjs +6 -2
- package/es/themes/md3-dark/railNavigation.mjs +12 -0
- package/es/themes/md3-dark/railNavigationItem.mjs +18 -0
- package/es/themes/md3-dark/table.mjs +4 -1
- package/es/themes/md3-dark/treeMenu.mjs +32 -0
- package/es/themes/md3-light/appBar.mjs +3 -0
- package/es/themes/md3-light/bottomNavigationItem.mjs +1 -0
- package/es/themes/md3-light/button.mjs +3 -0
- package/es/themes/md3-light/dataTable.mjs +31 -0
- package/es/themes/md3-light/index.mjs +6 -2
- package/es/themes/md3-light/pagination.mjs +1 -1
- package/es/themes/md3-light/railNavigation.mjs +12 -0
- package/es/themes/md3-light/railNavigationItem.mjs +18 -0
- package/es/themes/md3-light/table.mjs +4 -1
- package/es/themes/md3-light/treeMenu.mjs +32 -0
- package/es/tree-menu/TreeMenu.mjs +223 -0
- package/es/tree-menu/TreeMenuOption.mjs +206 -0
- package/es/tree-menu/TreeMenuSfc.css +0 -0
- package/es/tree-menu/index.mjs +12 -0
- package/es/tree-menu/props.mjs +40 -0
- package/es/tree-menu/style/index.mjs +6 -0
- package/es/tree-menu/treeMenu.css +1 -0
- package/es/varlet.css +1 -1
- package/es/varlet.esm.js +10532 -9190
- package/highlight/web-types.en-US.json +414 -1
- package/highlight/web-types.zh-CN.json +148 -1
- package/lib/varlet.cjs.js +10842 -9190
- package/lib/varlet.css +1 -1
- package/package.json +7 -7
- package/types/appBar.d.ts +6 -0
- package/types/button.d.ts +2 -0
- package/types/buttonGroup.d.ts +1 -1
- package/types/dataTable.d.ts +173 -0
- package/types/index.d.ts +8 -0
- package/types/railNavigation.d.ts +27 -0
- package/types/railNavigationItem.d.ts +38 -0
- package/types/styleVars.d.ts +84 -0
- package/types/table.d.ts +2 -0
- package/types/treeMenu.d.ts +80 -0
- package/umd/varlet.js +7 -7
package/README.md
CHANGED
|
@@ -26,7 +26,7 @@ Varlet is a `Vue3` component library based on Material Design 2 and 3, supportin
|
|
|
26
26
|
|
|
27
27
|
### Features
|
|
28
28
|
|
|
29
|
-
- 🚀 Provide
|
|
29
|
+
- 🚀 Provide 70+ high quality general purpose components
|
|
30
30
|
- 🚀 Components are very lightweight
|
|
31
31
|
- 💪 Developed by Chinese, complete Chinese and English documentation and logistics support
|
|
32
32
|
- 🛠️ Support on-demand introduction
|
package/README.zh-CN.md
CHANGED
package/es/app-bar/AppBar.mjs
CHANGED
|
@@ -19,6 +19,8 @@ function __render__(_ctx, _cache) {
|
|
|
19
19
|
_ctx.n(),
|
|
20
20
|
_ctx.n("$--box"),
|
|
21
21
|
[_ctx.safeAreaTop, _ctx.n("--safe-area-top")],
|
|
22
|
+
[_ctx.type === "surface", _ctx.n("--surface")],
|
|
23
|
+
[_ctx.size === "large", _ctx.n("--large")],
|
|
22
24
|
[_ctx.round, _ctx.n("--round")],
|
|
23
25
|
[_ctx.fixed, _ctx.n("--fixed")],
|
|
24
26
|
[_ctx.border, _ctx.n("--border")],
|
package/es/app-bar/appBar.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
:root { --app-bar-color: var(--color-primary); --app-bar-title-padding: 0 12px; --app-bar-title-font-size: var(--font-size-lg); --app-bar-text-color: #fff; --app-bar-height: 54px; --app-bar-left-gap: 6px; --app-bar-right-gap: 6px; --app-bar-border-radius: 4px; --app-bar-font-size: var(--font-size-lg); --app-bar-border-bottom: thin solid var(--color-outline);}.var-app-bar { position: relative; width: 100%; font-size: var(--app-bar-font-size); background: var(--app-bar-color); color: var(--app-bar-text-color); transition: background-color 0.25s;}.var-app-bar__toolbar { position: relative; display: flex; justify-content: center; align-items: center; height: var(--app-bar-height);}.var-app-bar__title { font-size: var(--app-bar-title-font-size); flex: 1; height: 100%; display: flex; align-items: center; justify-content: center; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; padding: var(--app-bar-title-padding);}.var-app-bar__left,.var-app-bar__right { display: flex; align-items: center; height: 100%;}.var-app-bar__left { position: absolute; top: 0; left: var(--app-bar-left-gap);}.var-app-bar__right { position: absolute; top: 0; right: var(--app-bar-right-gap);}.var-app-bar--round { border-radius: var(--app-bar-border-radius);}.var-app-bar--safe-area-top { padding-top: constant(safe-area-inset-top); padding-top: env(safe-area-inset-top); box-sizing: content-box !important;}.var-app-bar--fixed { position: fixed; top: 0; left: 0;}.var-app-bar--border { border-bottom: var(--app-bar-border-bottom);}
|
|
1
|
+
:root { --app-bar-color: var(--color-primary); --app-bar-title-padding: 0 12px; --app-bar-title-font-size: var(--font-size-lg); --app-bar-text-color: #fff; --app-bar-surface-color: #fff; --app-bar-surface-text-color: rgba(0, 0, 0, 0.87); --app-bar-surface-border-bottom: thin solid var(--color-outline); --app-bar-height: 54px; --app-bar-large-height: 64px; --app-bar-left-gap: 6px; --app-bar-right-gap: 6px; --app-bar-border-radius: 4px; --app-bar-font-size: var(--font-size-lg); --app-bar-border-bottom: thin solid var(--color-outline);}.var-app-bar { position: relative; width: 100%; font-size: var(--app-bar-font-size); background: var(--app-bar-color); color: var(--app-bar-text-color); transition: background-color 0.25s;}.var-app-bar__toolbar { position: relative; display: flex; justify-content: center; align-items: center; height: var(--app-bar-height);}.var-app-bar__title { font-size: var(--app-bar-title-font-size); flex: 1; height: 100%; display: flex; align-items: center; justify-content: center; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; padding: var(--app-bar-title-padding);}.var-app-bar__left,.var-app-bar__right { display: flex; align-items: center; height: 100%;}.var-app-bar__left { position: absolute; top: 0; left: var(--app-bar-left-gap);}.var-app-bar__right { position: absolute; top: 0; right: var(--app-bar-right-gap);}.var-app-bar--round { border-radius: var(--app-bar-border-radius);}.var-app-bar--large .var-app-bar__toolbar { height: var(--app-bar-large-height);}.var-app-bar--surface { background: var(--app-bar-surface-color); color: var(--app-bar-surface-text-color);}.var-app-bar--safe-area-top { padding-top: constant(safe-area-inset-top); padding-top: env(safe-area-inset-top); box-sizing: content-box !important;}.var-app-bar--fixed { position: fixed; top: 0; left: 0;}.var-app-bar--border { border-bottom: var(--app-bar-border-bottom);}.var-app-bar--surface.var-app-bar--border { border-bottom: var(--app-bar-surface-border-bottom);}
|
package/es/app-bar/props.mjs
CHANGED
package/es/badge/badge.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
:root { --badge-content-padding: 2px 6px; --badge-content-border: none; --badge-content-border-radius: 100px; --badge-content-font-size: 12px; --badge-icon-size: 12px; --badge-default-color: #e0e0e0; --badge-primary-color: var(--color-primary); --badge-danger-color: var(--color-danger); --badge-success-color: var(--color-success); --badge-warning-color: var(--color-warning); --badge-info-color: var(--color-info); --badge-default-text-color: #1d1b20; --badge-primary-text-color: var(--color-on-primary); --badge-danger-text-color: var(--color-on-danger); --badge-success-text-color: var(--color-on-success); --badge-warning-text-color: var(--color-on-warning); --badge-info-text-color: var(--color-on-info); --badge-dot-width: 8px; --badge-dot-height: 8px;}.var-badge { display: inline-
|
|
1
|
+
:root { --badge-content-padding: 2px 6px; --badge-content-border: none; --badge-content-border-radius: 100px; --badge-content-font-size: 12px; --badge-icon-size: 12px; --badge-default-color: #e0e0e0; --badge-primary-color: var(--color-primary); --badge-danger-color: var(--color-danger); --badge-success-color: var(--color-success); --badge-warning-color: var(--color-warning); --badge-info-color: var(--color-info); --badge-default-text-color: #1d1b20; --badge-primary-text-color: var(--color-on-primary); --badge-danger-text-color: var(--color-on-danger); --badge-success-text-color: var(--color-on-success); --badge-warning-text-color: var(--color-on-warning); --badge-info-text-color: var(--color-on-info); --badge-dot-width: 8px; --badge-dot-height: 8px;}.var-badge { display: inline-flex; align-items: center; position: relative; vertical-align: middle; transition: background-color 0.25s;}.var-badge__content { display: inline-flex; align-items: center; justify-content: center; text-align: center; padding: var(--badge-content-padding); border: var(--badge-content-border); border-radius: var(--badge-content-border-radius); font-size: var(--badge-content-font-size); line-height: 1;}.var-badge--offset { transform: translateX(var(--badge-offset-x)) translateY(var(--badge-offset-y));}.var-badge__icon[var-badge-cover] { font-size: var(--badge-icon-size);}.var-badge--icon { padding: 2px 4px;}.var-badge--dot { box-sizing: content-box; width: var(--badge-dot-width); height: var(--badge-dot-height); padding: 0;}.var-badge--default { color: var(--badge-default-text-color); background: var(--badge-default-color);}.var-badge--primary { color: var(--badge-primary-text-color); background: var(--badge-primary-color);}.var-badge--info { color: var(--badge-info-text-color); background: var(--badge-info-color);}.var-badge--warning { color: var(--badge-warning-text-color); background: var(--badge-warning-color);}.var-badge--success { color: var(--badge-success-text-color); background: var(--badge-success-color);}.var-badge--danger { color: var(--badge-danger-text-color); background: var(--badge-danger-color);}.var-badge--right-top { position: absolute; top: 0; right: 0; transform: translateY(calc(-50% + var(--badge-offset-y))) translateX(calc(50% + var(--badge-offset-x)));}.var-badge--left-top { position: absolute; top: 0; left: 0; transform: translateY(calc(-50% + var(--badge-offset-y))) translateX(calc(-50% + var(--badge-offset-x)));}.var-badge--right-bottom { position: absolute; bottom: 0; right: 0; transform: translateY(calc(50% + var(--badge-offset-y))) translateX(calc(50% + var(--badge-offset-x)));}.var-badge--left-bottom { position: absolute; bottom: 0; left: 0; transform: translateY(calc(50% + var(--badge-offset-y))) translateX(calc(-50% + var(--badge-offset-x)));}.var-badge-fade-enter-active,.var-badge-fade-leave-active { transition: opacity 0.15s var(--cubic-bezier);}.var-badge-fade-enter-from,.var-badge-fade-leave-to { opacity: 0;}
|
|
@@ -112,10 +112,10 @@ const __sfc__ = defineComponent({
|
|
|
112
112
|
directives: { Ripple },
|
|
113
113
|
props,
|
|
114
114
|
setup(props2) {
|
|
115
|
+
const { index, bottomNavigation, bindBottomNavigation } = useBottomNavigation();
|
|
115
116
|
const name2 = computed(() => props2.name);
|
|
116
117
|
const isActive = computed(() => [name2.value, index.value].includes(active.value));
|
|
117
118
|
const badgeProps = computed(() => props2.badge === true ? defaultBadgeProps : props2.badge);
|
|
118
|
-
const { index, bottomNavigation, bindBottomNavigation } = useBottomNavigation();
|
|
119
119
|
const { animated, active, activeColor, inactiveColor, variant } = bottomNavigation;
|
|
120
120
|
const bottomNavigationItemProvider = {
|
|
121
121
|
name: name2,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
:root { --bottom-navigation-item-font-size: var(--font-size-sm); --bottom-navigation-item-inactive-color: #646566; --bottom-navigation-item-active-color: var(--color-primary); --bottom-navigation-item-active-background-color: var(--color-surface-container-high); --bottom-navigation-item-variant-active-background-color: var(--color-primary-container); --bottom-navigation-item-variant-active-color: var(--color-on-primary-container); --bottom-navigation-item-line-height: 1; --bottom-navigation-item-icon-size: 22px; --bottom-navigation-item-icon-margin-bottom: 5px; --bottom-navigation-item-variant-icon-container-height: 30px; --bottom-navigation-item-variant-icon-container-border-radius: 100px; --bottom-navigation-item-variant-icon-container-max-width: 58px;}.var-bottom-navigation-item { height: 100%; padding-bottom: 2px; position: relative; display: inline-flex; flex: 1 1 0%; flex-direction: column; align-items: center; justify-content: center; line-height: var(--bottom-navigation-item-line-height); color: var(--bottom-navigation-item-inactive-color); cursor: pointer; user-select: none; vertical-align: middle; appearance: none; text-decoration: none; background-color: transparent; outline: 0; border: 0; transition: color 250ms, margin 250ms;}.var-bottom-navigation-item--variant-padding { padding-bottom: 6px;}.var-bottom-navigation-item--active { color: var(--bottom-navigation-item-active-color); background-color: var(--bottom-navigation-item-active-background-color); transition: background-color 250ms;}.var-bottom-navigation-item--animated .var-bottom-navigation-item__label { font-size: calc(var(--bottom-navigation-item-font-size) * 1.16);}.var-bottom-navigation-item--variant-icon-container { display: flex; justify-content: center; align-items: center; width: 0; height: var(--bottom-navigation-item-variant-icon-container-height); border-radius: var(--bottom-navigation-item-variant-icon-container-border-radius); max-width: var(--bottom-navigation-item-variant-icon-container-max-width);}.var-bottom-navigation-item--variant-active { color: var(--bottom-navigation-item-variant-active-color); background-color: var(--bottom-navigation-item-variant-active-background-color); width: 100%; transition: background-color 0.25s, width 0.5s;}.var-bottom-navigation-item--right-half-space { margin-right: calc(var(--bottom-navigation-height) / 2);}.var-bottom-navigation-item--left-half-space { margin-left: calc(var(--bottom-navigation-height) / 2);}.var-bottom-navigation-item--right-space { margin-right: calc(var(--bottom-navigation-height) + var(--bottom-navigation-fab-offset));}.var-bottom-navigation-item__icon[var-bottom-navigation-item-cover] { font-size: var(--bottom-navigation-item-icon-size);}.var-bottom-navigation-item__badge[var-bottom-navigation-item-cover] { margin-top: 6px; margin-right: -4px;}.var-bottom-navigation-item__label { margin-top: var(--bottom-navigation-item-icon-margin-bottom); font-size: var(--bottom-navigation-item-font-size); transition: font-size 0.2s ease 0.1s; white-space: nowrap;}
|
|
1
|
+
:root { --bottom-navigation-item-font-size: var(--font-size-sm); --bottom-navigation-item-inactive-color: #646566; --bottom-navigation-item-active-color: var(--color-primary); --bottom-navigation-item-active-background-color: var(--color-surface-container-high); --bottom-navigation-item-variant-active-background-color: var(--color-primary-container); --bottom-navigation-item-variant-active-color: var(--color-on-primary-container); --bottom-navigation-item-line-height: 1; --bottom-navigation-item-icon-size: 22px; --bottom-navigation-item-icon-margin-bottom: 5px; --bottom-navigation-item-variant-icon-margin-bottom: 6px; --bottom-navigation-item-variant-icon-container-height: 30px; --bottom-navigation-item-variant-icon-container-border-radius: 100px; --bottom-navigation-item-variant-icon-container-max-width: 58px;}.var-bottom-navigation-item { height: 100%; padding-bottom: 2px; position: relative; display: inline-flex; flex: 1 1 0%; flex-direction: column; align-items: center; justify-content: center; line-height: var(--bottom-navigation-item-line-height); color: var(--bottom-navigation-item-inactive-color); cursor: pointer; user-select: none; vertical-align: middle; appearance: none; text-decoration: none; background-color: transparent; outline: 0; border: 0; transition: color 250ms, margin 250ms;}.var-bottom-navigation-item--variant-padding { padding-bottom: 6px;}.var-bottom-navigation-item--active { color: var(--bottom-navigation-item-active-color); background-color: var(--bottom-navigation-item-active-background-color); transition: background-color 250ms;}.var-bottom-navigation-item--animated .var-bottom-navigation-item__label { font-size: calc(var(--bottom-navigation-item-font-size) * 1.16);}.var-bottom-navigation-item--variant-icon-container { display: flex; justify-content: center; align-items: center; width: 0; height: var(--bottom-navigation-item-variant-icon-container-height); border-radius: var(--bottom-navigation-item-variant-icon-container-border-radius); max-width: var(--bottom-navigation-item-variant-icon-container-max-width);}.var-bottom-navigation-item--variant-active { color: var(--bottom-navigation-item-variant-active-color); background-color: var(--bottom-navigation-item-variant-active-background-color); width: 100%; transition: background-color 0.25s, width 0.5s;}.var-bottom-navigation-item--right-half-space { margin-right: calc(var(--bottom-navigation-height) / 2);}.var-bottom-navigation-item--left-half-space { margin-left: calc(var(--bottom-navigation-height) / 2);}.var-bottom-navigation-item--right-space { margin-right: calc(var(--bottom-navigation-height) + var(--bottom-navigation-fab-offset));}.var-bottom-navigation-item__icon[var-bottom-navigation-item-cover] { font-size: var(--bottom-navigation-item-icon-size);}.var-bottom-navigation-item__badge[var-bottom-navigation-item-cover] { margin-top: 6px; margin-right: -4px;}.var-bottom-navigation-item__label { margin-top: var(--bottom-navigation-item-icon-margin-bottom); font-size: var(--bottom-navigation-item-font-size); transition: font-size 0.2s ease 0.1s; white-space: nowrap;}.var-bottom-navigation-item--variant-padding .var-bottom-navigation-item__label { margin-top: var(--bottom-navigation-item-variant-icon-margin-bottom);}
|
package/es/button/Button.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { call, normalizeToArray } from "@varlet/shared";
|
|
1
|
+
import { call, normalizeToArray, toNumber } from "@varlet/shared";
|
|
2
2
|
import { computed, defineComponent, ref } from "vue";
|
|
3
3
|
import Hover from "../hover/index.mjs";
|
|
4
4
|
import VarHoverOverlay, { useHoverOverlay } from "../hover-overlay/index.mjs";
|
|
@@ -26,7 +26,9 @@ function __render__(_ctx, _cache) {
|
|
|
26
26
|
[!_ctx.states.iconContainer && !_ctx.states.text, _ctx.n(`--${_ctx.states.type}`)],
|
|
27
27
|
[_ctx.states.text, `${_ctx.n("--text")} ${_ctx.n(`--text-${_ctx.states.type}`)}`],
|
|
28
28
|
[_ctx.states.iconContainer, _ctx.n(`--icon-container-${_ctx.states.type}`)],
|
|
29
|
+
[_ctx.states.filledDefault, _ctx.n("--filled-default")],
|
|
29
30
|
[_ctx.round, _ctx.n("--round")],
|
|
31
|
+
[_ctx.fab, _ctx.n("--fab")],
|
|
30
32
|
[_ctx.states.outline, _ctx.n("--outline")],
|
|
31
33
|
[_ctx.loading || _ctx.pending, _ctx.n("--loading")],
|
|
32
34
|
[_ctx.disabled, _ctx.n("--disabled")],
|
|
@@ -88,20 +90,21 @@ const __sfc__ = defineComponent({
|
|
|
88
90
|
const { buttonGroup } = useButtonGroup();
|
|
89
91
|
const { hovering, handleHovering } = useHoverOverlay();
|
|
90
92
|
const states = computed(() => {
|
|
91
|
-
var _a, _b, _c, _d, _e, _f;
|
|
93
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
92
94
|
if (!buttonGroup) {
|
|
93
95
|
return {
|
|
94
|
-
elevation: formatElevation(props2.elevation, 2),
|
|
96
|
+
elevation: props2.tonal ? "" : formatElevation(props2.elevation, 2),
|
|
95
97
|
type: (_a = props2.type) != null ? _a : "default",
|
|
96
98
|
size: (_b = props2.size) != null ? _b : "normal",
|
|
97
99
|
color: props2.color,
|
|
98
100
|
text: props2.text,
|
|
99
101
|
textColor: props2.textColor,
|
|
100
102
|
outline: props2.outline,
|
|
101
|
-
iconContainer: props2.iconContainer
|
|
103
|
+
iconContainer: props2.tonal || props2.iconContainer,
|
|
104
|
+
filledDefault: (props2.type == null || props2.type === "default") && isFilledElevation(props2.elevation) && !props2.text && !props2.outline && !props2.tonal && !props2.iconContainer
|
|
102
105
|
};
|
|
103
106
|
}
|
|
104
|
-
const { type, size, color, textColor, mode } = buttonGroup;
|
|
107
|
+
const { type, size, color, textColor, mode, elevation } = buttonGroup;
|
|
105
108
|
return {
|
|
106
109
|
elevation: "",
|
|
107
110
|
type: (_c = props2.type) != null ? _c : type.value,
|
|
@@ -110,7 +113,8 @@ const __sfc__ = defineComponent({
|
|
|
110
113
|
textColor: (_f = props2.textColor) != null ? _f : textColor.value,
|
|
111
114
|
text: mode.value === "text" || mode.value === "outline",
|
|
112
115
|
outline: mode.value === "outline",
|
|
113
|
-
iconContainer: mode.value === "icon-container"
|
|
116
|
+
iconContainer: mode.value === "tonal" || mode.value === "icon-container",
|
|
117
|
+
filledDefault: mode.value === "normal" && ((_g = props2.type) != null ? _g : type.value) === "default" && isFilledElevation(elevation.value)
|
|
114
118
|
};
|
|
115
119
|
});
|
|
116
120
|
function attemptAutoLoading(result) {
|
|
@@ -143,6 +147,9 @@ const __sfc__ = defineComponent({
|
|
|
143
147
|
}
|
|
144
148
|
isFocusing.value = true;
|
|
145
149
|
}
|
|
150
|
+
function isFilledElevation(elevation) {
|
|
151
|
+
return elevation === false || toNumber(elevation) === 0;
|
|
152
|
+
}
|
|
146
153
|
return {
|
|
147
154
|
pending,
|
|
148
155
|
states,
|
package/es/button/button.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
:root { --button-default-text-color: #555; --button-primary-text-color: var(--color-on-primary); --button-danger-text-color: var(--color-on-danger); --button-success-text-color: var(--color-on-success); --button-warning-text-color: var(--color-on-warning); --button-info-text-color: var(--color-on-info); --button-default-color: #f5f5f5; --button-primary-color: var(--color-primary); --button-danger-color: var(--color-danger); --button-success-color: var(--color-success); --button-warning-color: var(--color-warning); --button-info-color: var(--color-info); --button-default-icon-color: #555; --button-primary-icon-color: var(--color-on-primary-container); --button-danger-icon-color: var(--color-on-danger-container); --button-success-icon-color: var(--color-on-success-container); --button-warning-icon-color: var(--color-on-warning-container); --button-info-icon-color: var(--color-on-info-container); --button-default-icon-container-color: #f5f5f5; --button-primary-icon-container-color: var(--color-primary-container); --button-danger-icon-container-color: var(--color-danger-container); --button-success-icon-container-color: var(--color-success-container); --button-warning-icon-container-color: var(--color-warning-container); --button-info-icon-container-color: var(--color-info-container); --button-disabled-color: var(--color-disabled); --button-disabled-text-color: var(--color-text-disabled); --button-border-radius: 4px; --button-mini-padding: 0 8px; --button-small-padding: 0 12px; --button-normal-padding: 0 16px; --button-large-padding: 0 22px; --button-round-padding: 6px; --button-mini-height: 20px; --button-small-height: 28px; --button-normal-height: 36px; --button-large-height: 44px; --button-mini-font-size: var(--font-size-xs); --button-small-font-size: var(--font-size-sm); --button-normal-font-size: var(--font-size-md); --button-large-font-size: var(--font-size-lg);}.var-button { position: relative; justify-content: center; align-items: center; outline: none; border: none; border-radius: var(--button-border-radius); user-select: none; cursor: pointer; font-family: inherit; transition: box-shadow 0.2s, background-color 0.25s, border-radius 0.2s; will-change: box-shadow; -webkit-tap-highlight-color: transparent; white-space: nowrap;}.var-button:active { box-shadow: 0 3px 5px -1px var(--shadow-key-umbra-opacity), 0 5px 8px 0 var(--shadow-key-penumbra-opacity), 0 1px 14px 0 var(--shadow-key-ambient-opacity);}.var-button__content { display: flex; align-items: center; flex-wrap: wrap;}.var-button__loading[var-button-cover] { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);}.var-button--default { color: var(--button-default-text-color); background-color: var(--button-default-color);}.var-button--primary { color: var(--button-primary-text-color); background-color: var(--button-primary-color);}.var-button--info { color: var(--button-info-text-color); background-color: var(--button-info-color);}.var-button--success { color: var(--button-success-text-color); background-color: var(--button-success-color);}.var-button--warning { color: var(--button-warning-text-color); background-color: var(--button-warning-color);}.var-button--danger { color: var(--button-danger-text-color); background-color: var(--button-danger-color);}.var-button--loading { cursor:
|
|
1
|
+
:root { --button-default-text-color: #555; --button-primary-text-color: var(--color-on-primary); --button-danger-text-color: var(--color-on-danger); --button-success-text-color: var(--color-on-success); --button-warning-text-color: var(--color-on-warning); --button-info-text-color: var(--color-on-info); --button-default-color: #f5f5f5; --button-default-filled-color: #f5f5f5; --button-primary-color: var(--color-primary); --button-danger-color: var(--color-danger); --button-success-color: var(--color-success); --button-warning-color: var(--color-warning); --button-info-color: var(--color-info); --button-default-icon-color: #555; --button-primary-icon-color: var(--color-on-primary-container); --button-danger-icon-color: var(--color-on-danger-container); --button-success-icon-color: var(--color-on-success-container); --button-warning-icon-color: var(--color-on-warning-container); --button-info-icon-color: var(--color-on-info-container); --button-default-icon-container-color: #f5f5f5; --button-primary-icon-container-color: var(--color-primary-container); --button-danger-icon-container-color: var(--color-danger-container); --button-success-icon-container-color: var(--color-success-container); --button-warning-icon-container-color: var(--color-warning-container); --button-info-icon-container-color: var(--color-info-container); --button-disabled-color: var(--color-disabled); --button-disabled-text-color: var(--color-text-disabled); --button-border-radius: 4px; --button-mini-padding: 0 8px; --button-small-padding: 0 12px; --button-normal-padding: 0 16px; --button-large-padding: 0 22px; --button-round-padding: 6px; --button-fab-size: 56px; --button-fab-border-radius: 16px; --button-mini-height: 20px; --button-small-height: 28px; --button-normal-height: 36px; --button-large-height: 44px; --button-mini-font-size: var(--font-size-xs); --button-small-font-size: var(--font-size-sm); --button-normal-font-size: var(--font-size-md); --button-large-font-size: var(--font-size-lg);}.var-button { position: relative; justify-content: center; align-items: center; outline: none; border: none; border-radius: var(--button-border-radius); user-select: none; cursor: pointer; font-family: inherit; transition: box-shadow 0.2s, background-color 0.25s, border-radius 0.2s; will-change: box-shadow; -webkit-tap-highlight-color: transparent; white-space: nowrap;}.var-button:active { box-shadow: 0 3px 5px -1px var(--shadow-key-umbra-opacity), 0 5px 8px 0 var(--shadow-key-penumbra-opacity), 0 1px 14px 0 var(--shadow-key-ambient-opacity);}.var-button__content { display: flex; align-items: center; flex-wrap: wrap;}.var-button__loading[var-button-cover] { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);}.var-button--default { color: var(--button-default-text-color); background-color: var(--button-default-color);}.var-button--filled-default { background-color: var(--button-default-filled-color);}.var-button--primary { color: var(--button-primary-text-color); background-color: var(--button-primary-color);}.var-button--info { color: var(--button-info-text-color); background-color: var(--button-info-color);}.var-button--success { color: var(--button-success-text-color); background-color: var(--button-success-color);}.var-button--warning { color: var(--button-warning-text-color); background-color: var(--button-warning-color);}.var-button--danger { color: var(--button-danger-text-color); background-color: var(--button-danger-color);}.var-button--loading { cursor: wait;}.var-button--block { width: 100%;}.var-button--text-default { color: inherit;}.var-button--text-primary { color: var(--button-primary-color);}.var-button--text-info { color: var(--button-info-color);}.var-button--text-success { color: var(--button-success-color);}.var-button--text-warning { color: var(--button-warning-color);}.var-button--text-danger { color: var(--button-danger-color);}.var-button--icon-container-default { color: var(--button-default-icon-color); background-color: var(--button-default-icon-container-color);}.var-button--icon-container-primary { color: var(--button-primary-icon-color); background-color: var(--button-primary-icon-container-color);}.var-button--icon-container-info { color: var(--button-info-icon-color); background-color: var(--button-info-icon-container-color);}.var-button--icon-container-success { color: var(--button-success-icon-color); background-color: var(--button-success-icon-container-color);}.var-button--icon-container-warning { color: var(--button-warning-icon-color); background-color: var(--button-warning-icon-container-color);}.var-button--icon-container-danger { color: var(--button-danger-icon-color); background-color: var(--button-danger-icon-container-color);}.var-button--normal { height: var(--button-normal-height); padding: var(--button-normal-padding); font-size: var(--button-normal-font-size);}.var-button--large { height: var(--button-large-height); padding: var(--button-large-padding); font-size: var(--button-large-font-size);}.var-button--small { height: var(--button-small-height); padding: var(--button-small-padding); font-size: var(--button-small-font-size);}.var-button--mini { height: var(--button-mini-height); padding: var(--button-mini-padding); font-size: var(--button-mini-font-size);}.var-button--round { padding: var(--button-round-padding); border-radius: 50%; height: auto;}.var-button--fab { width: var(--button-fab-size); height: var(--button-fab-size); padding: 0; border-radius: var(--button-fab-border-radius);}.var-button--round.var-button--fab { border-radius: 50%;}.var-button--outline { border: thin solid currentColor;}.var-button--hidden { opacity: 0;}.var-button--disabled { background-color: var(--button-disabled-color); color: var(--button-disabled-text-color); cursor: not-allowed; box-shadow: none !important;}.var-button--text-disabled { color: var(--button-disabled-text-color);}.var-button--text { background-color: transparent;}.var-button--text:active { box-shadow: none;}
|
package/es/button/props.mjs
CHANGED
|
@@ -28,11 +28,13 @@ const props = {
|
|
|
28
28
|
size: String,
|
|
29
29
|
loading: Boolean,
|
|
30
30
|
round: Boolean,
|
|
31
|
+
fab: Boolean,
|
|
31
32
|
block: Boolean,
|
|
32
33
|
text: Boolean,
|
|
33
34
|
outline: Boolean,
|
|
34
35
|
disabled: Boolean,
|
|
35
36
|
autoLoading: Boolean,
|
|
37
|
+
tonal: Boolean,
|
|
36
38
|
iconContainer: Boolean,
|
|
37
39
|
ripple: {
|
|
38
40
|
type: Boolean,
|
|
@@ -23,16 +23,22 @@ import { nextTick, watch } from "vue";
|
|
|
23
23
|
function useCollapseTransition(options) {
|
|
24
24
|
const { contentEl, showContent, expand } = options;
|
|
25
25
|
let isInitToTrigger = true;
|
|
26
|
+
let transitionVersion = 0;
|
|
27
|
+
let startedTransitionVersion = 0;
|
|
26
28
|
watch(
|
|
27
29
|
expand,
|
|
28
30
|
(value) => {
|
|
31
|
+
const version = ++transitionVersion;
|
|
29
32
|
nextTick(() => {
|
|
30
|
-
value ? open() : close();
|
|
33
|
+
value ? open(version) : close(version);
|
|
31
34
|
});
|
|
32
35
|
},
|
|
33
36
|
{ immediate: true }
|
|
34
37
|
);
|
|
35
|
-
function
|
|
38
|
+
function isLatestTransition(version) {
|
|
39
|
+
return version === transitionVersion;
|
|
40
|
+
}
|
|
41
|
+
function open(version) {
|
|
36
42
|
return __async(this, null, function* () {
|
|
37
43
|
if (!contentEl.value) {
|
|
38
44
|
return;
|
|
@@ -40,13 +46,13 @@ function useCollapseTransition(options) {
|
|
|
40
46
|
contentEl.value.style.height = "";
|
|
41
47
|
showContent.value = true;
|
|
42
48
|
yield raf();
|
|
43
|
-
if (!contentEl.value) {
|
|
49
|
+
if (!contentEl.value || !isLatestTransition(version)) {
|
|
44
50
|
return;
|
|
45
51
|
}
|
|
46
52
|
const { offsetHeight } = contentEl.value;
|
|
47
53
|
contentEl.value.style.height = "0px";
|
|
48
54
|
yield raf();
|
|
49
|
-
if (!contentEl.value) {
|
|
55
|
+
if (!contentEl.value || !isLatestTransition(version)) {
|
|
50
56
|
return;
|
|
51
57
|
}
|
|
52
58
|
contentEl.value.style.height = offsetHeight + "px";
|
|
@@ -54,27 +60,40 @@ function useCollapseTransition(options) {
|
|
|
54
60
|
return;
|
|
55
61
|
}
|
|
56
62
|
yield doubleRaf();
|
|
57
|
-
if (isInitToTrigger) {
|
|
63
|
+
if (isInitToTrigger && isLatestTransition(version)) {
|
|
58
64
|
handleTransitionEnd();
|
|
59
65
|
}
|
|
60
66
|
});
|
|
61
67
|
}
|
|
62
|
-
const close = () => __async(null, null, function* () {
|
|
68
|
+
const close = (version) => __async(null, null, function* () {
|
|
63
69
|
if (!contentEl.value) {
|
|
64
70
|
return;
|
|
65
71
|
}
|
|
66
72
|
const { offsetHeight } = contentEl.value;
|
|
67
73
|
contentEl.value.style.height = offsetHeight + "px";
|
|
68
74
|
yield raf();
|
|
75
|
+
if (!contentEl.value || !isLatestTransition(version)) {
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
69
78
|
contentEl.value.style.height = "0px";
|
|
70
79
|
});
|
|
71
|
-
const handleTransitionEnd = () => {
|
|
80
|
+
const handleTransitionEnd = (event) => {
|
|
81
|
+
if (event && (event.target !== contentEl.value || event.propertyName !== "height")) {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
if (event && startedTransitionVersion !== transitionVersion) {
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
72
87
|
if (!expand.value) {
|
|
73
88
|
showContent.value = false;
|
|
74
89
|
}
|
|
75
90
|
contentEl.value.style.height = "";
|
|
76
91
|
};
|
|
77
|
-
const handleTransitionStart = () => {
|
|
92
|
+
const handleTransitionStart = (event) => {
|
|
93
|
+
if (event && (event.target !== contentEl.value || event.propertyName !== "height")) {
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
startedTransitionVersion = transitionVersion;
|
|
78
97
|
isInitToTrigger = false;
|
|
79
98
|
};
|
|
80
99
|
return {
|