@uzum-tech/ui 1.8.2 → 1.9.1

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 (311) hide show
  1. package/dist/index.js +1244 -379
  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 +120 -67
  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/cascader/src/Cascader.d.ts +168 -0
  24. package/es/cascader/src/CascaderMenu.d.ts +24 -0
  25. package/es/cascader/src/CascaderOption.d.ts +24 -0
  26. package/es/cascader/src/CascaderSelectMenu.d.ts +24 -0
  27. package/es/cascader/src/CascaderSubmenu.d.ts +25 -1
  28. package/es/cascader/styles/light.d.ts +16 -0
  29. package/es/chat/index.d.ts +1 -1
  30. package/es/chat/src/Chat.d.ts +321 -11
  31. package/es/chat/src/Chat.js +73 -22
  32. package/es/chat/src/ChatListItems.d.ts +104 -0
  33. package/es/chat/src/ChatMessages.d.ts +104 -0
  34. package/es/chat/src/ChatParts/ChatAttachment.js +14 -12
  35. package/es/chat/src/ChatParts/MainArea.d.ts +1 -0
  36. package/es/chat/src/ChatParts/MainArea.js +95 -57
  37. package/es/chat/src/ChatParts/Sidebar.d.ts +920 -0
  38. package/es/chat/src/ChatParts/Sidebar.js +63 -12
  39. package/es/chat/src/interface.d.ts +24 -3
  40. package/es/chat/src/styles/index.cssr.js +13 -2
  41. package/es/chat/styles/dark.d.ts +8 -0
  42. package/es/chat/styles/light.d.ts +8 -0
  43. package/es/components.d.ts +2 -0
  44. package/es/components.js +2 -0
  45. package/es/data-table/src/DataTable.d.ts +184 -0
  46. package/es/data-table/src/HeaderButton/FilterButton.d.ts +40 -0
  47. package/es/data-table/src/HeaderButton/FilterMenu.d.ts +40 -0
  48. package/es/data-table/src/TableParts/Body.d.ts +41 -1
  49. package/es/data-table/src/TableParts/Header.d.ts +40 -0
  50. package/es/data-table/src/interface.d.ts +72 -0
  51. package/es/data-table/styles/light.d.ts +24 -0
  52. package/es/date-picker/src/DatePicker.d.ts +1469 -36
  53. package/es/date-picker/src/DatePicker.js +54 -29
  54. package/es/date-picker/src/interface.d.ts +1 -0
  55. package/es/date-picker/src/panel/date.d.ts +166 -1
  56. package/es/date-picker/src/panel/daterange.d.ts +167 -2
  57. package/es/date-picker/src/panel/datetime.d.ts +166 -1
  58. package/es/date-picker/src/panel/datetimerange.d.ts +167 -2
  59. package/es/date-picker/src/panel/panelMonth.d.ts +332 -2
  60. package/es/date-picker/src/panel/panelMonthContent.d.ts +166 -1
  61. package/es/date-picker/src/panel/panelYear.d.ts +332 -2
  62. package/es/date-picker/src/panel/panelYearContent.d.ts +166 -1
  63. package/es/date-picker/src/panel/use-calendar.d.ts +165 -0
  64. package/es/date-picker/src/panel/use-dual-calendar.d.ts +165 -0
  65. package/es/date-picker/src/panel/use-panel-common.d.ts +165 -0
  66. package/es/date-picker/styles/dark.js +3 -1
  67. package/es/date-picker/styles/light.d.ts +139 -0
  68. package/es/date-picker/styles/light.js +3 -1
  69. package/es/descriptions/src/Descriptions.d.ts +30 -0
  70. package/es/descriptions/src/Descriptions.js +18 -10
  71. package/es/dialog/src/DialogProvider.d.ts +2 -2
  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/infinite-scroll/index.d.ts +2 -0
  78. package/es/infinite-scroll/index.js +1 -0
  79. package/es/infinite-scroll/src/InfiniteScroll.d.ts +45 -0
  80. package/es/infinite-scroll/src/InfiniteScroll.js +78 -0
  81. package/es/layout/src/Layout.d.ts +112 -0
  82. package/es/layout/src/LayoutContent.d.ts +56 -0
  83. package/es/layout/src/LayoutFooter.d.ts +72 -0
  84. package/es/layout/src/LayoutHeader.d.ts +48 -0
  85. package/es/layout/src/LayoutSider.d.ts +56 -0
  86. package/es/layout/styles/light.d.ts +8 -0
  87. package/es/legacy-transfer/src/Transfer.d.ts +80 -0
  88. package/es/legacy-transfer/src/TransferFilter.d.ts +8 -0
  89. package/es/legacy-transfer/src/TransferList.d.ts +9 -1
  90. package/es/legacy-transfer/src/TransferListItem.d.ts +8 -0
  91. package/es/legacy-transfer/styles/light.d.ts +8 -0
  92. package/es/locales/common/arDZ.js +2 -0
  93. package/es/locales/common/deDE.js +2 -0
  94. package/es/locales/common/enGB.js +2 -0
  95. package/es/locales/common/enUS.d.ts +2 -0
  96. package/es/locales/common/enUS.js +2 -0
  97. package/es/locales/common/eo.js +2 -0
  98. package/es/locales/common/esAR.js +2 -0
  99. package/es/locales/common/faIR.js +2 -0
  100. package/es/locales/common/frFR.js +2 -0
  101. package/es/locales/common/idID.js +2 -0
  102. package/es/locales/common/itIT.js +2 -0
  103. package/es/locales/common/jaJP.js +2 -0
  104. package/es/locales/common/koKR.js +2 -0
  105. package/es/locales/common/nbNO.js +2 -0
  106. package/es/locales/common/nlNL.js +2 -0
  107. package/es/locales/common/plPL.js +2 -0
  108. package/es/locales/common/ptBR.js +2 -0
  109. package/es/locales/common/ruRU.js +2 -0
  110. package/es/locales/common/skSK.js +2 -0
  111. package/es/locales/common/svSE.js +2 -0
  112. package/es/locales/common/thTH.js +2 -0
  113. package/es/locales/common/trTR.js +2 -0
  114. package/es/locales/common/ukUA.js +2 -0
  115. package/es/locales/common/viVN.js +2 -0
  116. package/es/locales/common/zhCN.js +2 -0
  117. package/es/locales/common/zhTW.js +2 -0
  118. package/es/log/src/Log.d.ts +80 -0
  119. package/es/log/styles/light.d.ts +8 -0
  120. package/es/mention/src/Mention.d.ts +88 -0
  121. package/es/mention/styles/light.d.ts +8 -0
  122. package/es/menu/src/Menu.d.ts +1 -1
  123. package/es/modal/src/BodyWrapper.d.ts +9 -1
  124. package/es/modal/src/Modal.d.ts +73 -1
  125. package/es/modal/styles/light.d.ts +8 -0
  126. package/es/notification/src/NotificationContainer.d.ts +8 -0
  127. package/es/notification/src/NotificationProvider.d.ts +72 -0
  128. package/es/notification/styles/light.d.ts +8 -0
  129. package/es/pagination/src/Pagination.d.ts +176 -0
  130. package/es/pagination/styles/light.d.ts +16 -0
  131. package/es/popselect/src/Popselect.d.ts +88 -0
  132. package/es/popselect/src/PopselectPanel.d.ts +16 -0
  133. package/es/popselect/styles/light.d.ts +8 -0
  134. package/es/scrollbar/src/Scrollbar.d.ts +72 -0
  135. package/es/select/src/Select.d.ts +88 -0
  136. package/es/select/styles/light.d.ts +8 -0
  137. package/es/time-picker/src/Panel.d.ts +8 -0
  138. package/es/time-picker/src/TimePicker.d.ts +80 -0
  139. package/es/time-picker/styles/light.d.ts +8 -0
  140. package/es/transfer/src/Transfer.d.ts +80 -0
  141. package/es/transfer/src/TransferFilter.d.ts +8 -0
  142. package/es/transfer/src/TransferList.d.ts +9 -1
  143. package/es/transfer/src/TransferListItem.d.ts +8 -0
  144. package/es/transfer/styles/light.d.ts +8 -0
  145. package/es/tree/src/Tree.d.ts +82 -2
  146. package/es/tree/src/TreeNodeCheckbox.d.ts +8 -0
  147. package/es/tree/styles/light.d.ts +8 -0
  148. package/es/tree-select/src/TreeSelect.d.ts +89 -1
  149. package/es/tree-select/styles/light.d.ts +8 -0
  150. package/es/version.d.ts +1 -1
  151. package/es/version.js +1 -1
  152. package/es/virtual-list/index.d.ts +2 -0
  153. package/es/virtual-list/index.js +1 -0
  154. package/es/virtual-list/src/VirtualList.d.ts +146 -0
  155. package/es/virtual-list/src/VirtualList.js +103 -0
  156. package/lib/_internal/scrollbar/src/Scrollbar.d.ts +119 -17
  157. package/lib/_internal/scrollbar/src/Scrollbar.js +117 -64
  158. package/lib/_internal/scrollbar/src/styles/index.cssr.js +32 -15
  159. package/lib/_internal/scrollbar/styles/common.d.ts +7 -0
  160. package/lib/_internal/scrollbar/styles/common.js +10 -0
  161. package/lib/_internal/scrollbar/styles/light.d.ts +8 -0
  162. package/lib/_internal/scrollbar/styles/light.js +3 -5
  163. package/lib/_internal/select-menu/src/SelectMenu.d.ts +57 -1
  164. package/lib/_internal/select-menu/styles/light.d.ts +8 -0
  165. package/lib/_internal/selection/src/Selection.d.ts +3 -1
  166. package/lib/_internal/selection/src/Selection.js +3 -1
  167. package/lib/_utils/css/index.d.ts +1 -0
  168. package/lib/_utils/css/index.js +3 -1
  169. package/lib/_utils/css/rtl-inset.d.ts +1 -0
  170. package/lib/_utils/css/rtl-inset.js +8 -0
  171. package/lib/_utils/index.d.ts +1 -1
  172. package/lib/_utils/index.js +2 -1
  173. package/lib/auto-complete/src/AutoComplete.d.ts +88 -0
  174. package/lib/auto-complete/styles/light.d.ts +8 -0
  175. package/lib/back-top/src/BackTop.d.ts +1 -1
  176. package/lib/cascader/src/Cascader.d.ts +168 -0
  177. package/lib/cascader/src/CascaderMenu.d.ts +24 -0
  178. package/lib/cascader/src/CascaderOption.d.ts +24 -0
  179. package/lib/cascader/src/CascaderSelectMenu.d.ts +24 -0
  180. package/lib/cascader/src/CascaderSubmenu.d.ts +25 -1
  181. package/lib/cascader/styles/light.d.ts +16 -0
  182. package/lib/chat/index.d.ts +1 -1
  183. package/lib/chat/src/Chat.d.ts +321 -11
  184. package/lib/chat/src/Chat.js +73 -22
  185. package/lib/chat/src/ChatListItems.d.ts +104 -0
  186. package/lib/chat/src/ChatMessages.d.ts +104 -0
  187. package/lib/chat/src/ChatParts/ChatAttachment.js +14 -12
  188. package/lib/chat/src/ChatParts/MainArea.d.ts +1 -0
  189. package/lib/chat/src/ChatParts/MainArea.js +94 -56
  190. package/lib/chat/src/ChatParts/Sidebar.d.ts +920 -0
  191. package/lib/chat/src/ChatParts/Sidebar.js +62 -11
  192. package/lib/chat/src/interface.d.ts +24 -3
  193. package/lib/chat/src/styles/index.cssr.js +13 -2
  194. package/lib/chat/styles/dark.d.ts +8 -0
  195. package/lib/chat/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 +184 -0
  199. package/lib/data-table/src/HeaderButton/FilterButton.d.ts +40 -0
  200. package/lib/data-table/src/HeaderButton/FilterMenu.d.ts +40 -0
  201. package/lib/data-table/src/TableParts/Body.d.ts +41 -1
  202. package/lib/data-table/src/TableParts/Header.d.ts +40 -0
  203. package/lib/data-table/src/interface.d.ts +72 -0
  204. package/lib/data-table/styles/light.d.ts +24 -0
  205. package/lib/date-picker/src/DatePicker.d.ts +1469 -36
  206. package/lib/date-picker/src/DatePicker.js +53 -28
  207. package/lib/date-picker/src/interface.d.ts +1 -0
  208. package/lib/date-picker/src/panel/date.d.ts +166 -1
  209. package/lib/date-picker/src/panel/daterange.d.ts +167 -2
  210. package/lib/date-picker/src/panel/datetime.d.ts +166 -1
  211. package/lib/date-picker/src/panel/datetimerange.d.ts +167 -2
  212. package/lib/date-picker/src/panel/panelMonth.d.ts +332 -2
  213. package/lib/date-picker/src/panel/panelMonthContent.d.ts +166 -1
  214. package/lib/date-picker/src/panel/panelYear.d.ts +332 -2
  215. package/lib/date-picker/src/panel/panelYearContent.d.ts +166 -1
  216. package/lib/date-picker/src/panel/use-calendar.d.ts +165 -0
  217. package/lib/date-picker/src/panel/use-dual-calendar.d.ts +165 -0
  218. package/lib/date-picker/src/panel/use-panel-common.d.ts +165 -0
  219. package/lib/date-picker/styles/dark.js +3 -1
  220. package/lib/date-picker/styles/light.d.ts +139 -0
  221. package/lib/date-picker/styles/light.js +3 -1
  222. package/lib/descriptions/src/Descriptions.d.ts +30 -0
  223. package/lib/descriptions/src/Descriptions.js +18 -10
  224. package/lib/dialog/src/DialogProvider.d.ts +2 -2
  225. package/lib/drawer/src/Drawer.d.ts +81 -1
  226. package/lib/drawer/src/DrawerBodyWrapper.d.ts +9 -1
  227. package/lib/drawer/src/DrawerContent.d.ts +8 -0
  228. package/lib/drawer/styles/light.d.ts +8 -0
  229. package/lib/dropdown/src/Dropdown.d.ts +1 -1
  230. package/lib/infinite-scroll/index.d.ts +2 -0
  231. package/lib/infinite-scroll/index.js +9 -0
  232. package/lib/infinite-scroll/src/InfiniteScroll.d.ts +45 -0
  233. package/lib/infinite-scroll/src/InfiniteScroll.js +81 -0
  234. package/lib/layout/src/Layout.d.ts +112 -0
  235. package/lib/layout/src/LayoutContent.d.ts +56 -0
  236. package/lib/layout/src/LayoutFooter.d.ts +72 -0
  237. package/lib/layout/src/LayoutHeader.d.ts +48 -0
  238. package/lib/layout/src/LayoutSider.d.ts +56 -0
  239. package/lib/layout/styles/light.d.ts +8 -0
  240. package/lib/legacy-transfer/src/Transfer.d.ts +80 -0
  241. package/lib/legacy-transfer/src/TransferFilter.d.ts +8 -0
  242. package/lib/legacy-transfer/src/TransferList.d.ts +9 -1
  243. package/lib/legacy-transfer/src/TransferListItem.d.ts +8 -0
  244. package/lib/legacy-transfer/styles/light.d.ts +8 -0
  245. package/lib/locales/common/arDZ.js +2 -0
  246. package/lib/locales/common/deDE.js +2 -0
  247. package/lib/locales/common/enGB.js +2 -0
  248. package/lib/locales/common/enUS.d.ts +2 -0
  249. package/lib/locales/common/enUS.js +2 -0
  250. package/lib/locales/common/eo.js +2 -0
  251. package/lib/locales/common/esAR.js +2 -0
  252. package/lib/locales/common/faIR.js +2 -0
  253. package/lib/locales/common/frFR.js +2 -0
  254. package/lib/locales/common/idID.js +2 -0
  255. package/lib/locales/common/itIT.js +2 -0
  256. package/lib/locales/common/jaJP.js +2 -0
  257. package/lib/locales/common/koKR.js +2 -0
  258. package/lib/locales/common/nbNO.js +2 -0
  259. package/lib/locales/common/nlNL.js +2 -0
  260. package/lib/locales/common/plPL.js +2 -0
  261. package/lib/locales/common/ptBR.js +2 -0
  262. package/lib/locales/common/ruRU.js +2 -0
  263. package/lib/locales/common/skSK.js +2 -0
  264. package/lib/locales/common/svSE.js +2 -0
  265. package/lib/locales/common/thTH.js +2 -0
  266. package/lib/locales/common/trTR.js +2 -0
  267. package/lib/locales/common/ukUA.js +2 -0
  268. package/lib/locales/common/viVN.js +2 -0
  269. package/lib/locales/common/zhCN.js +2 -0
  270. package/lib/locales/common/zhTW.js +2 -0
  271. package/lib/log/src/Log.d.ts +80 -0
  272. package/lib/log/styles/light.d.ts +8 -0
  273. package/lib/mention/src/Mention.d.ts +88 -0
  274. package/lib/mention/styles/light.d.ts +8 -0
  275. package/lib/menu/src/Menu.d.ts +1 -1
  276. package/lib/modal/src/BodyWrapper.d.ts +9 -1
  277. package/lib/modal/src/Modal.d.ts +73 -1
  278. package/lib/modal/styles/light.d.ts +8 -0
  279. package/lib/notification/src/NotificationContainer.d.ts +8 -0
  280. package/lib/notification/src/NotificationProvider.d.ts +72 -0
  281. package/lib/notification/styles/light.d.ts +8 -0
  282. package/lib/pagination/src/Pagination.d.ts +176 -0
  283. package/lib/pagination/styles/light.d.ts +16 -0
  284. package/lib/popselect/src/Popselect.d.ts +88 -0
  285. package/lib/popselect/src/PopselectPanel.d.ts +16 -0
  286. package/lib/popselect/styles/light.d.ts +8 -0
  287. package/lib/scrollbar/src/Scrollbar.d.ts +72 -0
  288. package/lib/select/src/Select.d.ts +88 -0
  289. package/lib/select/styles/light.d.ts +8 -0
  290. package/lib/time-picker/src/Panel.d.ts +8 -0
  291. package/lib/time-picker/src/TimePicker.d.ts +80 -0
  292. package/lib/time-picker/styles/light.d.ts +8 -0
  293. package/lib/transfer/src/Transfer.d.ts +80 -0
  294. package/lib/transfer/src/TransferFilter.d.ts +8 -0
  295. package/lib/transfer/src/TransferList.d.ts +9 -1
  296. package/lib/transfer/src/TransferListItem.d.ts +8 -0
  297. package/lib/transfer/styles/light.d.ts +8 -0
  298. package/lib/tree/src/Tree.d.ts +82 -2
  299. package/lib/tree/src/TreeNodeCheckbox.d.ts +8 -0
  300. package/lib/tree/styles/light.d.ts +8 -0
  301. package/lib/tree-select/src/TreeSelect.d.ts +89 -1
  302. package/lib/tree-select/styles/light.d.ts +8 -0
  303. package/lib/version.d.ts +1 -1
  304. package/lib/version.js +1 -1
  305. package/lib/virtual-list/index.d.ts +2 -0
  306. package/lib/virtual-list/index.js +9 -0
  307. package/lib/virtual-list/src/VirtualList.d.ts +146 -0
  308. package/lib/virtual-list/src/VirtualList.js +106 -0
  309. package/package.json +4 -4
  310. package/volar.d.ts +1 -0
  311. package/web-types.json +124 -4
@@ -1,4 +1,4 @@
1
- import type { PropType, CSSProperties, HTMLAttributes } from 'vue';
1
+ import type { CSSProperties, HTMLAttributes, PropType } from 'vue';
2
2
  import type { ExtractInternalPropTypes, ExtractPublicPropTypes } from '../../../_utils';
3
3
  export interface ScrollTo {
4
4
  (x: number, y: number): void;
@@ -48,10 +48,6 @@ export interface ScrollbarInst extends ScrollbarInstMethods {
48
48
  containerScrollTop: number;
49
49
  }
50
50
  declare const scrollbarProps: {
51
- readonly size: {
52
- readonly type: NumberConstructor;
53
- readonly default: 5;
54
- };
55
51
  readonly duration: {
56
52
  readonly type: NumberConstructor;
57
53
  readonly default: 0;
@@ -71,7 +67,7 @@ declare const scrollbarProps: {
71
67
  readonly content: PropType<() => HTMLElement | null | undefined>;
72
68
  readonly containerClass: StringConstructor;
73
69
  readonly containerStyle: PropType<string | CSSProperties>;
74
- readonly contentClass: StringConstructor;
70
+ readonly contentClass: PropType<string | Array<string | undefined>>;
75
71
  readonly contentStyle: PropType<string | CSSProperties>;
76
72
  readonly horizontalRailStyle: PropType<string | CSSProperties>;
77
73
  readonly verticalRailStyle: PropType<string | CSSProperties>;
@@ -80,26 +76,54 @@ declare const scrollbarProps: {
80
76
  readonly onResize: PropType<(e: ResizeObserverEntry) => void>;
81
77
  readonly internalOnUpdateScrollLeft: PropType<(scrollLeft: number) => void>;
82
78
  readonly internalHoistYRail: BooleanConstructor;
79
+ readonly yPlacement: {
80
+ readonly type: PropType<"left" | "right">;
81
+ readonly default: "right";
82
+ };
83
+ readonly xPlacement: {
84
+ readonly type: PropType<"top" | "bottom">;
85
+ readonly default: "bottom";
86
+ };
83
87
  readonly theme: PropType<import("../../../_mixins").Theme<"Scrollbar", {
88
+ height: string;
89
+ width: string;
90
+ borderRadius: string;
84
91
  color: string;
85
92
  colorHover: string;
93
+ railInsetHorizontalBottom: string;
94
+ railInsetHorizontalTop: string;
95
+ railInsetVerticalRight: string;
96
+ railInsetVerticalLeft: string;
97
+ railColor: string;
86
98
  }, any>>;
87
99
  readonly themeOverrides: PropType<import("../../../_mixins/use-theme").ExtractThemeOverrides<import("../../../_mixins").Theme<"Scrollbar", {
100
+ height: string;
101
+ width: string;
102
+ borderRadius: string;
88
103
  color: string;
89
104
  colorHover: string;
105
+ railInsetHorizontalBottom: string;
106
+ railInsetHorizontalTop: string;
107
+ railInsetVerticalRight: string;
108
+ railInsetVerticalLeft: string;
109
+ railColor: string;
90
110
  }, any>>>;
91
111
  readonly builtinThemeOverrides: PropType<import("../../../_mixins/use-theme").ExtractThemeOverrides<import("../../../_mixins").Theme<"Scrollbar", {
112
+ height: string;
113
+ width: string;
114
+ borderRadius: string;
92
115
  color: string;
93
116
  colorHover: string;
117
+ railInsetHorizontalBottom: string;
118
+ railInsetHorizontalTop: string;
119
+ railInsetVerticalRight: string;
120
+ railInsetVerticalLeft: string;
121
+ railColor: string;
94
122
  }, any>>>;
95
123
  };
96
124
  export type ScrollbarProps = ExtractPublicPropTypes<typeof scrollbarProps>;
97
125
  export type ScrollbarInternalProps = ExtractInternalPropTypes<typeof scrollbarProps>;
98
126
  declare const Scrollbar: import("vue").DefineComponent<{
99
- readonly size: {
100
- readonly type: NumberConstructor;
101
- readonly default: 5;
102
- };
103
127
  readonly duration: {
104
128
  readonly type: NumberConstructor;
105
129
  readonly default: 0;
@@ -119,7 +143,7 @@ declare const Scrollbar: import("vue").DefineComponent<{
119
143
  readonly content: PropType<() => HTMLElement | null | undefined>;
120
144
  readonly containerClass: StringConstructor;
121
145
  readonly containerStyle: PropType<string | CSSProperties>;
122
- readonly contentClass: StringConstructor;
146
+ readonly contentClass: PropType<string | Array<string | undefined>>;
123
147
  readonly contentStyle: PropType<string | CSSProperties>;
124
148
  readonly horizontalRailStyle: PropType<string | CSSProperties>;
125
149
  readonly verticalRailStyle: PropType<string | CSSProperties>;
@@ -128,17 +152,49 @@ declare const Scrollbar: import("vue").DefineComponent<{
128
152
  readonly onResize: PropType<(e: ResizeObserverEntry) => void>;
129
153
  readonly internalOnUpdateScrollLeft: PropType<(scrollLeft: number) => void>;
130
154
  readonly internalHoistYRail: BooleanConstructor;
155
+ readonly yPlacement: {
156
+ readonly type: PropType<"left" | "right">;
157
+ readonly default: "right";
158
+ };
159
+ readonly xPlacement: {
160
+ readonly type: PropType<"top" | "bottom">;
161
+ readonly default: "bottom";
162
+ };
131
163
  readonly theme: PropType<import("../../../_mixins").Theme<"Scrollbar", {
164
+ height: string;
165
+ width: string;
166
+ borderRadius: string;
132
167
  color: string;
133
168
  colorHover: string;
169
+ railInsetHorizontalBottom: string;
170
+ railInsetHorizontalTop: string;
171
+ railInsetVerticalRight: string;
172
+ railInsetVerticalLeft: string;
173
+ railColor: string;
134
174
  }, any>>;
135
175
  readonly themeOverrides: PropType<import("../../../_mixins/use-theme").ExtractThemeOverrides<import("../../../_mixins").Theme<"Scrollbar", {
176
+ height: string;
177
+ width: string;
178
+ borderRadius: string;
136
179
  color: string;
137
180
  colorHover: string;
181
+ railInsetHorizontalBottom: string;
182
+ railInsetHorizontalTop: string;
183
+ railInsetVerticalRight: string;
184
+ railInsetVerticalLeft: string;
185
+ railColor: string;
138
186
  }, any>>>;
139
187
  readonly builtinThemeOverrides: PropType<import("../../../_mixins/use-theme").ExtractThemeOverrides<import("../../../_mixins").Theme<"Scrollbar", {
188
+ height: string;
189
+ width: string;
190
+ borderRadius: string;
140
191
  color: string;
141
192
  colorHover: string;
193
+ railInsetHorizontalBottom: string;
194
+ railInsetHorizontalTop: string;
195
+ railInsetVerticalRight: string;
196
+ railInsetVerticalLeft: string;
197
+ railColor: string;
142
198
  }, any>>>;
143
199
  }, {
144
200
  mergedClsPrefix: import("vue").Ref<string>;
@@ -170,6 +226,23 @@ declare const Scrollbar: import("vue").DefineComponent<{
170
226
  '--u-scrollbar-border-radius': string;
171
227
  '--u-scrollbar-width': string;
172
228
  '--u-scrollbar-height': string;
229
+ '--u-scrollbar-rail-top-horizontal-top': string;
230
+ '--u-scrollbar-rail-right-horizontal-top': string;
231
+ '--u-scrollbar-rail-bottom-horizontal-top': string;
232
+ '--u-scrollbar-rail-left-horizontal-top': string;
233
+ '--u-scrollbar-rail-top-horizontal-bottom': string;
234
+ '--u-scrollbar-rail-right-horizontal-bottom': string;
235
+ '--u-scrollbar-rail-bottom-horizontal-bottom': string;
236
+ '--u-scrollbar-rail-left-horizontal-bottom': string;
237
+ '--u-scrollbar-rail-top-vertical-right': string;
238
+ '--u-scrollbar-rail-right-vertical-right': string;
239
+ '--u-scrollbar-rail-bottom-vertical-right': string;
240
+ '--u-scrollbar-rail-left-vertical-right': string;
241
+ '--u-scrollbar-rail-top-vertical-left': string;
242
+ '--u-scrollbar-rail-right-vertical-left': string;
243
+ '--u-scrollbar-rail-bottom-vertical-left': string;
244
+ '--u-scrollbar-rail-left-vertical-left': string;
245
+ '--u-scrollbar-rail-color': string;
173
246
  }> | undefined;
174
247
  themeClass: import("vue").Ref<string> | undefined;
175
248
  onRender: (() => void) | undefined;
@@ -180,10 +253,6 @@ declare const Scrollbar: import("vue").DefineComponent<{
180
253
  handleMouseEnterWrapper: () => void;
181
254
  handleMouseLeaveWrapper: () => void;
182
255
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
183
- readonly size: {
184
- readonly type: NumberConstructor;
185
- readonly default: 5;
186
- };
187
256
  readonly duration: {
188
257
  readonly type: NumberConstructor;
189
258
  readonly default: 0;
@@ -203,7 +272,7 @@ declare const Scrollbar: import("vue").DefineComponent<{
203
272
  readonly content: PropType<() => HTMLElement | null | undefined>;
204
273
  readonly containerClass: StringConstructor;
205
274
  readonly containerStyle: PropType<string | CSSProperties>;
206
- readonly contentClass: StringConstructor;
275
+ readonly contentClass: PropType<string | Array<string | undefined>>;
207
276
  readonly contentStyle: PropType<string | CSSProperties>;
208
277
  readonly horizontalRailStyle: PropType<string | CSSProperties>;
209
278
  readonly verticalRailStyle: PropType<string | CSSProperties>;
@@ -212,20 +281,51 @@ declare const Scrollbar: import("vue").DefineComponent<{
212
281
  readonly onResize: PropType<(e: ResizeObserverEntry) => void>;
213
282
  readonly internalOnUpdateScrollLeft: PropType<(scrollLeft: number) => void>;
214
283
  readonly internalHoistYRail: BooleanConstructor;
284
+ readonly yPlacement: {
285
+ readonly type: PropType<"left" | "right">;
286
+ readonly default: "right";
287
+ };
288
+ readonly xPlacement: {
289
+ readonly type: PropType<"top" | "bottom">;
290
+ readonly default: "bottom";
291
+ };
215
292
  readonly theme: PropType<import("../../../_mixins").Theme<"Scrollbar", {
293
+ height: string;
294
+ width: string;
295
+ borderRadius: string;
216
296
  color: string;
217
297
  colorHover: string;
298
+ railInsetHorizontalBottom: string;
299
+ railInsetHorizontalTop: string;
300
+ railInsetVerticalRight: string;
301
+ railInsetVerticalLeft: string;
302
+ railColor: string;
218
303
  }, any>>;
219
304
  readonly themeOverrides: PropType<import("../../../_mixins/use-theme").ExtractThemeOverrides<import("../../../_mixins").Theme<"Scrollbar", {
305
+ height: string;
306
+ width: string;
307
+ borderRadius: string;
220
308
  color: string;
221
309
  colorHover: string;
310
+ railInsetHorizontalBottom: string;
311
+ railInsetHorizontalTop: string;
312
+ railInsetVerticalRight: string;
313
+ railInsetVerticalLeft: string;
314
+ railColor: string;
222
315
  }, any>>>;
223
316
  readonly builtinThemeOverrides: PropType<import("../../../_mixins/use-theme").ExtractThemeOverrides<import("../../../_mixins").Theme<"Scrollbar", {
317
+ height: string;
318
+ width: string;
319
+ borderRadius: string;
224
320
  color: string;
225
321
  colorHover: string;
322
+ railInsetHorizontalBottom: string;
323
+ railInsetHorizontalTop: string;
324
+ railInsetVerticalRight: string;
325
+ railInsetVerticalLeft: string;
326
+ railColor: string;
226
327
  }, any>>>;
227
328
  }>>, {
228
- readonly size: number;
229
329
  readonly duration: number;
230
330
  readonly scrollable: boolean;
231
331
  readonly xScrollable: boolean;
@@ -233,6 +333,8 @@ declare const Scrollbar: import("vue").DefineComponent<{
233
333
  readonly useUnifiedContainer: boolean;
234
334
  readonly triggerDisplayManually: boolean;
235
335
  readonly internalHoistYRail: boolean;
336
+ readonly yPlacement: "left" | "right";
337
+ readonly xPlacement: "top" | "bottom";
236
338
  }, {}>;
237
339
  type NativeScrollbarProps = Omit<HTMLAttributes, keyof ScrollbarInternalProps>;
238
340
  type MergedProps = Partial<ScrollbarInternalProps & NativeScrollbarProps>;
@@ -4,19 +4,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.XScrollbar = void 0;
7
- const vue_1 = require("vue");
8
7
  const evtd_1 = require("evtd");
9
- const vueuc_1 = require("vueuc");
10
- const vooks_1 = require("vooks");
11
8
  const seemly_1 = require("seemly");
9
+ const vooks_1 = require("vooks");
10
+ const vue_1 = require("vue");
11
+ const vueuc_1 = require("vueuc");
12
12
  const _mixins_1 = require("../../../_mixins");
13
13
  const _utils_1 = require("../../../_utils");
14
14
  const styles_1 = require("../styles");
15
15
  const index_cssr_1 = __importDefault(require("./styles/index.cssr"));
16
- const scrollbarProps = Object.assign(Object.assign({}, _mixins_1.useTheme.props), { size: {
17
- type: Number,
18
- default: 5
19
- }, duration: {
16
+ const scrollbarProps = Object.assign(Object.assign({}, _mixins_1.useTheme.props), { duration: {
20
17
  type: Number,
21
18
  default: 0
22
19
  }, scrollable: {
@@ -27,7 +24,13 @@ const scrollbarProps = Object.assign(Object.assign({}, _mixins_1.useTheme.props)
27
24
  default: 'hover'
28
25
  }, useUnifiedContainer: Boolean, triggerDisplayManually: Boolean,
29
26
  // If container is set, resize observer won't not attached
30
- container: Function, content: Function, containerClass: String, containerStyle: [String, Object], contentClass: String, contentStyle: [String, Object], horizontalRailStyle: [String, Object], verticalRailStyle: [String, Object], onScroll: Function, onWheel: Function, onResize: Function, internalOnUpdateScrollLeft: Function, internalHoistYRail: Boolean });
27
+ container: Function, content: Function, containerClass: String, containerStyle: [String, Object], contentClass: [String, Array], contentStyle: [String, Object], horizontalRailStyle: [String, Object], verticalRailStyle: [String, Object], onScroll: Function, onWheel: Function, onResize: Function, internalOnUpdateScrollLeft: Function, internalHoistYRail: Boolean, yPlacement: {
28
+ type: String,
29
+ default: 'right'
30
+ }, xPlacement: {
31
+ type: String,
32
+ default: 'bottom'
33
+ } });
31
34
  const Scrollbar = (0, vue_1.defineComponent)({
32
35
  name: 'Scrollbar',
33
36
  props: scrollbarProps,
@@ -61,6 +64,7 @@ const Scrollbar = (0, vue_1.defineComponent)({
61
64
  let memoMouseX = 0;
62
65
  let memoMouseY = 0;
63
66
  const isIos = (0, vooks_1.useIsIos)();
67
+ const themeRef = (0, _mixins_1.useTheme)('Scrollbar', '-scrollbar', index_cssr_1.default, styles_1.scrollbarLight, props, mergedClsPrefixRef);
64
68
  const yBarSizeRef = (0, vue_1.computed)(() => {
65
69
  const { value: containerHeight } = containerHeightRef;
66
70
  const { value: contentHeight } = contentHeightRef;
@@ -71,7 +75,8 @@ const Scrollbar = (0, vue_1.defineComponent)({
71
75
  return 0;
72
76
  }
73
77
  else {
74
- return Math.min(containerHeight, (yRailSize * containerHeight) / contentHeight + props.size * 1.5);
78
+ return Math.min(containerHeight, (yRailSize * containerHeight) / contentHeight +
79
+ (0, seemly_1.depx)(themeRef.value.self.width) * 1.5);
75
80
  }
76
81
  });
77
82
  const yBarSizePxRef = (0, vue_1.computed)(() => {
@@ -87,7 +92,8 @@ const Scrollbar = (0, vue_1.defineComponent)({
87
92
  return 0;
88
93
  }
89
94
  else {
90
- return (xRailSize * containerWidth) / contentWidth + props.size * 1.5;
95
+ return ((xRailSize * containerWidth) / contentWidth +
96
+ (0, seemly_1.depx)(themeRef.value.self.height) * 1.5);
91
97
  }
92
98
  });
93
99
  const xBarSizePxRef = (0, vue_1.computed)(() => {
@@ -105,8 +111,9 @@ const Scrollbar = (0, vue_1.defineComponent)({
105
111
  }
106
112
  else {
107
113
  const heightDiff = contentHeight - containerHeight;
108
- if (!heightDiff)
114
+ if (!heightDiff) {
109
115
  return 0;
116
+ }
110
117
  return ((containerScrollTop / heightDiff) * (yRailSize - yBarSizeRef.value));
111
118
  }
112
119
  });
@@ -125,8 +132,9 @@ const Scrollbar = (0, vue_1.defineComponent)({
125
132
  }
126
133
  else {
127
134
  const widthDiff = contentWidth - containerWidth;
128
- if (!widthDiff)
135
+ if (!widthDiff) {
129
136
  return 0;
137
+ }
130
138
  return ((containerScrollLeft / widthDiff) * (xRailSize - xBarSizeRef.value));
131
139
  }
132
140
  });
@@ -157,43 +165,22 @@ const Scrollbar = (0, vue_1.defineComponent)({
157
165
  });
158
166
  const mergedContainerRef = (0, vue_1.computed)(() => {
159
167
  const { container } = props;
160
- if (container)
168
+ if (container) {
161
169
  return container();
170
+ }
162
171
  return containerRef.value;
163
172
  });
164
173
  const mergedContentRef = (0, vue_1.computed)(() => {
165
174
  const { content } = props;
166
- if (content)
175
+ if (content) {
167
176
  return content();
168
- return contentRef.value;
169
- });
170
- const activateState = (0, _utils_1.useReactivated)(() => {
171
- // Only restore for builtin container & content
172
- if (!props.container) {
173
- // remount
174
- scrollTo({
175
- top: containerScrollTopRef.value,
176
- left: containerScrollLeftRef.value
177
- });
178
177
  }
178
+ return contentRef.value;
179
179
  });
180
- // methods
181
- const handleContentResize = () => {
182
- if (activateState.isDeactivated)
183
- return;
184
- sync();
185
- };
186
- const handleContainerResize = (e) => {
187
- if (activateState.isDeactivated)
188
- return;
189
- const { onResize } = props;
190
- if (onResize)
191
- onResize(e);
192
- sync();
193
- };
194
180
  const scrollTo = (options, y) => {
195
- if (!props.scrollable)
181
+ if (!props.scrollable) {
196
182
  return;
183
+ }
197
184
  if (typeof options === 'number') {
198
185
  scrollToPosition(options, y !== null && y !== void 0 ? y : 0, 0, false, 'auto');
199
186
  return;
@@ -215,12 +202,41 @@ const Scrollbar = (0, vue_1.defineComponent)({
215
202
  scrollToPosition(0, 0, 0, false, behavior);
216
203
  }
217
204
  };
205
+ const activateState = (0, _utils_1.useReactivated)(() => {
206
+ // Only restore for builtin container & content
207
+ if (!props.container) {
208
+ // remount
209
+ scrollTo({
210
+ top: containerScrollTopRef.value,
211
+ left: containerScrollLeftRef.value
212
+ });
213
+ }
214
+ });
215
+ // methods
216
+ const handleContentResize = () => {
217
+ if (activateState.isDeactivated) {
218
+ return;
219
+ }
220
+ sync();
221
+ };
222
+ const handleContainerResize = (e) => {
223
+ if (activateState.isDeactivated) {
224
+ return;
225
+ }
226
+ const { onResize } = props;
227
+ if (onResize) {
228
+ onResize(e);
229
+ }
230
+ sync();
231
+ };
218
232
  const scrollBy = (options, y) => {
219
- if (!props.scrollable)
233
+ if (!props.scrollable) {
220
234
  return;
235
+ }
221
236
  const { value: container } = mergedContainerRef;
222
- if (!container)
237
+ if (!container) {
223
238
  return;
239
+ }
224
240
  if (typeof options === 'object') {
225
241
  container.scrollBy(options);
226
242
  }
@@ -230,8 +246,9 @@ const Scrollbar = (0, vue_1.defineComponent)({
230
246
  };
231
247
  function scrollToPosition(left, top, elSize, debounce, behavior) {
232
248
  const { value: container } = mergedContainerRef;
233
- if (!container)
249
+ if (!container) {
234
250
  return;
251
+ }
235
252
  if (debounce) {
236
253
  const { scrollTop, offsetHeight } = container;
237
254
  if (top > scrollTop) {
@@ -296,8 +313,9 @@ const Scrollbar = (0, vue_1.defineComponent)({
296
313
  }
297
314
  function handleScroll(e) {
298
315
  const { onScroll } = props;
299
- if (onScroll)
316
+ if (onScroll) {
300
317
  onScroll(e);
318
+ }
301
319
  syncScrollState();
302
320
  }
303
321
  function syncScrollState() {
@@ -356,8 +374,9 @@ const Scrollbar = (0, vue_1.defineComponent)({
356
374
  }
357
375
  }
358
376
  function sync() {
359
- if (!props.scrollable)
377
+ if (!props.scrollable) {
360
378
  return;
379
+ }
361
380
  if (props.useUnifiedContainer) {
362
381
  syncUnifiedContainer();
363
382
  }
@@ -382,8 +401,9 @@ const Scrollbar = (0, vue_1.defineComponent)({
382
401
  : e.clientX;
383
402
  }
384
403
  function handleXScrollMouseMove(e) {
385
- if (!xBarPressed)
404
+ if (!xBarPressed) {
386
405
  return;
406
+ }
387
407
  if (xBarVanishTimerId !== undefined) {
388
408
  window.clearTimeout(xBarVanishTimerId);
389
409
  }
@@ -393,8 +413,9 @@ const Scrollbar = (0, vue_1.defineComponent)({
393
413
  const { value: containerWidth } = containerWidthRef;
394
414
  const { value: contentWidth } = contentWidthRef;
395
415
  const { value: xBarSize } = xBarSizeRef;
396
- if (containerWidth === null || contentWidth === null)
416
+ if (containerWidth === null || contentWidth === null) {
397
417
  return;
418
+ }
398
419
  const dX = (rtlEnabledRef === null || rtlEnabledRef === void 0 ? void 0 : rtlEnabledRef.value)
399
420
  ? window.innerWidth - e.clientX - memoMouseX
400
421
  : e.clientX - memoMouseX;
@@ -407,8 +428,9 @@ const Scrollbar = (0, vue_1.defineComponent)({
407
428
  if (container) {
408
429
  container.scrollLeft = toScrollLeft * ((rtlEnabledRef === null || rtlEnabledRef === void 0 ? void 0 : rtlEnabledRef.value) ? -1 : 1);
409
430
  const { internalOnUpdateScrollLeft } = props;
410
- if (internalOnUpdateScrollLeft)
431
+ if (internalOnUpdateScrollLeft) {
411
432
  internalOnUpdateScrollLeft(toScrollLeft);
433
+ }
412
434
  }
413
435
  }
414
436
  function handleXScrollMouseUp(e) {
@@ -432,8 +454,9 @@ const Scrollbar = (0, vue_1.defineComponent)({
432
454
  memoMouseY = e.clientY;
433
455
  }
434
456
  function handleYScrollMouseMove(e) {
435
- if (!yBarPressed)
457
+ if (!yBarPressed) {
436
458
  return;
459
+ }
437
460
  if (xBarVanishTimerId !== undefined) {
438
461
  window.clearTimeout(xBarVanishTimerId);
439
462
  }
@@ -443,8 +466,9 @@ const Scrollbar = (0, vue_1.defineComponent)({
443
466
  const { value: containerHeight } = containerHeightRef;
444
467
  const { value: contentHeight } = contentHeightRef;
445
468
  const { value: yBarSize } = yBarSizeRef;
446
- if (containerHeight === null || contentHeight === null)
469
+ if (containerHeight === null || contentHeight === null) {
447
470
  return;
471
+ }
448
472
  const dY = e.clientY - memoMouseY;
449
473
  const dScrollTop = (dY * (contentHeight - containerHeight)) / (containerHeight - yBarSize);
450
474
  const toScrollTopUpperBound = contentHeight - containerHeight;
@@ -499,8 +523,9 @@ const Scrollbar = (0, vue_1.defineComponent)({
499
523
  // if you pass inner to scrollbar, you may use a ref inside component
500
524
  // however, when scrollbar is mounted, ref is not ready at component
501
525
  // you need to init by yourself
502
- if (props.container)
526
+ if (props.container) {
503
527
  return;
528
+ }
504
529
  sync();
505
530
  });
506
531
  (0, vue_1.onBeforeUnmount)(() => {
@@ -513,16 +538,40 @@ const Scrollbar = (0, vue_1.defineComponent)({
513
538
  (0, evtd_1.off)('mousemove', window, handleYScrollMouseMove, true);
514
539
  (0, evtd_1.off)('mouseup', window, handleYScrollMouseUp, true);
515
540
  });
516
- const themeRef = (0, _mixins_1.useTheme)('Scrollbar', '-scrollbar', index_cssr_1.default, styles_1.scrollbarLight, props, mergedClsPrefixRef);
517
541
  const cssVarsRef = (0, vue_1.computed)(() => {
518
- const { common: { cubicBezierEaseInOut, scrollbarBorderRadius, scrollbarHeight, scrollbarWidth }, self: { color, colorHover } } = themeRef.value;
542
+ const { common: { cubicBezierEaseInOut }, self: { color, colorHover, height, width, borderRadius, railInsetHorizontalTop, railInsetHorizontalBottom, railInsetVerticalRight, railInsetVerticalLeft, railColor } } = themeRef.value;
543
+ const { top: railTopHorizontalTop, right: railRightHorizontalTop, bottom: railBottomHorizontalTop, left: railLeftHorizontalTop } = (0, seemly_1.getPadding)(railInsetHorizontalTop);
544
+ const { top: railTopHorizontalBottom, right: railRightHorizontalBottom, bottom: railBottomHorizontalBottom, left: railLeftHorizontalBottom } = (0, seemly_1.getPadding)(railInsetHorizontalBottom);
545
+ const { top: railTopVerticalRight, right: railRightVerticalRight, bottom: railBottomVerticalRight, left: railLeftVerticalRight } = (0, seemly_1.getPadding)((rtlEnabledRef === null || rtlEnabledRef === void 0 ? void 0 : rtlEnabledRef.value)
546
+ ? (0, _utils_1.rtlInset)(railInsetVerticalRight)
547
+ : railInsetVerticalRight);
548
+ const { top: railTopVerticalLeft, right: railRightVerticalLeft, bottom: railBottomVerticalLeft, left: railLeftVerticalLeft } = (0, seemly_1.getPadding)((rtlEnabledRef === null || rtlEnabledRef === void 0 ? void 0 : rtlEnabledRef.value)
549
+ ? (0, _utils_1.rtlInset)(railInsetVerticalLeft)
550
+ : railInsetVerticalLeft);
519
551
  return {
520
552
  '--u-scrollbar-bezier': cubicBezierEaseInOut,
521
553
  '--u-scrollbar-color': color,
522
554
  '--u-scrollbar-color-hover': colorHover,
523
- '--u-scrollbar-border-radius': scrollbarBorderRadius,
524
- '--u-scrollbar-width': scrollbarWidth,
525
- '--u-scrollbar-height': scrollbarHeight
555
+ '--u-scrollbar-border-radius': borderRadius,
556
+ '--u-scrollbar-width': width,
557
+ '--u-scrollbar-height': height,
558
+ '--u-scrollbar-rail-top-horizontal-top': railTopHorizontalTop,
559
+ '--u-scrollbar-rail-right-horizontal-top': railRightHorizontalTop,
560
+ '--u-scrollbar-rail-bottom-horizontal-top': railBottomHorizontalTop,
561
+ '--u-scrollbar-rail-left-horizontal-top': railLeftHorizontalTop,
562
+ '--u-scrollbar-rail-top-horizontal-bottom': railTopHorizontalBottom,
563
+ '--u-scrollbar-rail-right-horizontal-bottom': railRightHorizontalBottom,
564
+ '--u-scrollbar-rail-bottom-horizontal-bottom': railBottomHorizontalBottom,
565
+ '--u-scrollbar-rail-left-horizontal-bottom': railLeftHorizontalBottom,
566
+ '--u-scrollbar-rail-top-vertical-right': railTopVerticalRight,
567
+ '--u-scrollbar-rail-right-vertical-right': railRightVerticalRight,
568
+ '--u-scrollbar-rail-bottom-vertical-right': railBottomVerticalRight,
569
+ '--u-scrollbar-rail-left-vertical-right': railLeftVerticalRight,
570
+ '--u-scrollbar-rail-top-vertical-left': railTopVerticalLeft,
571
+ '--u-scrollbar-rail-right-vertical-left': railRightVerticalLeft,
572
+ '--u-scrollbar-rail-bottom-vertical-left': railBottomVerticalLeft,
573
+ '--u-scrollbar-rail-left-vertical-left': railLeftVerticalLeft,
574
+ '--u-scrollbar-rail-color': railColor
526
575
  };
527
576
  });
528
577
  const themeClassHandle = inlineThemeDisabled
@@ -549,15 +598,18 @@ const Scrollbar = (0, vue_1.defineComponent)({
549
598
  },
550
599
  render() {
551
600
  var _a;
552
- const { $slots, mergedClsPrefix, triggerDisplayManually, rtlEnabled, internalHoistYRail } = this;
553
- if (!this.scrollable)
601
+ const { $slots, mergedClsPrefix, triggerDisplayManually, rtlEnabled, internalHoistYRail, yPlacement, xPlacement, xScrollable } = this;
602
+ if (!this.scrollable) {
554
603
  return (_a = $slots.default) === null || _a === void 0 ? void 0 : _a.call($slots);
604
+ }
555
605
  const triggerIsNone = this.trigger === 'none';
556
- const createYRail = (style) => {
606
+ const createYRail = (className, style) => {
557
607
  return ((0, vue_1.h)("div", { ref: "yRailRef", class: [
558
608
  `${mergedClsPrefix}-scrollbar-rail`,
559
- `${mergedClsPrefix}-scrollbar-rail--vertical`
560
- ], "data-scrollbar-rail": true, style: [style || '', this.verticalRailStyle], "aria-hiddens": true }, (0, vue_1.h)((triggerIsNone ? _utils_1.Wrapper : vue_1.Transition), triggerIsNone ? null : { name: 'fade-in-transition' }, {
609
+ `${mergedClsPrefix}-scrollbar-rail--vertical`,
610
+ `${mergedClsPrefix}-scrollbar-rail--vertical--${yPlacement}`,
611
+ className
612
+ ], "data-scrollbar-rail": true, style: [style || '', this.verticalRailStyle], "aria-hidden": true }, (0, vue_1.h)((triggerIsNone ? _utils_1.Wrapper : vue_1.Transition), triggerIsNone ? null : { name: 'fade-in-transition' }, {
561
613
  default: () => this.needYBar && this.isShowYBar && !this.isIos ? ((0, vue_1.h)("div", { class: `${mergedClsPrefix}-scrollbar-rail__scrollbar`, style: {
562
614
  height: this.yBarSizePx,
563
615
  top: this.yBarTopPx
@@ -598,10 +650,11 @@ const Scrollbar = (0, vue_1.defineComponent)({
598
650
  this.contentClass
599
651
  ] }, $slots))
600
652
  }))),
601
- internalHoistYRail ? null : createYRail(undefined),
602
- this.xScrollable && ((0, vue_1.h)("div", { ref: "xRailRef", class: [
653
+ internalHoistYRail ? null : createYRail(undefined, undefined),
654
+ xScrollable && ((0, vue_1.h)("div", { ref: "xRailRef", class: [
603
655
  `${mergedClsPrefix}-scrollbar-rail`,
604
- `${mergedClsPrefix}-scrollbar-rail--horizontal`
656
+ `${mergedClsPrefix}-scrollbar-rail--horizontal`,
657
+ `${mergedClsPrefix}-scrollbar-rail--horizontal--${xPlacement}`
605
658
  ], style: this.horizontalRailStyle, "data-scrollbar-rail": true, "aria-hidden": true }, (0, vue_1.h)((triggerIsNone ? _utils_1.Wrapper : vue_1.Transition), triggerIsNone ? null : { name: 'fade-in-transition' }, {
606
659
  default: () => this.needXBar && this.isShowXBar && !this.isIos ? ((0, vue_1.h)("div", { class: `${mergedClsPrefix}-scrollbar-rail__scrollbar`, style: {
607
660
  width: this.xBarSizePx,
@@ -617,7 +670,7 @@ const Scrollbar = (0, vue_1.defineComponent)({
617
670
  if (internalHoistYRail) {
618
671
  return ((0, vue_1.h)(vue_1.Fragment, null,
619
672
  scrollbarNode,
620
- createYRail(this.cssVars)));
673
+ createYRail(this.themeClass, this.cssVars)));
621
674
  }
622
675
  else {
623
676
  return scrollbarNode;