@varlet/ui 3.17.1 → 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.
Files changed (119) hide show
  1. package/es/app-bar/AppBar.mjs +2 -0
  2. package/es/app-bar/appBar.css +1 -1
  3. package/es/app-bar/props.mjs +8 -0
  4. package/es/badge/badge.css +1 -1
  5. package/es/bottom-navigation-item/BottomNavigationItem.mjs +1 -1
  6. package/es/bottom-navigation-item/bottomNavigationItem.css +1 -1
  7. package/es/button/Button.mjs +13 -6
  8. package/es/button/button.css +1 -1
  9. package/es/button/props.mjs +2 -0
  10. package/es/collapse-transition/useCollapseTransition.mjs +27 -8
  11. package/es/data-table/DataTable.mjs +656 -0
  12. package/es/data-table/DataTableBodyCell.mjs +210 -0
  13. package/es/data-table/DataTableHeaderCell.mjs +237 -0
  14. package/es/data-table/DataTableSfc.css +0 -0
  15. package/es/data-table/dataTable.css +1 -0
  16. package/es/data-table/index.mjs +12 -0
  17. package/es/data-table/props.mjs +94 -0
  18. package/es/data-table/span.mjs +29 -0
  19. package/es/data-table/style/index.mjs +17 -0
  20. package/es/data-table/useBodyRows.mjs +141 -0
  21. package/es/data-table/useColumnSizes.mjs +175 -0
  22. package/es/data-table/useColumnsFixedOffsets.mjs +90 -0
  23. package/es/data-table/useContainerScroll.mjs +35 -0
  24. package/es/data-table/useExpandRow.mjs +46 -0
  25. package/es/data-table/useFootRows.mjs +49 -0
  26. package/es/data-table/useHeaderRows.mjs +113 -0
  27. package/es/data-table/usePagination.mjs +101 -0
  28. package/es/data-table/useSelectionColumn.mjs +242 -0
  29. package/es/data-table/useSorter.mjs +70 -0
  30. package/es/data-table/useTreeExpand.mjs +69 -0
  31. package/es/icon/icon.css +1 -1
  32. package/es/index.bundle.mjs +25 -1
  33. package/es/index.mjs +21 -1
  34. package/es/locale/en-US.mjs +3 -1
  35. package/es/locale/fa-IR.mjs +3 -1
  36. package/es/locale/ja-JP.mjs +3 -1
  37. package/es/locale/zh-CN.mjs +3 -1
  38. package/es/locale/zh-TW.mjs +3 -1
  39. package/es/menu/Menu.mjs +1 -0
  40. package/es/menu/menu.css +1 -1
  41. package/es/menu-select/MenuSelect.mjs +1 -1
  42. package/es/menu-select/menuSelect.css +1 -1
  43. package/es/otp-input/OtpInput.mjs +39 -12
  44. package/es/pagination/pagination.css +1 -1
  45. package/es/rail-navigation/RailNavigation.mjs +87 -0
  46. package/es/rail-navigation/RailNavigationSfc.css +0 -0
  47. package/es/rail-navigation/index.mjs +12 -0
  48. package/es/rail-navigation/props.mjs +21 -0
  49. package/es/rail-navigation/provide.mjs +12 -0
  50. package/es/rail-navigation/railNavigation.css +1 -0
  51. package/es/rail-navigation/style/index.mjs +3 -0
  52. package/es/rail-navigation-item/RailNavigationItem.mjs +177 -0
  53. package/es/rail-navigation-item/RailNavigationItemSfc.css +0 -0
  54. package/es/rail-navigation-item/index.mjs +12 -0
  55. package/es/rail-navigation-item/props.mjs +19 -0
  56. package/es/rail-navigation-item/provide.mjs +17 -0
  57. package/es/rail-navigation-item/railNavigationItem.css +1 -0
  58. package/es/rail-navigation-item/style/index.mjs +6 -0
  59. package/es/select/Select.mjs +1 -1
  60. package/es/select/select.css +1 -1
  61. package/es/snackbar/style/index.mjs +1 -1
  62. package/es/style.mjs +4 -0
  63. package/es/styles/common.css +1 -1
  64. package/es/table/Table.mjs +22 -9
  65. package/es/table/props.mjs +3 -1
  66. package/es/table/table.css +1 -1
  67. package/es/themes/dark/appBar.mjs +3 -0
  68. package/es/themes/dark/bottomNavigationItem.mjs +1 -0
  69. package/es/themes/dark/button.mjs +3 -0
  70. package/es/themes/dark/dataTable.mjs +31 -0
  71. package/es/themes/dark/index.mjs +6 -2
  72. package/es/themes/dark/railNavigation.mjs +12 -0
  73. package/es/themes/dark/railNavigationItem.mjs +18 -0
  74. package/es/themes/dark/table.mjs +4 -1
  75. package/es/themes/dark/treeMenu.mjs +32 -0
  76. package/es/themes/md3-dark/appBar.mjs +3 -0
  77. package/es/themes/md3-dark/bottomNavigationItem.mjs +1 -0
  78. package/es/themes/md3-dark/button.mjs +3 -0
  79. package/es/themes/md3-dark/dataTable.mjs +31 -0
  80. package/es/themes/md3-dark/index.mjs +6 -2
  81. package/es/themes/md3-dark/railNavigation.mjs +12 -0
  82. package/es/themes/md3-dark/railNavigationItem.mjs +18 -0
  83. package/es/themes/md3-dark/table.mjs +4 -1
  84. package/es/themes/md3-dark/treeMenu.mjs +32 -0
  85. package/es/themes/md3-light/appBar.mjs +3 -0
  86. package/es/themes/md3-light/bottomNavigationItem.mjs +1 -0
  87. package/es/themes/md3-light/button.mjs +3 -0
  88. package/es/themes/md3-light/dataTable.mjs +31 -0
  89. package/es/themes/md3-light/index.mjs +6 -2
  90. package/es/themes/md3-light/pagination.mjs +1 -1
  91. package/es/themes/md3-light/railNavigation.mjs +12 -0
  92. package/es/themes/md3-light/railNavigationItem.mjs +18 -0
  93. package/es/themes/md3-light/table.mjs +4 -1
  94. package/es/themes/md3-light/treeMenu.mjs +32 -0
  95. package/es/tree-menu/TreeMenu.mjs +223 -0
  96. package/es/tree-menu/TreeMenuOption.mjs +206 -0
  97. package/es/tree-menu/TreeMenuSfc.css +0 -0
  98. package/es/tree-menu/index.mjs +12 -0
  99. package/es/tree-menu/props.mjs +40 -0
  100. package/es/tree-menu/style/index.mjs +6 -0
  101. package/es/tree-menu/treeMenu.css +1 -0
  102. package/es/varlet.css +1 -1
  103. package/es/varlet.esm.js +11262 -8955
  104. package/highlight/web-types.en-US.json +414 -1
  105. package/highlight/web-types.zh-CN.json +148 -1
  106. package/lib/varlet.cjs.js +10836 -8015
  107. package/lib/varlet.css +1 -1
  108. package/package.json +7 -7
  109. package/types/appBar.d.ts +6 -0
  110. package/types/button.d.ts +2 -0
  111. package/types/buttonGroup.d.ts +1 -1
  112. package/types/dataTable.d.ts +173 -0
  113. package/types/index.d.ts +8 -0
  114. package/types/railNavigation.d.ts +27 -0
  115. package/types/railNavigationItem.d.ts +38 -0
  116. package/types/styleVars.d.ts +84 -0
  117. package/types/table.d.ts +2 -0
  118. package/types/treeMenu.d.ts +80 -0
  119. package/umd/varlet.js +7 -7
@@ -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")],
@@ -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);}
@@ -1,4 +1,12 @@
1
1
  const props = {
2
+ type: {
3
+ type: String,
4
+ default: "primary"
5
+ },
6
+ size: {
7
+ type: String,
8
+ default: "normal"
9
+ },
2
10
  color: String,
3
11
  textColor: String,
4
12
  title: String,
@@ -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-block; position: relative; transition: background-color 0.25s;}.var-badge__content { display: inline-block; vertical-align: middle; 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);}.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;}
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);}
@@ -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,
@@ -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: default;}.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--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;}
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;}
@@ -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 open() {
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 {