@uzum-tech/ui 1.8.1 → 1.9.0

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 (303) hide show
  1. package/dist/index.js +847 -249
  2. package/dist/index.prod.js +3 -3
  3. package/es/_internal/scrollbar/src/Scrollbar.d.ts +119 -17
  4. package/es/_internal/scrollbar/src/Scrollbar.js +121 -68
  5. package/es/_internal/scrollbar/src/styles/index.cssr.js +32 -15
  6. package/es/_internal/scrollbar/styles/common.d.ts +7 -0
  7. package/es/_internal/scrollbar/styles/common.js +7 -0
  8. package/es/_internal/scrollbar/styles/light.d.ts +8 -0
  9. package/es/_internal/scrollbar/styles/light.js +3 -5
  10. package/es/_internal/select-menu/src/SelectMenu.d.ts +57 -1
  11. package/es/_internal/select-menu/styles/light.d.ts +8 -0
  12. package/es/_internal/selection/src/Selection.d.ts +3 -1
  13. package/es/_internal/selection/src/Selection.js +3 -1
  14. package/es/_utils/css/index.d.ts +1 -0
  15. package/es/_utils/css/index.js +1 -0
  16. package/es/_utils/css/rtl-inset.d.ts +1 -0
  17. package/es/_utils/css/rtl-inset.js +5 -0
  18. package/es/_utils/index.d.ts +1 -1
  19. package/es/_utils/index.js +1 -1
  20. package/es/auto-complete/src/AutoComplete.d.ts +88 -0
  21. package/es/auto-complete/styles/light.d.ts +8 -0
  22. package/es/back-top/src/BackTop.d.ts +1 -1
  23. package/es/button/src/Button.d.ts +72 -0
  24. package/es/button/src/Button.js +13 -7
  25. package/es/button/src/styles/index.cssr.js +1 -2
  26. package/es/button/styles/light.d.ts +8 -0
  27. package/es/button/styles/light.js +7 -7
  28. package/es/calendar/src/Calendar.d.ts +80 -0
  29. package/es/calendar/styles/light.d.ts +8 -0
  30. package/es/cascader/src/Cascader.d.ts +168 -0
  31. package/es/cascader/src/CascaderMenu.d.ts +24 -0
  32. package/es/cascader/src/CascaderOption.d.ts +24 -0
  33. package/es/cascader/src/CascaderSelectMenu.d.ts +24 -0
  34. package/es/cascader/src/CascaderSubmenu.d.ts +25 -1
  35. package/es/cascader/styles/light.d.ts +16 -0
  36. package/es/chat/src/Chat.d.ts +175 -7
  37. package/es/chat/src/Chat.js +11 -12
  38. package/es/chat/src/ChatListItems.d.ts +192 -0
  39. package/es/chat/src/ChatListItems.js +4 -1
  40. package/es/chat/src/ChatMessages.d.ts +192 -0
  41. package/es/chat/src/styles/index.cssr.js +1 -3
  42. package/es/chat/styles/dark.d.ts +16 -0
  43. package/es/chat/styles/light.d.ts +16 -0
  44. package/es/color-picker/src/ColorInputUnit.d.ts +8 -0
  45. package/es/color-picker/src/ColorPicker.d.ts +72 -0
  46. package/es/color-picker/styles/light.d.ts +8 -0
  47. package/es/components.d.ts +2 -0
  48. package/es/components.js +2 -0
  49. package/es/data-table/src/DataTable.d.ts +240 -0
  50. package/es/data-table/src/HeaderButton/FilterButton.d.ts +48 -0
  51. package/es/data-table/src/HeaderButton/FilterMenu.d.ts +48 -0
  52. package/es/data-table/src/TableParts/Body.d.ts +49 -1
  53. package/es/data-table/src/TableParts/Header.d.ts +48 -0
  54. package/es/data-table/src/interface.d.ts +96 -0
  55. package/es/data-table/styles/light.d.ts +32 -0
  56. package/es/date-picker/src/DatePicker.d.ts +339 -3
  57. package/es/date-picker/src/panel/date.d.ts +49 -1
  58. package/es/date-picker/src/panel/daterange.d.ts +50 -2
  59. package/es/date-picker/src/panel/datetime.d.ts +49 -1
  60. package/es/date-picker/src/panel/datetimerange.d.ts +50 -2
  61. package/es/date-picker/src/panel/panelMonth.d.ts +98 -2
  62. package/es/date-picker/src/panel/panelMonthContent.d.ts +49 -1
  63. package/es/date-picker/src/panel/panelYear.d.ts +98 -2
  64. package/es/date-picker/src/panel/panelYearContent.d.ts +49 -1
  65. package/es/date-picker/src/panel/use-calendar.d.ts +48 -0
  66. package/es/date-picker/src/panel/use-dual-calendar.d.ts +48 -0
  67. package/es/date-picker/src/panel/use-panel-common.d.ts +48 -0
  68. package/es/date-picker/styles/light.d.ts +32 -0
  69. package/es/dialog/src/Dialog.d.ts +56 -0
  70. package/es/dialog/src/DialogProvider.d.ts +18 -2
  71. package/es/dialog/styles/light.d.ts +8 -0
  72. package/es/drawer/src/Drawer.d.ts +81 -1
  73. package/es/drawer/src/DrawerBodyWrapper.d.ts +9 -1
  74. package/es/drawer/src/DrawerContent.d.ts +8 -0
  75. package/es/drawer/styles/light.d.ts +8 -0
  76. package/es/dropdown/src/Dropdown.d.ts +1 -1
  77. package/es/dynamic-input/src/DynamicInput.d.ts +80 -0
  78. package/es/dynamic-input/src/InputPreset.d.ts +8 -0
  79. package/es/dynamic-input/src/PairPreset.d.ts +8 -0
  80. package/es/dynamic-input/styles/light.d.ts +8 -0
  81. package/es/dynamic-tags/src/DynamicTags.d.ts +80 -0
  82. package/es/dynamic-tags/styles/light.d.ts +8 -0
  83. package/es/infinite-scroll/index.d.ts +2 -0
  84. package/es/infinite-scroll/index.js +1 -0
  85. package/es/infinite-scroll/src/InfiniteScroll.d.ts +45 -0
  86. package/es/infinite-scroll/src/InfiniteScroll.js +78 -0
  87. package/es/input-number/src/InputNumber.d.ts +80 -0
  88. package/es/input-number/styles/light.d.ts +8 -0
  89. package/es/layout/src/Layout.d.ts +112 -0
  90. package/es/layout/src/LayoutContent.d.ts +56 -0
  91. package/es/layout/src/LayoutFooter.d.ts +72 -0
  92. package/es/layout/src/LayoutHeader.d.ts +48 -0
  93. package/es/layout/src/LayoutSider.d.ts +56 -0
  94. package/es/layout/styles/light.d.ts +8 -0
  95. package/es/legacy-transfer/src/Transfer.d.ts +160 -0
  96. package/es/legacy-transfer/src/TransferFilter.d.ts +16 -0
  97. package/es/legacy-transfer/src/TransferList.d.ts +17 -1
  98. package/es/legacy-transfer/src/TransferListItem.d.ts +16 -0
  99. package/es/legacy-transfer/styles/light.d.ts +16 -0
  100. package/es/log/src/Log.d.ts +80 -0
  101. package/es/log/styles/light.d.ts +8 -0
  102. package/es/mention/src/Mention.d.ts +88 -0
  103. package/es/mention/styles/light.d.ts +8 -0
  104. package/es/menu/src/Menu.d.ts +1 -1
  105. package/es/modal/src/BodyWrapper.d.ts +25 -1
  106. package/es/modal/src/Modal.d.ts +145 -1
  107. package/es/modal/styles/light.d.ts +16 -0
  108. package/es/notification/src/Notification.d.ts +5 -0
  109. package/es/notification/src/Notification.js +16 -6
  110. package/es/notification/src/NotificationContainer.d.ts +20 -0
  111. package/es/notification/src/NotificationProvider.d.ts +180 -0
  112. package/es/notification/src/styles/index.cssr.js +12 -8
  113. package/es/notification/styles/light.d.ts +32 -0
  114. package/es/notification/styles/light.js +9 -8
  115. package/es/pagination/src/Pagination.d.ts +176 -0
  116. package/es/pagination/styles/light.d.ts +16 -0
  117. package/es/popconfirm/src/Popconfirm.d.ts +80 -0
  118. package/es/popconfirm/styles/light.d.ts +8 -0
  119. package/es/popselect/src/Popselect.d.ts +88 -0
  120. package/es/popselect/src/PopselectPanel.d.ts +16 -0
  121. package/es/popselect/styles/light.d.ts +8 -0
  122. package/es/scrollbar/src/Scrollbar.d.ts +72 -0
  123. package/es/select/src/Select.d.ts +88 -0
  124. package/es/select/styles/light.d.ts +8 -0
  125. package/es/time-picker/src/Panel.d.ts +16 -0
  126. package/es/time-picker/src/TimePicker.d.ts +160 -0
  127. package/es/time-picker/styles/light.d.ts +16 -0
  128. package/es/transfer/src/Transfer.d.ts +160 -0
  129. package/es/transfer/src/TransferFilter.d.ts +16 -0
  130. package/es/transfer/src/TransferList.d.ts +17 -1
  131. package/es/transfer/src/TransferListItem.d.ts +16 -0
  132. package/es/transfer/styles/light.d.ts +16 -0
  133. package/es/tree/src/Tree.d.ts +82 -2
  134. package/es/tree/src/TreeNodeCheckbox.d.ts +8 -0
  135. package/es/tree/styles/light.d.ts +8 -0
  136. package/es/tree-select/src/TreeSelect.d.ts +89 -1
  137. package/es/tree-select/styles/light.d.ts +8 -0
  138. package/es/upload/src/Upload.d.ts +90 -0
  139. package/es/upload/src/Upload.js +2 -1
  140. package/es/upload/src/UploadFile.d.ts +9 -0
  141. package/es/upload/src/UploadProgress.d.ts +9 -0
  142. package/es/upload/src/styles/index.cssr.js +1 -0
  143. package/es/upload/src/useUploadActionsRender.js +5 -1
  144. package/es/upload/styles/light.d.ts +10 -0
  145. package/es/upload/styles/light.js +6 -5
  146. package/es/version.d.ts +1 -1
  147. package/es/version.js +1 -1
  148. package/es/virtual-list/index.d.ts +2 -0
  149. package/es/virtual-list/index.js +1 -0
  150. package/es/virtual-list/src/VirtualList.d.ts +146 -0
  151. package/es/virtual-list/src/VirtualList.js +103 -0
  152. package/lib/_internal/scrollbar/src/Scrollbar.d.ts +119 -17
  153. package/lib/_internal/scrollbar/src/Scrollbar.js +118 -65
  154. package/lib/_internal/scrollbar/src/styles/index.cssr.js +32 -15
  155. package/lib/_internal/scrollbar/styles/common.d.ts +7 -0
  156. package/lib/_internal/scrollbar/styles/common.js +10 -0
  157. package/lib/_internal/scrollbar/styles/light.d.ts +8 -0
  158. package/lib/_internal/scrollbar/styles/light.js +3 -5
  159. package/lib/_internal/select-menu/src/SelectMenu.d.ts +57 -1
  160. package/lib/_internal/select-menu/styles/light.d.ts +8 -0
  161. package/lib/_internal/selection/src/Selection.d.ts +3 -1
  162. package/lib/_internal/selection/src/Selection.js +3 -1
  163. package/lib/_utils/css/index.d.ts +1 -0
  164. package/lib/_utils/css/index.js +3 -1
  165. package/lib/_utils/css/rtl-inset.d.ts +1 -0
  166. package/lib/_utils/css/rtl-inset.js +8 -0
  167. package/lib/_utils/index.d.ts +1 -1
  168. package/lib/_utils/index.js +2 -1
  169. package/lib/auto-complete/src/AutoComplete.d.ts +88 -0
  170. package/lib/auto-complete/styles/light.d.ts +8 -0
  171. package/lib/back-top/src/BackTop.d.ts +1 -1
  172. package/lib/button/src/Button.d.ts +72 -0
  173. package/lib/button/src/Button.js +13 -7
  174. package/lib/button/src/styles/index.cssr.js +1 -2
  175. package/lib/button/styles/light.d.ts +8 -0
  176. package/lib/button/styles/light.js +7 -7
  177. package/lib/calendar/src/Calendar.d.ts +80 -0
  178. package/lib/calendar/styles/light.d.ts +8 -0
  179. package/lib/cascader/src/Cascader.d.ts +168 -0
  180. package/lib/cascader/src/CascaderMenu.d.ts +24 -0
  181. package/lib/cascader/src/CascaderOption.d.ts +24 -0
  182. package/lib/cascader/src/CascaderSelectMenu.d.ts +24 -0
  183. package/lib/cascader/src/CascaderSubmenu.d.ts +25 -1
  184. package/lib/cascader/styles/light.d.ts +16 -0
  185. package/lib/chat/src/Chat.d.ts +175 -7
  186. package/lib/chat/src/Chat.js +11 -12
  187. package/lib/chat/src/ChatListItems.d.ts +192 -0
  188. package/lib/chat/src/ChatListItems.js +4 -1
  189. package/lib/chat/src/ChatMessages.d.ts +192 -0
  190. package/lib/chat/src/styles/index.cssr.js +1 -3
  191. package/lib/chat/styles/dark.d.ts +16 -0
  192. package/lib/chat/styles/light.d.ts +16 -0
  193. package/lib/color-picker/src/ColorInputUnit.d.ts +8 -0
  194. package/lib/color-picker/src/ColorPicker.d.ts +72 -0
  195. package/lib/color-picker/styles/light.d.ts +8 -0
  196. package/lib/components.d.ts +2 -0
  197. package/lib/components.js +2 -0
  198. package/lib/data-table/src/DataTable.d.ts +240 -0
  199. package/lib/data-table/src/HeaderButton/FilterButton.d.ts +48 -0
  200. package/lib/data-table/src/HeaderButton/FilterMenu.d.ts +48 -0
  201. package/lib/data-table/src/TableParts/Body.d.ts +49 -1
  202. package/lib/data-table/src/TableParts/Header.d.ts +48 -0
  203. package/lib/data-table/src/interface.d.ts +96 -0
  204. package/lib/data-table/styles/light.d.ts +32 -0
  205. package/lib/date-picker/src/DatePicker.d.ts +339 -3
  206. package/lib/date-picker/src/panel/date.d.ts +49 -1
  207. package/lib/date-picker/src/panel/daterange.d.ts +50 -2
  208. package/lib/date-picker/src/panel/datetime.d.ts +49 -1
  209. package/lib/date-picker/src/panel/datetimerange.d.ts +50 -2
  210. package/lib/date-picker/src/panel/panelMonth.d.ts +98 -2
  211. package/lib/date-picker/src/panel/panelMonthContent.d.ts +49 -1
  212. package/lib/date-picker/src/panel/panelYear.d.ts +98 -2
  213. package/lib/date-picker/src/panel/panelYearContent.d.ts +49 -1
  214. package/lib/date-picker/src/panel/use-calendar.d.ts +48 -0
  215. package/lib/date-picker/src/panel/use-dual-calendar.d.ts +48 -0
  216. package/lib/date-picker/src/panel/use-panel-common.d.ts +48 -0
  217. package/lib/date-picker/styles/light.d.ts +32 -0
  218. package/lib/dialog/src/Dialog.d.ts +56 -0
  219. package/lib/dialog/src/DialogProvider.d.ts +18 -2
  220. package/lib/dialog/styles/light.d.ts +8 -0
  221. package/lib/drawer/src/Drawer.d.ts +81 -1
  222. package/lib/drawer/src/DrawerBodyWrapper.d.ts +9 -1
  223. package/lib/drawer/src/DrawerContent.d.ts +8 -0
  224. package/lib/drawer/styles/light.d.ts +8 -0
  225. package/lib/dropdown/src/Dropdown.d.ts +1 -1
  226. package/lib/dynamic-input/src/DynamicInput.d.ts +80 -0
  227. package/lib/dynamic-input/src/InputPreset.d.ts +8 -0
  228. package/lib/dynamic-input/src/PairPreset.d.ts +8 -0
  229. package/lib/dynamic-input/styles/light.d.ts +8 -0
  230. package/lib/dynamic-tags/src/DynamicTags.d.ts +80 -0
  231. package/lib/dynamic-tags/styles/light.d.ts +8 -0
  232. package/lib/infinite-scroll/index.d.ts +2 -0
  233. package/lib/infinite-scroll/index.js +9 -0
  234. package/lib/infinite-scroll/src/InfiniteScroll.d.ts +45 -0
  235. package/lib/infinite-scroll/src/InfiniteScroll.js +81 -0
  236. package/lib/input-number/src/InputNumber.d.ts +80 -0
  237. package/lib/input-number/styles/light.d.ts +8 -0
  238. package/lib/layout/src/Layout.d.ts +112 -0
  239. package/lib/layout/src/LayoutContent.d.ts +56 -0
  240. package/lib/layout/src/LayoutFooter.d.ts +72 -0
  241. package/lib/layout/src/LayoutHeader.d.ts +48 -0
  242. package/lib/layout/src/LayoutSider.d.ts +56 -0
  243. package/lib/layout/styles/light.d.ts +8 -0
  244. package/lib/legacy-transfer/src/Transfer.d.ts +160 -0
  245. package/lib/legacy-transfer/src/TransferFilter.d.ts +16 -0
  246. package/lib/legacy-transfer/src/TransferList.d.ts +17 -1
  247. package/lib/legacy-transfer/src/TransferListItem.d.ts +16 -0
  248. package/lib/legacy-transfer/styles/light.d.ts +16 -0
  249. package/lib/log/src/Log.d.ts +80 -0
  250. package/lib/log/styles/light.d.ts +8 -0
  251. package/lib/mention/src/Mention.d.ts +88 -0
  252. package/lib/mention/styles/light.d.ts +8 -0
  253. package/lib/menu/src/Menu.d.ts +1 -1
  254. package/lib/modal/src/BodyWrapper.d.ts +25 -1
  255. package/lib/modal/src/Modal.d.ts +145 -1
  256. package/lib/modal/styles/light.d.ts +16 -0
  257. package/lib/notification/src/Notification.d.ts +5 -0
  258. package/lib/notification/src/Notification.js +14 -4
  259. package/lib/notification/src/NotificationContainer.d.ts +20 -0
  260. package/lib/notification/src/NotificationProvider.d.ts +180 -0
  261. package/lib/notification/src/styles/index.cssr.js +12 -8
  262. package/lib/notification/styles/light.d.ts +32 -0
  263. package/lib/notification/styles/light.js +9 -8
  264. package/lib/pagination/src/Pagination.d.ts +176 -0
  265. package/lib/pagination/styles/light.d.ts +16 -0
  266. package/lib/popconfirm/src/Popconfirm.d.ts +80 -0
  267. package/lib/popconfirm/styles/light.d.ts +8 -0
  268. package/lib/popselect/src/Popselect.d.ts +88 -0
  269. package/lib/popselect/src/PopselectPanel.d.ts +16 -0
  270. package/lib/popselect/styles/light.d.ts +8 -0
  271. package/lib/scrollbar/src/Scrollbar.d.ts +72 -0
  272. package/lib/select/src/Select.d.ts +88 -0
  273. package/lib/select/styles/light.d.ts +8 -0
  274. package/lib/time-picker/src/Panel.d.ts +16 -0
  275. package/lib/time-picker/src/TimePicker.d.ts +160 -0
  276. package/lib/time-picker/styles/light.d.ts +16 -0
  277. package/lib/transfer/src/Transfer.d.ts +160 -0
  278. package/lib/transfer/src/TransferFilter.d.ts +16 -0
  279. package/lib/transfer/src/TransferList.d.ts +17 -1
  280. package/lib/transfer/src/TransferListItem.d.ts +16 -0
  281. package/lib/transfer/styles/light.d.ts +16 -0
  282. package/lib/tree/src/Tree.d.ts +82 -2
  283. package/lib/tree/src/TreeNodeCheckbox.d.ts +8 -0
  284. package/lib/tree/styles/light.d.ts +8 -0
  285. package/lib/tree-select/src/TreeSelect.d.ts +89 -1
  286. package/lib/tree-select/styles/light.d.ts +8 -0
  287. package/lib/upload/src/Upload.d.ts +90 -0
  288. package/lib/upload/src/Upload.js +2 -1
  289. package/lib/upload/src/UploadFile.d.ts +9 -0
  290. package/lib/upload/src/UploadProgress.d.ts +9 -0
  291. package/lib/upload/src/styles/index.cssr.js +1 -0
  292. package/lib/upload/src/useUploadActionsRender.js +5 -1
  293. package/lib/upload/styles/light.d.ts +10 -0
  294. package/lib/upload/styles/light.js +6 -5
  295. package/lib/version.d.ts +1 -1
  296. package/lib/version.js +1 -1
  297. package/lib/virtual-list/index.d.ts +2 -0
  298. package/lib/virtual-list/index.js +9 -0
  299. package/lib/virtual-list/src/VirtualList.d.ts +146 -0
  300. package/lib/virtual-list/src/VirtualList.js +106 -0
  301. package/package.json +2 -2
  302. package/volar.d.ts +1 -0
  303. package/web-types.json +33 -4
package/dist/index.js CHANGED
@@ -771,6 +771,16 @@
771
771
  return /^\d+$/.test(value) ? `${value}px` : value;
772
772
  };
773
773
 
774
+ function rtlInset(inset) {
775
+ const {
776
+ left,
777
+ right,
778
+ top,
779
+ bottom
780
+ } = getMargin(inset);
781
+ return `${top} ${left} ${bottom} ${right}`;
782
+ }
783
+
774
784
  function ampCount(selector) {
775
785
  let cnt = 0;
776
786
  for (let i = 0; i < selector.length; ++i) {
@@ -3017,7 +3027,7 @@
3017
3027
  if (typeof selector === 'string') {
3018
3028
  return document.querySelector(selector);
3019
3029
  }
3020
- return selector();
3030
+ return selector() || null;
3021
3031
  }
3022
3032
 
3023
3033
  var VLazyTeleport = vue.defineComponent({
@@ -3109,8 +3119,11 @@
3109
3119
  };
3110
3120
  const keepOffsetDirection = {
3111
3121
  top: true,
3122
+ // top++
3112
3123
  bottom: false,
3124
+ // top--
3113
3125
  left: true,
3126
+ // left++
3114
3127
  right: false // left--
3115
3128
  };
3116
3129
  const cssPositionToOppositeAlign = {
@@ -4281,6 +4294,7 @@
4281
4294
 
4282
4295
  let maybeTouch;
4283
4296
  function ensureMaybeTouch() {
4297
+ if (typeof document === 'undefined') return false;
4284
4298
  if (maybeTouch === undefined) {
4285
4299
  if ('matchMedia' in window) {
4286
4300
  maybeTouch = window.matchMedia('(pointer:coarse)').matches;
@@ -4292,12 +4306,139 @@
4292
4306
  }
4293
4307
  let wheelScale;
4294
4308
  function ensureWheelScale() {
4309
+ if (typeof document === 'undefined') return 1;
4295
4310
  if (wheelScale === undefined) {
4296
4311
  wheelScale = 'chrome' in window ? window.devicePixelRatio : 1;
4297
4312
  }
4298
4313
  return wheelScale;
4299
4314
  }
4300
4315
 
4316
+ const xScrollInjextionKey = 'VVirtualListXScroll';
4317
+
4318
+ function setupXScroll({
4319
+ columnsRef,
4320
+ renderColRef,
4321
+ renderItemWithColsRef
4322
+ }) {
4323
+ const listWidthRef = vue.ref(0);
4324
+ const scrollLeftRef = vue.ref(0);
4325
+ const xFinweckTreeRef = vue.computed(() => {
4326
+ const columns = columnsRef.value;
4327
+ if (columns.length === 0) {
4328
+ return null;
4329
+ }
4330
+ const ft = new FinweckTree(columns.length, 0);
4331
+ columns.forEach((column, index) => {
4332
+ ft.add(index, column.width);
4333
+ });
4334
+ return ft;
4335
+ });
4336
+ const startIndexRef = useMemo(() => {
4337
+ const xFinweckTree = xFinweckTreeRef.value;
4338
+ if (xFinweckTree !== null) {
4339
+ return Math.max(xFinweckTree.getBound(scrollLeftRef.value) - 1, 0);
4340
+ } else {
4341
+ return 0;
4342
+ }
4343
+ });
4344
+ const getLeft = index => {
4345
+ const xFinweckTree = xFinweckTreeRef.value;
4346
+ if (xFinweckTree !== null) {
4347
+ return xFinweckTree.sum(index);
4348
+ } else {
4349
+ return 0;
4350
+ }
4351
+ };
4352
+ const endIndexRef = useMemo(() => {
4353
+ const xFinweckTree = xFinweckTreeRef.value;
4354
+ if (xFinweckTree !== null) {
4355
+ return Math.min(xFinweckTree.getBound(scrollLeftRef.value + listWidthRef.value) + 1, columnsRef.value.length - 1);
4356
+ } else {
4357
+ return 0;
4358
+ }
4359
+ });
4360
+ vue.provide(xScrollInjextionKey, {
4361
+ startIndexRef,
4362
+ endIndexRef,
4363
+ columnsRef,
4364
+ renderColRef,
4365
+ renderItemWithColsRef,
4366
+ getLeft
4367
+ });
4368
+ return {
4369
+ listWidthRef,
4370
+ scrollLeftRef
4371
+ };
4372
+ }
4373
+
4374
+ const VirtualListRow = vue.defineComponent({
4375
+ name: 'VirtualListRow',
4376
+ props: {
4377
+ index: {
4378
+ type: Number,
4379
+ required: true
4380
+ },
4381
+ item: {
4382
+ type: Object,
4383
+ required: true
4384
+ }
4385
+ },
4386
+ setup() {
4387
+ const {
4388
+ startIndexRef,
4389
+ endIndexRef,
4390
+ columnsRef,
4391
+ getLeft,
4392
+ renderColRef,
4393
+ renderItemWithColsRef
4394
+ } =
4395
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
4396
+ vue.inject(xScrollInjextionKey);
4397
+ return {
4398
+ startIndex: startIndexRef,
4399
+ endIndex: endIndexRef,
4400
+ columns: columnsRef,
4401
+ renderCol: renderColRef,
4402
+ renderItemWithCols: renderItemWithColsRef,
4403
+ getLeft
4404
+ };
4405
+ },
4406
+ render() {
4407
+ const {
4408
+ startIndex,
4409
+ endIndex,
4410
+ columns,
4411
+ renderCol,
4412
+ renderItemWithCols,
4413
+ getLeft,
4414
+ item
4415
+ } = this;
4416
+ if (renderItemWithCols != null) {
4417
+ return renderItemWithCols({
4418
+ itemIndex: this.index,
4419
+ startColIndex: startIndex,
4420
+ endColIndex: endIndex,
4421
+ allColumns: columns,
4422
+ item,
4423
+ getLeft
4424
+ });
4425
+ }
4426
+ if (renderCol != null) {
4427
+ const items = [];
4428
+ for (let i = startIndex; i <= endIndex; ++i) {
4429
+ const column = columns[i];
4430
+ items.push(renderCol({
4431
+ column,
4432
+ left: getLeft(i),
4433
+ item
4434
+ }));
4435
+ }
4436
+ return items;
4437
+ }
4438
+ return null;
4439
+ }
4440
+ });
4441
+
4301
4442
  /* eslint-disable no-void */
4302
4443
  /* eslint-disable @typescript-eslint/restrict-plus-operands */
4303
4444
  const styles$1 = c('.v-vl', {
@@ -4320,6 +4461,12 @@
4320
4461
  type: Boolean,
4321
4462
  default: true
4322
4463
  },
4464
+ columns: {
4465
+ type: Array,
4466
+ default: () => []
4467
+ },
4468
+ renderCol: Function,
4469
+ renderItemWithCols: Function,
4323
4470
  items: {
4324
4471
  type: Array,
4325
4472
  default: () => []
@@ -4392,7 +4539,7 @@
4392
4539
  // remount
4393
4540
  scrollTo({
4394
4541
  top: scrollTopRef.value,
4395
- left: scrollLeft
4542
+ left: scrollLeftRef.value
4396
4543
  });
4397
4544
  });
4398
4545
  vue.onDeactivated(() => {
@@ -4401,6 +4548,17 @@
4401
4548
  activateStateInitialized = true;
4402
4549
  }
4403
4550
  });
4551
+ const totalWidthRef = useMemo(() => {
4552
+ if (props.renderCol == null && props.renderItemWithCols == null) {
4553
+ return undefined;
4554
+ }
4555
+ if (props.columns.length === 0) return undefined;
4556
+ let width = 0;
4557
+ props.columns.forEach(column => {
4558
+ width += column.width;
4559
+ });
4560
+ return width;
4561
+ });
4404
4562
  const keyIndexMapRef = vue.computed(() => {
4405
4563
  const map = new Map();
4406
4564
  const {
@@ -4411,6 +4569,14 @@
4411
4569
  });
4412
4570
  return map;
4413
4571
  });
4572
+ const {
4573
+ scrollLeftRef,
4574
+ listWidthRef
4575
+ } = setupXScroll({
4576
+ columnsRef: vue.toRef(props, 'columns'),
4577
+ renderColRef: vue.toRef(props, 'renderCol'),
4578
+ renderItemWithColsRef: vue.toRef(props, 'renderItemWithCols')
4579
+ });
4414
4580
  const listElRef = vue.ref(null);
4415
4581
  const listHeightRef = vue.ref(undefined);
4416
4582
  const keyToHeightOffset = new Map();
@@ -4431,7 +4597,6 @@
4431
4597
  return ft;
4432
4598
  });
4433
4599
  const finweckTreeUpdateTrigger = vue.ref(0);
4434
- let scrollLeft = 0;
4435
4600
  const scrollTopRef = vue.ref(0);
4436
4601
  const startIndexRef = useMemo(() => {
4437
4602
  return Math.max(finweckTreeRef.value.getBound(scrollTopRef.value - depx(props.paddingTop)) - 1, 0);
@@ -4618,8 +4783,15 @@
4618
4783
  // List is HTMLElement
4619
4784
  if (isHideByVShow(entry.target)) return;
4620
4785
  // If height is same, return
4621
- if (entry.contentRect.height === listHeightRef.value) return;
4786
+ if (props.renderCol == null && props.renderItemWithCols == null) {
4787
+ if (entry.contentRect.height === listHeightRef.value) return;
4788
+ } else {
4789
+ if (entry.contentRect.height === listHeightRef.value && entry.contentRect.width === listWidthRef.value) {
4790
+ return;
4791
+ }
4792
+ }
4622
4793
  listHeightRef.value = entry.contentRect.height;
4794
+ listWidthRef.value = entry.contentRect.width;
4623
4795
  const {
4624
4796
  onResize
4625
4797
  } = props;
@@ -4633,7 +4805,7 @@
4633
4805
  // https://github.com/TuSimple/naive-ui/issues/811
4634
4806
  if (listEl == null) return;
4635
4807
  scrollTopRef.value = listEl.scrollTop;
4636
- scrollLeft = listEl.scrollLeft;
4808
+ scrollLeftRef.value = listEl.scrollLeft;
4637
4809
  }
4638
4810
  function isHideByVShow(el) {
4639
4811
  let cursor = el;
@@ -4658,6 +4830,7 @@
4658
4830
  finweckTreeUpdateTrigger.value;
4659
4831
  return [props.itemsStyle, {
4660
4832
  boxSizing: 'content-box',
4833
+ width: pxfy(totalWidthRef.value),
4661
4834
  height: itemResizable ? '' : height,
4662
4835
  minHeight: itemResizable ? height : '',
4663
4836
  paddingTop: pxfy(props.paddingTop),
@@ -4706,24 +4879,40 @@
4706
4879
  class: 'v-vl-visible-items',
4707
4880
  style: this.visibleItemsStyle
4708
4881
  }, this.visibleItemsProps), {
4709
- default: () => this.viewportItems.map(item => {
4710
- const key = item[keyField];
4711
- const index = keyToIndex.get(key);
4712
- const itemVNode = this.$slots.default({
4713
- item,
4714
- index
4715
- })[0];
4716
- if (itemResizable) {
4717
- return vue.h(VResizeObserver, {
4718
- key,
4719
- onResize: entry => this.handleItemResize(key, entry)
4720
- }, {
4721
- default: () => itemVNode
4722
- });
4723
- }
4724
- itemVNode.key = key;
4725
- return itemVNode;
4726
- })
4882
+ default: () => {
4883
+ const {
4884
+ renderCol,
4885
+ renderItemWithCols
4886
+ } = this;
4887
+ return this.viewportItems.map(item => {
4888
+ const key = item[keyField];
4889
+ const index = keyToIndex.get(key);
4890
+ const renderedCols = renderCol != null ? vue.h(VirtualListRow, {
4891
+ index,
4892
+ item
4893
+ }) : undefined;
4894
+ const renderedItemWithCols = renderItemWithCols != null ? vue.h(VirtualListRow, {
4895
+ index,
4896
+ item
4897
+ }) : undefined;
4898
+ const itemVNode = this.$slots.default({
4899
+ item,
4900
+ renderedCols,
4901
+ renderedItemWithCols,
4902
+ index
4903
+ })[0];
4904
+ if (itemResizable) {
4905
+ return vue.h(VResizeObserver, {
4906
+ key,
4907
+ onResize: entry => this.handleItemResize(key, entry)
4908
+ }, {
4909
+ default: () => itemVNode
4910
+ });
4911
+ }
4912
+ itemVNode.key = key;
4913
+ return itemVNode;
4914
+ });
4915
+ }
4727
4916
  })]) : (_b = (_a = this.$slots).empty) === null || _b === void 0 ? void 0 : _b.call(_a)]);
4728
4917
  }
4729
4918
  });
@@ -4790,6 +4979,7 @@
4790
4979
  getCounter: Function,
4791
4980
  getTail: Function,
4792
4981
  updateCounter: Function,
4982
+ onUpdateCount: Function,
4793
4983
  onUpdateOverflow: Function
4794
4984
  },
4795
4985
  setup(props, {
@@ -4797,7 +4987,7 @@
4797
4987
  }) {
4798
4988
  const selfRef = vue.ref(null);
4799
4989
  const counterRef = vue.ref(null);
4800
- function deriveCounter() {
4990
+ function deriveCounter(options) {
4801
4991
  const {
4802
4992
  value: self
4803
4993
  } = selfRef;
@@ -4816,6 +5006,13 @@
4816
5006
  const {
4817
5007
  children
4818
5008
  } = self;
5009
+ if (options.showAllItemsBeforeCalculate) {
5010
+ for (const child of children) {
5011
+ if (child.hasAttribute(hiddenAttr)) {
5012
+ child.removeAttribute(hiddenAttr);
5013
+ }
5014
+ }
5015
+ }
4819
5016
  const containerWidth = self.offsetWidth;
4820
5017
  const childWidths = [];
4821
5018
  const tail = slots.tail ? getTail === null || getTail === void 0 ? void 0 : getTail() : null;
@@ -4862,6 +5059,10 @@
4862
5059
  tail.style.maxWidth = '';
4863
5060
  }
4864
5061
  }
5062
+ const {
5063
+ onUpdateCount
5064
+ } = props;
5065
+ if (onUpdateCount) onUpdateCount(restCount);
4865
5066
  break;
4866
5067
  }
4867
5068
  }
@@ -4888,7 +5089,9 @@
4888
5089
  anchorMetaName: cssrAnchorMetaName$1,
4889
5090
  ssr: ssrAdapter
4890
5091
  });
4891
- vue.onMounted(deriveCounter);
5092
+ vue.onMounted(() => deriveCounter({
5093
+ showAllItemsBeforeCalculate: false
5094
+ }));
4892
5095
  // besides onMounted, other case should be manually triggered, or we shoud watch items
4893
5096
  return {
4894
5097
  selfRef,
@@ -4901,7 +5104,9 @@
4901
5104
  $slots
4902
5105
  } = this;
4903
5106
  // eslint-disable-next-line @typescript-eslint/no-floating-promises
4904
- vue.nextTick(this.sync);
5107
+ vue.nextTick(() => this.sync({
5108
+ showAllItemsBeforeCalculate: false
5109
+ }));
4905
5110
  // It shouldn't have border
4906
5111
  return vue.h('div', {
4907
5112
  class: 'v-overflow',
@@ -4969,7 +5174,6 @@
4969
5174
  return !!element.href && element.rel !== 'ignore';
4970
5175
  case 'INPUT':
4971
5176
  return element.type !== 'hidden' && element.type !== 'file';
4972
- case 'BUTTON':
4973
5177
  case 'SELECT':
4974
5178
  case 'TEXTAREA':
4975
5179
  return true;
@@ -4989,8 +5193,8 @@
4989
5193
  default: true
4990
5194
  },
4991
5195
  onEsc: Function,
4992
- initialFocusTo: String,
4993
- finalFocusTo: String,
5196
+ initialFocusTo: [String, Function],
5197
+ finalFocusTo: [String, Function],
4994
5198
  returnFocusOnDeactivated: {
4995
5199
  type: Boolean,
4996
5200
  default: true
@@ -31510,12 +31714,27 @@
31510
31714
  }
31511
31715
  });
31512
31716
 
31717
+ const commonVars$8 = {
31718
+ railInsetHorizontalBottom: "auto 2px 4px 2px",
31719
+ railInsetHorizontalTop: "4px 2px auto 2px",
31720
+ railInsetVerticalRight: "2px 4px 2px auto",
31721
+ railInsetVerticalLeft: "2px auto 2px 4px",
31722
+ railColor: "transparent"
31723
+ };
31724
+
31513
31725
  const self$1m = vars => {
31514
31726
  const {
31515
31727
  scrollbarColor,
31516
- scrollbarColorHover
31728
+ scrollbarColorHover,
31729
+ scrollbarHeight,
31730
+ scrollbarWidth,
31731
+ scrollbarBorderRadius
31517
31732
  } = vars;
31518
31733
  return {
31734
+ ...commonVars$8,
31735
+ height: scrollbarHeight,
31736
+ width: scrollbarWidth,
31737
+ borderRadius: scrollbarBorderRadius,
31519
31738
  color: scrollbarColor,
31520
31739
  colorHover: scrollbarColorHover
31521
31740
  };
@@ -31585,50 +31804,60 @@
31585
31804
  width: 0;
31586
31805
  height: 0;
31587
31806
  display: none;
31588
- `), c$1(">", [cB("scrollbar-content", `
31807
+ `), c$1(">", [
31808
+ // We can't set overflow hidden since it affects positioning.
31809
+ cB("scrollbar-content", `
31589
31810
  box-sizing: border-box;
31590
31811
  min-width: 100%;
31591
31812
  `)])])]), c$1(">, +", [cB("scrollbar-rail", `
31592
31813
  position: absolute;
31593
31814
  pointer-events: none;
31594
31815
  user-select: none;
31816
+ background: var(--u-scrollbar-rail-color);
31595
31817
  -webkit-user-select: none;
31596
31818
  `, [cM("horizontal", `
31597
- left: 2px;
31598
- right: 2px;
31599
- bottom: 4px;
31600
31819
  height: var(--u-scrollbar-height);
31601
31820
  `, [c$1(">", [cE("scrollbar", `
31602
31821
  height: var(--u-scrollbar-height);
31603
31822
  border-radius: var(--u-scrollbar-border-radius);
31604
31823
  right: 0;
31605
- `)])]), cM("vertical", `
31606
- right: 4px;
31607
- top: 2px;
31608
- bottom: 2px;
31824
+ `)])]), cM("horizontal--top", `
31825
+ top: var(--u-scrollbar-rail-top-horizontal-top);
31826
+ right: var(--u-scrollbar-rail-right-horizontal-top);
31827
+ bottom: var(--u-scrollbar-rail-bottom-horizontal-top);
31828
+ left: var(--u-scrollbar-rail-left-horizontal-top);
31829
+ `), cM("horizontal--bottom", `
31830
+ top: var(--u-scrollbar-rail-top-horizontal-bottom);
31831
+ right: var(--u-scrollbar-rail-right-horizontal-bottom);
31832
+ bottom: var(--u-scrollbar-rail-bottom-horizontal-bottom);
31833
+ left: var(--u-scrollbar-rail-left-horizontal-bottom);
31834
+ `), cM("vertical", `
31609
31835
  width: var(--u-scrollbar-width);
31610
31836
  `, [c$1(">", [cE("scrollbar", `
31611
31837
  width: var(--u-scrollbar-width);
31612
31838
  border-radius: var(--u-scrollbar-border-radius);
31613
31839
  bottom: 0;
31614
- `)])]), cM("disabled", [c$1(">", [cE("scrollbar", {
31615
- pointerEvents: "none"
31616
- })])]), c$1(">", [cE("scrollbar", `
31840
+ `)])]), cM("vertical--left", `
31841
+ top: var(--u-scrollbar-rail-top-vertical-left);
31842
+ right: var(--u-scrollbar-rail-right-vertical-left);
31843
+ bottom: var(--u-scrollbar-rail-bottom-vertical-left);
31844
+ left: var(--u-scrollbar-rail-left-vertical-left);
31845
+ `), cM("vertical--right", `
31846
+ top: var(--u-scrollbar-rail-top-vertical-right);
31847
+ right: var(--u-scrollbar-rail-right-vertical-right);
31848
+ bottom: var(--u-scrollbar-rail-bottom-vertical-right);
31849
+ left: var(--u-scrollbar-rail-left-vertical-right);
31850
+ `), cM("disabled", [c$1(">", [cE("scrollbar", "pointer-events: none;")])]), c$1(">", [cE("scrollbar", `
31851
+ z-index: 1;
31617
31852
  position: absolute;
31618
31853
  cursor: pointer;
31619
31854
  pointer-events: all;
31620
31855
  background-color: var(--u-scrollbar-color);
31621
31856
  transition: background-color .2s var(--u-scrollbar-bezier);
31622
- `, [fadeInTransition(), c$1("&:hover", {
31623
- backgroundColor: "var(--u-scrollbar-color-hover)"
31624
- })])])])])]);
31857
+ `, [fadeInTransition(), c$1("&:hover", "background-color: var(--u-scrollbar-color-hover);")])])])])]);
31625
31858
 
31626
31859
  const scrollbarProps$1 = {
31627
31860
  ...useTheme.props,
31628
- size: {
31629
- type: Number,
31630
- default: 5
31631
- },
31632
31861
  duration: {
31633
31862
  type: Number,
31634
31863
  default: 0
@@ -31649,7 +31878,7 @@
31649
31878
  content: Function,
31650
31879
  containerClass: String,
31651
31880
  containerStyle: [String, Object],
31652
- contentClass: String,
31881
+ contentClass: [String, Array],
31653
31882
  contentStyle: [String, Object],
31654
31883
  horizontalRailStyle: [String, Object],
31655
31884
  verticalRailStyle: [String, Object],
@@ -31657,7 +31886,15 @@
31657
31886
  onWheel: Function,
31658
31887
  onResize: Function,
31659
31888
  internalOnUpdateScrollLeft: Function,
31660
- internalHoistYRail: Boolean
31889
+ internalHoistYRail: Boolean,
31890
+ yPlacement: {
31891
+ type: String,
31892
+ default: "right"
31893
+ },
31894
+ xPlacement: {
31895
+ type: String,
31896
+ default: "bottom"
31897
+ }
31661
31898
  };
31662
31899
  const Scrollbar$1 = vue.defineComponent({
31663
31900
  name: "Scrollbar",
@@ -31690,6 +31927,14 @@
31690
31927
  let memoMouseX = 0;
31691
31928
  let memoMouseY = 0;
31692
31929
  const isIos = useIsIos();
31930
+ const themeRef = useTheme(
31931
+ "Scrollbar",
31932
+ "-scrollbar",
31933
+ style$1C,
31934
+ scrollbarLight,
31935
+ props,
31936
+ mergedClsPrefixRef
31937
+ );
31693
31938
  const yBarSizeRef = vue.computed(() => {
31694
31939
  const { value: containerHeight } = containerHeightRef;
31695
31940
  const { value: contentHeight } = contentHeightRef;
@@ -31699,7 +31944,7 @@
31699
31944
  } else {
31700
31945
  return Math.min(
31701
31946
  containerHeight,
31702
- yRailSize * containerHeight / contentHeight + props.size * 1.5
31947
+ yRailSize * containerHeight / contentHeight + depx(themeRef.value.self.width) * 1.5
31703
31948
  );
31704
31949
  }
31705
31950
  });
@@ -31713,7 +31958,7 @@
31713
31958
  if (containerWidth === null || contentWidth === null || xRailSize === null) {
31714
31959
  return 0;
31715
31960
  } else {
31716
- return xRailSize * containerWidth / contentWidth + props.size * 1.5;
31961
+ return xRailSize * containerWidth / contentWidth + depx(themeRef.value.self.height) * 1.5;
31717
31962
  }
31718
31963
  });
31719
31964
  const xBarSizePxRef = vue.computed(() => {
@@ -31728,7 +31973,9 @@
31728
31973
  return 0;
31729
31974
  } else {
31730
31975
  const heightDiff = contentHeight - containerHeight;
31731
- if (!heightDiff) return 0;
31976
+ if (!heightDiff) {
31977
+ return 0;
31978
+ }
31732
31979
  return containerScrollTop / heightDiff * (yRailSize - yBarSizeRef.value);
31733
31980
  }
31734
31981
  });
@@ -31744,7 +31991,9 @@
31744
31991
  return 0;
31745
31992
  } else {
31746
31993
  const widthDiff = contentWidth - containerWidth;
31747
- if (!widthDiff) return 0;
31994
+ if (!widthDiff) {
31995
+ return 0;
31996
+ }
31748
31997
  return containerScrollLeft / widthDiff * (xRailSize - xBarSizeRef.value);
31749
31998
  }
31750
31999
  });
@@ -31771,36 +32020,24 @@
31771
32020
  });
31772
32021
  const mergedContainerRef = vue.computed(() => {
31773
32022
  const { container } = props;
31774
- if (container) return container();
32023
+ if (container) {
32024
+ return container();
32025
+ }
31775
32026
  return containerRef.value;
31776
32027
  });
31777
32028
  const mergedContentRef = vue.computed(() => {
31778
32029
  const { content } = props;
31779
- if (content) return content();
31780
- return contentRef.value;
31781
- });
31782
- const activateState = useReactivated(() => {
31783
- if (!props.container) {
31784
- scrollTo({
31785
- top: containerScrollTopRef.value,
31786
- left: containerScrollLeftRef.value
31787
- });
32030
+ if (content) {
32031
+ return content();
31788
32032
  }
32033
+ return contentRef.value;
31789
32034
  });
31790
- const handleContentResize = () => {
31791
- if (activateState.isDeactivated) return;
31792
- sync();
31793
- };
31794
- const handleContainerResize = (e) => {
31795
- if (activateState.isDeactivated) return;
31796
- const { onResize } = props;
31797
- if (onResize) onResize(e);
31798
- sync();
31799
- };
31800
32035
  const scrollTo = (options, y) => {
31801
- if (!props.scrollable) return;
32036
+ if (!props.scrollable) {
32037
+ return;
32038
+ }
31802
32039
  if (typeof options === "number") {
31803
- scrollToPosition(y ?? 0, options, 0, false, "auto");
32040
+ scrollToPosition(options, y ?? 0, 0, false, "auto");
31804
32041
  return;
31805
32042
  }
31806
32043
  const {
@@ -31826,10 +32063,38 @@
31826
32063
  scrollToPosition(0, 0, 0, false, behavior);
31827
32064
  }
31828
32065
  };
32066
+ const activateState = useReactivated(() => {
32067
+ if (!props.container) {
32068
+ scrollTo({
32069
+ top: containerScrollTopRef.value,
32070
+ left: containerScrollLeftRef.value
32071
+ });
32072
+ }
32073
+ });
32074
+ const handleContentResize = () => {
32075
+ if (activateState.isDeactivated) {
32076
+ return;
32077
+ }
32078
+ sync();
32079
+ };
32080
+ const handleContainerResize = (e) => {
32081
+ if (activateState.isDeactivated) {
32082
+ return;
32083
+ }
32084
+ const { onResize } = props;
32085
+ if (onResize) {
32086
+ onResize(e);
32087
+ }
32088
+ sync();
32089
+ };
31829
32090
  const scrollBy = (options, y) => {
31830
- if (!props.scrollable) return;
32091
+ if (!props.scrollable) {
32092
+ return;
32093
+ }
31831
32094
  const { value: container } = mergedContainerRef;
31832
- if (!container) return;
32095
+ if (!container) {
32096
+ return;
32097
+ }
31833
32098
  if (typeof options === "object") {
31834
32099
  container.scrollBy(options);
31835
32100
  } else {
@@ -31838,7 +32103,9 @@
31838
32103
  };
31839
32104
  function scrollToPosition(left, top, elSize, debounce, behavior) {
31840
32105
  const { value: container } = mergedContainerRef;
31841
- if (!container) return;
32106
+ if (!container) {
32107
+ return;
32108
+ }
31842
32109
  if (debounce) {
31843
32110
  const { scrollTop, offsetHeight } = container;
31844
32111
  if (top > scrollTop) {
@@ -31900,7 +32167,9 @@
31900
32167
  }
31901
32168
  function handleScroll(e) {
31902
32169
  const { onScroll } = props;
31903
- if (onScroll) onScroll(e);
32170
+ if (onScroll) {
32171
+ onScroll(e);
32172
+ }
31904
32173
  syncScrollState();
31905
32174
  }
31906
32175
  function syncScrollState() {
@@ -31950,7 +32219,9 @@
31950
32219
  }
31951
32220
  }
31952
32221
  function sync() {
31953
- if (!props.scrollable) return;
32222
+ if (!props.scrollable) {
32223
+ return;
32224
+ }
31954
32225
  if (props.useUnifiedContainer) {
31955
32226
  syncUnifiedContainer();
31956
32227
  } else {
@@ -31973,7 +32244,9 @@
31973
32244
  memoMouseX = rtlEnabledRef?.value ? window.innerWidth - e.clientX : e.clientX;
31974
32245
  }
31975
32246
  function handleXScrollMouseMove(e) {
31976
- if (!xBarPressed) return;
32247
+ if (!xBarPressed) {
32248
+ return;
32249
+ }
31977
32250
  if (xBarVanishTimerId !== void 0) {
31978
32251
  window.clearTimeout(xBarVanishTimerId);
31979
32252
  }
@@ -31983,7 +32256,9 @@
31983
32256
  const { value: containerWidth } = containerWidthRef;
31984
32257
  const { value: contentWidth } = contentWidthRef;
31985
32258
  const { value: xBarSize } = xBarSizeRef;
31986
- if (containerWidth === null || contentWidth === null) return;
32259
+ if (containerWidth === null || contentWidth === null) {
32260
+ return;
32261
+ }
31987
32262
  const dX = rtlEnabledRef?.value ? window.innerWidth - e.clientX - memoMouseX : e.clientX - memoMouseX;
31988
32263
  const dScrollLeft = dX * (contentWidth - containerWidth) / (containerWidth - xBarSize);
31989
32264
  const toScrollLeftUpperBound = contentWidth - containerWidth;
@@ -31994,7 +32269,9 @@
31994
32269
  if (container) {
31995
32270
  container.scrollLeft = toScrollLeft * (rtlEnabledRef?.value ? -1 : 1);
31996
32271
  const { internalOnUpdateScrollLeft } = props;
31997
- if (internalOnUpdateScrollLeft) internalOnUpdateScrollLeft(toScrollLeft);
32272
+ if (internalOnUpdateScrollLeft) {
32273
+ internalOnUpdateScrollLeft(toScrollLeft);
32274
+ }
31998
32275
  }
31999
32276
  }
32000
32277
  function handleXScrollMouseUp(e) {
@@ -32018,7 +32295,9 @@
32018
32295
  memoMouseY = e.clientY;
32019
32296
  }
32020
32297
  function handleYScrollMouseMove(e) {
32021
- if (!yBarPressed) return;
32298
+ if (!yBarPressed) {
32299
+ return;
32300
+ }
32022
32301
  if (xBarVanishTimerId !== void 0) {
32023
32302
  window.clearTimeout(xBarVanishTimerId);
32024
32303
  }
@@ -32028,7 +32307,9 @@
32028
32307
  const { value: containerHeight } = containerHeightRef;
32029
32308
  const { value: contentHeight } = contentHeightRef;
32030
32309
  const { value: yBarSize } = yBarSizeRef;
32031
- if (containerHeight === null || contentHeight === null) return;
32310
+ if (containerHeight === null || contentHeight === null) {
32311
+ return;
32312
+ }
32032
32313
  const dY = e.clientY - memoMouseY;
32033
32314
  const dScrollTop = dY * (contentHeight - containerHeight) / (containerHeight - yBarSize);
32034
32315
  const toScrollTopUpperBound = contentHeight - containerHeight;
@@ -32077,7 +32358,9 @@
32077
32358
  }
32078
32359
  });
32079
32360
  vue.onMounted(() => {
32080
- if (props.container) return;
32361
+ if (props.container) {
32362
+ return;
32363
+ }
32081
32364
  sync();
32082
32365
  });
32083
32366
  vue.onBeforeUnmount(() => {
@@ -32090,31 +32373,74 @@
32090
32373
  off("mousemove", window, handleYScrollMouseMove, true);
32091
32374
  off("mouseup", window, handleYScrollMouseUp, true);
32092
32375
  });
32093
- const themeRef = useTheme(
32094
- "Scrollbar",
32095
- "-scrollbar",
32096
- style$1C,
32097
- scrollbarLight,
32098
- props,
32099
- mergedClsPrefixRef
32100
- );
32101
32376
  const cssVarsRef = vue.computed(() => {
32102
32377
  const {
32103
- common: {
32104
- cubicBezierEaseInOut,
32105
- scrollbarBorderRadius,
32106
- scrollbarHeight,
32107
- scrollbarWidth
32108
- },
32109
- self: { color, colorHover }
32378
+ common: { cubicBezierEaseInOut },
32379
+ self: {
32380
+ color,
32381
+ colorHover,
32382
+ height,
32383
+ width,
32384
+ borderRadius,
32385
+ railInsetHorizontalTop,
32386
+ railInsetHorizontalBottom,
32387
+ railInsetVerticalRight,
32388
+ railInsetVerticalLeft,
32389
+ railColor
32390
+ }
32110
32391
  } = themeRef.value;
32392
+ const {
32393
+ top: railTopHorizontalTop,
32394
+ right: railRightHorizontalTop,
32395
+ bottom: railBottomHorizontalTop,
32396
+ left: railLeftHorizontalTop
32397
+ } = getMargin(railInsetHorizontalTop);
32398
+ const {
32399
+ top: railTopHorizontalBottom,
32400
+ right: railRightHorizontalBottom,
32401
+ bottom: railBottomHorizontalBottom,
32402
+ left: railLeftHorizontalBottom
32403
+ } = getMargin(railInsetHorizontalBottom);
32404
+ const {
32405
+ top: railTopVerticalRight,
32406
+ right: railRightVerticalRight,
32407
+ bottom: railBottomVerticalRight,
32408
+ left: railLeftVerticalRight
32409
+ } = getMargin(
32410
+ rtlEnabledRef?.value ? rtlInset(railInsetVerticalRight) : railInsetVerticalRight
32411
+ );
32412
+ const {
32413
+ top: railTopVerticalLeft,
32414
+ right: railRightVerticalLeft,
32415
+ bottom: railBottomVerticalLeft,
32416
+ left: railLeftVerticalLeft
32417
+ } = getMargin(
32418
+ rtlEnabledRef?.value ? rtlInset(railInsetVerticalLeft) : railInsetVerticalLeft
32419
+ );
32111
32420
  return {
32112
32421
  "--u-scrollbar-bezier": cubicBezierEaseInOut,
32113
32422
  "--u-scrollbar-color": color,
32114
32423
  "--u-scrollbar-color-hover": colorHover,
32115
- "--u-scrollbar-border-radius": scrollbarBorderRadius,
32116
- "--u-scrollbar-width": scrollbarWidth,
32117
- "--u-scrollbar-height": scrollbarHeight
32424
+ "--u-scrollbar-border-radius": borderRadius,
32425
+ "--u-scrollbar-width": width,
32426
+ "--u-scrollbar-height": height,
32427
+ "--u-scrollbar-rail-top-horizontal-top": railTopHorizontalTop,
32428
+ "--u-scrollbar-rail-right-horizontal-top": railRightHorizontalTop,
32429
+ "--u-scrollbar-rail-bottom-horizontal-top": railBottomHorizontalTop,
32430
+ "--u-scrollbar-rail-left-horizontal-top": railLeftHorizontalTop,
32431
+ "--u-scrollbar-rail-top-horizontal-bottom": railTopHorizontalBottom,
32432
+ "--u-scrollbar-rail-right-horizontal-bottom": railRightHorizontalBottom,
32433
+ "--u-scrollbar-rail-bottom-horizontal-bottom": railBottomHorizontalBottom,
32434
+ "--u-scrollbar-rail-left-horizontal-bottom": railLeftHorizontalBottom,
32435
+ "--u-scrollbar-rail-top-vertical-right": railTopVerticalRight,
32436
+ "--u-scrollbar-rail-right-vertical-right": railRightVerticalRight,
32437
+ "--u-scrollbar-rail-bottom-vertical-right": railBottomVerticalRight,
32438
+ "--u-scrollbar-rail-left-vertical-right": railLeftVerticalRight,
32439
+ "--u-scrollbar-rail-top-vertical-left": railTopVerticalLeft,
32440
+ "--u-scrollbar-rail-right-vertical-left": railRightVerticalLeft,
32441
+ "--u-scrollbar-rail-bottom-vertical-left": railBottomVerticalLeft,
32442
+ "--u-scrollbar-rail-left-vertical-left": railLeftVerticalLeft,
32443
+ "--u-scrollbar-rail-color": railColor
32118
32444
  };
32119
32445
  });
32120
32446
  const themeClassHandle = inlineThemeDisabled ? useThemeClass("scrollbar", void 0, cssVarsRef, props) : void 0;
@@ -32161,22 +32487,29 @@
32161
32487
  mergedClsPrefix,
32162
32488
  triggerDisplayManually,
32163
32489
  rtlEnabled,
32164
- internalHoistYRail
32490
+ internalHoistYRail,
32491
+ yPlacement,
32492
+ xPlacement,
32493
+ xScrollable
32165
32494
  } = this;
32166
- if (!this.scrollable) return $slots.default?.();
32495
+ if (!this.scrollable) {
32496
+ return $slots.default?.();
32497
+ }
32167
32498
  const triggerIsNone = this.trigger === "none";
32168
- const createYRail = (style2) => {
32499
+ const createYRail = (className, style2) => {
32169
32500
  return /* @__PURE__ */ vue.h(
32170
32501
  "div",
32171
32502
  {
32172
32503
  ref: "yRailRef",
32173
32504
  class: [
32174
32505
  `${mergedClsPrefix}-scrollbar-rail`,
32175
- `${mergedClsPrefix}-scrollbar-rail--vertical`
32506
+ `${mergedClsPrefix}-scrollbar-rail--vertical`,
32507
+ `${mergedClsPrefix}-scrollbar-rail--vertical--${yPlacement}`,
32508
+ className
32176
32509
  ],
32177
32510
  "data-scrollbar-rail": true,
32178
32511
  style: [style2 || "", this.verticalRailStyle],
32179
- "aria-hiddens": true
32512
+ "aria-hidden": true
32180
32513
  },
32181
32514
  vue.h(
32182
32515
  triggerIsNone ? Wrapper : vue.Transition,
@@ -32248,14 +32581,15 @@
32248
32581
  )
32249
32582
  })
32250
32583
  ),
32251
- internalHoistYRail ? null : createYRail(void 0),
32252
- this.xScrollable && /* @__PURE__ */ vue.h(
32584
+ internalHoistYRail ? null : createYRail(void 0, void 0),
32585
+ xScrollable && /* @__PURE__ */ vue.h(
32253
32586
  "div",
32254
32587
  {
32255
32588
  ref: "xRailRef",
32256
32589
  class: [
32257
32590
  `${mergedClsPrefix}-scrollbar-rail`,
32258
- `${mergedClsPrefix}-scrollbar-rail--horizontal`
32591
+ `${mergedClsPrefix}-scrollbar-rail--horizontal`,
32592
+ `${mergedClsPrefix}-scrollbar-rail--horizontal--${xPlacement}`
32259
32593
  ],
32260
32594
  style: this.horizontalRailStyle,
32261
32595
  "data-scrollbar-rail": true,
@@ -32287,7 +32621,7 @@
32287
32621
  default: createChildren
32288
32622
  });
32289
32623
  if (internalHoistYRail) {
32290
- return /* @__PURE__ */ vue.h(vue.Fragment, null, scrollbarNode, createYRail(this.cssVars));
32624
+ return /* @__PURE__ */ vue.h(vue.Fragment, null, scrollbarNode, createYRail(this.themeClass, this.cssVars));
32291
32625
  } else {
32292
32626
  return scrollbarNode;
32293
32627
  }
@@ -35786,7 +36120,9 @@
35786
36120
  if (patternInputEl) {
35787
36121
  patternInputEl.style.width = `${patternInputMirrorEl.offsetWidth}px`;
35788
36122
  if (props.maxTagCount !== "responsive") {
35789
- overflowRef.value?.sync();
36123
+ overflowRef.value?.sync({
36124
+ showAllItemsBeforeCalculate: false
36125
+ });
35790
36126
  }
35791
36127
  }
35792
36128
  }
@@ -37880,8 +38216,8 @@
37880
38216
  const successPress = "#0f9b42";
37881
38217
  const warningHover = "#f79942";
37882
38218
  const warningPress = "#df7a1d";
37883
- const errorHover = "#f75e4d";
37884
- const errorPress = "#e53a27";
38219
+ const errorHover = "#cb0000";
38220
+ const errorDisable = "#f8a39a";
37885
38221
  return {
37886
38222
  ...commonVariables$5,
37887
38223
  heightTiny: heightMini,
@@ -37903,20 +38239,28 @@
37903
38239
  colorOpacitySecondaryPressed: "0.28",
37904
38240
  colorOpacitySecondaryFocus: "0.27",
37905
38241
  colorSecondary: elementsTertiary,
37906
- colorSecondaryHover: elementsTertiary,
38242
+ colorSecondaryHover: elementsQuaternary,
37907
38243
  colorSecondaryPressed: elementsTertiary,
38244
+ colorSecondaryFocus: elementsTertiary,
38245
+ colorSecondaryDisabled: elementsTertiary,
38246
+ textColorSecondaryDisabled: elementsQuinary,
37908
38247
  waveColorSecondary: elementsQuinary,
37909
38248
  // tertiary
37910
38249
  colorTertiary: elementsPrimary,
37911
38250
  colorTertiaryHover: elementsSenary,
37912
38251
  colorTertiaryPressed: elementsPrimary,
37913
- colorTertiaryDisalbed: elementsTertiary,
37914
- waveColorTertiary: elementsTertiary,
38252
+ colorTertiaryFocus: elementsPrimary,
38253
+ colorTertiaryDisalbed: elementsQuinary,
38254
+ waveColorTertiary: elementsQuinary,
37915
38255
  textColorTextTertiary: textQuaternary,
38256
+ rippleColorTertiary: elementsQuinary,
37916
38257
  // quaternary
37917
38258
  colorQuaternary: "#0000",
37918
- colorQuaternaryHover: elementsTertiary,
37919
- colorQuaternaryPressed: elementsQuaternary,
38259
+ colorQuaternaryHover: elementsQuaternary,
38260
+ colorQuaternaryPressed: "#0000",
38261
+ colorQuaternaryFocus: "#0000",
38262
+ rippleColorQuaternary: elementsQuinary,
38263
+ waveColorQuaternary: elementsQuinary,
37920
38264
  // default type
37921
38265
  color: "#0000",
37922
38266
  colorHover: "#0000",
@@ -37948,10 +38292,10 @@
37948
38292
  rippleColor: brandPrimary500,
37949
38293
  // primary
37950
38294
  colorPrimary: brandPrimary500,
37951
- colorHoverPrimary: brandPrimary400,
37952
- colorPressedPrimary: brandPrimary600,
37953
- colorFocusPrimary: brandPrimary400,
37954
- colorDisabledPrimary: brandPrimary500,
38295
+ colorHoverPrimary: brandPrimary600,
38296
+ colorPressedPrimary: brandPrimary500,
38297
+ colorFocusPrimary: brandPrimary500,
38298
+ colorDisabledPrimary: brandPrimary300,
37955
38299
  waveColorPrimary: brandPrimary300,
37956
38300
  textColorPrimary: staticWhite,
37957
38301
  textColorHoverPrimary: staticWhite,
@@ -37959,21 +38303,21 @@
37959
38303
  textColorFocusPrimary: staticWhite,
37960
38304
  textColorDisabledPrimary: staticWhite,
37961
38305
  textColorTextPrimary: brandPrimary500,
37962
- textColorTextHoverPrimary: brandPrimary400,
37963
- textColorTextPressedPrimary: brandPrimary600,
37964
- textColorTextFocusPrimary: brandPrimary400,
37965
- textColorTextDisabledPrimary: textTertiary,
38306
+ textColorTextHoverPrimary: brandPrimary600,
38307
+ textColorTextPressedPrimary: brandPrimary300,
38308
+ textColorTextFocusPrimary: brandPrimary300,
38309
+ textColorTextDisabledPrimary: brandPrimary300,
37966
38310
  textColorGhostPrimary: brandPrimary500,
37967
- textColorGhostHoverPrimary: brandPrimary400,
37968
- textColorGhostPressedPrimary: brandPrimary600,
37969
- textColorGhostFocusPrimary: brandPrimary400,
37970
- textColorGhostDisabledPrimary: brandPrimary500,
38311
+ textColorGhostHoverPrimary: brandPrimary600,
38312
+ textColorGhostPressedPrimary: brandPrimary500,
38313
+ textColorGhostFocusPrimary: brandPrimary500,
38314
+ textColorGhostDisabledPrimary: brandPrimary300,
37971
38315
  borderPrimary: `2px solid ${brandPrimary500}`,
37972
- borderHoverPrimary: `2px solid ${brandPrimary400}`,
37973
- borderPressedPrimary: `2px solid ${brandPrimary600}`,
37974
- borderFocusPrimary: `2px solid ${brandPrimary400}`,
37975
- borderDisabledPrimary: `2px solid ${brandPrimary500}`,
37976
- rippleColorPrimary: brandPrimary500,
38316
+ borderHoverPrimary: `2px solid ${brandPrimary600}`,
38317
+ borderPressedPrimary: `2px solid ${brandPrimary500}`,
38318
+ borderFocusPrimary: `2px solid ${brandPrimary500}`,
38319
+ borderDisabledPrimary: `2px solid ${brandPrimary300}`,
38320
+ rippleColorPrimary: brandPrimary300,
37977
38321
  // info
37978
38322
  colorInfo: brandQuaternary500,
37979
38323
  colorHoverInfo: brandQuaternary300,
@@ -38058,9 +38402,9 @@
38058
38402
  // error
38059
38403
  colorError: staticRed,
38060
38404
  colorHoverError: errorHover,
38061
- colorPressedError: errorPress,
38062
- colorFocusError: errorHover,
38063
- colorDisabledError: staticRed,
38405
+ colorPressedError: staticRed,
38406
+ colorFocusError: staticRed,
38407
+ colorDisabledError: errorDisable,
38064
38408
  textColorError: staticWhite,
38065
38409
  textColorHoverError: staticWhite,
38066
38410
  textColorPressedError: staticWhite,
@@ -38068,20 +38412,20 @@
38068
38412
  textColorDisabledError: staticWhite,
38069
38413
  textColorTextError: staticRed,
38070
38414
  textColorTextHoverError: errorHover,
38071
- textColorTextPressedError: errorPress,
38072
- textColorTextFocusError: errorHover,
38073
- textColorTextDisabledError: textTertiary,
38415
+ textColorTextPressedError: staticRed,
38416
+ textColorTextFocusError: staticRed,
38417
+ textColorTextDisabledError: errorDisable,
38074
38418
  textColorGhostError: staticRed,
38075
38419
  textColorGhostHoverError: errorHover,
38076
- textColorGhostPressedError: errorPress,
38077
- textColorGhostFocusError: errorHover,
38078
- textColorGhostDisabledError: staticRed,
38420
+ textColorGhostPressedError: staticRed,
38421
+ textColorGhostFocusError: staticRed,
38422
+ textColorGhostDisabledError: errorDisable,
38079
38423
  borderError: `2px solid ${staticRed}`,
38080
38424
  borderHoverError: `2px solid ${errorHover}`,
38081
- borderPressedError: `2px solid ${errorPress}`,
38082
- borderFocusError: `2px solid ${errorHover}`,
38083
- borderDisabledError: `2px solid ${staticRed}`,
38084
- rippleColorError: staticRed,
38425
+ borderPressedError: `2px solid ${staticRed}`,
38426
+ borderFocusError: `2px solid ${staticRed}`,
38427
+ borderDisabledError: `2px solid ${errorDisable}`,
38428
+ rippleColorError: errorDisable,
38085
38429
  waveOpacity: "0.6",
38086
38430
  fontWeight,
38087
38431
  fontWeightStrong
@@ -38129,6 +38473,7 @@
38129
38473
  borderRadiusLarge,
38130
38474
  closeMedium,
38131
38475
  iconMedium,
38476
+ iconLarge,
38132
38477
  fontWeight,
38133
38478
  staticBlack,
38134
38479
  staticWhite,
@@ -38138,10 +38483,10 @@
38138
38483
  brandPrimary500,
38139
38484
  brandSecondary600,
38140
38485
  staticRed,
38141
- elementsTertiary,
38142
- textPrimary,
38486
+ elementsQuinary,
38143
38487
  transparencySecondary,
38144
- transparencyPrimary
38488
+ transparencyPrimary,
38489
+ elementsDarkQuinary
38145
38490
  } = vars;
38146
38491
  return {
38147
38492
  ...commonVars$5,
@@ -38158,47 +38503,53 @@
38158
38503
  borderRadius: borderRadiusLarge,
38159
38504
  closeSize: closeMedium,
38160
38505
  closeIconSize: iconMedium,
38161
- avatarSize: iconMedium,
38506
+ avatarSize: iconLarge,
38162
38507
  closeMargin: "12px",
38163
38508
  // Default
38164
- color: staticBlack,
38165
- iconColor: staticWhite,
38166
- textColor: staticWhite,
38167
- closeIconColor: staticWhite,
38168
- closeIconColorHover: staticWhite,
38169
- closeIconColorPressed: staticWhite,
38509
+ color: staticWhite,
38510
+ iconColor: elementsDarkQuinary,
38511
+ textColor: staticBlack,
38512
+ closeIconColor: staticBlack,
38513
+ closeIconColorHover: staticBlack,
38514
+ closeIconColorPressed: staticBlack,
38170
38515
  closeColorHover: transparencyTertiary,
38171
38516
  closeColorPressed: transparencyQuinary,
38172
- titleTextColor: staticWhite,
38173
- descriptionTextColor: staticWhite,
38174
- actionTextColor: staticWhite,
38517
+ titleTextColor: staticBlack,
38518
+ descriptionTextColor: staticBlack,
38519
+ actionTextColor: staticBlack,
38520
+ iconWrapperColor: "rgb(16 16 16 / 8%)",
38521
+ iconWrapperPulseColor: "rgb(16 16 16 / 4%)",
38175
38522
  // Success
38176
- colorSuccess: staticGreen,
38177
- iconColorSuccess: staticWhite,
38178
- textColorSuccess: staticWhite,
38179
- closeIconColorSuccess: staticWhite,
38180
- closeIconColorHoverSuccess: staticWhite,
38181
- closeIconColorPressedSuccess: staticWhite,
38523
+ colorSuccess: staticWhite,
38524
+ iconColorSuccess: staticGreen,
38525
+ textColorSuccess: staticBlack,
38526
+ closeIconColorSuccess: staticBlack,
38527
+ closeIconColorHoverSuccess: staticBlack,
38528
+ closeIconColorPressedSuccess: staticBlack,
38182
38529
  closeColorHoverSuccess: transparencyTertiary,
38183
38530
  closeColorPressedSuccess: transparencyQuinary,
38184
- titleTextColorSuccess: staticWhite,
38185
- descriptionTextColorSuccess: staticWhite,
38186
- actionTextColorSuccess: staticWhite,
38531
+ titleTextColorSuccess: staticBlack,
38532
+ descriptionTextColorSuccess: staticBlack,
38533
+ actionTextColorSuccess: staticBlack,
38534
+ iconWrapperColorSuccess: derived.brandTertiary300,
38535
+ iconWrapperPulseColorSuccess: derived.brand350,
38187
38536
  // Info
38188
- colorInfo: elementsTertiary,
38189
- iconColorInfo: textPrimary,
38190
- textColorInfo: textPrimary,
38191
- closeIconColorInfo: textPrimary,
38192
- closeIconColorHoverInfo: textPrimary,
38193
- closeIconColorPressedInfo: textPrimary,
38537
+ colorInfo: staticWhite,
38538
+ iconColorInfo: elementsQuinary,
38539
+ textColorInfo: staticBlack,
38540
+ closeIconColorInfo: staticBlack,
38541
+ closeIconColorHoverInfo: staticBlack,
38542
+ closeIconColorPressedInfo: staticBlack,
38194
38543
  closeColorHoverInfo: transparencySecondary,
38195
38544
  closeColorPressedInfo: transparencyPrimary,
38196
- titleTextColorInfo: textPrimary,
38197
- descriptionTextColorInfo: textPrimary,
38198
- actionTextColorInfo: textPrimary,
38545
+ titleTextColorInfo: staticBlack,
38546
+ descriptionTextColorInfo: staticBlack,
38547
+ actionTextColorInfo: staticBlack,
38548
+ iconWrapperColorInfo: "rgb(197 199 202 / 36%)",
38549
+ iconWrapperPulseColorInfo: "rgb(197 199 202 / 14%)",
38199
38550
  // Warning
38200
- colorWarning: brandSecondary600,
38201
- iconColorWarning: staticBlack,
38551
+ colorWarning: staticWhite,
38552
+ iconColorWarning: brandSecondary600,
38202
38553
  textColorWarning: staticBlack,
38203
38554
  closeIconColorWarning: staticBlack,
38204
38555
  closeIconColorHoverWarning: staticBlack,
@@ -38208,30 +38559,36 @@
38208
38559
  titleTextColorWarning: staticBlack,
38209
38560
  descriptionTextColorWarning: staticBlack,
38210
38561
  actionTextColorWarning: staticBlack,
38562
+ iconWrapperColorWarning: "rgb(249 222 109 / 28%)",
38563
+ iconWrapperPulseColorWarning: "rgb(249 222 109 / 18%)",
38211
38564
  // Error
38212
- colorError: staticRed,
38213
- iconColorError: staticWhite,
38214
- textColorError: staticWhite,
38215
- closeIconColorError: staticWhite,
38216
- closeIconColorHoverError: staticWhite,
38217
- closeIconColorPressedError: staticWhite,
38565
+ colorError: staticWhite,
38566
+ iconColorError: staticRed,
38567
+ textColorError: staticBlack,
38568
+ closeIconColorError: staticBlack,
38569
+ closeIconColorHoverError: staticBlack,
38570
+ closeIconColorPressedError: staticBlack,
38218
38571
  closeColorHoverError: transparencyTertiary,
38219
38572
  closeColorPressedError: transparencyQuinary,
38220
- titleTextColorError: staticWhite,
38221
- descriptionTextColorError: staticWhite,
38222
- actionTextColorError: staticWhite,
38573
+ titleTextColorError: staticBlack,
38574
+ descriptionTextColorError: staticBlack,
38575
+ actionTextColorError: staticBlack,
38576
+ iconWrapperColorError: derived.brandQuinary100,
38577
+ iconWrapperPulseColorError: derived.brand550,
38223
38578
  // Primary
38224
- colorPrimary: brandPrimary500,
38225
- iconColorPrimary: staticWhite,
38226
- textColorPrimary: staticWhite,
38227
- closeIconColorPrimary: staticWhite,
38228
- closeIconColorHoverPrimary: staticWhite,
38229
- closeIconColorPressedPrimary: staticWhite,
38579
+ colorPrimary: staticWhite,
38580
+ iconColorPrimary: brandPrimary500,
38581
+ textColorPrimary: staticBlack,
38582
+ closeIconColorPrimary: staticBlack,
38583
+ closeIconColorHoverPrimary: staticBlack,
38584
+ closeIconColorPressedPrimary: staticBlack,
38230
38585
  closeColorHoverPrimary: transparencyTertiary,
38231
38586
  closeColorPressedPrimary: transparencyQuinary,
38232
- titleTextColorPrimary: staticWhite,
38233
- descriptionTextColorPrimary: staticWhite,
38234
- actionTextColorPrimary: staticWhite
38587
+ titleTextColorPrimary: staticBlack,
38588
+ descriptionTextColorPrimary: staticBlack,
38589
+ actionTextColorPrimary: staticBlack,
38590
+ iconWrapperColorPrimary: derived.brandPrimary100,
38591
+ iconWrapperPulseColorPrimary: derived.brandPrimary50
38235
38592
  };
38236
38593
  };
38237
38594
  const notificationLight = createTheme$1({
@@ -41869,9 +42226,9 @@
41869
42226
  fontBodyMedium,
41870
42227
  lineHeightBodyMedium,
41871
42228
  borderRadiusLarge,
41872
- elementsQuinary,
41873
42229
  containerSecondary,
41874
- brandPrimary300
42230
+ brandPrimary300,
42231
+ brandPrimary500
41875
42232
  } = vars;
41876
42233
  return {
41877
42234
  baseColor: containerPrimary,
@@ -41879,8 +42236,9 @@
41879
42236
  lineHeight: lineHeightBodyMedium,
41880
42237
  borderRadius: borderRadiusLarge,
41881
42238
  draggerColor: elementsTertiary,
41882
- draggerBorder: `2px dashed ${elementsQuaternary}`,
41883
- draggerBorderHover: `2px dashed ${elementsQuinary}`,
42239
+ draggerBorder: `1px dashed ${brandPrimary500}`,
42240
+ draggerBorderHover: `1px solid ${brandPrimary500}`,
42241
+ draggerShadowFocus: `0 0 0 4px ${brandPrimary500}1a`,
41884
42242
  itemColorHover: elementsTertiary,
41885
42243
  itemColorHoverError: changeColor(staticRed, {
41886
42244
  alpha: 0.05
@@ -41890,8 +42248,8 @@
41890
42248
  itemTextColorSuccess: staticGreen,
41891
42249
  itemIconColor: elementsPrimary,
41892
42250
  itemDisabledOpacity: opacityDisabled,
41893
- itemBorderImageCardError: `2px solid ${staticRed}`,
41894
- itemBorderImageCard: `2px solid ${elementsQuaternary}`,
42251
+ itemBorderImageCardError: `1px solid ${staticRed}`,
42252
+ itemBorderImageCard: `1px solid ${elementsQuaternary}`,
41895
42253
  draggerIconBgColor: elementsTertiary,
41896
42254
  draggerIconColor: elementsPrimary,
41897
42255
  draggerTitleColor: textPrimary,
@@ -44148,8 +44506,7 @@
44148
44506
  `), cM("dashed", [cE("border, state-border", {
44149
44507
  borderStyle: "dashed !important"
44150
44508
  })]), cM("disabled", {
44151
- cursor: "not-allowed",
44152
- opacity: "var(--u-opacity-disabled)"
44509
+ cursor: "not-allowed"
44153
44510
  })]), c$1("@keyframes button-wave-spread", {
44154
44511
  from: {
44155
44512
  boxShadow: "0 0 0.5px 0 var(--u-ripple-color)"
@@ -44374,7 +44731,7 @@
44374
44731
  "--u-text-color": mergedTextColor,
44375
44732
  "--u-text-color-hover": propTextColor ? createHoverColor(propTextColor) : self[createKey("textColorTextHover", mergedType)],
44376
44733
  "--u-text-color-pressed": propTextColor ? createPressedColor(propTextColor) : self[createKey("textColorTextPressed", mergedType)],
44377
- "--u-text-color-focus": propTextColor ? createHoverColor(propTextColor) : self[createKey("textColorTextHover", mergedType)],
44734
+ "--u-text-color-focus": propTextColor ? createHoverColor(propTextColor) : self[createKey("textColorTextFocus", mergedType)],
44378
44735
  "--u-text-color-disabled": propTextColor || self[createKey("textColorTextDisabled", mergedType)]
44379
44736
  };
44380
44737
  } else if (ghost || dashed) {
@@ -44390,7 +44747,7 @@
44390
44747
  "--u-text-color": mergedTextColor || self[createKey("textColorGhost", mergedType)],
44391
44748
  "--u-text-color-hover": mergedTextColor ? createHoverColor(mergedTextColor) : self[createKey("textColorGhostHover", mergedType)],
44392
44749
  "--u-text-color-pressed": mergedTextColor ? createPressedColor(mergedTextColor) : self[createKey("textColorGhostPressed", mergedType)],
44393
- "--u-text-color-focus": mergedTextColor ? createHoverColor(mergedTextColor) : self[createKey("textColorGhostHover", mergedType)],
44750
+ "--u-text-color-focus": mergedTextColor ? createHoverColor(mergedTextColor) : self[createKey("textColorGhostFocus", mergedType)],
44394
44751
  "--u-text-color-disabled": mergedTextColor || self[createKey("textColorGhostDisabled", mergedType)]
44395
44752
  };
44396
44753
  } else if (secondary) {
@@ -44409,7 +44766,7 @@
44409
44766
  }) : self.colorSecondaryPressed,
44410
44767
  "--u-color-focus": isColoredType ? changeColor(mergedTextColor, {
44411
44768
  alpha: Number(self.colorOpacitySecondaryHover)
44412
- }) : self.colorSecondaryHover,
44769
+ }) : self.colorSecondaryFocus,
44413
44770
  "--u-color-focus-visible": isColoredType ? changeColor(mergedTextColor, {
44414
44771
  alpha: +self.colorOpacitySecondaryFocus
44415
44772
  }) : self.waveColorSecondary,
@@ -44419,12 +44776,12 @@
44419
44776
  "--u-text-color-hover": mergedTextColor,
44420
44777
  "--u-text-color-pressed": mergedTextColor,
44421
44778
  "--u-text-color-focus": mergedTextColor,
44422
- "--u-text-color-disabled": mergedTextColor
44779
+ "--u-text-color-disabled": isColoredType ? mergedTextColor : self.textColorSecondaryDisabled
44423
44780
  };
44424
44781
  } else if (tertiary || quaternary) {
44425
44782
  const typeColor = typeIsDefault ? self.textColor : typeIsTertiary ? self.textColorTertiary : self[createKey("color", mergedType)];
44426
44783
  const mergedColor = color || typeColor;
44427
- colorProps["--u-ripple-color"] = "#0000";
44784
+ colorProps["--u-text-color"] = mergedColor;
44428
44785
  colorProps["--u-text-color"] = mergedColor;
44429
44786
  colorProps["--u-text-color-hover"] = mergedColor;
44430
44787
  colorProps["--u-text-color-pressed"] = mergedColor;
@@ -44434,7 +44791,7 @@
44434
44791
  colorProps["--u-color"] = self.colorTertiary;
44435
44792
  colorProps["--u-color-hover"] = self.colorTertiaryHover;
44436
44793
  colorProps["--u-color-pressed"] = self.colorTertiaryPressed;
44437
- colorProps["--u-color-focus"] = self.colorTertiaryPressed;
44794
+ colorProps["--u-color-focus"] = self.colorTertiaryFocus;
44438
44795
  colorProps["--u-color-disabled"] = self.colorTertiaryDisalbed;
44439
44796
  colorProps["--u-ripple-color"] = self.colorTertiary;
44440
44797
  colorProps["--u-text-color"] = self.textColorTextTertiary;
@@ -44443,12 +44800,15 @@
44443
44800
  colorProps["--u-text-color-focus"] = self.textColorTextTertiary;
44444
44801
  colorProps["--u-text-color-disabled"] = self.textColorTextTertiary;
44445
44802
  colorProps["--u-color-focus-visible"] = self.waveColorTertiary;
44803
+ colorProps["--u-ripple-color"] = self.rippleColorTertiary;
44446
44804
  } else {
44447
44805
  colorProps["--u-color"] = self.colorQuaternary;
44448
44806
  colorProps["--u-color-hover"] = self.colorQuaternaryHover;
44449
44807
  colorProps["--u-color-pressed"] = self.colorQuaternaryPressed;
44450
- colorProps["--u-color-focus"] = self.colorQuaternaryHover;
44808
+ colorProps["--u-color-focus"] = self.colorQuaternaryFocus;
44451
44809
  colorProps["--u-color-disabled"] = self.colorQuaternary;
44810
+ colorProps["--u-ripple-color"] = self.rippleColorQuaternary;
44811
+ colorProps["--u-color-focus-visible"] = self.waveColorQuaternary;
44452
44812
  }
44453
44813
  } else {
44454
44814
  colorProps = {
@@ -59743,9 +60103,7 @@
59743
60103
 
59744
60104
  var style$12 = cB("chat", `
59745
60105
  height: 100%;
59746
- max-height: 100%;
59747
- min-height: 0;
59748
- display: flex;
60106
+ background-color: transparent;
59749
60107
  box-sizing: border-box;
59750
60108
  .u-list-item__text {
59751
60109
  grid-template-columns: 1fr !important;
@@ -60495,14 +60853,16 @@
60495
60853
  }
60496
60854
  );
60497
60855
  }
60498
- return /* @__PURE__ */ vue.h(
60499
- UEmpty,
60500
- {
60501
- ...this.emptyProps,
60502
- theme: this.mergedTheme.peers.Empty,
60503
- themeOverrides: this.mergedTheme.peerOverrides.Empty
60504
- }
60505
- );
60856
+ return /* @__PURE__ */ vue.h(UFlex, { justify: "center", align: "center", vertical: true }, {
60857
+ default: () => /* @__PURE__ */ vue.h(
60858
+ UEmpty,
60859
+ {
60860
+ ...this.emptyProps,
60861
+ theme: this.mergedTheme.peers.Empty,
60862
+ themeOverrides: this.mergedTheme.peerOverrides.Empty
60863
+ }
60864
+ )
60865
+ });
60506
60866
  })();
60507
60867
  return /* @__PURE__ */ vue.h(
60508
60868
  "div",
@@ -61181,8 +61541,12 @@
61181
61541
  handleDownloadClick,
61182
61542
  capitalizeFirstLetter
61183
61543
  } = opts;
61544
+ const getExt = (name) => {
61545
+ const i = name.lastIndexOf(".");
61546
+ return i === -1 || i === name.length - 1 ? "" : name.slice(i + 1);
61547
+ };
61184
61548
  const isImageType = ["image", "image-card"].includes(listType);
61185
- const fileExt = file.name.split(".").at(-1) || "";
61549
+ const fileExt = getExt(file.name);
61186
61550
  const capitalizedExt = capitalizeFirstLetter(fileExt);
61187
61551
  const icon = vue.h(
61188
61552
  "div",
@@ -62555,6 +62919,7 @@
62555
62919
  display: block;
62556
62920
  `)]), cM("drag-over", [cB("upload-dragger", `
62557
62921
  border: var(--u-dragger-border-hover);
62922
+ box-shadow: var(--u-dragger-shadow-focus);
62558
62923
  `)]), cE("label", {
62559
62924
  marginBottom: "12px",
62560
62925
  marginTop: 0,
@@ -63534,6 +63899,7 @@
63534
63899
  draggerColor,
63535
63900
  draggerBorder,
63536
63901
  draggerBorderHover,
63902
+ draggerShadowFocus,
63537
63903
  itemColorHover,
63538
63904
  itemColorHoverError,
63539
63905
  itemTextColorError,
@@ -63563,6 +63929,7 @@
63563
63929
  "--u-border-radius": borderRadius,
63564
63930
  "--u-dragger-border": draggerBorder,
63565
63931
  "--u-dragger-border-hover": draggerBorderHover,
63932
+ "--u-dragger-shadow-focus": draggerShadowFocus,
63566
63933
  "--u-dragger-color": draggerColor,
63567
63934
  "--u-font-size": fontSize,
63568
63935
  "--u-item-color-hover": itemColorHover,
@@ -65555,9 +65922,9 @@
65555
65922
  type: Number,
65556
65923
  default: 10
65557
65924
  },
65558
- maxHeight: {
65925
+ height: {
65559
65926
  type: [String, Number],
65560
- default: void 0
65927
+ default: 800
65561
65928
  },
65562
65929
  onChatSelect: {
65563
65930
  type: Function,
@@ -65886,15 +66253,15 @@
65886
66253
  render() {
65887
66254
  const { $slots } = this;
65888
66255
  this.onRender?.();
65889
- const maxHeightStyle = this.maxHeight ? {
65890
- maxHeight: typeof this.maxHeight === "number" ? `${this.maxHeight}px` : this.maxHeight
66256
+ const heightStyle = this.height ? {
66257
+ height: typeof this.height === "number" ? `${this.height}px` : this.height
65891
66258
  } : {};
65892
66259
  return /* @__PURE__ */ vue.h(
65893
66260
  "div",
65894
66261
  {
65895
66262
  class: [`${this.mergedClsPrefix}-chat`, this.themeClass],
65896
66263
  style: {
65897
- ...maxHeightStyle,
66264
+ ...heightStyle,
65898
66265
  ...this.cssVars
65899
66266
  }
65900
66267
  },
@@ -65904,7 +66271,7 @@
65904
66271
  sidebarHeaderMain: $slots.sidebarHeaderMain,
65905
66272
  sidebarHeaderActions: $slots.sidebarHeaderActions
65906
66273
  })
65907
- ]), resolveSlot($slots.default, () => [
66274
+ ]), this.selectedChatId && resolveSlot($slots.default, () => [
65908
66275
  /* @__PURE__ */ vue.h(ChatMainArea, null, {
65909
66276
  headerActions: $slots.headerActions
65910
66277
  })
@@ -112440,6 +112807,78 @@
112440
112807
  }
112441
112808
  });
112442
112809
 
112810
+ const infiniteScrollProps = {
112811
+ distance: {
112812
+ type: Number,
112813
+ default: 0
112814
+ },
112815
+ onLoad: Function,
112816
+ scrollbarProps: Object
112817
+ };
112818
+ var InfiniteScroll = vue.defineComponent({
112819
+ name: "InfiniteScroll",
112820
+ props: infiniteScrollProps,
112821
+ setup(props) {
112822
+ const scrollbarInstRef = vue.ref(null);
112823
+ let loading = false;
112824
+ const handleCheckBottom = async () => {
112825
+ const { value: scrollbarInst } = scrollbarInstRef;
112826
+ if (scrollbarInst) {
112827
+ const { containerRef } = scrollbarInst;
112828
+ const scrollHeight = containerRef?.scrollHeight;
112829
+ const clientHeight = containerRef?.clientHeight;
112830
+ const scrollTop = containerRef?.scrollTop;
112831
+ if (containerRef && scrollHeight !== void 0 && clientHeight !== void 0 && scrollTop !== void 0) {
112832
+ if (scrollTop + clientHeight >= scrollHeight - props.distance) {
112833
+ loading = true;
112834
+ try {
112835
+ await props.onLoad?.();
112836
+ } catch {
112837
+ }
112838
+ loading = false;
112839
+ }
112840
+ }
112841
+ }
112842
+ };
112843
+ const handleScroll = () => {
112844
+ if (loading) {
112845
+ return;
112846
+ }
112847
+ void handleCheckBottom();
112848
+ };
112849
+ const handleWheel = (e) => {
112850
+ if (e.deltaY <= 0) {
112851
+ return;
112852
+ }
112853
+ if (loading) {
112854
+ return;
112855
+ }
112856
+ void handleCheckBottom();
112857
+ };
112858
+ return {
112859
+ scrollbarInstRef,
112860
+ handleScroll,
112861
+ handleWheel
112862
+ };
112863
+ },
112864
+ render() {
112865
+ return /* @__PURE__ */ vue.h(
112866
+ XScrollbar,
112867
+ {
112868
+ ...this.scrollbarProps,
112869
+ ref: "scrollbarInstRef",
112870
+ onWheel: this.handleWheel,
112871
+ onScroll: this.handleScroll
112872
+ },
112873
+ {
112874
+ default: () => {
112875
+ return resolveSlot(this.$slots.default, () => []);
112876
+ }
112877
+ }
112878
+ );
112879
+ }
112880
+ });
112881
+
112443
112882
  function parse(value) {
112444
112883
  if (value === void 0 || value === null || typeof value === "string" && value.trim() === "") {
112445
112884
  return null;
@@ -118032,7 +118471,9 @@
118032
118471
  [createKey("closeIconColorPressed", type)]: closeIconColorPressed,
118033
118472
  [createKey("titleTextColor", type)]: titleTextColor,
118034
118473
  [createKey("descriptionTextColor", type)]: descriptionTextColor,
118035
- [createKey("actionTextColor", type)]: actionTextColor
118474
+ [createKey("actionTextColor", type)]: actionTextColor,
118475
+ [createKey("iconWrapperColor", type)]: iconWrapperColor,
118476
+ [createKey("iconWrapperPulseColor", type)]: iconWrapperPulseColor
118036
118477
  },
118037
118478
  common: { cubicBezierEaseOut, cubicBezierEaseIn, cubicBezierEaseInOut }
118038
118479
  } = mergedThemeRef.value;
@@ -118072,7 +118513,12 @@
118072
118513
  "--u-padding-bottom": bottom,
118073
118514
  "--u-meta-font-size": metaFontSize,
118074
118515
  "--u-description-font-size": descriptionFontSize,
118075
- "--u-avatar-size": avatarSize
118516
+ "--u-avatar-size": avatarSize,
118517
+ "--u-icon-wrapper-color": iconWrapperColor,
118518
+ "--u-icon-wrapper-pulse-color": iconWrapperPulseColor,
118519
+ iconColor,
118520
+ iconWrapperColor,
118521
+ iconWrapperPulseColor
118076
118522
  };
118077
118523
  });
118078
118524
  const themeClassHandle = inlineThemeDisabled ? useThemeClass(
@@ -118096,7 +118542,8 @@
118096
118542
  };
118097
118543
  },
118098
118544
  render() {
118099
- const { mergedClsPrefix } = this;
118545
+ const { mergedClsPrefix, cssVars } = this;
118546
+ const { iconColor, iconWrapperColor, iconWrapperPulseColor } = cssVars;
118100
118547
  this.onRender?.();
118101
118548
  return /* @__PURE__ */ vue.h(
118102
118549
  "div",
@@ -118120,7 +118567,18 @@
118120
118567
  ],
118121
118568
  style: this.cssVars
118122
118569
  },
118123
- this.showAvatar ? /* @__PURE__ */ vue.h("div", { class: `${mergedClsPrefix}-notification__avatar` }, this.avatar ? render$1(this.avatar) : /* @__PURE__ */ vue.h(UBaseIcon, { clsPrefix: mergedClsPrefix }, () => /* @__PURE__ */ vue.h(InfoOutlineIcon, null))) : null,
118570
+ this.showAvatar ? this.avatar ? /* @__PURE__ */ vue.h("div", { class: `${mergedClsPrefix}-notification__avatar` }, render$1(this.avatar)) : /* @__PURE__ */ vue.h(
118571
+ UIconWrapper,
118572
+ {
118573
+ pulseSize: 52,
118574
+ size: 36,
118575
+ color: iconWrapperColor,
118576
+ pulseColor: iconWrapperPulseColor,
118577
+ variant: "pulse",
118578
+ borderRadius: 60
118579
+ },
118580
+ /* @__PURE__ */ vue.h(UIcon, { color: iconColor, size: 24 }, () => this.type === "success" ? /* @__PURE__ */ vue.h(SuccessIcon, null) : /* @__PURE__ */ vue.h(InfoIcon, null))
118581
+ ) : null,
118124
118582
  this.closable ? /* @__PURE__ */ vue.h(
118125
118583
  UBaseClose,
118126
118584
  {
@@ -118402,6 +118860,8 @@
118402
118860
  display: flex;
118403
118861
  overflow: hidden;
118404
118862
  flex-shrink: 0;
118863
+ padding-top: var(--u-padding-top);
118864
+ padding-bottom: var(--u-padding-bottom);
118405
118865
  padding-left: var(--u-padding-left);
118406
118866
  padding-right: var(--u-padding-right);
118407
118867
  width: var(--u-width);
@@ -118411,12 +118871,14 @@
118411
118871
  border-radius: var(--u-border-radius);
118412
118872
  box-sizing: border-box;
118413
118873
  opacity: 1;
118414
- `, [cE("avatar", [cB("icon", {
118874
+ box-shadow: 0 0 20px 0 rgba(68, 83, 113, 0.10), 0 12px 20px 0 rgba(68, 83, 113, 0.05);
118875
+ `, [cE("avatar", [cB("icon-wrapper", `
118876
+ `), cB("icon", {
118415
118877
  color: "var(--u-icon-color)"
118416
118878
  }), cB("base-icon", {
118417
118879
  color: "var(--u-icon-color)"
118418
118880
  })]), cM("show-avatar", [cB("notification-main", `
118419
- margin-left: calc(var(--u-avatar-size) + 16px);
118881
+ margin-left: 16px;
118420
118882
  width: calc(100% - var(--u-avatar-size) + 16px);
118421
118883
  `)]), cM("closable", [cB("notification-main", [c$1("> *:first-child", `
118422
118884
  padding-right: var(--u-close-size);
@@ -118429,9 +118891,7 @@
118429
118891
  background-color .3s var(--u-bezier),
118430
118892
  color .3s var(--u-bezier);
118431
118893
  `)]), cE("avatar", `
118432
- position: absolute;
118433
- top: var(--u-padding-top);
118434
- left: var(--u-padding-left);
118894
+ position: relative;
118435
118895
  width: var(--u-avatar-size);
118436
118896
  height: var(--u-avatar-size);
118437
118897
  font-size: var(--u-avatar-size);
@@ -118439,18 +118899,18 @@
118439
118899
  align-items: center;
118440
118900
  justify-content: center;
118441
118901
  `, [cB("icon", "transition: color .3s var(--u-bezier);")]), cB("notification-main", `
118442
- padding-top: var(--u-padding-top);
118443
- padding-bottom: var(--u-padding-bottom);
118902
+ padding-top: 2px;
118444
118903
  box-sizing: border-box;
118445
118904
  display: flex;
118446
118905
  flex-direction: column;
118447
118906
  margin-left: 8px;
118448
118907
  width: calc(100% - 8px);
118908
+ justify-content: center;
118449
118909
  `, [cB("notification-main-footer", `
118450
118910
  display: flex;
118451
118911
  align-items: center;
118452
118912
  justify-content: space-between;
118453
- margin-top: 12px;
118913
+ margin-top: 8px;
118454
118914
  `, [cE("meta", `
118455
118915
  font-size: var(--u-meta-font-size);
118456
118916
  transition: color .3s var(--u-bezier-ease-out);
@@ -118459,6 +118919,8 @@
118459
118919
  cursor: pointer;
118460
118920
  transition: color .3s var(--u-bezier-ease-out);
118461
118921
  color: var(--u-action-text-color);
118922
+ width: 100%;
118923
+ margin-top: 16px;
118462
118924
  `)]), cE("header", `
118463
118925
  font-weight: var(--u-title-font-weight);
118464
118926
  font-size: var(--u-title-font-size);
@@ -128808,6 +129270,134 @@
128808
129270
  }
128809
129271
  });
128810
129272
 
129273
+ const virtualListProps = {
129274
+ scrollbarProps: Object,
129275
+ items: {
129276
+ type: Array,
129277
+ default: () => []
129278
+ },
129279
+ itemSize: {
129280
+ type: Number,
129281
+ required: true
129282
+ },
129283
+ itemResizable: Boolean,
129284
+ itemsStyle: [String, Object],
129285
+ visibleItemsTag: {
129286
+ type: [String, Object],
129287
+ default: "div"
129288
+ },
129289
+ visibleItemsProps: Object,
129290
+ ignoreItemResize: Boolean,
129291
+ onScroll: Function,
129292
+ onWheel: Function,
129293
+ onResize: Function,
129294
+ defaultScrollKey: [Number, String],
129295
+ defaultScrollIndex: Number,
129296
+ keyField: {
129297
+ type: String,
129298
+ default: "key"
129299
+ },
129300
+ paddingTop: {
129301
+ type: [Number, String],
129302
+ default: 0
129303
+ },
129304
+ paddingBottom: {
129305
+ type: [Number, String],
129306
+ default: 0
129307
+ }
129308
+ };
129309
+ var VirtualList = vue.defineComponent({
129310
+ name: "VirtualList",
129311
+ props: virtualListProps,
129312
+ setup(props) {
129313
+ const scrollbarInstRef = vue.ref(null);
129314
+ const virtualListInstRef = vue.ref(null);
129315
+ function syncScrollbar() {
129316
+ const { value: scrollbarInst } = scrollbarInstRef;
129317
+ if (scrollbarInst) {
129318
+ scrollbarInst.sync();
129319
+ }
129320
+ }
129321
+ function handleScroll(e) {
129322
+ syncScrollbar();
129323
+ props.onScroll?.(e);
129324
+ }
129325
+ function handleResize(e) {
129326
+ syncScrollbar();
129327
+ props.onResize?.(e);
129328
+ }
129329
+ function handleWheel(e) {
129330
+ props.onWheel?.(e);
129331
+ }
129332
+ function scrollTo(options, y) {
129333
+ if (typeof options === "number") {
129334
+ virtualListInstRef.value?.scrollTo(options, y ?? 0);
129335
+ } else {
129336
+ virtualListInstRef.value?.scrollTo(options);
129337
+ }
129338
+ }
129339
+ function getScrollContainer() {
129340
+ return virtualListInstRef.value?.listElRef;
129341
+ }
129342
+ function getScrollContent() {
129343
+ return virtualListInstRef.value?.itemsElRef;
129344
+ }
129345
+ return {
129346
+ scrollTo,
129347
+ scrollbarInstRef,
129348
+ virtualListInstRef,
129349
+ getScrollContainer,
129350
+ getScrollContent,
129351
+ handleScroll,
129352
+ handleResize,
129353
+ handleWheel
129354
+ };
129355
+ },
129356
+ render() {
129357
+ return /* @__PURE__ */ vue.h(
129358
+ XScrollbar,
129359
+ {
129360
+ ...this.scrollbarProps,
129361
+ ref: "scrollbarInstRef",
129362
+ container: this.getScrollContainer,
129363
+ content: this.getScrollContent
129364
+ },
129365
+ {
129366
+ default: () => {
129367
+ return /* @__PURE__ */ vue.h(
129368
+ VVirtualList,
129369
+ {
129370
+ ref: "virtualListInstRef",
129371
+ showScrollbar: false,
129372
+ items: this.items,
129373
+ itemSize: this.itemSize,
129374
+ itemResizable: this.itemResizable,
129375
+ itemsStyle: this.itemsStyle,
129376
+ visibleItemsTag: this.visibleItemsTag,
129377
+ visibleItemsProps: this.visibleItemsProps,
129378
+ ignoreItemResize: this.ignoreItemResize,
129379
+ keyField: this.keyField,
129380
+ defaultScrollKey: this.defaultScrollKey,
129381
+ defaultScrollIndex: this.defaultScrollIndex,
129382
+ paddingTop: this.paddingTop,
129383
+ paddingBottom: this.paddingBottom,
129384
+ onScroll: this.handleScroll,
129385
+ onResize: this.handleResize,
129386
+ onWheel: this.handleWheel
129387
+ },
129388
+ {
129389
+ default: ({
129390
+ item,
129391
+ index
129392
+ }) => this.$slots.default?.({ item, index })
129393
+ }
129394
+ );
129395
+ }
129396
+ }
129397
+ );
129398
+ }
129399
+ });
129400
+
128811
129401
  var style$1 = c$1([cB("watermark-container", `
128812
129402
  position: relative;
128813
129403
  `, [cNotM("selectable", `
@@ -129481,6 +130071,7 @@
129481
130071
  MessageStatus: MessageStatus,
129482
130072
  NA: a,
129483
130073
  NP: p,
130074
+ NVirtualList: VirtualList,
129484
130075
  UActionCard: ActionCard,
129485
130076
  UAffix: UAffix,
129486
130077
  UAlert: Alert,
@@ -129555,6 +130146,7 @@
129555
130146
  UIconWrapper: UIconWrapper,
129556
130147
  UImage: Image$1,
129557
130148
  UImageGroup: UImageGroup,
130149
+ UInfiniteScroll: InfiniteScroll,
129558
130150
  UInput: UInput,
129559
130151
  UInputGroup: UInputGroup,
129560
130152
  UInputGroupLabel: InputGroupLabel,
@@ -129698,6 +130290,7 @@
129698
130290
  iconWrapperProps: iconWrapperProps,
129699
130291
  imageGroupProps: imageGroupProps,
129700
130292
  imageProps: imageProps,
130293
+ infiniteScrollProps: infiniteScrollProps,
129701
130294
  inputGroupLabelProps: inputGroupLabelProps,
129702
130295
  inputGroupProps: inputGroupProps,
129703
130296
  inputNumberProps: inputNumberProps,
@@ -129766,10 +130359,11 @@
129766
130359
  useLoadingBar: useLoadingBar,
129767
130360
  useMessage: useMessage,
129768
130361
  useNotification: useNotification,
130362
+ virtualListProps: virtualListProps,
129769
130363
  watermarkProps: watermarkProps
129770
130364
  });
129771
130365
 
129772
- var version = "1.8.1";
130366
+ var version = "1.9.0";
129773
130367
 
129774
130368
  function create({
129775
130369
  componentPrefix = "U",
@@ -130579,6 +131173,7 @@
130579
131173
  exports.MessageStatus = MessageStatus;
130580
131174
  exports.NA = a;
130581
131175
  exports.NP = p;
131176
+ exports.NVirtualList = VirtualList;
130582
131177
  exports.UActionCard = ActionCard;
130583
131178
  exports.UAffix = UAffix;
130584
131179
  exports.UAlert = Alert;
@@ -130653,6 +131248,7 @@
130653
131248
  exports.UIconWrapper = UIconWrapper;
130654
131249
  exports.UImage = Image$1;
130655
131250
  exports.UImageGroup = UImageGroup;
131251
+ exports.UInfiniteScroll = InfiniteScroll;
130656
131252
  exports.UInput = UInput;
130657
131253
  exports.UInputGroup = UInputGroup;
130658
131254
  exports.UInputGroupLabel = InputGroupLabel;
@@ -130873,6 +131469,7 @@
130873
131469
  exports.idID = idID;
130874
131470
  exports.imageGroupProps = imageGroupProps;
130875
131471
  exports.imageProps = imageProps;
131472
+ exports.infiniteScrollProps = infiniteScrollProps;
130876
131473
  exports.inputDark = inputDark;
130877
131474
  exports.inputGroupLabelProps = inputGroupLabelProps;
130878
131475
  exports.inputGroupProps = inputGroupProps;
@@ -131033,6 +131630,7 @@
131033
131630
  exports.useThemeVars = useThemeVars;
131034
131631
  exports.version = version;
131035
131632
  exports.viVN = viVN;
131633
+ exports.virtualListProps = virtualListProps;
131036
131634
  exports.watermarkDark = watermarkDark;
131037
131635
  exports.watermarkProps = watermarkProps;
131038
131636
  exports.zhCN = zhCN;