@veltra/desktop 1.2.4 → 1.2.6

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 (140) hide show
  1. package/dist/components/auto-complete/auto-complete.js +25 -13
  2. package/dist/components/auto-complete/auto-complete.js.map +1 -1
  3. package/dist/components/auto-complete/auto-complete.vue.d.ts +3 -2
  4. package/dist/components/batch-edit/batch-edit-form.js +33 -26
  5. package/dist/components/batch-edit/batch-edit-form.js.map +1 -1
  6. package/dist/components/batch-edit/batch-edit-list.js +4 -1
  7. package/dist/components/batch-edit/batch-edit-list.js.map +1 -1
  8. package/dist/components/batch-edit/batch-edit.js +29 -50
  9. package/dist/components/batch-edit/batch-edit.js.map +1 -1
  10. package/dist/components/batch-edit/batch-edit.vue.d.ts +3 -3
  11. package/dist/components/batch-edit/di.js.map +1 -1
  12. package/dist/components/batch-edit/style2.css +3 -0
  13. package/dist/components/batch-edit/use-edit.js +39 -71
  14. package/dist/components/batch-edit/use-edit.js.map +1 -1
  15. package/dist/components/batch-edit/use-features.js +38 -0
  16. package/dist/components/batch-edit/use-features.js.map +1 -0
  17. package/dist/components/cascade/cascade.vue.d.ts +1 -1
  18. package/dist/components/contextmenu/style2.css +7 -7
  19. package/dist/components/dual-nav/dual-nav-app.js +70 -0
  20. package/dist/components/dual-nav/dual-nav-app.js.map +1 -0
  21. package/dist/components/dual-nav/dual-nav.js +128 -0
  22. package/dist/components/dual-nav/dual-nav.js.map +1 -0
  23. package/dist/components/dual-nav/dual-nav.vue.d.ts +13 -0
  24. package/dist/components/dual-nav/helper.js +21 -0
  25. package/dist/components/dual-nav/helper.js.map +1 -0
  26. package/dist/components/dual-nav/index.d.ts +1 -0
  27. package/dist/components/dual-nav/style.js +5 -0
  28. package/dist/components/dual-nav/style2.css +174 -0
  29. package/dist/components/index.d.ts +23 -22
  30. package/dist/components/index.js +28 -26
  31. package/dist/components/index.js.map +1 -1
  32. package/dist/components/loading/loading.js +1 -1
  33. package/dist/components/loading/loading.js.map +1 -1
  34. package/dist/components/loading/style2.css +61 -81
  35. package/dist/components/nav/di.js +7 -0
  36. package/dist/components/nav/di.js.map +1 -0
  37. package/dist/components/nav/helper.js +18 -0
  38. package/dist/components/nav/helper.js.map +1 -0
  39. package/dist/components/nav/index.d.ts +3 -0
  40. package/dist/components/{menu/menu-icon.js → nav/nav-icon.js} +4 -4
  41. package/dist/components/nav/nav-icon.js.map +1 -0
  42. package/dist/components/{menu/menu-item-collapsed.js → nav/nav-item-collapsed.js} +23 -23
  43. package/dist/components/nav/nav-item-collapsed.js.map +1 -0
  44. package/dist/components/{menu/menu-item.js → nav/nav-item.js} +13 -13
  45. package/dist/components/nav/nav-item.js.map +1 -0
  46. package/dist/components/{menu/menu-item.vue.d.ts → nav/nav-item.vue.d.ts} +4 -4
  47. package/dist/components/{menu/menu-sub-collapsed.js → nav/nav-sub-collapsed.js} +19 -19
  48. package/dist/components/nav/nav-sub-collapsed.js.map +1 -0
  49. package/dist/components/{menu/menu-sub.js → nav/nav-sub.js} +24 -24
  50. package/dist/components/nav/nav-sub.js.map +1 -0
  51. package/dist/components/{menu/menu-sub.vue.d.ts → nav/nav-sub.vue.d.ts} +4 -4
  52. package/dist/components/{menu/menu.js → nav/nav.js} +45 -36
  53. package/dist/components/nav/nav.js.map +1 -0
  54. package/dist/components/nav/nav.vue.d.ts +18 -0
  55. package/dist/components/nav/style.d.ts +1 -0
  56. package/dist/components/{menu → nav}/style2.css +105 -105
  57. package/dist/components/{menu/use-menu-item.js → nav/use-nav-item.js} +11 -11
  58. package/dist/components/nav/use-nav-item.js.map +1 -0
  59. package/dist/components/{menu/walk-menu-path.js → nav/walk-nav-path.js} +5 -5
  60. package/dist/components/nav/walk-nav-path.js.map +1 -0
  61. package/dist/components/number/number.vue.d.ts +1 -1
  62. package/dist/components/select/style2.css +4 -4
  63. package/dist/components/steps/steps.vue.d.ts +2 -2
  64. package/dist/components/tabs/tabs-horizontal.vue.d.ts +2 -2
  65. package/dist/components/tabs/tabs-vertical.vue.d.ts +2 -2
  66. package/dist/components/tabs/tabs.vue.d.ts +2 -2
  67. package/dist/components/watermark/watermark.vue.d.ts +1 -1
  68. package/dist/index.d.ts +63 -61
  69. package/dist/index.js +56 -55
  70. package/dist/style.js +2 -1
  71. package/dist/types/auto-complete.d.ts +6 -1
  72. package/dist/types/batch-edit.d.ts +15 -2
  73. package/dist/types/dual-nav.d.ts +27 -0
  74. package/dist/types/index.d.ts +4 -3
  75. package/dist/types/loading.d.ts +1 -1
  76. package/dist/types/nav.d.ts +48 -0
  77. package/package.json +6 -6
  78. package/src/components/auto-complete/auto-complete.vue +24 -13
  79. package/src/components/batch-edit/batch-edit-form.vue +29 -18
  80. package/src/components/batch-edit/batch-edit-list.vue +6 -1
  81. package/src/components/batch-edit/batch-edit.vue +36 -73
  82. package/src/components/batch-edit/di.ts +3 -1
  83. package/src/components/batch-edit/style.scss +5 -0
  84. package/src/components/batch-edit/use-edit.ts +63 -116
  85. package/src/components/batch-edit/use-features.ts +58 -0
  86. package/src/components/contextmenu/style.scss +5 -5
  87. package/src/components/dual-nav/dual-nav-app.vue +61 -0
  88. package/src/components/dual-nav/dual-nav.vue +156 -0
  89. package/src/components/dual-nav/helper.ts +25 -0
  90. package/src/components/dual-nav/index.ts +1 -0
  91. package/src/components/dual-nav/style.scss +188 -0
  92. package/src/components/dual-nav/style.ts +5 -0
  93. package/src/components/index.ts +3 -1
  94. package/src/components/loading/loading.vue +1 -1
  95. package/src/components/loading/style.scss +68 -104
  96. package/src/components/nav/di.ts +17 -0
  97. package/src/components/nav/helper.ts +22 -0
  98. package/src/components/nav/index.ts +3 -0
  99. package/src/components/{menu/menu-icon.vue → nav/nav-icon.vue} +1 -1
  100. package/src/components/nav/nav-item-collapsed.vue +66 -0
  101. package/src/components/nav/nav-item.vue +36 -0
  102. package/src/components/{menu/menu-sub-collapsed.vue → nav/nav-sub-collapsed.vue} +15 -15
  103. package/src/components/{menu/menu-sub.vue → nav/nav-sub.vue} +19 -19
  104. package/src/components/{menu/menu.vue → nav/nav.vue} +42 -42
  105. package/src/components/{menu → nav}/style.scss +16 -14
  106. package/src/components/{menu/use-menu-item.ts → nav/use-nav-item.ts} +14 -14
  107. package/src/components/{menu/walk-menu-path.ts → nav/walk-nav-path.ts} +2 -2
  108. package/src/components/select/style.scss +4 -4
  109. package/src/style.ts +2 -1
  110. package/src/types/auto-complete.ts +6 -1
  111. package/src/types/batch-edit.ts +18 -1
  112. package/src/types/dual-nav.ts +28 -0
  113. package/src/types/index.ts +2 -1
  114. package/src/types/loading.ts +1 -1
  115. package/src/types/nav.ts +49 -0
  116. package/dist/components/menu/di.js +0 -7
  117. package/dist/components/menu/di.js.map +0 -1
  118. package/dist/components/menu/helper.js +0 -8
  119. package/dist/components/menu/helper.js.map +0 -1
  120. package/dist/components/menu/index.d.ts +0 -3
  121. package/dist/components/menu/menu-icon.js.map +0 -1
  122. package/dist/components/menu/menu-item-collapsed.js.map +0 -1
  123. package/dist/components/menu/menu-item.js.map +0 -1
  124. package/dist/components/menu/menu-sub-collapsed.js.map +0 -1
  125. package/dist/components/menu/menu-sub.js.map +0 -1
  126. package/dist/components/menu/menu.js.map +0 -1
  127. package/dist/components/menu/menu.vue.d.ts +0 -14
  128. package/dist/components/menu/use-menu-item.js.map +0 -1
  129. package/dist/components/menu/walk-menu-path.js.map +0 -1
  130. package/dist/types/menu.d.ts +0 -40
  131. package/src/components/menu/di.ts +0 -17
  132. package/src/components/menu/helper.ts +0 -3
  133. package/src/components/menu/index.ts +0 -3
  134. package/src/components/menu/menu-item-collapsed.vue +0 -66
  135. package/src/components/menu/menu-item.vue +0 -36
  136. package/src/components/menu/menu-node.ts +0 -6
  137. package/src/types/menu.ts +0 -41
  138. /package/dist/components/{menu → dual-nav}/style.d.ts +0 -0
  139. /package/dist/components/{menu → nav}/style.js +0 -0
  140. /package/src/components/{menu → nav}/style.ts +0 -0
@@ -0,0 +1 @@
1
+ import { _default } from "./dual-nav.vue.js";
@@ -0,0 +1,5 @@
1
+ import "../icon/style.js";
2
+ import "../tip/style.js";
3
+ import "../nav/style.js";
4
+ import "./style2.css";
5
+ import "@veltra/directives/ripple/style.js";
@@ -0,0 +1,174 @@
1
+ @charset "UTF-8";
2
+ /** flex布局 */
3
+ /**
4
+ * 设置css变量
5
+ * 参数1:变量前缀
6
+ * 参数2: 一个由值组成的列表或者由key, value组成的map
7
+ * css-var(height, (
8
+ * large: 40px
9
+ * default: 32px
10
+ * small: 24px
11
+ * ))
12
+ * 生成的css变量:
13
+ * --u-height-large: 40px;
14
+ * --u-height-default: 32px;
15
+ * --u-height-small: 24px;
16
+ */
17
+ /** 暗色:data-theme 与系统偏好,与 UITheme.injectBuiltInThemes 选择器策略一致 */
18
+ .u-dual-nav {
19
+ display: flex;
20
+ height: 100%;
21
+ min-height: 0;
22
+ background-color: var(--u-nav-bg-color);
23
+ border: 1px solid var(--u-border-color);
24
+ border-radius: calc(var(--u-radius-large) + 6px);
25
+ overflow: hidden;
26
+ }
27
+ .u-dual-nav__rail {
28
+ flex-shrink: 0;
29
+ width: var(--u-nav-rail-width);
30
+ display: flex;
31
+ flex-direction: column;
32
+ align-items: center;
33
+ gap: 4px;
34
+ padding: 8px 6px;
35
+ background-color: var(--u-bg-color-middle);
36
+ }
37
+ .u-dual-nav__divider {
38
+ flex-shrink: 0;
39
+ width: 1px;
40
+ background-color: var(--u-border-color);
41
+ }
42
+ .u-dual-nav__panel {
43
+ flex: 1;
44
+ min-width: 0;
45
+ min-height: 0;
46
+ display: flex;
47
+ flex-direction: column;
48
+ }
49
+ .u-dual-nav__panel-header {
50
+ flex-shrink: 0;
51
+ display: flex;
52
+ align-items: flex-start;
53
+ justify-content: space-between;
54
+ gap: 8px;
55
+ padding: 12px 12px 10px;
56
+ border-bottom: 1px solid var(--u-border-color);
57
+ }
58
+ .u-dual-nav__panel-header-main {
59
+ flex: 1;
60
+ min-width: 0;
61
+ display: flex;
62
+ flex-direction: column;
63
+ gap: 4px;
64
+ }
65
+ .u-dual-nav__panel-title {
66
+ margin: 0;
67
+ font-size: var(--u-font-size-default);
68
+ font-weight: 600;
69
+ line-height: 1.4;
70
+ color: var(--u-text-color-title);
71
+ }
72
+ .u-dual-nav__description {
73
+ margin: 0;
74
+ font-size: var(--u-font-size-assist-default);
75
+ line-height: 1.5;
76
+ color: var(--u-text-color-second);
77
+ }
78
+ .u-dual-nav__toggle-expand {
79
+ flex-shrink: 0;
80
+ display: inline-flex;
81
+ align-items: center;
82
+ justify-content: center;
83
+ width: 28px;
84
+ height: 28px;
85
+ padding: 0;
86
+ border: none;
87
+ border-radius: var(--u-radius-default);
88
+ background: transparent;
89
+ color: var(--u-text-color-second);
90
+ cursor: pointer;
91
+ transition: background-color 0.15s ease, color 0.15s ease;
92
+ }
93
+ .u-dual-nav__toggle-expand:hover {
94
+ background-color: var(--u-nav-hover-bg);
95
+ color: var(--u-nav-hover-color);
96
+ }
97
+ .u-dual-nav__panel-body {
98
+ flex: 1;
99
+ min-height: 0;
100
+ }
101
+ .u-dual-nav__panel-body .u-nav {
102
+ height: 100%;
103
+ border: none;
104
+ border-radius: 0;
105
+ box-shadow: none;
106
+ background-color: transparent;
107
+ }
108
+ .u-dual-nav__app {
109
+ width: 100%;
110
+ aspect-ratio: 1;
111
+ max-width: calc(var(--u-nav-rail-width) - 12px);
112
+ display: inline-flex;
113
+ align-items: center;
114
+ justify-content: center;
115
+ padding: 0;
116
+ border: none;
117
+ border-radius: calc(var(--u-radius-default) + 2px);
118
+ background: transparent;
119
+ color: var(--u-text-color-second);
120
+ cursor: pointer;
121
+ transition: background-color 0.15s ease, color 0.15s ease;
122
+ }
123
+ .u-dual-nav__app:hover:not(:disabled) {
124
+ background-color: var(--u-nav-hover-bg);
125
+ color: var(--u-nav-hover-color);
126
+ }
127
+ .u-dual-nav__app.is-selected {
128
+ background-color: var(--u-nav-hover-bg);
129
+ color: var(--u-nav-hover-color);
130
+ }
131
+ .u-dual-nav__app.is-selected:hover:not(:disabled) {
132
+ background-color: var(--u-nav-hover-bg);
133
+ color: var(--u-nav-hover-color);
134
+ }
135
+ .u-dual-nav__app.is-active {
136
+ background-color: var(--u-nav-active-bg);
137
+ color: var(--u-nav-active-color);
138
+ }
139
+ .u-dual-nav__app.is-active:hover:not(:disabled) {
140
+ background-color: var(--u-nav-active-bg);
141
+ color: var(--u-nav-active-color);
142
+ }
143
+ .u-dual-nav__app.is-disabled {
144
+ opacity: 0.55;
145
+ cursor: not-allowed;
146
+ }
147
+ .u-dual-nav__app-icon {
148
+ width: 20px;
149
+ height: 20px;
150
+ font-size: 20px;
151
+ object-fit: contain;
152
+ }
153
+ .u-dual-nav__app-fallback {
154
+ font-size: 14px;
155
+ font-weight: 600;
156
+ line-height: 1;
157
+ }
158
+ .u-dual-nav__app-tip {
159
+ display: flex;
160
+ flex-direction: column;
161
+ gap: 4px;
162
+ max-width: 200px;
163
+ }
164
+ .u-dual-nav__app-tip-title {
165
+ font-weight: 600;
166
+ line-height: 1.4;
167
+ color: var(--u-text-color-title);
168
+ }
169
+ .u-dual-nav__app-tip-description {
170
+ margin: 0;
171
+ font-size: var(--u-font-size-assist-default);
172
+ line-height: 1.5;
173
+ color: var(--u-text-color-second);
174
+ }
@@ -72,25 +72,26 @@ import { _default as _default$62 } from "./group-input/group-input.vue.js";
72
72
  import { _default as _default$63 } from "./list/list.vue.js";
73
73
  import { _default as _default$64 } from "./list/list-item.vue.js";
74
74
  import { _default as _default$65 } from "./rich-text-editor/rich-text-editor.vue.js";
75
- import { _default as _default$66 } from "./menu/menu.vue.js";
76
- import { _default as _default$67 } from "./menu/menu-sub.vue.js";
77
- import { _default as _default$68 } from "./menu/menu-item.vue.js";
78
- import { _default as _default$69 } from "./grid-input/grid-input.vue.js";
79
- import { _default as _default$70 } from "./switch/switch.vue.js";
80
- import { _default as _default$71 } from "./form-item/form-item.vue.js";
81
- import { _default as _default$72 } from "./radio-group/radio-group.vue.js";
82
- import { _default as _default$73 } from "./checkbox-group/checkbox-group.vue.js";
83
- import { _default as _default$74 } from "./file-viewer/file-viewer.vue.js";
84
- import { _default as _default$75 } from "./text/text.vue.js";
85
- import { _default as _default$76 } from "./select/select.vue.js";
86
- import { _default as _default$77 } from "./breadcrumb/breadcrumb.vue.js";
87
- import { _default as _default$78 } from "./icon/icon.vue.js";
88
- import { _default as _default$79 } from "./kbd/kbd.vue.js";
89
- import { _default as _default$80 } from "./pop-confirm/pop-confirm.vue.js";
90
- import { _default as _default$81 } from "./paginator/paginator.vue.js";
91
- import { _default as _default$82 } from "./tag/tag.vue.js";
92
- import { _default as _default$83 } from "./float-button/float-button.vue.js";
93
- import { _default as _default$84 } from "./palette/palette.vue.js";
94
- import { _default as _default$85 } from "./grid/grid.vue.js";
95
- import { _default as _default$86 } from "./grid/grid-item.vue.js";
96
- import { _default as _default$87 } from "./badge/badge.vue.js";
75
+ import { _default as _default$66 } from "./nav/nav.vue.js";
76
+ import { _default as _default$67 } from "./nav/nav-sub.vue.js";
77
+ import { _default as _default$68 } from "./nav/nav-item.vue.js";
78
+ import { _default as _default$69 } from "./dual-nav/dual-nav.vue.js";
79
+ import { _default as _default$70 } from "./grid-input/grid-input.vue.js";
80
+ import { _default as _default$71 } from "./switch/switch.vue.js";
81
+ import { _default as _default$72 } from "./form-item/form-item.vue.js";
82
+ import { _default as _default$73 } from "./radio-group/radio-group.vue.js";
83
+ import { _default as _default$74 } from "./checkbox-group/checkbox-group.vue.js";
84
+ import { _default as _default$75 } from "./file-viewer/file-viewer.vue.js";
85
+ import { _default as _default$76 } from "./text/text.vue.js";
86
+ import { _default as _default$77 } from "./select/select.vue.js";
87
+ import { _default as _default$78 } from "./breadcrumb/breadcrumb.vue.js";
88
+ import { _default as _default$79 } from "./icon/icon.vue.js";
89
+ import { _default as _default$80 } from "./kbd/kbd.vue.js";
90
+ import { _default as _default$81 } from "./pop-confirm/pop-confirm.vue.js";
91
+ import { _default as _default$82 } from "./paginator/paginator.vue.js";
92
+ import { _default as _default$83 } from "./tag/tag.vue.js";
93
+ import { _default as _default$84 } from "./float-button/float-button.vue.js";
94
+ import { _default as _default$85 } from "./palette/palette.vue.js";
95
+ import { _default as _default$86 } from "./grid/grid.vue.js";
96
+ import { _default as _default$87 } from "./grid/grid-item.vue.js";
97
+ import { _default as _default$88 } from "./badge/badge.vue.js";
@@ -82,19 +82,20 @@ import _sfc_main$66 from "./group-input/group-input.js";
82
82
  import _sfc_main$67 from "./list/list.js";
83
83
  import _sfc_main$68 from "./list/list-item.js";
84
84
  import _sfc_main$69 from "./rich-text-editor/rich-text-editor.js";
85
- import _sfc_main$70 from "./menu/menu-item.js";
86
- import _sfc_main$71 from "./menu/menu-sub.js";
87
- import _sfc_main$72 from "./menu/menu.js";
88
- import _sfc_main$73 from "./grid-input/grid-input.js";
89
- import _sfc_main$74 from "./switch/switch.js";
90
- import _sfc_main$75 from "./radio-group/radio-group.js";
91
- import _sfc_main$76 from "./checkbox-group/checkbox-group.js";
92
- import _sfc_main$77 from "./file-viewer/file-viewer.js";
93
- import _sfc_main$78 from "./text/text.js";
94
- import _sfc_main$79 from "./breadcrumb/breadcrumb.js";
95
- import _sfc_main$80 from "./paginator/paginator.js";
96
- import _sfc_main$81 from "./float-button/float-button.js";
97
- import _sfc_main$82 from "./badge/badge.js";
85
+ import _sfc_main$70 from "./nav/nav-item.js";
86
+ import _sfc_main$71 from "./nav/nav-sub.js";
87
+ import _sfc_main$72 from "./nav/nav.js";
88
+ import _sfc_main$73 from "./dual-nav/dual-nav.js";
89
+ import _sfc_main$74 from "./grid-input/grid-input.js";
90
+ import _sfc_main$75 from "./switch/switch.js";
91
+ import _sfc_main$76 from "./radio-group/radio-group.js";
92
+ import _sfc_main$77 from "./checkbox-group/checkbox-group.js";
93
+ import _sfc_main$78 from "./file-viewer/file-viewer.js";
94
+ import _sfc_main$79 from "./text/text.js";
95
+ import _sfc_main$80 from "./breadcrumb/breadcrumb.js";
96
+ import _sfc_main$81 from "./paginator/paginator.js";
97
+ import _sfc_main$82 from "./float-button/float-button.js";
98
+ import _sfc_main$83 from "./badge/badge.js";
98
99
  //#region src/components/index.ts
99
100
  var components_exports = /* @__PURE__ */ __exportAll({
100
101
  MessageConfirm: () => MessageConfirm,
@@ -102,9 +103,9 @@ var components_exports = /* @__PURE__ */ __exportAll({
102
103
  UAction: () => _sfc_main$57,
103
104
  UActionGroup: () => action_group_default,
104
105
  UAutoComplete: () => _sfc_main$31,
105
- UBadge: () => _sfc_main$82,
106
+ UBadge: () => _sfc_main$83,
106
107
  UBatchEdit: () => _sfc_main$58,
107
- UBreadcrumb: () => _sfc_main$79,
108
+ UBreadcrumb: () => _sfc_main$80,
108
109
  UButton: () => _sfc_main$17,
109
110
  UButtonGroup: () => _sfc_main$18,
110
111
  UCalendar: () => _sfc_main$20,
@@ -117,7 +118,7 @@ var components_exports = /* @__PURE__ */ __exportAll({
117
118
  UCheckTag: () => _sfc_main$48,
118
119
  UCheckbox: () => _sfc_main$10,
119
120
  UCheckboxButton: () => _sfc_main$36,
120
- UCheckboxGroup: () => _sfc_main$76,
121
+ UCheckboxGroup: () => _sfc_main$77,
121
122
  UCodeEditor: () => _sfc_main$13,
122
123
  UCollapse: () => _sfc_main$44,
123
124
  UCollapseItem: () => _sfc_main$45,
@@ -129,16 +130,17 @@ var components_exports = /* @__PURE__ */ __exportAll({
129
130
  UDialog: () => _sfc_main$52,
130
131
  UDrawer: () => _sfc_main$14,
131
132
  UDropdown: () => _sfc_main$4,
133
+ UDualNav: () => _sfc_main$73,
132
134
  UEmpty: () => _sfc_main$1,
133
135
  UExpressionEditor: () => _sfc_main$53,
134
136
  UFilePicker: () => _sfc_main$41,
135
- UFileViewer: () => _sfc_main$77,
136
- UFloatButton: () => _sfc_main$81,
137
+ UFileViewer: () => _sfc_main$78,
138
+ UFloatButton: () => _sfc_main$82,
137
139
  UForm: () => form_default,
138
140
  UFormItem: () => form_item_default,
139
141
  UGanttChart: () => _sfc_main$39,
140
142
  UGrid: () => _sfc_main$15,
141
- UGridInput: () => _sfc_main$73,
143
+ UGridInput: () => _sfc_main$74,
142
144
  UGridItem: () => _sfc_main$16,
143
145
  UGroupInput: () => _sfc_main$66,
144
146
  UIcon: () => _sfc_main,
@@ -148,39 +150,39 @@ var components_exports = /* @__PURE__ */ __exportAll({
148
150
  UList: () => _sfc_main$67,
149
151
  UListItem: () => _sfc_main$68,
150
152
  ULoading: () => _sfc_main$29,
151
- UMenu: () => _sfc_main$72,
152
- UMenuItem: () => _sfc_main$70,
153
- UMenuSub: () => _sfc_main$71,
154
153
  UMessage: () => _sfc_main$40,
155
154
  UMessageConfirm: () => _sfc_main$19,
156
155
  UMultiSelect: () => _sfc_main$37,
157
156
  UMultiTreeSelect: () => _sfc_main$65,
157
+ UNav: () => _sfc_main$72,
158
+ UNavItem: () => _sfc_main$70,
159
+ UNavSub: () => _sfc_main$71,
158
160
  UNodeRender: () => NodeRender,
159
161
  UNotification: () => _sfc_main$33,
160
162
  UNumber: () => _sfc_main$51,
161
163
  UNumberInput: () => _sfc_main$42,
162
164
  UNumberRangeInput: () => _sfc_main$43,
163
- UPaginator: () => _sfc_main$80,
165
+ UPaginator: () => _sfc_main$81,
164
166
  UPalette: () => _sfc_main$63,
165
167
  UPasswordInput: () => _sfc_main$50,
166
168
  UPopConfirm: () => _sfc_main$56,
167
169
  UProgress: () => _sfc_main$32,
168
170
  UProgressNodes: () => _sfc_main$30,
169
171
  URadio: () => _sfc_main$21,
170
- URadioGroup: () => _sfc_main$75,
172
+ URadioGroup: () => _sfc_main$76,
171
173
  URichTextEditor: () => _sfc_main$69,
172
174
  UScroll: () => _sfc_main$2,
173
175
  USelect: () => _sfc_main$5,
174
176
  USlider: () => _sfc_main$38,
175
177
  USteps: () => _sfc_main$61,
176
- USwitch: () => _sfc_main$74,
178
+ USwitch: () => _sfc_main$75,
177
179
  UTable: () => _sfc_main$46,
178
180
  UTableEditor: () => _sfc_main$47,
179
181
  UTabs: () => _sfc_main$9,
180
182
  UTabsHorizontal: () => _sfc_main$7,
181
183
  UTabsVertical: () => _sfc_main$8,
182
184
  UTag: () => _sfc_main$35,
183
- UText: () => _sfc_main$78,
185
+ UText: () => _sfc_main$79,
184
186
  UTextarea: () => _sfc_main$59,
185
187
  UTheme: () => _sfc_main$64,
186
188
  UTip: () => _sfc_main$3,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../src/components/index.ts"],"sourcesContent":["export * from './condition-editor'\n\nexport * from './tabs'\n\nexport * from './tree'\n\nexport * from './tree-select'\n\nexport * from './code-editor'\n\nexport * from './dropdown'\n\nexport * from './drawer'\n\nexport * from './form'\n\nexport * from './message-confirm'\n\nexport * from './calendar'\n\nexport * from './radio'\n\nexport * from './card'\n\nexport * from './date-range-picker'\n\nexport * from './loading'\n\nexport * from './scroll'\n\nexport * from './progress-nodes'\n\nexport * from './empty'\n\nexport * from './auto-complete'\n\nexport * from './progress'\n\nexport * from './input'\n\nexport * from './notification'\n\nexport * from './layout'\n\nexport * from './multi-select'\n\nexport * from './checkbox'\n\nexport * from './slider'\n\nexport * from './gantt-chart'\n\nexport * from './message'\n\nexport * from './file-picker'\n\nexport * from './number-range-input'\n\nexport * from './number-input'\n\nexport * from './collapse'\n\nexport * from './date-panel'\n\nexport * from './table-editor'\n\nexport * from './check-tag'\n\nexport * from './contextmenu'\n\nexport * from './password-input'\n\nexport * from './number'\n\nexport * from './dialog'\n\nexport * from './node-render'\n\nexport * from './expression-editor'\n\nexport * from './watermark'\n\nexport * from './batch-edit'\n\nexport * from './action'\n\nexport * from './tip'\n\nexport * from './textarea'\n\nexport * from './button'\n\nexport * from './cascade'\n\nexport * from './steps'\n\nexport * from './date-picker'\n\nexport * from './theme'\n\nexport * from './table'\n\nexport * from './multi-tree-select'\n\nexport * from './group-input'\n\nexport * from './list'\n\nexport * from './rich-text-editor'\n\nexport * from './menu'\n\nexport * from './grid-input'\n\nexport * from './switch'\n\nexport * from './form-item'\n\nexport * from './radio-group'\n\nexport * from './checkbox-group'\n\nexport * from './file-viewer'\n\nexport * from './text'\n\nexport * from './select'\n\nexport * from './breadcrumb'\n\nexport * from './icon'\n\nexport * from './kbd'\n\nexport * from './pop-confirm'\n\nexport * from './paginator'\n\nexport * from './tag'\n\nexport * from './float-button'\n\nexport * from './palette'\n\nexport * from './grid'\n\nexport * from './badge'\n"],"mappings":""}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/components/index.ts"],"sourcesContent":["export * from './condition-editor'\n\nexport * from './tabs'\n\nexport * from './tree'\n\nexport * from './tree-select'\n\nexport * from './code-editor'\n\nexport * from './dropdown'\n\nexport * from './drawer'\n\nexport * from './form'\n\nexport * from './message-confirm'\n\nexport * from './calendar'\n\nexport * from './radio'\n\nexport * from './card'\n\nexport * from './date-range-picker'\n\nexport * from './loading'\n\nexport * from './scroll'\n\nexport * from './progress-nodes'\n\nexport * from './empty'\n\nexport * from './auto-complete'\n\nexport * from './progress'\n\nexport * from './input'\n\nexport * from './notification'\n\nexport * from './layout'\n\nexport * from './multi-select'\n\nexport * from './checkbox'\n\nexport * from './slider'\n\nexport * from './gantt-chart'\n\nexport * from './message'\n\nexport * from './file-picker'\n\nexport * from './number-range-input'\n\nexport * from './number-input'\n\nexport * from './collapse'\n\nexport * from './date-panel'\n\nexport * from './table-editor'\n\nexport * from './check-tag'\n\nexport * from './contextmenu'\n\nexport * from './password-input'\n\nexport * from './number'\n\nexport * from './dialog'\n\nexport * from './node-render'\n\nexport * from './expression-editor'\n\nexport * from './watermark'\n\nexport * from './batch-edit'\n\nexport * from './action'\n\nexport * from './tip'\n\nexport * from './textarea'\n\nexport * from './button'\n\nexport * from './cascade'\n\nexport * from './steps'\n\nexport * from './date-picker'\n\nexport * from './theme'\n\nexport * from './table'\n\nexport * from './multi-tree-select'\n\nexport * from './group-input'\n\nexport * from './list'\n\nexport * from './rich-text-editor'\n\nexport * from './nav'\n\nexport * from './dual-nav'\n\nexport * from './grid-input'\n\nexport * from './switch'\n\nexport * from './form-item'\n\nexport * from './radio-group'\n\nexport * from './checkbox-group'\n\nexport * from './file-viewer'\n\nexport * from './text'\n\nexport * from './select'\n\nexport * from './breadcrumb'\n\nexport * from './icon'\n\nexport * from './kbd'\n\nexport * from './pop-confirm'\n\nexport * from './paginator'\n\nexport * from './tag'\n\nexport * from './float-button'\n\nexport * from './palette'\n\nexport * from './grid'\n\nexport * from './badge'\n"],"mappings":""}
@@ -5,7 +5,7 @@ import { bem, zIndex } from "@veltra/utils";
5
5
  const _sfc_main = /* @__PURE__ */ defineComponent({
6
6
  name: "Loading",
7
7
  __name: "loading",
8
- props: { type: { default: "spinner" } },
8
+ props: { type: { default: "dual-ring" } },
9
9
  setup(__props) {
10
10
  const props = __props;
11
11
  const { size } = useFallbackProps([props], { size: "default" });
@@ -1 +1 @@
1
- {"version":3,"file":"loading.js","names":[],"sources":["../../../src/components/loading/loading.vue"],"sourcesContent":["<template>\n <transition name=\"fade\" appear>\n <div :class=\"className\" :style=\"{ zIndex: zIndex() }\">\n <div :class=\"cls.e('loader')\"></div>\n </div>\n </transition>\n</template>\n\n<script lang=\"ts\" setup>\nimport { useFallbackProps } from '@veltra/compositions'\nimport { bem, zIndex } from '@veltra/utils'\nimport { computed } from 'vue'\n\nimport type { LoadingProps, ComponentSize } from '../../types'\n\ndefineOptions({ name: 'Loading' })\n\nconst props = withDefaults(defineProps<LoadingProps>(), { type: 'spinner' })\n\nconst { size } = useFallbackProps([props], { size: 'default' as ComponentSize })\n\nconst cls = bem('loading')\n\nconst className = computed(() => {\n return [cls.b, cls.m(size.value), cls.e(props.type)]\n})\n</script>\n"],"mappings":";;;;;;;;;EAiBA,MAAM,QAAQ;EAEd,MAAM,EAAE,SAAS,iBAAiB,CAAC,KAAK,GAAG,EAAE,MAAM,UAA2B,CAAC;EAE/E,MAAM,MAAM,IAAI,SAAS;EAEzB,MAAM,YAAY,eAAe;GAC/B,OAAO;IAAC,IAAI;IAAG,IAAI,EAAE,KAAK,KAAK;IAAG,IAAI,EAAE,MAAM,IAAI;GAAC;EACrD,CAAC;;uBAxBC,YAIa,YAAA;IAJD,MAAK;IAAO,QAAA;;2BAGhB,CAFN,mBAEM,OAAA;KAFA,OAAK,eAAE,UAAA,KAAS;KAAG,OAAK,eAAA,EAAA,QAAY,MAAA,MAAA,EAAM,EAAA,CAAA;QAC9C,mBAAoC,OAAA,EAA9B,OAAK,eAAE,MAAA,GAAA,EAAI,EAAC,QAAA,CAAA,EAAA,GAAA,MAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA"}
1
+ {"version":3,"file":"loading.js","names":[],"sources":["../../../src/components/loading/loading.vue"],"sourcesContent":["<template>\n <transition name=\"fade\" appear>\n <div :class=\"className\" :style=\"{ zIndex: zIndex() }\">\n <div :class=\"cls.e('loader')\"></div>\n </div>\n </transition>\n</template>\n\n<script lang=\"ts\" setup>\nimport { useFallbackProps } from '@veltra/compositions'\nimport { bem, zIndex } from '@veltra/utils'\nimport { computed } from 'vue'\n\nimport type { LoadingProps, ComponentSize } from '../../types'\n\ndefineOptions({ name: 'Loading' })\n\nconst props = withDefaults(defineProps<LoadingProps>(), { type: 'dual-ring' })\n\nconst { size } = useFallbackProps([props], { size: 'default' as ComponentSize })\n\nconst cls = bem('loading')\n\nconst className = computed(() => {\n return [cls.b, cls.m(size.value), cls.e(props.type)]\n})\n</script>\n"],"mappings":";;;;;;;;;EAiBA,MAAM,QAAQ;EAEd,MAAM,EAAE,SAAS,iBAAiB,CAAC,KAAK,GAAG,EAAE,MAAM,UAA2B,CAAC;EAE/E,MAAM,MAAM,IAAI,SAAS;EAEzB,MAAM,YAAY,eAAe;GAC/B,OAAO;IAAC,IAAI;IAAG,IAAI,EAAE,KAAK,KAAK;IAAG,IAAI,EAAE,MAAM,IAAI;GAAC;EACrD,CAAC;;uBAxBC,YAIa,YAAA;IAJD,MAAK;IAAO,QAAA;;2BAGhB,CAFN,mBAEM,OAAA;KAFA,OAAK,eAAE,UAAA,KAAS;KAAG,OAAK,eAAA,EAAA,QAAY,MAAA,MAAA,EAAM,EAAA,CAAA;QAC9C,mBAAoC,OAAA,EAA9B,OAAK,eAAE,MAAA,GAAA,EAAI,EAAC,QAAA,CAAA,EAAA,GAAA,MAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA"}
@@ -20,7 +20,7 @@
20
20
  width: 100%;
21
21
  height: 100%;
22
22
  background-color: var(--u-bg-color-top-alpha);
23
- color: var(--u-text-color-main);
23
+ color: var(--u-color-primary);
24
24
  display: flex;
25
25
  justify-content: center;
26
26
  align-items: center;
@@ -29,77 +29,85 @@
29
29
  .u-loading__container {
30
30
  position: relative;
31
31
  }
32
- .u-loading__spinner .u-loading__loader {
33
- width: 42px;
32
+ .u-loading__dual-ring .u-loading__loader {
33
+ width: 36px;
34
34
  aspect-ratio: 1;
35
35
  border-radius: 50%;
36
- background: conic-gradient(from 0deg, transparent 25%, currentColor 70%, transparent 100%);
37
- mask: radial-gradient(farthest-side, transparent calc(100% - 4px), #000 0);
38
- animation: loading-spin 0.85s linear infinite;
36
+ border: 3px solid color-mix(in srgb, currentColor 22%, transparent);
37
+ border-top-color: currentColor;
38
+ position: relative;
39
+ animation: loading-spin 0.8s linear infinite;
40
+ }
41
+ .u-loading__dual-ring .u-loading__loader::after {
42
+ content: "";
43
+ position: absolute;
44
+ inset: 5px;
45
+ border-radius: 50%;
46
+ border: 2px solid color-mix(in srgb, currentColor 22%, transparent);
47
+ border-bottom-color: currentColor;
48
+ animation: loading-spin 1.2s linear infinite reverse;
39
49
  }
40
50
  .u-loading__dot .u-loading__loader {
41
- width: 10px;
42
- height: 10px;
51
+ width: 9px;
52
+ height: 9px;
43
53
  border-radius: 50%;
44
54
  background: currentColor;
45
55
  position: relative;
46
- animation: loading-dot 1.4s ease-in-out infinite;
56
+ animation: loading-dot 1.2s cubic-bezier(0.45, 0, 0.55, 1) infinite;
47
57
  }
48
58
  .u-loading__dot .u-loading__loader::before, .u-loading__dot .u-loading__loader::after {
49
59
  content: "";
50
60
  position: absolute;
51
61
  top: 0;
52
- width: 10px;
53
- height: 10px;
62
+ width: 9px;
63
+ height: 9px;
54
64
  border-radius: 50%;
55
65
  background: currentColor;
56
66
  }
57
67
  .u-loading__dot .u-loading__loader::before {
58
- left: -20px;
59
- animation: loading-dot 1.4s ease-in-out infinite;
60
- animation-delay: 0.2s;
68
+ left: -16px;
69
+ animation: loading-dot 1.2s cubic-bezier(0.45, 0, 0.55, 1) infinite;
70
+ animation-delay: 0.18s;
61
71
  }
62
72
  .u-loading__dot .u-loading__loader::after {
63
- right: -20px;
64
- animation: loading-dot 1.4s ease-in-out infinite;
65
- animation-delay: 0.4s;
66
- }
67
- .u-loading__line .u-loading__loader {
68
- width: 160px;
69
- height: 3px;
70
- border-radius: 1.5px;
71
- background: var(--u-bg-color-hover);
72
- overflow: hidden;
73
- position: relative;
74
- }
75
- .u-loading__line .u-loading__loader::after {
76
- content: "";
77
- position: absolute;
78
- inset: 0;
79
- background: linear-gradient(90deg, transparent 0%, currentColor 40%, currentColor 60%, transparent 100%);
80
- animation: loading-shimmer 1.4s ease-in-out infinite;
73
+ right: -16px;
74
+ animation: loading-dot 1.2s cubic-bezier(0.45, 0, 0.55, 1) infinite;
75
+ animation-delay: 0.36s;
81
76
  }
82
- .u-loading__classic .u-loading__loader {
83
- width: 44px;
77
+ .u-loading__ring .u-loading__loader {
78
+ width: 36px;
84
79
  aspect-ratio: 1;
80
+ border-radius: 50%;
81
+ border: 3px solid color-mix(in srgb, currentColor 22%, transparent);
82
+ border-top-color: currentColor;
83
+ animation: loading-spin 0.9s linear infinite;
84
+ }
85
+ .u-loading__bars .u-loading__loader {
86
+ width: 6px;
87
+ height: 26px;
88
+ background: currentColor;
89
+ border-radius: 3px;
85
90
  position: relative;
91
+ animation: loading-bars 1s ease-in-out infinite;
92
+ animation-delay: 0.15s;
86
93
  }
87
- .u-loading__classic .u-loading__loader::before, .u-loading__classic .u-loading__loader::after {
94
+ .u-loading__bars .u-loading__loader::before, .u-loading__bars .u-loading__loader::after {
88
95
  content: "";
89
96
  position: absolute;
90
- inset: 0;
91
- border-radius: 50%;
92
- border: 3px solid currentColor;
93
- animation: loading-pulse 1.6s ease-out infinite;
97
+ top: 50%;
98
+ transform: translateY(-50%);
99
+ width: 6px;
100
+ height: 26px;
101
+ background: currentColor;
102
+ border-radius: 3px;
103
+ animation: loading-bars 1s ease-in-out infinite;
94
104
  }
95
- .u-loading__classic .u-loading__loader::after {
96
- animation-delay: 0.8s;
105
+ .u-loading__bars .u-loading__loader::before {
106
+ left: -12px;
97
107
  }
98
- .u-loading__morph .u-loading__loader {
99
- width: 34px;
100
- aspect-ratio: 1;
101
- background: currentColor;
102
- animation: loading-morph 2.4s ease-in-out infinite;
108
+ .u-loading__bars .u-loading__loader::after {
109
+ right: -12px;
110
+ animation-delay: 0.3s;
103
111
  }
104
112
 
105
113
  @keyframes loading-spin {
@@ -108,48 +116,20 @@
108
116
  }
109
117
  }
110
118
  @keyframes loading-dot {
111
- 0%, 80%, 100% {
112
- transform: scale(0.4);
113
- opacity: 0.25;
119
+ 0%, 100% {
120
+ transform: scale(0.5);
121
+ opacity: 0.3;
114
122
  }
115
- 40% {
123
+ 50% {
116
124
  transform: scale(1);
117
125
  opacity: 1;
118
126
  }
119
127
  }
120
- @keyframes loading-shimmer {
121
- 0% {
122
- transform: translateX(-100%);
123
- }
124
- 100% {
125
- transform: translateX(100%);
126
- }
127
- }
128
- @keyframes loading-pulse {
129
- 0% {
130
- transform: scale(0.2);
131
- opacity: 1;
132
- }
133
- 100% {
134
- transform: scale(1.35);
135
- opacity: 0;
136
- }
137
- }
138
- @keyframes loading-morph {
128
+ @keyframes loading-bars {
139
129
  0%, 100% {
140
- border-radius: 50%;
141
- transform: rotate(0deg) scale(1);
142
- }
143
- 25% {
144
- border-radius: 8px;
145
- transform: rotate(45deg) scale(0.7);
130
+ height: 10px;
146
131
  }
147
132
  50% {
148
- border-radius: 2px;
149
- transform: rotate(90deg) scale(1);
150
- }
151
- 75% {
152
- border-radius: 8px;
153
- transform: rotate(135deg) scale(0.7);
133
+ height: 26px;
154
134
  }
155
135
  }
@@ -0,0 +1,7 @@
1
+ import "@veltra/utils";
2
+ //#region src/components/nav/di.ts
3
+ const NavDIKey = Symbol("NavDIKey");
4
+ //#endregion
5
+ export { NavDIKey };
6
+
7
+ //# sourceMappingURL=di.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"di.js","names":[],"sources":["../../../src/components/nav/di.ts"],"sourcesContent":["import { type BEM, ExpandTransition } from '@veltra/utils'\nimport type { ComputedRef, InjectionKey } from 'vue'\n\nimport type { NavProps, NavEmits } from '../../types'\nimport type { ComponentSize } from '../../types'\n\nexport interface NavContext {\n cls: BEM<'nav', 'u-'>\n collapsedCls: BEM<'collapsed-nav', 'u-'>\n navProps: NavProps\n navEmit: NavEmits\n expandedPath: Set<string>\n size: ComputedRef<ComponentSize>\n expandTransition: ExpandTransition\n}\n\nexport const NavDIKey: InjectionKey<NavContext> = Symbol('NavDIKey')\n"],"mappings":";;AAgBA,MAAa,WAAqC,OAAO,UAAU"}
@@ -0,0 +1,18 @@
1
+ import { walkNavWithPath } from "./walk-nav-path.js";
2
+ //#region src/components/nav/helper.ts
3
+ function getKey(index, parentKey) {
4
+ return `${parentKey}-${index}`;
5
+ }
6
+ /** 收集导航树中所有含子级的节点 path */
7
+ function collectNavBranchPaths(menus) {
8
+ const paths = [];
9
+ if (!menus?.length) return paths;
10
+ for (const menu of menus) walkNavWithPath(menu, (node) => {
11
+ if (node.children?.length) paths.push(node.path);
12
+ });
13
+ return paths;
14
+ }
15
+ //#endregion
16
+ export { collectNavBranchPaths, getKey };
17
+
18
+ //# sourceMappingURL=helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helper.js","names":[],"sources":["../../../src/components/nav/helper.ts"],"sourcesContent":["import type { NavItem } from '../../types'\nimport { walkNavWithPath } from './walk-nav-path'\n\nexport function getKey(index: number, parentKey: string): string {\n return `${parentKey}-${index}`\n}\n\n/** 收集导航树中所有含子级的节点 path */\nexport function collectNavBranchPaths(menus?: NavItem[]): string[] {\n const paths: string[] = []\n if (!menus?.length) return paths\n\n for (const menu of menus) {\n walkNavWithPath(menu, (node) => {\n if (node.children?.length) {\n paths.push(node.path)\n }\n })\n }\n\n return paths\n}\n"],"mappings":";;AAGA,SAAgB,OAAO,OAAe,WAA2B;CAC/D,OAAO,GAAG,UAAU,GAAG;AACzB;;AAGA,SAAgB,sBAAsB,OAA6B;CACjE,MAAM,QAAkB,CAAC;CACzB,IAAI,CAAC,OAAO,QAAQ,OAAO;CAE3B,KAAK,MAAM,QAAQ,OACjB,gBAAgB,OAAO,SAAS;EAC9B,IAAI,KAAK,UAAU,QACjB,MAAM,KAAK,KAAK,IAAI;CAExB,CAAC;CAGH,OAAO;AACT"}
@@ -0,0 +1,3 @@
1
+ import { _default } from "./nav.vue.js";
2
+ import { _default as _default$1 } from "./nav-sub.vue.js";
3
+ import { _default as _default$2 } from "./nav-item.vue.js";
@@ -1,10 +1,10 @@
1
1
  import _sfc_main$1 from "../icon/icon.js";
2
2
  import { createBlock, createElementBlock, defineComponent, openBlock, resolveDynamicComponent, unref, withCtx } from "vue";
3
- //#region src/components/menu/menu-icon.vue
3
+ //#region src/components/nav/nav-icon.vue
4
4
  const _hoisted_1 = ["src"];
5
5
  const _sfc_main = /* @__PURE__ */ defineComponent({
6
- name: "MenuIcon",
7
- __name: "menu-icon",
6
+ name: "NavIcon",
7
+ __name: "nav-icon",
8
8
  props: { icon: {} },
9
9
  setup(__props) {
10
10
  return (_ctx, _cache) => {
@@ -22,4 +22,4 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
22
22
  //#endregion
23
23
  export { _sfc_main as default };
24
24
 
25
- //# sourceMappingURL=menu-icon.js.map
25
+ //# sourceMappingURL=nav-icon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nav-icon.js","names":[],"sources":["../../../src/components/nav/nav-icon.vue"],"sourcesContent":["<template>\n <u-icon v-if=\"typeof icon !== 'string'\">\n <component :is=\"icon\" />\n </u-icon>\n\n <img :src=\"icon\" v-else alt=\"icon\" />\n</template>\n\n<script lang=\"ts\" setup>\nimport type { DefineComponent } from 'vue'\n\nimport { UIcon } from '../icon'\n\ndefineOptions({ name: 'NavIcon' })\n\ndefineProps<{ icon: string | DefineComponent }>()\n</script>\n"],"mappings":";;;;;;;;;;iBACuB,QAAA,SAAI,YAAA,UAAA,GAAzB,YAES,MAAA,WAAA,GAAA,EAAA,KAAA,EAAA,GAAA;2BADiB,EAAA,UAAA,GAAxB,YAAwB,wBAAR,QAAA,IAAI,CAAA,EAAA,CAAA;;uBAGtB,mBAAqC,OAAA;;IAA/B,KAAK,QAAA;IAAa,KAAI"}