huibo-ui 0.3.0 → 0.4.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 (668) hide show
  1. package/dist/cjs/{date-helpers-904747ff.js → date-helpers-1ffddc59.js} +7 -3
  2. package/dist/cjs/date-helpers-1ffddc59.js.map +1 -0
  3. package/dist/cjs/hb-affix.cjs.entry.js +1 -1
  4. package/dist/cjs/hb-aside.cjs.entry.js +1 -1
  5. package/dist/cjs/hb-avatar.cjs.entry.js +1 -1
  6. package/dist/cjs/hb-backtop.cjs.entry.js +2 -2
  7. package/dist/cjs/hb-badge.cjs.entry.js +1 -1
  8. package/dist/cjs/hb-breadcrumb-item.cjs.entry.js +1 -1
  9. package/dist/cjs/hb-breadcrumb.cjs.entry.js +1 -1
  10. package/dist/cjs/hb-button.cjs.entry.js +2 -2
  11. package/dist/cjs/hb-calendar.cjs.entry.js +78 -10
  12. package/dist/cjs/hb-calendar.cjs.entry.js.map +1 -1
  13. package/dist/cjs/hb-card.cjs.entry.js +1 -1
  14. package/dist/cjs/hb-cascader.cjs.entry.js +270 -146
  15. package/dist/cjs/hb-cascader.cjs.entry.js.map +1 -1
  16. package/dist/cjs/hb-checkbox-group.cjs.entry.js +2 -2
  17. package/dist/cjs/hb-checkbox.cjs.entry.js +3 -3
  18. package/dist/cjs/hb-collapse-item.cjs.entry.js +1 -1
  19. package/dist/cjs/hb-collapse.cjs.entry.js +1 -1
  20. package/dist/cjs/hb-color-picker-panel.cjs.entry.js +2 -2
  21. package/dist/cjs/hb-color-picker.cjs.entry.js +91 -14
  22. package/dist/cjs/hb-color-picker.cjs.entry.js.map +1 -1
  23. package/dist/cjs/hb-config-provider.cjs.entry.js +1 -1
  24. package/dist/cjs/hb-container.cjs.entry.js +2 -2
  25. package/dist/cjs/hb-date-picker-pane.cjs.entry.js +2 -2
  26. package/dist/cjs/hb-date-picker.cjs.entry.js +85 -7
  27. package/dist/cjs/hb-date-picker.cjs.entry.js.map +1 -1
  28. package/dist/cjs/hb-date-range-picker.cjs.entry.js +3 -3
  29. package/dist/cjs/hb-date-time-picker.cjs.entry.js +3 -3
  30. package/dist/cjs/hb-descriptions.cjs.entry.js +2 -2
  31. package/dist/cjs/hb-descriptions.cjs.entry.js.map +1 -1
  32. package/dist/cjs/hb-divider.cjs.entry.js +2 -2
  33. package/dist/cjs/hb-drawer.cjs.entry.js +1 -1
  34. package/dist/cjs/hb-dropdown.cjs.entry.js +74 -6
  35. package/dist/cjs/hb-dropdown.cjs.entry.js.map +1 -1
  36. package/dist/cjs/hb-empty.cjs.entry.js +1 -1
  37. package/dist/cjs/hb-float-button.cjs.entry.js +2 -2
  38. package/dist/cjs/hb-footer.cjs.entry.js +1 -1
  39. package/dist/cjs/hb-form-item.cjs.entry.js +59 -8
  40. package/dist/cjs/hb-form-item.cjs.entry.js.map +1 -1
  41. package/dist/cjs/hb-form.cjs.entry.js +3 -3
  42. package/dist/cjs/hb-form.cjs.entry.js.map +1 -1
  43. package/dist/cjs/hb-header.cjs.entry.js +1 -1
  44. package/dist/cjs/hb-image-preview.cjs.entry.js +12 -8
  45. package/dist/cjs/hb-image-preview.cjs.entry.js.map +1 -1
  46. package/dist/cjs/hb-image.cjs.entry.js +1 -1
  47. package/dist/cjs/hb-input-number.cjs.entry.js +5 -5
  48. package/dist/cjs/hb-input-tag.cjs.entry.js +2 -2
  49. package/dist/cjs/hb-input.cjs.entry.js +39 -3
  50. package/dist/cjs/hb-input.cjs.entry.js.map +1 -1
  51. package/dist/cjs/hb-layout.cjs.entry.js +36 -14
  52. package/dist/cjs/hb-layout.cjs.entry.js.map +1 -1
  53. package/dist/cjs/hb-link.cjs.entry.js +2 -2
  54. package/dist/cjs/hb-loading.cjs.entry.js +2 -2
  55. package/dist/cjs/hb-main.cjs.entry.js +1 -1
  56. package/dist/cjs/hb-menu-item.cjs.entry.js +2 -2
  57. package/dist/cjs/hb-menu.cjs.entry.js +3 -3
  58. package/dist/cjs/hb-menu.cjs.entry.js.map +1 -1
  59. package/dist/cjs/hb-message.cjs.entry.js +2 -2
  60. package/dist/cjs/hb-notification.cjs.entry.js +2 -2
  61. package/dist/cjs/hb-page-header.cjs.entry.js +1 -1
  62. package/dist/cjs/hb-pagination.cjs.entry.js +21 -8
  63. package/dist/cjs/hb-pagination.cjs.entry.js.map +1 -1
  64. package/dist/cjs/hb-popconfirm.cjs.entry.js +37 -7
  65. package/dist/cjs/hb-popconfirm.cjs.entry.js.map +1 -1
  66. package/dist/cjs/hb-popover.cjs.entry.js +22 -2
  67. package/dist/cjs/hb-popover.cjs.entry.js.map +1 -1
  68. package/dist/cjs/hb-progress.cjs.entry.js +1 -1
  69. package/dist/cjs/hb-radio.cjs.entry.js +2 -2
  70. package/dist/cjs/hb-rate.cjs.entry.js +45 -3
  71. package/dist/cjs/hb-rate.cjs.entry.js.map +1 -1
  72. package/dist/cjs/hb-result.cjs.entry.js +1 -1
  73. package/dist/cjs/hb-row.cjs.entry.js +2 -2
  74. package/dist/cjs/hb-segmented.cjs.entry.js +39 -5
  75. package/dist/cjs/hb-segmented.cjs.entry.js.map +1 -1
  76. package/dist/cjs/hb-select.cjs.entry.js +47 -8
  77. package/dist/cjs/hb-select.cjs.entry.js.map +1 -1
  78. package/dist/cjs/hb-slider.cjs.entry.js +189 -20
  79. package/dist/cjs/hb-slider.cjs.entry.js.map +1 -1
  80. package/dist/cjs/hb-space.cjs.entry.js +2 -2
  81. package/dist/cjs/hb-statistic.cjs.entry.js +1 -1
  82. package/dist/cjs/hb-step.cjs.entry.js +1 -1
  83. package/dist/cjs/hb-steps.cjs.entry.js +30 -9
  84. package/dist/cjs/hb-steps.cjs.entry.js.map +1 -1
  85. package/dist/cjs/hb-sub-menu.cjs.entry.js +4 -4
  86. package/dist/cjs/hb-switch.cjs.entry.js +9 -4
  87. package/dist/cjs/hb-switch.cjs.entry.js.map +1 -1
  88. package/dist/cjs/hb-tab-pane.cjs.entry.js +1 -1
  89. package/dist/cjs/hb-table.cjs.entry.js +1 -1
  90. package/dist/cjs/hb-table.cjs.entry.js.map +1 -1
  91. package/dist/cjs/hb-tabs.cjs.entry.js +2 -2
  92. package/dist/cjs/hb-tag.cjs.entry.js +2 -2
  93. package/dist/cjs/hb-text.cjs.entry.js +2 -2
  94. package/dist/cjs/hb-time-picker.cjs.entry.js +4 -4
  95. package/dist/cjs/hb-time-select.cjs.entry.js +2 -2
  96. package/dist/cjs/hb-timeline.cjs.entry.js +1 -1
  97. package/dist/cjs/hb-tooltip.cjs.entry.js +18 -1
  98. package/dist/cjs/hb-tooltip.cjs.entry.js.map +1 -1
  99. package/dist/cjs/hb-transfer.cjs.entry.js +2 -2
  100. package/dist/cjs/hb-tree-select.cjs.entry.js +95 -18
  101. package/dist/cjs/hb-tree-select.cjs.entry.js.map +1 -1
  102. package/dist/cjs/hb-tree.cjs.entry.js +1 -1
  103. package/dist/cjs/hb-upload.cjs.entry.js +3 -3
  104. package/dist/cjs/hb-watermark.cjs.entry.js +1 -1
  105. package/dist/cjs/huibo-ui.cjs.js +1 -1
  106. package/dist/cjs/loader.cjs.js +1 -1
  107. package/dist/collection/collection-manifest.json +3 -3
  108. package/dist/collection/components/Affix/Affix.js +1 -1
  109. package/dist/collection/components/Avatar/Avatar.js +1 -1
  110. package/dist/collection/components/Backtop/Backtop.js +2 -2
  111. package/dist/collection/components/Badge/Badge.js +1 -1
  112. package/dist/collection/components/Breadcrumb/Breadcrumb.js +1 -1
  113. package/dist/collection/components/Breadcrumb/BreadcrumbItem.js +1 -1
  114. package/dist/collection/components/Button/Button.js +2 -2
  115. package/dist/collection/components/Calendar/Calendar.js +84 -10
  116. package/dist/collection/components/Calendar/Calendar.js.map +1 -1
  117. package/dist/collection/components/Calendar/calendar.css +16 -0
  118. package/dist/collection/components/Card/Card.js +1 -1
  119. package/dist/collection/components/Cascader/Cascader.js +374 -194
  120. package/dist/collection/components/Cascader/Cascader.js.map +1 -1
  121. package/dist/collection/components/Cascader/cascader.css +170 -16
  122. package/dist/collection/components/Checkbox/Checkbox.js +3 -3
  123. package/dist/collection/components/Checkbox/CheckboxGroup.js +2 -2
  124. package/dist/collection/components/Collapse/Collapse.js +1 -1
  125. package/dist/collection/components/Collapse/CollapseItem.js +1 -1
  126. package/dist/collection/components/ColorPicker/ColorPicker.js +92 -14
  127. package/dist/collection/components/ColorPicker/ColorPicker.js.map +1 -1
  128. package/dist/collection/components/ColorPicker/color-picker.css +13 -0
  129. package/dist/collection/components/ColorPickerPanel/ColorPickerPanel.js +2 -2
  130. package/dist/collection/components/ConfigProvider/ConfigProvider.js +1 -1
  131. package/dist/collection/components/Container/Aside.js +1 -1
  132. package/dist/collection/components/Container/Container.js +2 -2
  133. package/dist/collection/components/Container/Footer.js +1 -1
  134. package/dist/collection/components/Container/Header.js +1 -1
  135. package/dist/collection/components/Container/Main.js +1 -1
  136. package/dist/collection/components/DatePicker/DatePicker.js +89 -10
  137. package/dist/collection/components/DatePicker/DatePicker.js.map +1 -1
  138. package/dist/collection/components/DatePicker/date-picker.css +62 -2
  139. package/dist/collection/components/DatePickerPane/DatePickerPane.js +1 -1
  140. package/dist/collection/components/DateRangePicker/DateRangePicker.js +2 -2
  141. package/dist/collection/components/DateTimePicker/DateTimePicker.js +2 -2
  142. package/dist/collection/components/Descriptions/Descriptions.js +1 -1
  143. package/dist/collection/components/Descriptions/descriptions.css +22 -0
  144. package/dist/collection/components/Divider/Divider.js +2 -2
  145. package/dist/collection/components/Drawer/Drawer.js +1 -1
  146. package/dist/collection/components/Dropdown/Dropdown.js +83 -7
  147. package/dist/collection/components/Dropdown/Dropdown.js.map +1 -1
  148. package/dist/collection/components/Dropdown/dropdown.css +2 -1
  149. package/dist/collection/components/Empty/Empty.js +1 -1
  150. package/dist/collection/components/FloatButton/FloatButton.js +2 -2
  151. package/dist/collection/components/Form/Form.js +2 -2
  152. package/dist/collection/components/Form/FormItem.js +60 -9
  153. package/dist/collection/components/Form/FormItem.js.map +1 -1
  154. package/dist/collection/components/Form/form-item.css +49 -4
  155. package/dist/collection/components/Form/form.css +1 -0
  156. package/dist/collection/components/Image/Image.js +1 -1
  157. package/dist/collection/components/ImagePreview/ImagePreview.js +12 -8
  158. package/dist/collection/components/ImagePreview/ImagePreview.js.map +1 -1
  159. package/dist/collection/components/Input/Input.js +38 -2
  160. package/dist/collection/components/Input/Input.js.map +1 -1
  161. package/dist/collection/components/Input/input.css +21 -2
  162. package/dist/collection/components/InputNumber/InputNumber.js +5 -5
  163. package/dist/collection/components/InputTag/InputTag.js +2 -2
  164. package/dist/collection/components/Layout/Layout.js +87 -34
  165. package/dist/collection/components/Layout/Layout.js.map +1 -1
  166. package/dist/collection/components/Layout/Row.js +2 -2
  167. package/dist/collection/components/Layout/layout.css +524 -0
  168. package/dist/collection/components/Link/Link.js +2 -2
  169. package/dist/collection/components/Loading/Loading.js +2 -2
  170. package/dist/collection/components/Menu/Menu.js +2 -2
  171. package/dist/collection/components/Menu/MenuItem.js +2 -2
  172. package/dist/collection/components/Menu/SubMenu.js +4 -4
  173. package/dist/collection/components/Menu/menu.css +25 -0
  174. package/dist/collection/components/Message/Message.js +2 -2
  175. package/dist/collection/components/Notification/Notification.js +2 -2
  176. package/dist/collection/components/PageHeader/PageHeader.js +1 -1
  177. package/dist/collection/components/Pagination/Pagination.js +23 -7
  178. package/dist/collection/components/Pagination/Pagination.js.map +1 -1
  179. package/dist/collection/components/Pagination/pagination.css +23 -0
  180. package/dist/collection/components/Popconfirm/Popconfirm.js +44 -7
  181. package/dist/collection/components/Popconfirm/Popconfirm.js.map +1 -1
  182. package/dist/collection/components/Popover/Popover.js +29 -2
  183. package/dist/collection/components/Popover/Popover.js.map +1 -1
  184. package/dist/collection/components/Progress/Progress.js +1 -1
  185. package/dist/collection/components/Radio/Radio.js +2 -2
  186. package/dist/collection/components/Rate/Rate.js +45 -3
  187. package/dist/collection/components/Rate/Rate.js.map +1 -1
  188. package/dist/collection/components/Result/Result.js +1 -1
  189. package/dist/collection/components/Segmented/Segmented.js +51 -6
  190. package/dist/collection/components/Segmented/Segmented.js.map +1 -1
  191. package/dist/collection/components/Select/Select.js +46 -7
  192. package/dist/collection/components/Select/Select.js.map +1 -1
  193. package/dist/collection/components/Select/select.css +50 -4
  194. package/dist/collection/components/Slider/Slider.js +221 -21
  195. package/dist/collection/components/Slider/Slider.js.map +1 -1
  196. package/dist/collection/components/Slider/slider.css +58 -7
  197. package/dist/collection/components/Space/Space.js +2 -2
  198. package/dist/collection/components/Statistic/Statistic.js +1 -1
  199. package/dist/collection/components/Steps/Step.js +1 -1
  200. package/dist/collection/components/Steps/Steps.js +35 -8
  201. package/dist/collection/components/Steps/Steps.js.map +1 -1
  202. package/dist/collection/components/Switch/Switch.js +8 -3
  203. package/dist/collection/components/Switch/Switch.js.map +1 -1
  204. package/dist/collection/components/Switch/switch.css +45 -0
  205. package/dist/collection/components/Table/table.css +20 -0
  206. package/dist/collection/components/Tabs/TabPane.js +1 -1
  207. package/dist/collection/components/Tabs/Tabs.js +2 -2
  208. package/dist/collection/components/Tag/Tag.js +2 -2
  209. package/dist/collection/components/Text/Text.js +2 -2
  210. package/dist/collection/components/TimePicker/TimePicker.js +4 -4
  211. package/dist/collection/components/TimeSelect/TimeSelect.js +2 -2
  212. package/dist/collection/components/Timeline/Timeline.js +1 -1
  213. package/dist/collection/components/Tooltip/Tooltip.js +25 -2
  214. package/dist/collection/components/Tooltip/Tooltip.js.map +1 -1
  215. package/dist/collection/components/Transfer/Transfer.js +2 -2
  216. package/dist/collection/components/Tree/Tree.js +1 -1
  217. package/dist/collection/components/TreeSelect/TreeSelect.js +94 -17
  218. package/dist/collection/components/TreeSelect/TreeSelect.js.map +1 -1
  219. package/dist/collection/components/TreeSelect/tree-select.css +41 -7
  220. package/dist/collection/components/Upload/Upload.js +3 -3
  221. package/dist/collection/components/Watermark/Watermark.js +1 -1
  222. package/dist/collection/utils/date-helpers.js +6 -2
  223. package/dist/collection/utils/date-helpers.js.map +1 -1
  224. package/dist/components/hb-affix.js +1 -1
  225. package/dist/components/hb-aside.js +1 -1
  226. package/dist/components/hb-avatar.js +1 -1
  227. package/dist/components/hb-backtop.js +2 -2
  228. package/dist/components/hb-badge.js +1 -1
  229. package/dist/components/hb-breadcrumb-item.js +1 -1
  230. package/dist/components/hb-breadcrumb.js +1 -1
  231. package/dist/components/hb-button.js +2 -2
  232. package/dist/components/hb-calendar.js +80 -11
  233. package/dist/components/hb-calendar.js.map +1 -1
  234. package/dist/components/hb-card.js +1 -1
  235. package/dist/components/hb-cascader.js +273 -146
  236. package/dist/components/hb-cascader.js.map +1 -1
  237. package/dist/components/hb-checkbox-group.js +2 -2
  238. package/dist/components/hb-checkbox.js +3 -3
  239. package/dist/components/hb-collapse-item.js +1 -1
  240. package/dist/components/hb-collapse.js +1 -1
  241. package/dist/components/hb-color-picker-panel.js +2 -2
  242. package/dist/components/hb-color-picker.js +93 -15
  243. package/dist/components/hb-color-picker.js.map +1 -1
  244. package/dist/components/hb-config-provider.js +1 -1
  245. package/dist/components/hb-container.js +2 -2
  246. package/dist/components/hb-date-picker-pane.js +2 -2
  247. package/dist/components/hb-date-picker.js +87 -8
  248. package/dist/components/hb-date-picker.js.map +1 -1
  249. package/dist/components/hb-date-range-picker.js +3 -3
  250. package/dist/components/hb-date-time-picker.js +3 -3
  251. package/dist/components/hb-descriptions.js +2 -2
  252. package/dist/components/hb-descriptions.js.map +1 -1
  253. package/dist/components/hb-divider.js +2 -2
  254. package/dist/components/hb-drawer.js +1 -1
  255. package/dist/components/hb-dropdown.js +76 -7
  256. package/dist/components/hb-dropdown.js.map +1 -1
  257. package/dist/components/hb-empty.js +1 -1
  258. package/dist/components/hb-float-button.js +2 -2
  259. package/dist/components/hb-footer.js +1 -1
  260. package/dist/components/hb-form-item.js +59 -8
  261. package/dist/components/hb-form-item.js.map +1 -1
  262. package/dist/components/hb-form.js +3 -3
  263. package/dist/components/hb-form.js.map +1 -1
  264. package/dist/components/hb-header.js +1 -1
  265. package/dist/components/hb-icon.js +1 -89
  266. package/dist/components/hb-icon.js.map +1 -1
  267. package/dist/components/hb-image-preview.js +12 -8
  268. package/dist/components/hb-image-preview.js.map +1 -1
  269. package/dist/components/hb-image.js +1 -1
  270. package/dist/components/hb-input-number.js +5 -5
  271. package/dist/components/hb-input-tag.js +2 -2
  272. package/dist/components/hb-input.js +39 -3
  273. package/dist/components/hb-input.js.map +1 -1
  274. package/dist/components/hb-layout.js +36 -14
  275. package/dist/components/hb-layout.js.map +1 -1
  276. package/dist/components/hb-link.js +2 -2
  277. package/dist/components/hb-loading.js +2 -2
  278. package/dist/components/hb-main.js +1 -1
  279. package/dist/components/hb-menu-item.js +2 -2
  280. package/dist/components/hb-menu.js +3 -3
  281. package/dist/components/hb-menu.js.map +1 -1
  282. package/dist/components/hb-message.js +2 -2
  283. package/dist/components/hb-notification.js +2 -2
  284. package/dist/components/hb-page-header.js +1 -1
  285. package/dist/components/hb-pagination.js +25 -10
  286. package/dist/components/hb-pagination.js.map +1 -1
  287. package/dist/components/hb-popconfirm.js +37 -7
  288. package/dist/components/hb-popconfirm.js.map +1 -1
  289. package/dist/components/hb-popover.js +22 -2
  290. package/dist/components/hb-popover.js.map +1 -1
  291. package/dist/components/hb-progress.js +1 -1
  292. package/dist/components/hb-radio.js +2 -2
  293. package/dist/components/hb-rate.js +45 -3
  294. package/dist/components/hb-rate.js.map +1 -1
  295. package/dist/components/hb-result.js +1 -1
  296. package/dist/components/hb-row.js +2 -2
  297. package/dist/components/hb-segmented.js +41 -6
  298. package/dist/components/hb-segmented.js.map +1 -1
  299. package/dist/components/hb-select.js +47 -8
  300. package/dist/components/hb-select.js.map +1 -1
  301. package/dist/components/hb-slider.js +194 -21
  302. package/dist/components/hb-slider.js.map +1 -1
  303. package/dist/components/hb-space.js +2 -2
  304. package/dist/components/hb-statistic.js +1 -1
  305. package/dist/components/hb-step.js +1 -1
  306. package/dist/components/hb-steps.js +35 -8
  307. package/dist/components/hb-steps.js.map +1 -1
  308. package/dist/components/hb-sub-menu.js +4 -4
  309. package/dist/components/hb-switch.js +9 -4
  310. package/dist/components/hb-switch.js.map +1 -1
  311. package/dist/components/hb-tab-pane.js +1 -1
  312. package/dist/components/hb-table.js +1 -1
  313. package/dist/components/hb-table.js.map +1 -1
  314. package/dist/components/hb-tabs.js +2 -2
  315. package/dist/components/hb-tag.js +2 -2
  316. package/dist/components/hb-text.js +2 -2
  317. package/dist/components/hb-time-picker.js +4 -4
  318. package/dist/components/hb-time-select.js +2 -2
  319. package/dist/components/hb-timeline.js +1 -1
  320. package/dist/components/hb-tooltip.js +18 -1
  321. package/dist/components/hb-tooltip.js.map +1 -1
  322. package/dist/components/hb-transfer.js +2 -2
  323. package/dist/components/hb-tree-select.js +95 -18
  324. package/dist/components/hb-tree-select.js.map +1 -1
  325. package/dist/components/hb-tree.js +1 -1
  326. package/dist/components/hb-upload.js +3 -3
  327. package/dist/components/hb-watermark.js +1 -1
  328. package/dist/components/{p-cf94cbf6.js → p-08b4005c.js} +7 -3
  329. package/dist/components/p-08b4005c.js.map +1 -0
  330. package/dist/components/p-86d92faf.js +93 -0
  331. package/dist/components/p-86d92faf.js.map +1 -0
  332. package/dist/esm/{date-helpers-e4d85a67.js → date-helpers-44507189.js} +7 -3
  333. package/dist/esm/date-helpers-44507189.js.map +1 -0
  334. package/dist/esm/hb-affix.entry.js +1 -1
  335. package/dist/esm/hb-aside.entry.js +1 -1
  336. package/dist/esm/hb-avatar.entry.js +1 -1
  337. package/dist/esm/hb-backtop.entry.js +2 -2
  338. package/dist/esm/hb-badge.entry.js +1 -1
  339. package/dist/esm/hb-breadcrumb-item.entry.js +1 -1
  340. package/dist/esm/hb-breadcrumb.entry.js +1 -1
  341. package/dist/esm/hb-button.entry.js +2 -2
  342. package/dist/esm/hb-calendar.entry.js +78 -10
  343. package/dist/esm/hb-calendar.entry.js.map +1 -1
  344. package/dist/esm/hb-card.entry.js +1 -1
  345. package/dist/esm/hb-cascader.entry.js +270 -146
  346. package/dist/esm/hb-cascader.entry.js.map +1 -1
  347. package/dist/esm/hb-checkbox-group.entry.js +2 -2
  348. package/dist/esm/hb-checkbox.entry.js +3 -3
  349. package/dist/esm/hb-collapse-item.entry.js +1 -1
  350. package/dist/esm/hb-collapse.entry.js +1 -1
  351. package/dist/esm/hb-color-picker-panel.entry.js +2 -2
  352. package/dist/esm/hb-color-picker.entry.js +91 -14
  353. package/dist/esm/hb-color-picker.entry.js.map +1 -1
  354. package/dist/esm/hb-config-provider.entry.js +1 -1
  355. package/dist/esm/hb-container.entry.js +2 -2
  356. package/dist/esm/hb-date-picker-pane.entry.js +2 -2
  357. package/dist/esm/hb-date-picker.entry.js +85 -7
  358. package/dist/esm/hb-date-picker.entry.js.map +1 -1
  359. package/dist/esm/hb-date-range-picker.entry.js +3 -3
  360. package/dist/esm/hb-date-time-picker.entry.js +3 -3
  361. package/dist/esm/hb-descriptions.entry.js +2 -2
  362. package/dist/esm/hb-descriptions.entry.js.map +1 -1
  363. package/dist/esm/hb-divider.entry.js +2 -2
  364. package/dist/esm/hb-drawer.entry.js +1 -1
  365. package/dist/esm/hb-dropdown.entry.js +74 -6
  366. package/dist/esm/hb-dropdown.entry.js.map +1 -1
  367. package/dist/esm/hb-empty.entry.js +1 -1
  368. package/dist/esm/hb-float-button.entry.js +2 -2
  369. package/dist/esm/hb-footer.entry.js +1 -1
  370. package/dist/esm/hb-form-item.entry.js +59 -8
  371. package/dist/esm/hb-form-item.entry.js.map +1 -1
  372. package/dist/esm/hb-form.entry.js +3 -3
  373. package/dist/esm/hb-form.entry.js.map +1 -1
  374. package/dist/esm/hb-header.entry.js +1 -1
  375. package/dist/esm/hb-image-preview.entry.js +12 -8
  376. package/dist/esm/hb-image-preview.entry.js.map +1 -1
  377. package/dist/esm/hb-image.entry.js +1 -1
  378. package/dist/esm/hb-input-number.entry.js +5 -5
  379. package/dist/esm/hb-input-tag.entry.js +2 -2
  380. package/dist/esm/hb-input.entry.js +39 -3
  381. package/dist/esm/hb-input.entry.js.map +1 -1
  382. package/dist/esm/hb-layout.entry.js +36 -14
  383. package/dist/esm/hb-layout.entry.js.map +1 -1
  384. package/dist/esm/hb-link.entry.js +2 -2
  385. package/dist/esm/hb-loading.entry.js +2 -2
  386. package/dist/esm/hb-main.entry.js +1 -1
  387. package/dist/esm/hb-menu-item.entry.js +2 -2
  388. package/dist/esm/hb-menu.entry.js +3 -3
  389. package/dist/esm/hb-menu.entry.js.map +1 -1
  390. package/dist/esm/hb-message.entry.js +2 -2
  391. package/dist/esm/hb-notification.entry.js +2 -2
  392. package/dist/esm/hb-page-header.entry.js +1 -1
  393. package/dist/esm/hb-pagination.entry.js +21 -8
  394. package/dist/esm/hb-pagination.entry.js.map +1 -1
  395. package/dist/esm/hb-popconfirm.entry.js +37 -7
  396. package/dist/esm/hb-popconfirm.entry.js.map +1 -1
  397. package/dist/esm/hb-popover.entry.js +22 -2
  398. package/dist/esm/hb-popover.entry.js.map +1 -1
  399. package/dist/esm/hb-progress.entry.js +1 -1
  400. package/dist/esm/hb-radio.entry.js +2 -2
  401. package/dist/esm/hb-rate.entry.js +45 -3
  402. package/dist/esm/hb-rate.entry.js.map +1 -1
  403. package/dist/esm/hb-result.entry.js +1 -1
  404. package/dist/esm/hb-row.entry.js +2 -2
  405. package/dist/esm/hb-segmented.entry.js +40 -6
  406. package/dist/esm/hb-segmented.entry.js.map +1 -1
  407. package/dist/esm/hb-select.entry.js +47 -8
  408. package/dist/esm/hb-select.entry.js.map +1 -1
  409. package/dist/esm/hb-slider.entry.js +189 -20
  410. package/dist/esm/hb-slider.entry.js.map +1 -1
  411. package/dist/esm/hb-space.entry.js +2 -2
  412. package/dist/esm/hb-statistic.entry.js +1 -1
  413. package/dist/esm/hb-step.entry.js +1 -1
  414. package/dist/esm/hb-steps.entry.js +28 -7
  415. package/dist/esm/hb-steps.entry.js.map +1 -1
  416. package/dist/esm/hb-sub-menu.entry.js +4 -4
  417. package/dist/esm/hb-switch.entry.js +9 -4
  418. package/dist/esm/hb-switch.entry.js.map +1 -1
  419. package/dist/esm/hb-tab-pane.entry.js +1 -1
  420. package/dist/esm/hb-table.entry.js +1 -1
  421. package/dist/esm/hb-table.entry.js.map +1 -1
  422. package/dist/esm/hb-tabs.entry.js +2 -2
  423. package/dist/esm/hb-tag.entry.js +2 -2
  424. package/dist/esm/hb-text.entry.js +2 -2
  425. package/dist/esm/hb-time-picker.entry.js +4 -4
  426. package/dist/esm/hb-time-select.entry.js +2 -2
  427. package/dist/esm/hb-timeline.entry.js +1 -1
  428. package/dist/esm/hb-tooltip.entry.js +18 -1
  429. package/dist/esm/hb-tooltip.entry.js.map +1 -1
  430. package/dist/esm/hb-transfer.entry.js +2 -2
  431. package/dist/esm/hb-tree-select.entry.js +95 -18
  432. package/dist/esm/hb-tree-select.entry.js.map +1 -1
  433. package/dist/esm/hb-tree.entry.js +1 -1
  434. package/dist/esm/hb-upload.entry.js +3 -3
  435. package/dist/esm/hb-watermark.entry.js +1 -1
  436. package/dist/esm/huibo-ui.js +1 -1
  437. package/dist/esm/loader.js +1 -1
  438. package/dist/huibo-ui/huibo-ui.css +1 -1
  439. package/dist/huibo-ui/huibo-ui.esm.js +1 -1
  440. package/dist/huibo-ui/huibo-ui.esm.js.map +1 -1
  441. package/dist/huibo-ui/p-02f15843.entry.js +2 -0
  442. package/dist/huibo-ui/p-08b4005c.js +2 -0
  443. package/dist/huibo-ui/p-08b4005c.js.map +1 -0
  444. package/dist/huibo-ui/{p-fd19813c.entry.js → p-0d4b2997.entry.js} +2 -2
  445. package/dist/huibo-ui/{p-672076c3.entry.js → p-10f6c184.entry.js} +2 -2
  446. package/dist/huibo-ui/p-10f6c184.entry.js.map +1 -0
  447. package/dist/huibo-ui/{p-d7815b4f.entry.js → p-13010da2.entry.js} +2 -2
  448. package/dist/huibo-ui/{p-8c80a765.entry.js → p-15db24e9.entry.js} +2 -2
  449. package/dist/huibo-ui/{p-8d925e3d.entry.js → p-1b0fbe69.entry.js} +2 -2
  450. package/dist/huibo-ui/p-1f8db37a.entry.js +2 -0
  451. package/dist/huibo-ui/p-1f8db37a.entry.js.map +1 -0
  452. package/dist/huibo-ui/{p-f374d5a3.entry.js → p-20632186.entry.js} +2 -2
  453. package/dist/huibo-ui/{p-e6f2d71d.entry.js → p-20fc554b.entry.js} +2 -2
  454. package/dist/huibo-ui/{p-315feadf.entry.js → p-213b9de7.entry.js} +2 -2
  455. package/dist/huibo-ui/p-25fd7d5c.entry.js +2 -0
  456. package/dist/huibo-ui/p-25fd7d5c.entry.js.map +1 -0
  457. package/dist/huibo-ui/p-2811e603.entry.js +2 -0
  458. package/dist/huibo-ui/p-2811e603.entry.js.map +1 -0
  459. package/dist/huibo-ui/{p-64ca0980.entry.js → p-2943f5d0.entry.js} +2 -2
  460. package/dist/huibo-ui/p-2943f5d0.entry.js.map +1 -0
  461. package/dist/huibo-ui/{p-710f38de.entry.js → p-2b4556ff.entry.js} +2 -2
  462. package/dist/huibo-ui/{p-e0ab9010.entry.js → p-33de6878.entry.js} +2 -2
  463. package/dist/huibo-ui/{p-ebd04656.entry.js → p-3807da71.entry.js} +2 -2
  464. package/dist/huibo-ui/{p-6a1ec3ff.entry.js → p-3deff48c.entry.js} +2 -2
  465. package/dist/huibo-ui/{p-e2a8a396.entry.js → p-41d9c846.entry.js} +2 -2
  466. package/dist/huibo-ui/{p-0a033738.entry.js → p-47ef7a86.entry.js} +2 -2
  467. package/dist/huibo-ui/p-4d34e43e.entry.js +2 -0
  468. package/dist/huibo-ui/p-4d34e43e.entry.js.map +1 -0
  469. package/dist/huibo-ui/p-54aa2fd8.entry.js +2 -0
  470. package/dist/huibo-ui/p-54aa2fd8.entry.js.map +1 -0
  471. package/dist/huibo-ui/{p-88127de1.entry.js → p-55cd13eb.entry.js} +2 -2
  472. package/dist/huibo-ui/{p-58ebb9b3.entry.js → p-5c839288.entry.js} +2 -2
  473. package/dist/huibo-ui/{p-c1b4eacb.entry.js → p-60532a1f.entry.js} +2 -2
  474. package/dist/huibo-ui/{p-59b2e61c.entry.js → p-626b48f1.entry.js} +2 -2
  475. package/dist/huibo-ui/p-626b48f1.entry.js.map +1 -0
  476. package/dist/huibo-ui/p-639f167d.entry.js +2 -0
  477. package/dist/huibo-ui/p-639f167d.entry.js.map +1 -0
  478. package/dist/huibo-ui/{p-f1c084c5.entry.js → p-678b4212.entry.js} +2 -2
  479. package/dist/huibo-ui/p-6beb5b81.entry.js +2 -0
  480. package/dist/huibo-ui/p-6beb5b81.entry.js.map +1 -0
  481. package/dist/huibo-ui/{p-a0015341.entry.js → p-6bfeab80.entry.js} +2 -2
  482. package/dist/huibo-ui/p-6c8cf248.entry.js +2 -0
  483. package/dist/huibo-ui/p-6c8cf248.entry.js.map +1 -0
  484. package/dist/huibo-ui/{p-85f68526.entry.js → p-735bceef.entry.js} +2 -2
  485. package/dist/huibo-ui/{p-8b1ae77e.entry.js → p-746a11a3.entry.js} +2 -2
  486. package/dist/huibo-ui/p-76519752.entry.js +2 -0
  487. package/dist/huibo-ui/{p-d3939d44.entry.js → p-79af2efa.entry.js} +2 -2
  488. package/dist/huibo-ui/{p-e0768565.entry.js → p-7da14d7c.entry.js} +2 -2
  489. package/dist/huibo-ui/{p-8c987d57.entry.js → p-7f65dc36.entry.js} +2 -2
  490. package/dist/huibo-ui/{p-0e65e1bd.entry.js → p-86bdc48a.entry.js} +2 -2
  491. package/dist/huibo-ui/p-86bdc48a.entry.js.map +1 -0
  492. package/dist/huibo-ui/{p-d87fc21a.entry.js → p-88a6c905.entry.js} +2 -2
  493. package/dist/huibo-ui/{p-d64b91ef.entry.js → p-89ea1141.entry.js} +2 -2
  494. package/dist/huibo-ui/p-89ea1141.entry.js.map +1 -0
  495. package/dist/huibo-ui/p-8a202bc5.entry.js +2 -0
  496. package/dist/huibo-ui/p-8a202bc5.entry.js.map +1 -0
  497. package/dist/huibo-ui/p-8a8443b8.entry.js +2 -0
  498. package/dist/huibo-ui/p-8a8443b8.entry.js.map +1 -0
  499. package/dist/huibo-ui/p-8fd788c9.entry.js +2 -0
  500. package/dist/huibo-ui/p-8fd788c9.entry.js.map +1 -0
  501. package/dist/huibo-ui/{p-9319c650.entry.js → p-8fdbd17c.entry.js} +2 -2
  502. package/dist/huibo-ui/p-92521c31.entry.js +2 -0
  503. package/dist/huibo-ui/p-92521c31.entry.js.map +1 -0
  504. package/dist/huibo-ui/{p-c3e665f6.entry.js → p-9a5406f0.entry.js} +2 -2
  505. package/dist/huibo-ui/p-9a5406f0.entry.js.map +1 -0
  506. package/dist/huibo-ui/{p-c321c4aa.entry.js → p-a084b8e5.entry.js} +2 -2
  507. package/dist/huibo-ui/{p-5df47135.entry.js → p-a190ca89.entry.js} +2 -2
  508. package/dist/huibo-ui/{p-463de26d.entry.js → p-a8996d22.entry.js} +2 -2
  509. package/dist/huibo-ui/p-aa5e5e02.entry.js +2 -0
  510. package/dist/huibo-ui/p-aa5e5e02.entry.js.map +1 -0
  511. package/dist/huibo-ui/{p-6b381d0e.entry.js → p-ab9cf0e4.entry.js} +2 -2
  512. package/dist/huibo-ui/{p-477d8568.entry.js → p-aeae83af.entry.js} +2 -2
  513. package/dist/huibo-ui/{p-77017274.entry.js → p-af74667d.entry.js} +2 -2
  514. package/dist/huibo-ui/{p-b489a526.entry.js → p-b06c8020.entry.js} +2 -2
  515. package/dist/huibo-ui/{p-2e6584ea.entry.js → p-b468858e.entry.js} +2 -2
  516. package/dist/huibo-ui/{p-2b286698.entry.js → p-b7885d4a.entry.js} +2 -2
  517. package/dist/huibo-ui/{p-231a7335.entry.js → p-b8d87f7e.entry.js} +2 -2
  518. package/dist/huibo-ui/{p-8b027491.entry.js → p-c50ad398.entry.js} +2 -2
  519. package/dist/huibo-ui/p-c6c91664.entry.js +2 -0
  520. package/dist/huibo-ui/{p-c3e8893d.entry.js → p-c80f8ace.entry.js} +2 -2
  521. package/dist/huibo-ui/p-c80f8ace.entry.js.map +1 -0
  522. package/dist/huibo-ui/{p-476527c1.entry.js → p-c8e917db.entry.js} +2 -2
  523. package/dist/huibo-ui/p-c8e917db.entry.js.map +1 -0
  524. package/dist/huibo-ui/{p-c922d672.entry.js → p-cad57c2d.entry.js} +2 -2
  525. package/dist/huibo-ui/{p-a042e3d0.entry.js → p-ccd09d5a.entry.js} +2 -2
  526. package/dist/huibo-ui/p-d79a15b1.entry.js +2 -0
  527. package/dist/huibo-ui/p-d79a15b1.entry.js.map +1 -0
  528. package/dist/huibo-ui/{p-10c088f3.entry.js → p-d9c7c378.entry.js} +2 -2
  529. package/dist/huibo-ui/{p-80aca641.entry.js → p-dfccc7aa.entry.js} +2 -2
  530. package/dist/huibo-ui/{p-21682e92.entry.js → p-dfd144d8.entry.js} +2 -2
  531. package/dist/huibo-ui/{p-be48d2aa.entry.js → p-e039155d.entry.js} +2 -2
  532. package/dist/huibo-ui/{p-dfaf7e37.entry.js → p-e10fcfbe.entry.js} +2 -2
  533. package/dist/huibo-ui/{p-079a4130.entry.js → p-e3155cd7.entry.js} +2 -2
  534. package/dist/huibo-ui/{p-4001c08d.entry.js → p-e5cbfa9e.entry.js} +2 -2
  535. package/dist/huibo-ui/p-e5cbfa9e.entry.js.map +1 -0
  536. package/dist/huibo-ui/p-edbda423.entry.js +2 -0
  537. package/dist/huibo-ui/p-edbda423.entry.js.map +1 -0
  538. package/dist/huibo-ui/{p-465dcb4c.entry.js → p-f2c78699.entry.js} +2 -2
  539. package/dist/huibo-ui/{p-6ac242fe.entry.js → p-f4336be9.entry.js} +2 -2
  540. package/dist/huibo-ui/{p-332c8877.entry.js → p-f5969181.entry.js} +2 -2
  541. package/dist/huibo-ui/{p-f81ec512.entry.js → p-f6889710.entry.js} +2 -2
  542. package/dist/huibo-ui/{p-24ad7eec.entry.js → p-f9bb5217.entry.js} +2 -2
  543. package/dist/huibo-ui/{p-4d8b1404.entry.js → p-fd8301c6.entry.js} +2 -2
  544. package/dist/huibo-ui/{p-dd05cb2c.entry.js → p-fea20295.entry.js} +2 -2
  545. package/dist/types/components/Calendar/Calendar.d.ts +13 -1
  546. package/dist/types/components/Cascader/Cascader.d.ts +68 -90
  547. package/dist/types/components/ColorPicker/ColorPicker.d.ts +11 -0
  548. package/dist/types/components/DatePicker/DatePicker.d.ts +14 -3
  549. package/dist/types/components/Dropdown/Dropdown.d.ts +14 -1
  550. package/dist/types/components/Form/FormItem.d.ts +10 -0
  551. package/dist/types/components/ImagePreview/ImagePreview.d.ts +5 -1
  552. package/dist/types/components/Input/Input.d.ts +9 -0
  553. package/dist/types/components/Layout/Layout.d.ts +20 -10
  554. package/dist/types/components/Pagination/Pagination.d.ts +3 -0
  555. package/dist/types/components/Popconfirm/Popconfirm.d.ts +12 -0
  556. package/dist/types/components/Popover/Popover.d.ts +9 -0
  557. package/dist/types/components/Rate/Rate.d.ts +7 -0
  558. package/dist/types/components/Segmented/Segmented.d.ts +12 -1
  559. package/dist/types/components/Select/Select.d.ts +6 -0
  560. package/dist/types/components/Slider/Slider.d.ts +27 -1
  561. package/dist/types/components/Steps/Steps.d.ts +14 -6
  562. package/dist/types/components/Tooltip/Tooltip.d.ts +9 -1
  563. package/dist/types/components/TreeSelect/TreeSelect.d.ts +9 -0
  564. package/dist/types/components.d.ts +250 -94
  565. package/dist/types/utils/date-helpers.d.ts +1 -1
  566. package/package.json +8 -2
  567. package/readme.md +88 -73
  568. package/dist/cjs/date-helpers-904747ff.js.map +0 -1
  569. package/dist/components/p-cf94cbf6.js.map +0 -1
  570. package/dist/esm/date-helpers-e4d85a67.js.map +0 -1
  571. package/dist/huibo-ui/p-003cee87.entry.js +0 -2
  572. package/dist/huibo-ui/p-003cee87.entry.js.map +0 -1
  573. package/dist/huibo-ui/p-0bef78ac.entry.js +0 -2
  574. package/dist/huibo-ui/p-0bef78ac.entry.js.map +0 -1
  575. package/dist/huibo-ui/p-0e65e1bd.entry.js.map +0 -1
  576. package/dist/huibo-ui/p-0f189251.entry.js +0 -2
  577. package/dist/huibo-ui/p-0f189251.entry.js.map +0 -1
  578. package/dist/huibo-ui/p-1b5acd6d.entry.js +0 -2
  579. package/dist/huibo-ui/p-1b5acd6d.entry.js.map +0 -1
  580. package/dist/huibo-ui/p-3c7f73c8.entry.js +0 -2
  581. package/dist/huibo-ui/p-3c7f73c8.entry.js.map +0 -1
  582. package/dist/huibo-ui/p-4001c08d.entry.js.map +0 -1
  583. package/dist/huibo-ui/p-44c48246.entry.js +0 -2
  584. package/dist/huibo-ui/p-44c48246.entry.js.map +0 -1
  585. package/dist/huibo-ui/p-476527c1.entry.js.map +0 -1
  586. package/dist/huibo-ui/p-4d0dff15.entry.js +0 -2
  587. package/dist/huibo-ui/p-58d20809.entry.js +0 -2
  588. package/dist/huibo-ui/p-58d20809.entry.js.map +0 -1
  589. package/dist/huibo-ui/p-59b2e61c.entry.js.map +0 -1
  590. package/dist/huibo-ui/p-64ca0980.entry.js.map +0 -1
  591. package/dist/huibo-ui/p-672076c3.entry.js.map +0 -1
  592. package/dist/huibo-ui/p-756acbdb.entry.js +0 -2
  593. package/dist/huibo-ui/p-756acbdb.entry.js.map +0 -1
  594. package/dist/huibo-ui/p-75a93de3.entry.js +0 -2
  595. package/dist/huibo-ui/p-75a93de3.entry.js.map +0 -1
  596. package/dist/huibo-ui/p-769960f4.entry.js +0 -2
  597. package/dist/huibo-ui/p-8d615521.entry.js +0 -2
  598. package/dist/huibo-ui/p-8d615521.entry.js.map +0 -1
  599. package/dist/huibo-ui/p-953b9514.entry.js +0 -2
  600. package/dist/huibo-ui/p-ad6b0c6e.entry.js +0 -2
  601. package/dist/huibo-ui/p-ad6b0c6e.entry.js.map +0 -1
  602. package/dist/huibo-ui/p-c1a059d9.entry.js +0 -2
  603. package/dist/huibo-ui/p-c1a059d9.entry.js.map +0 -1
  604. package/dist/huibo-ui/p-c3e665f6.entry.js.map +0 -1
  605. package/dist/huibo-ui/p-c3e8893d.entry.js.map +0 -1
  606. package/dist/huibo-ui/p-cf94cbf6.js +0 -2
  607. package/dist/huibo-ui/p-cf94cbf6.js.map +0 -1
  608. package/dist/huibo-ui/p-d64b91ef.entry.js.map +0 -1
  609. package/dist/huibo-ui/p-e9490259.entry.js +0 -2
  610. package/dist/huibo-ui/p-e9490259.entry.js.map +0 -1
  611. package/dist/huibo-ui/p-ed0ff857.entry.js +0 -2
  612. package/dist/huibo-ui/p-ed0ff857.entry.js.map +0 -1
  613. package/dist/huibo-ui/p-f0ac7db5.entry.js +0 -2
  614. package/dist/huibo-ui/p-f0ac7db5.entry.js.map +0 -1
  615. /package/dist/huibo-ui/{p-4d0dff15.entry.js.map → p-02f15843.entry.js.map} +0 -0
  616. /package/dist/huibo-ui/{p-fd19813c.entry.js.map → p-0d4b2997.entry.js.map} +0 -0
  617. /package/dist/huibo-ui/{p-d7815b4f.entry.js.map → p-13010da2.entry.js.map} +0 -0
  618. /package/dist/huibo-ui/{p-8c80a765.entry.js.map → p-15db24e9.entry.js.map} +0 -0
  619. /package/dist/huibo-ui/{p-8d925e3d.entry.js.map → p-1b0fbe69.entry.js.map} +0 -0
  620. /package/dist/huibo-ui/{p-f374d5a3.entry.js.map → p-20632186.entry.js.map} +0 -0
  621. /package/dist/huibo-ui/{p-e6f2d71d.entry.js.map → p-20fc554b.entry.js.map} +0 -0
  622. /package/dist/huibo-ui/{p-315feadf.entry.js.map → p-213b9de7.entry.js.map} +0 -0
  623. /package/dist/huibo-ui/{p-710f38de.entry.js.map → p-2b4556ff.entry.js.map} +0 -0
  624. /package/dist/huibo-ui/{p-e0ab9010.entry.js.map → p-33de6878.entry.js.map} +0 -0
  625. /package/dist/huibo-ui/{p-ebd04656.entry.js.map → p-3807da71.entry.js.map} +0 -0
  626. /package/dist/huibo-ui/{p-6a1ec3ff.entry.js.map → p-3deff48c.entry.js.map} +0 -0
  627. /package/dist/huibo-ui/{p-e2a8a396.entry.js.map → p-41d9c846.entry.js.map} +0 -0
  628. /package/dist/huibo-ui/{p-0a033738.entry.js.map → p-47ef7a86.entry.js.map} +0 -0
  629. /package/dist/huibo-ui/{p-88127de1.entry.js.map → p-55cd13eb.entry.js.map} +0 -0
  630. /package/dist/huibo-ui/{p-58ebb9b3.entry.js.map → p-5c839288.entry.js.map} +0 -0
  631. /package/dist/huibo-ui/{p-c1b4eacb.entry.js.map → p-60532a1f.entry.js.map} +0 -0
  632. /package/dist/huibo-ui/{p-f1c084c5.entry.js.map → p-678b4212.entry.js.map} +0 -0
  633. /package/dist/huibo-ui/{p-a0015341.entry.js.map → p-6bfeab80.entry.js.map} +0 -0
  634. /package/dist/huibo-ui/{p-85f68526.entry.js.map → p-735bceef.entry.js.map} +0 -0
  635. /package/dist/huibo-ui/{p-8b1ae77e.entry.js.map → p-746a11a3.entry.js.map} +0 -0
  636. /package/dist/huibo-ui/{p-953b9514.entry.js.map → p-76519752.entry.js.map} +0 -0
  637. /package/dist/huibo-ui/{p-d3939d44.entry.js.map → p-79af2efa.entry.js.map} +0 -0
  638. /package/dist/huibo-ui/{p-e0768565.entry.js.map → p-7da14d7c.entry.js.map} +0 -0
  639. /package/dist/huibo-ui/{p-8c987d57.entry.js.map → p-7f65dc36.entry.js.map} +0 -0
  640. /package/dist/huibo-ui/{p-d87fc21a.entry.js.map → p-88a6c905.entry.js.map} +0 -0
  641. /package/dist/huibo-ui/{p-9319c650.entry.js.map → p-8fdbd17c.entry.js.map} +0 -0
  642. /package/dist/huibo-ui/{p-c321c4aa.entry.js.map → p-a084b8e5.entry.js.map} +0 -0
  643. /package/dist/huibo-ui/{p-5df47135.entry.js.map → p-a190ca89.entry.js.map} +0 -0
  644. /package/dist/huibo-ui/{p-463de26d.entry.js.map → p-a8996d22.entry.js.map} +0 -0
  645. /package/dist/huibo-ui/{p-6b381d0e.entry.js.map → p-ab9cf0e4.entry.js.map} +0 -0
  646. /package/dist/huibo-ui/{p-477d8568.entry.js.map → p-aeae83af.entry.js.map} +0 -0
  647. /package/dist/huibo-ui/{p-77017274.entry.js.map → p-af74667d.entry.js.map} +0 -0
  648. /package/dist/huibo-ui/{p-b489a526.entry.js.map → p-b06c8020.entry.js.map} +0 -0
  649. /package/dist/huibo-ui/{p-2e6584ea.entry.js.map → p-b468858e.entry.js.map} +0 -0
  650. /package/dist/huibo-ui/{p-2b286698.entry.js.map → p-b7885d4a.entry.js.map} +0 -0
  651. /package/dist/huibo-ui/{p-231a7335.entry.js.map → p-b8d87f7e.entry.js.map} +0 -0
  652. /package/dist/huibo-ui/{p-8b027491.entry.js.map → p-c50ad398.entry.js.map} +0 -0
  653. /package/dist/huibo-ui/{p-769960f4.entry.js.map → p-c6c91664.entry.js.map} +0 -0
  654. /package/dist/huibo-ui/{p-c922d672.entry.js.map → p-cad57c2d.entry.js.map} +0 -0
  655. /package/dist/huibo-ui/{p-a042e3d0.entry.js.map → p-ccd09d5a.entry.js.map} +0 -0
  656. /package/dist/huibo-ui/{p-10c088f3.entry.js.map → p-d9c7c378.entry.js.map} +0 -0
  657. /package/dist/huibo-ui/{p-80aca641.entry.js.map → p-dfccc7aa.entry.js.map} +0 -0
  658. /package/dist/huibo-ui/{p-21682e92.entry.js.map → p-dfd144d8.entry.js.map} +0 -0
  659. /package/dist/huibo-ui/{p-be48d2aa.entry.js.map → p-e039155d.entry.js.map} +0 -0
  660. /package/dist/huibo-ui/{p-dfaf7e37.entry.js.map → p-e10fcfbe.entry.js.map} +0 -0
  661. /package/dist/huibo-ui/{p-079a4130.entry.js.map → p-e3155cd7.entry.js.map} +0 -0
  662. /package/dist/huibo-ui/{p-465dcb4c.entry.js.map → p-f2c78699.entry.js.map} +0 -0
  663. /package/dist/huibo-ui/{p-6ac242fe.entry.js.map → p-f4336be9.entry.js.map} +0 -0
  664. /package/dist/huibo-ui/{p-332c8877.entry.js.map → p-f5969181.entry.js.map} +0 -0
  665. /package/dist/huibo-ui/{p-f81ec512.entry.js.map → p-f6889710.entry.js.map} +0 -0
  666. /package/dist/huibo-ui/{p-24ad7eec.entry.js.map → p-f9bb5217.entry.js.map} +0 -0
  667. /package/dist/huibo-ui/{p-4d8b1404.entry.js.map → p-fd8301c6.entry.js.map} +0 -0
  668. /package/dist/huibo-ui/{p-dd05cb2c.entry.js.map → p-fea20295.entry.js.map} +0 -0
@@ -1,7 +1,7 @@
1
1
  import { h } from "@stencil/core";
2
2
  /**
3
3
  * Slider 滑块组件
4
- * 通过拖动滑块在一个固定区间内进行选择
4
+ * 通过拖动滑块在一个固定区间内进行选择,支持单滑块/双滑块(range)/竖向/刻度。
5
5
  */
6
6
  export class Slider {
7
7
  el;
@@ -52,12 +52,20 @@ export class Slider {
52
52
  * 高度,竖向模式时必填
53
53
  */
54
54
  height;
55
+ /**
56
+ * 刻度标记(对齐 antd marks)
57
+ */
58
+ marks;
55
59
  dragging = false;
56
60
  currentValue = 0;
57
61
  tooltipVisible = false;
58
62
  tooltipValue = 0;
63
+ /** range 模式下当前拖动的是哪个手柄(0/1),用于 tooltip 定位与渲染 */
64
+ activeHandle = 0;
59
65
  sliderRef;
60
66
  isDragging = false;
67
+ /** 拖动期间锁定的手柄索引(鼠标按下时确定) */
68
+ dragHandle = null;
61
69
  /**
62
70
  * 值改变事件
63
71
  */
@@ -67,12 +75,28 @@ export class Slider {
67
75
  */
68
76
  hbInput;
69
77
  componentDidLoad() {
70
- this.currentValue = this.modelValue;
78
+ this.currentValue = this.normalizeInitial(this.modelValue);
71
79
  this.addEventListeners();
72
80
  }
73
81
  disconnectedCallback() {
74
82
  this.removeEventListeners();
75
83
  }
84
+ /** 外部更新 modelValue 时同步内部 currentValue(对齐 antd 受控语义) */
85
+ handleModelChange() {
86
+ if (!this.isDragging) {
87
+ this.currentValue = this.normalizeInitial(this.modelValue);
88
+ }
89
+ }
90
+ /** range 模式下确保 currentValue 为 [min, max] 形状的有序数组 */
91
+ normalizeInitial(v) {
92
+ if (this.range) {
93
+ if (Array.isArray(v) && v.length === 2) {
94
+ return v[0] <= v[1] ? [v[0], v[1]] : [v[1], v[0]];
95
+ }
96
+ return [this.min, this.max];
97
+ }
98
+ return typeof v === 'number' ? v : (Array.isArray(v) ? v[0] ?? this.min : this.min);
99
+ }
76
100
  addEventListeners() {
77
101
  document.addEventListener('mousemove', this.handleMouseMove);
78
102
  document.addEventListener('mouseup', this.handleMouseUp);
@@ -82,18 +106,31 @@ export class Slider {
82
106
  document.removeEventListener('mouseup', this.handleMouseUp);
83
107
  }
84
108
  getPercentage(value) {
109
+ if (this.max === this.min)
110
+ return 0;
85
111
  return ((value - this.min) / (this.max - this.min)) * 100;
86
112
  }
87
113
  getValueFromPercentage(percentage) {
88
114
  const value = this.min + (percentage / 100) * (this.max - this.min);
89
- return Math.round(value / this.step) * this.step;
115
+ const snapped = Math.round(value / this.step) * this.step;
116
+ return Math.max(this.min, Math.min(this.max, snapped));
117
+ }
118
+ /** 鼠标按下时根据落点决定拖哪个手柄(range:更近的那个) */
119
+ resolveHandle(percentage) {
120
+ if (!this.range)
121
+ return 0;
122
+ const vals = this.currentValue;
123
+ const leftPct = this.getPercentage(vals[0]);
124
+ const rightPct = this.getPercentage(vals[1]);
125
+ return Math.abs(percentage - leftPct) <= Math.abs(percentage - rightPct) ? 0 : 1;
90
126
  }
91
- handleMouseDown = (e) => {
127
+ handleMouseDown = (e, handle = null) => {
92
128
  if (this.disabled)
93
129
  return;
94
130
  e.preventDefault();
95
131
  this.isDragging = true;
96
132
  this.dragging = true;
133
+ this.dragHandle = handle;
97
134
  this.handleDrag(e);
98
135
  };
99
136
  handleMouseMove = (e) => {
@@ -107,6 +144,7 @@ export class Slider {
107
144
  this.isDragging = false;
108
145
  this.dragging = false;
109
146
  this.tooltipVisible = false;
147
+ this.dragHandle = null;
110
148
  this.hbChange.emit(this.currentValue);
111
149
  };
112
150
  handleDrag(e) {
@@ -119,11 +157,23 @@ export class Slider {
119
157
  const clampedPercentage = Math.max(0, Math.min(100, percentage * 100));
120
158
  const value = this.getValueFromPercentage(clampedPercentage);
121
159
  if (this.range) {
122
- const values = this.currentValue;
123
- // 简化处理:更新第一个值
124
- this.currentValue = [value, values[1] || this.max];
160
+ const vals = this.currentValue;
161
+ // 优先用 mousedown 时锁定的手柄;未锁定(点击 runway)则按落点就近
162
+ const handle = this.dragHandle !== null ? this.dragHandle : this.resolveHandle(clampedPercentage);
163
+ this.activeHandle = handle;
164
+ let [lo, hi] = [vals[0], vals[1]];
165
+ if (handle === 0) {
166
+ lo = Math.min(value, hi);
167
+ }
168
+ else {
169
+ hi = Math.max(value, lo);
170
+ }
171
+ this.currentValue = [lo, hi];
172
+ this.tooltipValue = handle === 0 ? lo : hi;
173
+ this.tooltipVisible = true;
125
174
  }
126
175
  else {
176
+ this.activeHandle = 0;
127
177
  this.currentValue = value;
128
178
  this.tooltipValue = value;
129
179
  this.tooltipVisible = true;
@@ -131,29 +181,145 @@ export class Slider {
131
181
  this.modelValue = this.currentValue;
132
182
  this.hbInput.emit(this.currentValue);
133
183
  }
184
+ /** 键盘可访问:方向键调整当前手柄,对齐 WAI-ARIA slider pattern */
185
+ handleKeyDown = (e) => {
186
+ if (this.disabled)
187
+ return;
188
+ const { key } = e;
189
+ const isDecrease = key === 'ArrowLeft' || key === 'ArrowDown';
190
+ const isIncrease = key === 'ArrowRight' || key === 'ArrowUp';
191
+ const isBigDecrease = key === 'PageDown' || key === 'Home';
192
+ const isBigIncrease = key === 'PageUp' || key === 'End';
193
+ if (!isDecrease && !isIncrease && !isBigDecrease && !isBigIncrease)
194
+ return;
195
+ e.preventDefault();
196
+ const delta = isBigDecrease ? -this.max :
197
+ isBigIncrease ? this.max :
198
+ (isDecrease ? -1 : 1) * this.step;
199
+ if (this.range) {
200
+ const vals = this.currentValue;
201
+ let [lo, hi] = [vals[0], vals[1]];
202
+ if (this.activeHandle === 0) {
203
+ lo = Math.max(this.min, Math.min(lo + delta, hi));
204
+ }
205
+ else {
206
+ hi = Math.min(this.max, Math.max(hi + delta, lo));
207
+ }
208
+ this.currentValue = [lo, hi];
209
+ this.tooltipValue = this.activeHandle === 0 ? lo : hi;
210
+ this.tooltipVisible = true;
211
+ }
212
+ else {
213
+ const next = Math.max(this.min, Math.min(this.currentValue + delta, this.max));
214
+ this.currentValue = next;
215
+ this.tooltipValue = next;
216
+ this.tooltipVisible = true;
217
+ }
218
+ this.modelValue = this.currentValue;
219
+ this.hbChange.emit(this.currentValue);
220
+ this.hbInput.emit(this.currentValue);
221
+ };
134
222
  formatValue(value) {
135
223
  if (this.formatTooltip) {
136
224
  return this.formatTooltip(value);
137
225
  }
138
226
  return String(value);
139
227
  }
228
+ /** 规范化 marks 为 [{value,label}] 数组 */
229
+ get markList() {
230
+ if (!this.marks)
231
+ return [];
232
+ if (Array.isArray(this.marks))
233
+ return this.marks;
234
+ return Object.entries(this.marks).map(([k, v]) => ({ value: Number(k), label: v }));
235
+ }
140
236
  render() {
141
- const percentage = this.range
142
- ? this.getPercentage(this.currentValue[0])
143
- : this.getPercentage(this.currentValue);
144
- return (h("div", { key: 'b8ee15c3375f6786c252e6755ff6dd5d4ab0023f', class: {
237
+ const range = this.range;
238
+ const singlePct = this.getPercentage(this.currentValue);
239
+ const rangeVals = range ? this.currentValue : [0, 0];
240
+ const leftPct = range ? this.getPercentage(rangeVals[0]) : 0;
241
+ const rightPct = range ? this.getPercentage(rangeVals[1]) : singlePct;
242
+ // bar:单滑块从 min 到 value;range 从 lo 到 hi
243
+ const barStart = range ? leftPct : 0;
244
+ const barSize = range ? rightPct - leftPct : singlePct;
245
+ const posProp = this.vertical ? 'bottom' : 'left';
246
+ const sizeProp = this.vertical ? 'height' : 'width';
247
+ const renderHandle = (handle, pct) => {
248
+ const tooltipVal = range ? rangeVals[handle] : this.currentValue;
249
+ const isActive = this.tooltipVisible && (range ? this.activeHandle === handle : true);
250
+ return (h("div", { class: {
251
+ 'hb-slider__button-wrapper': true,
252
+ 'hb-slider__button-wrapper--hover': isActive,
253
+ }, style: { [posProp]: `${pct}%` }, onMouseDown: (e) => this.handleMouseDown(e, handle), onTouchStart: (e) => this.handleTouchStart(e, handle), role: "slider", tabindex: this.disabled ? -1 : 0, "aria-valuemin": this.min, "aria-valuemax": this.max, "aria-valuenow": tooltipVal, "aria-valuetext": this.formatValue(tooltipVal), "aria-orientation": this.vertical ? 'vertical' : 'horizontal', "aria-disabled": this.disabled ? 'true' : 'false', onKeyDown: this.handleKeyDown }, this.showTooltip && isActive && (h("div", { class: "hb-slider__tooltip" }, this.formatValue(this.tooltipValue))), h("div", { class: "hb-slider__button" })));
254
+ };
255
+ return (h("div", { class: {
145
256
  'hb-slider': true,
146
257
  'hb-slider--vertical': this.vertical,
147
258
  'hb-slider--disabled': this.disabled,
148
- }, style: this.vertical && this.height ? { height: this.height } : undefined }, h("div", { key: 'c75f1194e3a8a630d4ffa0cb82579fddc42e2461', class: "hb-slider__runway", ref: (el) => (this.sliderRef = el), onMouseDown: this.handleMouseDown }, h("div", { key: '5dcf4d4807e85cd4a96fd919d4b9d999f0d837d7', class: "hb-slider__bar", style: {
149
- [this.vertical ? 'height' : 'width']: `${percentage}%`,
150
- [this.vertical ? 'bottom' : 'left']: '0',
151
- } }), h("div", { key: 'e10dc431c839183de585debfd9991a2d75922cc9', class: {
152
- 'hb-slider__button-wrapper': true,
153
- 'hb-slider__button-wrapper--hover': this.tooltipVisible,
154
- }, style: {
155
- [this.vertical ? 'bottom' : 'left']: `${percentage}%`,
156
- } }, this.showTooltip && this.tooltipVisible && (h("div", { key: '270c0d8dd46b03fac7b4b8e62265a14158de18b7', class: "hb-slider__tooltip" }, this.formatValue(this.tooltipValue))), h("div", { key: '20772f2a08bed8c009c119b1c148ff0448c9a288', class: "hb-slider__button" })))));
259
+ 'hb-slider--with-marks': this.markList.length > 0,
260
+ }, style: this.vertical && this.height ? { height: this.height } : undefined }, h("div", { class: "hb-slider__runway", ref: (el) => (this.sliderRef = el), onMouseDown: (e) => this.handleMouseDown(e, null), onTouchStart: (e) => this.handleTouchStart(e, null) }, h("div", { class: "hb-slider__bar", style: {
261
+ [sizeProp]: `${Math.max(0, barSize)}%`,
262
+ [posProp]: `${barStart}%`,
263
+ } }), this.markList.map(m => {
264
+ const pct = this.getPercentage(m.value);
265
+ return (h("div", { class: "hb-slider__mark", style: { [posProp]: `${pct}%` }, "aria-hidden": "true" }, m.label && h("span", { class: "hb-slider__mark-label" }, m.label)));
266
+ }), range ? renderHandle(0, leftPct) : null, renderHandle(range ? 1 : 0, range ? rightPct : singlePct))));
267
+ }
268
+ /** 触屏支持:把 touch 事件映射到 mouse 同等逻辑(移动端可用) */
269
+ handleTouchStart = (e, handle) => {
270
+ if (this.disabled)
271
+ return;
272
+ e.preventDefault();
273
+ const touch = e.touches[0];
274
+ this.isDragging = true;
275
+ this.dragging = true;
276
+ this.dragHandle = handle;
277
+ this.dragFromTouch(touch.clientX, touch.clientY);
278
+ const move = (ev) => {
279
+ const t = ev.touches[0];
280
+ this.dragFromTouch(t.clientX, t.clientY);
281
+ };
282
+ const end = () => {
283
+ this.isDragging = false;
284
+ this.dragging = false;
285
+ this.tooltipVisible = false;
286
+ this.dragHandle = null;
287
+ this.hbChange.emit(this.currentValue);
288
+ document.removeEventListener('touchmove', move);
289
+ document.removeEventListener('touchend', end);
290
+ };
291
+ document.addEventListener('touchmove', move, { passive: false });
292
+ document.addEventListener('touchend', end);
293
+ };
294
+ dragFromTouch(clientX, clientY) {
295
+ if (!this.sliderRef)
296
+ return;
297
+ const rect = this.sliderRef.getBoundingClientRect();
298
+ const percentage = this.vertical
299
+ ? 1 - (clientY - rect.top) / rect.height
300
+ : (clientX - rect.left) / rect.width;
301
+ const clamped = Math.max(0, Math.min(100, percentage * 100));
302
+ const value = this.getValueFromPercentage(clamped);
303
+ if (this.range) {
304
+ const vals = this.currentValue;
305
+ const handle = this.dragHandle !== null ? this.dragHandle : this.resolveHandle(clamped);
306
+ this.activeHandle = handle;
307
+ let [lo, hi] = [vals[0], vals[1]];
308
+ if (handle === 0)
309
+ lo = Math.min(value, hi);
310
+ else
311
+ hi = Math.max(value, lo);
312
+ this.currentValue = [lo, hi];
313
+ this.tooltipValue = handle === 0 ? lo : hi;
314
+ this.tooltipVisible = true;
315
+ }
316
+ else {
317
+ this.currentValue = value;
318
+ this.tooltipValue = value;
319
+ this.tooltipVisible = true;
320
+ }
321
+ this.modelValue = this.currentValue;
322
+ this.hbInput.emit(this.currentValue);
157
323
  }
158
324
  static get is() { return "hb-slider"; }
159
325
  static get encapsulation() { return "shadow"; }
@@ -385,6 +551,33 @@ export class Slider {
385
551
  "setter": false,
386
552
  "attribute": "height",
387
553
  "reflect": false
554
+ },
555
+ "marks": {
556
+ "type": "unknown",
557
+ "mutable": false,
558
+ "complexType": {
559
+ "original": "SliderMark[] | Record<number, string>",
560
+ "resolved": "SliderMark[] | { [x: number]: string; }",
561
+ "references": {
562
+ "SliderMark": {
563
+ "location": "local",
564
+ "path": "/Users/vscoderwhy/Desktop/product/web-common/huibo-ui/src/components/Slider/Slider.tsx",
565
+ "id": "src/components/Slider/Slider.tsx::SliderMark"
566
+ },
567
+ "Record": {
568
+ "location": "global",
569
+ "id": "global::Record"
570
+ }
571
+ }
572
+ },
573
+ "required": false,
574
+ "optional": true,
575
+ "docs": {
576
+ "tags": [],
577
+ "text": "\u523B\u5EA6\u6807\u8BB0\uFF08\u5BF9\u9F50 antd marks\uFF09"
578
+ },
579
+ "getter": false,
580
+ "setter": false
388
581
  }
389
582
  };
390
583
  }
@@ -393,7 +586,8 @@ export class Slider {
393
586
  "dragging": {},
394
587
  "currentValue": {},
395
588
  "tooltipVisible": {},
396
- "tooltipValue": {}
589
+ "tooltipValue": {},
590
+ "activeHandle": {}
397
591
  };
398
592
  }
399
593
  static get events() {
@@ -430,5 +624,11 @@ export class Slider {
430
624
  }];
431
625
  }
432
626
  static get elementRef() { return "el"; }
627
+ static get watchers() {
628
+ return [{
629
+ "propName": "modelValue",
630
+ "methodName": "handleModelChange"
631
+ }];
632
+ }
433
633
  }
434
634
  //# sourceMappingURL=Slider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Slider.js","sourceRoot":"","sources":["../../../src/components/Slider/Slider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAgB,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExF;;;GAGG;AAMH,MAAM,OAAO,MAAM;IACN,EAAE,CAAc;IAE3B;;OAEG;IACsB,UAAU,GAAsB,CAAC,CAAC;IAE3D;;;OAGG;IACK,GAAG,GAAW,CAAC,CAAC;IAExB;;;OAGG;IACK,GAAG,GAAW,GAAG,CAAC;IAE1B;;;OAGG;IACK,IAAI,GAAW,CAAC,CAAC;IAEzB;;;OAGG;IACK,WAAW,GAAY,IAAI,CAAC;IAEpC;;OAEG;IACK,aAAa,CAA6B;IAElD;;;OAGG;IACK,QAAQ,GAAY,KAAK,CAAC;IAElC;;;OAGG;IACK,KAAK,GAAY,KAAK,CAAC;IAE/B;;;OAGG;IACK,QAAQ,GAAY,KAAK,CAAC;IAElC;;OAEG;IACK,MAAM,CAAU;IAEf,QAAQ,GAAY,KAAK,CAAC;IAC1B,YAAY,GAAsB,CAAC,CAAC;IACpC,cAAc,GAAY,KAAK,CAAC;IAChC,YAAY,GAAW,CAAC,CAAC;IAE1B,SAAS,CAAkB;IAC3B,UAAU,GAAY,KAAK,CAAC;IAEpC;;OAEG;IACM,QAAQ,CAAkC;IAEnD;;OAEG;IACM,OAAO,CAAkC;IAElD,gBAAgB;QACd,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAED,oBAAoB;QAClB,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC;IAEO,iBAAiB;QACvB,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAC7D,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IAC3D,CAAC;IAEO,oBAAoB;QAC1B,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAChE,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IAC9D,CAAC;IAEO,aAAa,CAAC,KAAa;QACjC,OAAO,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;IAC5D,CAAC;IAEO,sBAAsB,CAAC,UAAkB;QAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QACpE,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;IACnD,CAAC;IAEO,eAAe,GAAG,CAAC,CAAa,EAAE,EAAE;QAC1C,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC1B,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC,CAAC;IAEM,eAAe,GAAG,CAAC,CAAa,EAAE,EAAE;QAC1C,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,OAAO;QAC7B,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC,CAAC;IAEM,aAAa,GAAG,GAAG,EAAE;QAC3B,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,OAAO;QAC7B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACxC,CAAC,CAAC;IAEM,UAAU,CAAC,CAAa;QAC9B,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO;QAE5B,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,qBAAqB,EAAE,CAAC;QACpD,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ;YAC9B,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM;YAC1C,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;QAEzC,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,GAAG,GAAG,CAAC,CAAC,CAAC;QACvE,MAAM,KAAK,GAAG,IAAI,CAAC,sBAAsB,CAAC,iBAAiB,CAAC,CAAC;QAE7D,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,IAAI,CAAC,YAAwB,CAAC;YAC7C,cAAc;YACd,IAAI,CAAC,YAAY,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;QACrD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC7B,CAAC;QAED,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC;QACpC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACvC,CAAC;IAEO,WAAW,CAAC,KAAa;QAC/B,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC;QACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAED,MAAM;QACJ,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK;YAC3B,CAAC,CAAC,IAAI,CAAC,aAAa,CAAE,IAAI,CAAC,YAAyB,CAAC,CAAC,CAAC,CAAC;YACxD,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAsB,CAAC,CAAC;QAEpD,OAAO,CACL,4DACE,KAAK,EAAE;gBACL,WAAW,EAAE,IAAI;gBACjB,qBAAqB,EAAE,IAAI,CAAC,QAAQ;gBACpC,qBAAqB,EAAE,IAAI,CAAC,QAAQ;aACrC,EACD,KAAK,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS;YAEzE,4DACE,KAAK,EAAC,mBAAmB,EACzB,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,EAClC,WAAW,EAAE,IAAI,CAAC,eAAe;gBAEjC,4DACE,KAAK,EAAC,gBAAgB,EACtB,KAAK,EAAE;wBACL,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,GAAG,UAAU,GAAG;wBACtD,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG;qBACzC,GACI;gBACP,4DACE,KAAK,EAAE;wBACL,2BAA2B,EAAE,IAAI;wBACjC,kCAAkC,EAAE,IAAI,CAAC,cAAc;qBACxD,EACD,KAAK,EAAE;wBACL,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,UAAU,GAAG;qBACtD;oBAEA,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,cAAc,IAAI,CAC1C,4DAAK,KAAK,EAAC,oBAAoB,IAC5B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAChC,CACP;oBACD,4DAAK,KAAK,EAAC,mBAAmB,GAAO,CACjC,CACF,CACF,CACP,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, h, Prop, Event, EventEmitter, State, Element } from '@stencil/core';\n\n/**\n * Slider 滑块组件\n * 通过拖动滑块在一个固定区间内进行选择\n */\n@Component({\n tag: 'hb-slider',\n styleUrl: 'slider.css',\n shadow: true,\n})\nexport class Slider {\n @Element() el: HTMLElement;\n\n /**\n * 绑定值\n */\n @Prop({ mutable: true }) modelValue: number | number[] = 0;\n\n /**\n * 最小值\n * @default 0\n */\n @Prop() min: number = 0;\n\n /**\n * 最大值\n * @default 100\n */\n @Prop() max: number = 100;\n\n /**\n * 步长\n * @default 1\n */\n @Prop() step: number = 1;\n\n /**\n * 是否显示工具提示\n * @default true\n */\n @Prop() showTooltip: boolean = true;\n\n /**\n * 格式化 tooltip message\n */\n @Prop() formatTooltip?: (value: number) => string;\n\n /**\n * 是否禁用\n * @default false\n */\n @Prop() disabled: boolean = false;\n\n /**\n * 是否为范围选择\n * @default false\n */\n @Prop() range: boolean = false;\n\n /**\n * 是否竖向模式\n * @default false\n */\n @Prop() vertical: boolean = false;\n\n /**\n * 高度,竖向模式时必填\n */\n @Prop() height?: string;\n\n @State() dragging: boolean = false;\n @State() currentValue: number | number[] = 0;\n @State() tooltipVisible: boolean = false;\n @State() tooltipValue: number = 0;\n\n private sliderRef?: HTMLDivElement;\n private isDragging: boolean = false;\n\n /**\n * 值改变事件\n */\n @Event() hbChange: EventEmitter<number | number[]>;\n\n /**\n * 值改变事件(拖拽时实时触发)\n */\n @Event() hbInput: EventEmitter<number | number[]>;\n\n componentDidLoad() {\n this.currentValue = this.modelValue;\n this.addEventListeners();\n }\n\n disconnectedCallback() {\n this.removeEventListeners();\n }\n\n private addEventListeners() {\n document.addEventListener('mousemove', this.handleMouseMove);\n document.addEventListener('mouseup', this.handleMouseUp);\n }\n\n private removeEventListeners() {\n document.removeEventListener('mousemove', this.handleMouseMove);\n document.removeEventListener('mouseup', this.handleMouseUp);\n }\n\n private getPercentage(value: number): number {\n return ((value - this.min) / (this.max - this.min)) * 100;\n }\n\n private getValueFromPercentage(percentage: number): number {\n const value = this.min + (percentage / 100) * (this.max - this.min);\n return Math.round(value / this.step) * this.step;\n }\n\n private handleMouseDown = (e: MouseEvent) => {\n if (this.disabled) return;\n e.preventDefault();\n this.isDragging = true;\n this.dragging = true;\n this.handleDrag(e);\n };\n\n private handleMouseMove = (e: MouseEvent) => {\n if (!this.isDragging) return;\n this.handleDrag(e);\n };\n\n private handleMouseUp = () => {\n if (!this.isDragging) return;\n this.isDragging = false;\n this.dragging = false;\n this.tooltipVisible = false;\n this.hbChange.emit(this.currentValue);\n };\n\n private handleDrag(e: MouseEvent) {\n if (!this.sliderRef) return;\n\n const rect = this.sliderRef.getBoundingClientRect();\n const percentage = this.vertical\n ? 1 - (e.clientY - rect.top) / rect.height\n : (e.clientX - rect.left) / rect.width;\n \n const clampedPercentage = Math.max(0, Math.min(100, percentage * 100));\n const value = this.getValueFromPercentage(clampedPercentage);\n\n if (this.range) {\n const values = this.currentValue as number[];\n // 简化处理:更新第一个值\n this.currentValue = [value, values[1] || this.max];\n } else {\n this.currentValue = value;\n this.tooltipValue = value;\n this.tooltipVisible = true;\n }\n\n this.modelValue = this.currentValue;\n this.hbInput.emit(this.currentValue);\n }\n\n private formatValue(value: number): string {\n if (this.formatTooltip) {\n return this.formatTooltip(value);\n }\n return String(value);\n }\n\n render() {\n const percentage = this.range\n ? this.getPercentage((this.currentValue as number[])[0])\n : this.getPercentage(this.currentValue as number);\n\n return (\n <div\n class={{\n 'hb-slider': true,\n 'hb-slider--vertical': this.vertical,\n 'hb-slider--disabled': this.disabled,\n }}\n style={this.vertical && this.height ? { height: this.height } : undefined}\n >\n <div\n class=\"hb-slider__runway\"\n ref={(el) => (this.sliderRef = el)}\n onMouseDown={this.handleMouseDown}\n >\n <div\n class=\"hb-slider__bar\"\n style={{\n [this.vertical ? 'height' : 'width']: `${percentage}%`,\n [this.vertical ? 'bottom' : 'left']: '0',\n }}\n ></div>\n <div\n class={{\n 'hb-slider__button-wrapper': true,\n 'hb-slider__button-wrapper--hover': this.tooltipVisible,\n }}\n style={{\n [this.vertical ? 'bottom' : 'left']: `${percentage}%`,\n }}\n >\n {this.showTooltip && this.tooltipVisible && (\n <div class=\"hb-slider__tooltip\">\n {this.formatValue(this.tooltipValue)}\n </div>\n )}\n <div class=\"hb-slider__button\"></div>\n </div>\n </div>\n </div>\n );\n }\n}\n\n"]}
1
+ {"version":3,"file":"Slider.js","sourceRoot":"","sources":["../../../src/components/Slider/Slider.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, h, Prop, Event, EventEmitter, State, Element, Watch } from '@stencil/core';\n\n/** 刻度定义:值 →(可选)标签 */\nexport interface SliderMark {\n value: number;\n label?: string;\n}\n\n/**\n * Slider 滑块组件\n * 通过拖动滑块在一个固定区间内进行选择,支持单滑块/双滑块(range)/竖向/刻度。\n */\n@Component({\n tag: 'hb-slider',\n styleUrl: 'slider.css',\n shadow: true,\n})\nexport class Slider {\n @Element() el: HTMLElement;\n\n /**\n * 绑定值\n */\n @Prop({ mutable: true }) modelValue: number | number[] = 0;\n\n /**\n * 最小值\n * @default 0\n */\n @Prop() min: number = 0;\n\n /**\n * 最大值\n * @default 100\n */\n @Prop() max: number = 100;\n\n /**\n * 步长\n * @default 1\n */\n @Prop() step: number = 1;\n\n /**\n * 是否显示工具提示\n * @default true\n */\n @Prop() showTooltip: boolean = true;\n\n /**\n * 格式化 tooltip message\n */\n @Prop() formatTooltip?: (value: number) => string;\n\n /**\n * 是否禁用\n * @default false\n */\n @Prop() disabled: boolean = false;\n\n /**\n * 是否为范围选择\n * @default false\n */\n @Prop() range: boolean = false;\n\n /**\n * 是否竖向模式\n * @default false\n */\n @Prop() vertical: boolean = false;\n\n /**\n * 高度,竖向模式时必填\n */\n @Prop() height?: string;\n\n /**\n * 刻度标记(对齐 antd marks)\n */\n @Prop() marks?: SliderMark[] | Record<number, string>;\n\n @State() dragging: boolean = false;\n @State() currentValue: number | number[] = 0;\n @State() tooltipVisible: boolean = false;\n @State() tooltipValue: number = 0;\n /** range 模式下当前拖动的是哪个手柄(0/1),用于 tooltip 定位与渲染 */\n @State() activeHandle: 0 | 1 = 0;\n\n private sliderRef?: HTMLDivElement;\n private isDragging: boolean = false;\n /** 拖动期间锁定的手柄索引(鼠标按下时确定) */\n private dragHandle: 0 | 1 | null = null;\n\n /**\n * 值改变事件\n */\n @Event() hbChange: EventEmitter<number | number[]>;\n\n /**\n * 值改变事件(拖拽时实时触发)\n */\n @Event() hbInput: EventEmitter<number | number[]>;\n\n componentDidLoad() {\n this.currentValue = this.normalizeInitial(this.modelValue);\n this.addEventListeners();\n }\n\n disconnectedCallback() {\n this.removeEventListeners();\n }\n\n /** 外部更新 modelValue 时同步内部 currentValue(对齐 antd 受控语义) */\n @Watch('modelValue')\n handleModelChange() {\n if (!this.isDragging) {\n this.currentValue = this.normalizeInitial(this.modelValue);\n }\n }\n\n /** range 模式下确保 currentValue 为 [min, max] 形状的有序数组 */\n private normalizeInitial(v: number | number[]): number | number[] {\n if (this.range) {\n if (Array.isArray(v) && v.length === 2) {\n return v[0] <= v[1] ? [v[0], v[1]] : [v[1], v[0]];\n }\n return [this.min, this.max];\n }\n return typeof v === 'number' ? v : (Array.isArray(v) ? v[0] ?? this.min : this.min);\n }\n\n private addEventListeners() {\n document.addEventListener('mousemove', this.handleMouseMove);\n document.addEventListener('mouseup', this.handleMouseUp);\n }\n\n private removeEventListeners() {\n document.removeEventListener('mousemove', this.handleMouseMove);\n document.removeEventListener('mouseup', this.handleMouseUp);\n }\n\n private getPercentage(value: number): number {\n if (this.max === this.min) return 0;\n return ((value - this.min) / (this.max - this.min)) * 100;\n }\n\n private getValueFromPercentage(percentage: number): number {\n const value = this.min + (percentage / 100) * (this.max - this.min);\n const snapped = Math.round(value / this.step) * this.step;\n return Math.max(this.min, Math.min(this.max, snapped));\n }\n\n /** 鼠标按下时根据落点决定拖哪个手柄(range:更近的那个) */\n private resolveHandle(percentage: number): 0 | 1 {\n if (!this.range) return 0;\n const vals = this.currentValue as number[];\n const leftPct = this.getPercentage(vals[0]);\n const rightPct = this.getPercentage(vals[1]);\n return Math.abs(percentage - leftPct) <= Math.abs(percentage - rightPct) ? 0 : 1;\n }\n\n private handleMouseDown = (e: MouseEvent, handle: 0 | 1 | null = null) => {\n if (this.disabled) return;\n e.preventDefault();\n this.isDragging = true;\n this.dragging = true;\n this.dragHandle = handle;\n this.handleDrag(e);\n };\n\n private handleMouseMove = (e: MouseEvent) => {\n if (!this.isDragging) return;\n this.handleDrag(e);\n };\n\n private handleMouseUp = () => {\n if (!this.isDragging) return;\n this.isDragging = false;\n this.dragging = false;\n this.tooltipVisible = false;\n this.dragHandle = null;\n this.hbChange.emit(this.currentValue);\n };\n\n private handleDrag(e: MouseEvent) {\n if (!this.sliderRef) return;\n\n const rect = this.sliderRef.getBoundingClientRect();\n const percentage = this.vertical\n ? 1 - (e.clientY - rect.top) / rect.height\n : (e.clientX - rect.left) / rect.width;\n\n const clampedPercentage = Math.max(0, Math.min(100, percentage * 100));\n const value = this.getValueFromPercentage(clampedPercentage);\n\n if (this.range) {\n const vals = this.currentValue as number[];\n // 优先用 mousedown 时锁定的手柄;未锁定(点击 runway)则按落点就近\n const handle = this.dragHandle !== null ? this.dragHandle : this.resolveHandle(clampedPercentage);\n this.activeHandle = handle;\n let [lo, hi] = [vals[0], vals[1]];\n if (handle === 0) {\n lo = Math.min(value, hi);\n } else {\n hi = Math.max(value, lo);\n }\n this.currentValue = [lo, hi];\n this.tooltipValue = handle === 0 ? lo : hi;\n this.tooltipVisible = true;\n } else {\n this.activeHandle = 0;\n this.currentValue = value;\n this.tooltipValue = value;\n this.tooltipVisible = true;\n }\n\n this.modelValue = this.currentValue;\n this.hbInput.emit(this.currentValue);\n }\n\n /** 键盘可访问:方向键调整当前手柄,对齐 WAI-ARIA slider pattern */\n private handleKeyDown = (e: KeyboardEvent) => {\n if (this.disabled) return;\n const { key } = e;\n const isDecrease = key === 'ArrowLeft' || key === 'ArrowDown';\n const isIncrease = key === 'ArrowRight' || key === 'ArrowUp';\n const isBigDecrease = key === 'PageDown' || key === 'Home';\n const isBigIncrease = key === 'PageUp' || key === 'End';\n if (!isDecrease && !isIncrease && !isBigDecrease && !isBigIncrease) return;\n\n e.preventDefault();\n const delta =\n isBigDecrease ? -this.max :\n isBigIncrease ? this.max :\n (isDecrease ? -1 : 1) * this.step;\n\n if (this.range) {\n const vals = this.currentValue as number[];\n let [lo, hi] = [vals[0], vals[1]];\n if (this.activeHandle === 0) {\n lo = Math.max(this.min, Math.min(lo + delta, hi));\n } else {\n hi = Math.min(this.max, Math.max(hi + delta, lo));\n }\n this.currentValue = [lo, hi];\n this.tooltipValue = this.activeHandle === 0 ? lo : hi;\n this.tooltipVisible = true;\n } else {\n const next = Math.max(this.min, Math.min((this.currentValue as number) + delta, this.max));\n this.currentValue = next;\n this.tooltipValue = next;\n this.tooltipVisible = true;\n }\n this.modelValue = this.currentValue;\n this.hbChange.emit(this.currentValue);\n this.hbInput.emit(this.currentValue);\n };\n\n private formatValue(value: number): string {\n if (this.formatTooltip) {\n return this.formatTooltip(value);\n }\n return String(value);\n }\n\n /** 规范化 marks 为 [{value,label}] 数组 */\n private get markList(): { value: number; label?: string }[] {\n if (!this.marks) return [];\n if (Array.isArray(this.marks)) return this.marks;\n return Object.entries(this.marks).map(([k, v]) => ({ value: Number(k), label: v as string }));\n }\n\n render() {\n const range = this.range;\n const singlePct = this.getPercentage(this.currentValue as number);\n const rangeVals = range ? (this.currentValue as number[]) : [0, 0];\n const leftPct = range ? this.getPercentage(rangeVals[0]) : 0;\n const rightPct = range ? this.getPercentage(rangeVals[1]) : singlePct;\n // bar:单滑块从 min 到 value;range 从 lo 到 hi\n const barStart = range ? leftPct : 0;\n const barSize = range ? rightPct - leftPct : singlePct;\n const posProp = this.vertical ? 'bottom' : 'left';\n const sizeProp = this.vertical ? 'height' : 'width';\n\n const renderHandle = (handle: 0 | 1, pct: number) => {\n const tooltipVal = range ? rangeVals[handle] : (this.currentValue as number);\n const isActive = this.tooltipVisible && (range ? this.activeHandle === handle : true);\n return (\n <div\n class={{\n 'hb-slider__button-wrapper': true,\n 'hb-slider__button-wrapper--hover': isActive,\n }}\n style={{ [posProp]: `${pct}%` }}\n onMouseDown={(e: MouseEvent) => this.handleMouseDown(e, handle)}\n onTouchStart={(e: TouchEvent) => this.handleTouchStart(e, handle)}\n role=\"slider\"\n tabindex={this.disabled ? -1 : 0}\n aria-valuemin={this.min}\n aria-valuemax={this.max}\n aria-valuenow={tooltipVal}\n aria-valuetext={this.formatValue(tooltipVal)}\n aria-orientation={this.vertical ? 'vertical' : 'horizontal'}\n aria-disabled={this.disabled ? 'true' : 'false'}\n onKeyDown={this.handleKeyDown}\n >\n {this.showTooltip && isActive && (\n <div class=\"hb-slider__tooltip\">{this.formatValue(this.tooltipValue)}</div>\n )}\n <div class=\"hb-slider__button\"></div>\n </div>\n );\n };\n\n return (\n <div\n class={{\n 'hb-slider': true,\n 'hb-slider--vertical': this.vertical,\n 'hb-slider--disabled': this.disabled,\n 'hb-slider--with-marks': this.markList.length > 0,\n }}\n style={this.vertical && this.height ? { height: this.height } : undefined}\n >\n <div\n class=\"hb-slider__runway\"\n ref={(el) => (this.sliderRef = el as HTMLDivElement)}\n onMouseDown={(e: MouseEvent) => this.handleMouseDown(e, null)}\n onTouchStart={(e: TouchEvent) => this.handleTouchStart(e, null)}\n >\n <div\n class=\"hb-slider__bar\"\n style={{\n [sizeProp]: `${Math.max(0, barSize)}%`,\n [posProp]: `${barStart}%`,\n }}\n ></div>\n {this.markList.map(m => {\n const pct = this.getPercentage(m.value);\n return (\n <div\n class=\"hb-slider__mark\"\n style={{ [posProp]: `${pct}%` }}\n aria-hidden=\"true\"\n >\n {m.label && <span class=\"hb-slider__mark-label\">{m.label}</span>}\n </div>\n );\n })}\n {range ? renderHandle(0, leftPct) : null}\n {renderHandle(range ? 1 : 0, range ? rightPct : singlePct)}\n </div>\n </div>\n );\n }\n\n /** 触屏支持:把 touch 事件映射到 mouse 同等逻辑(移动端可用) */\n private handleTouchStart = (e: TouchEvent, handle: 0 | 1 | null) => {\n if (this.disabled) return;\n e.preventDefault();\n const touch = e.touches[0];\n this.isDragging = true;\n this.dragging = true;\n this.dragHandle = handle;\n this.dragFromTouch(touch.clientX, touch.clientY);\n const move = (ev: TouchEvent) => {\n const t = ev.touches[0];\n this.dragFromTouch(t.clientX, t.clientY);\n };\n const end = () => {\n this.isDragging = false;\n this.dragging = false;\n this.tooltipVisible = false;\n this.dragHandle = null;\n this.hbChange.emit(this.currentValue);\n document.removeEventListener('touchmove', move);\n document.removeEventListener('touchend', end);\n };\n document.addEventListener('touchmove', move, { passive: false });\n document.addEventListener('touchend', end);\n };\n\n private dragFromTouch(clientX: number, clientY: number) {\n if (!this.sliderRef) return;\n const rect = this.sliderRef.getBoundingClientRect();\n const percentage = this.vertical\n ? 1 - (clientY - rect.top) / rect.height\n : (clientX - rect.left) / rect.width;\n const clamped = Math.max(0, Math.min(100, percentage * 100));\n const value = this.getValueFromPercentage(clamped);\n if (this.range) {\n const vals = this.currentValue as number[];\n const handle = this.dragHandle !== null ? this.dragHandle : this.resolveHandle(clamped);\n this.activeHandle = handle;\n let [lo, hi] = [vals[0], vals[1]];\n if (handle === 0) lo = Math.min(value, hi);\n else hi = Math.max(value, lo);\n this.currentValue = [lo, hi];\n this.tooltipValue = handle === 0 ? lo : hi;\n this.tooltipVisible = true;\n } else {\n this.currentValue = value;\n this.tooltipValue = value;\n this.tooltipVisible = true;\n }\n this.modelValue = this.currentValue;\n this.hbInput.emit(this.currentValue);\n }\n}\n\n"]}
@@ -44,7 +44,6 @@
44
44
  border-bottom-left-radius: 3px;
45
45
  position: absolute;
46
46
  top: 0;
47
- left: 0;
48
47
  }
49
48
 
50
49
  .hb-slider--vertical .hb-slider__bar {
@@ -61,21 +60,21 @@
61
60
  position: absolute;
62
61
  z-index: 1001;
63
62
  top: 50%;
64
- transform: translateY(-50%);
63
+ transform: translate(-50%, -50%);
65
64
  background-color: transparent;
66
65
  text-align: center;
67
66
  user-select: none;
68
67
  outline: none;
69
- margin-left: calc(var(--hb-slider-button-size) / -2);
68
+ display: inline-flex;
69
+ align-items: center;
70
+ justify-content: center;
71
+ cursor: pointer;
70
72
  }
71
73
 
72
74
  .hb-slider--vertical .hb-slider__button-wrapper {
73
75
  left: 50%;
74
76
  top: auto;
75
- bottom: 0;
76
- transform: translateX(-50%);
77
- margin-left: 0;
78
- margin-bottom: calc(var(--hb-slider-button-size) / -2);
77
+ transform: translate(-50%, 50%);
79
78
  }
80
79
 
81
80
  .hb-slider__button {
@@ -139,3 +138,55 @@
139
138
  cursor: not-allowed;
140
139
  }
141
140
 
141
+ /* ---- 刻度标记(marks)---- */
142
+ .hb-slider__mark {
143
+ position: absolute;
144
+ top: 0;
145
+ width: 2px;
146
+ height: 6px;
147
+ transform: translateX(-50%);
148
+ background-color: var(--hb-color-border, #dcdfe6);
149
+ pointer-events: none;
150
+ }
151
+
152
+ .hb-slider__mark-label {
153
+ position: absolute;
154
+ top: 100%;
155
+ left: 50%;
156
+ transform: translateX(-50%);
157
+ margin-top: var(--hb-spacing-xs, 4px);
158
+ font-size: var(--hb-font-size-xs, 12px);
159
+ color: var(--hb-color-text-secondary, #606266);
160
+ white-space: nowrap;
161
+ }
162
+
163
+ /* 有刻度时给底部留出标签空间 */
164
+ .hb-slider--with-marks {
165
+ padding-bottom: var(--hb-spacing-lg, 16px);
166
+ }
167
+
168
+ .hb-slider--vertical .hb-slider__mark {
169
+ top: auto;
170
+ left: 50%;
171
+ width: 6px;
172
+ height: 2px;
173
+ transform: translate(-50%, -50%);
174
+ }
175
+
176
+ .hb-slider--vertical .hb-slider__mark-label {
177
+ top: 50%;
178
+ left: 100%;
179
+ transform: translateY(-50%);
180
+ margin-top: 0;
181
+ margin-left: var(--hb-spacing-xs, 4px);
182
+ }
183
+
184
+ /* 聚焦态:对齐 antd 的蓝色外圈 */
185
+ .hb-slider__button-wrapper:focus {
186
+ outline: none;
187
+ }
188
+
189
+ .hb-slider__button-wrapper:focus-visible .hb-slider__button {
190
+ box-shadow: 0 0 0 4px var(--hb-color-primary-bg, rgba(22, 119, 255, 0.12));
191
+ }
192
+
@@ -46,7 +46,7 @@ export class Space {
46
46
  }
47
47
  render() {
48
48
  const sizeValue = this.getSizeValue();
49
- return (h("div", { key: 'c6a3c89f29c25988b47aa100c8d3ac45c44f550e', class: {
49
+ return (h("div", { key: '23205a0d926148969e1dc0c98dee9b81f52e921e', class: {
50
50
  'hb-space': true,
51
51
  [`hb-space--${this.direction}`]: true,
52
52
  'hb-space--wrap': this.wrap && this.direction === 'horizontal',
@@ -55,7 +55,7 @@ export class Space {
55
55
  '--hb-space-size': sizeValue,
56
56
  '--hb-space-alignment': this.alignment,
57
57
  '--hb-space-fill-ratio': `${this.fillRatio}%`,
58
- } }, h("slot", { key: '638d65e135eb572d71d3220183031cb0b18b1078' })));
58
+ } }, h("slot", { key: 'b313162f92bf63bc8926b15af1a7f0bbe3d0295d' })));
59
59
  }
60
60
  static get is() { return "hb-space"; }
61
61
  static get encapsulation() { return "shadow"; }
@@ -49,7 +49,7 @@ export class Statistic {
49
49
  return decPart !== undefined ? `${grouped}.${decPart}` : grouped;
50
50
  }
51
51
  render() {
52
- return (h("div", { key: 'e38db3c8ae83480a933a7a9fd03d4ecb8e3cb07d', class: "hb-statistic" }, this.title && h("div", { key: '2d4af905f79558e98b6db498db1d251d10b64151', class: "hb-statistic__title" }, this.title), h("div", { key: 'f60f0263f6f22ca95d863c1fcd7f94556b351cea', class: "hb-statistic__content", style: this.valueStyle ? { cssText: this.valueStyle } : undefined }, this.valuePrefix && h("span", { key: '4dd5f92066507ad0abf5c5bbeca64001d425b83a', class: "hb-statistic__prefix" }, this.valuePrefix), h("span", { key: '746806287e5f0752263ce913a4b81fa221b0fb3b', class: "hb-statistic__value" }, this.getFormattedValue()), this.suffix !== undefined && h("span", { key: 'a93c66aeb111922903214884e664b425279cc5ac', class: "hb-statistic__suffix" }, this.suffix))));
52
+ return (h("div", { key: 'e695e8811255eace58725623ad9ac4fc32fe9815', class: "hb-statistic" }, this.title && h("div", { key: '0ca9e8bae28815d841fd04f0ec0aeb6d3147cfb7', class: "hb-statistic__title" }, this.title), h("div", { key: 'f4b4dce8ceded1700b7bd2f50b97d886452571d9', class: "hb-statistic__content", style: this.valueStyle ? { cssText: this.valueStyle } : undefined }, this.valuePrefix && h("span", { key: '7b6f19358ee7ab45b18fab4230cc0cae56161398', class: "hb-statistic__prefix" }, this.valuePrefix), h("span", { key: 'ba7c49912cd4d0d4a81349d8584801291075966f', class: "hb-statistic__value" }, this.getFormattedValue()), this.suffix !== undefined && h("span", { key: '87619124453f9e49eba5e22ccc6c6123b059c61b', class: "hb-statistic__suffix" }, this.suffix))));
53
53
  }
54
54
  static get is() { return "hb-statistic"; }
55
55
  static get encapsulation() { return "shadow"; }
@@ -5,7 +5,7 @@ export class Step {
5
5
  icon;
6
6
  status = 'wait';
7
7
  render() {
8
- return h("div", { key: '8a42e9bcdb6ab736095af526989a331edc76f0bb', class: "hb-step" }, h("slot", { key: 'cff737be2d6690f6edee1b0996c2d49e9621ffaa' }));
8
+ return h("div", { key: '63f299b0fda78da0625d0d33af185af098512986', class: "hb-step" }, h("slot", { key: '7d8193df46de7452dee4df28246552fd9bae9cee' }));
9
9
  }
10
10
  static get is() { return "hb-step"; }
11
11
  static get encapsulation() { return "shadow"; }
@@ -8,19 +8,37 @@ export class Steps {
8
8
  steps = [];
9
9
  componentDidLoad() {
10
10
  const items = this.el.querySelectorAll('hb-step');
11
- this.steps = Array.from(items).map((item) => ({
12
- title: item.getAttribute('title') || '',
13
- description: item.getAttribute('description') || undefined,
14
- }));
11
+ this.steps = Array.from(items).map((item) => {
12
+ const node = item;
13
+ // 仅用 getAttribute:hb-step 的 @Prop() status 默认值为 'wait',
14
+ // 若读 (node as any).status 会拿到默认值,从而错误地覆盖 active 推导。
15
+ // 用户显式在 HTML 上写 status="xxx" 时 getAttribute 才有值。
16
+ return {
17
+ title: node.getAttribute('title') || '',
18
+ description: node.getAttribute('description') || undefined,
19
+ icon: node.getAttribute('icon') || undefined,
20
+ status: (node.getAttribute('status') || undefined),
21
+ };
22
+ });
15
23
  }
16
24
  getStatus(index) {
25
+ const meta = this.steps[index];
26
+ // 子项显式 status 优先(仅当用户在 HTML 上写了 status 属性)
27
+ if (meta && meta.status)
28
+ return meta.status;
17
29
  if (index < this.active)
18
30
  return 'finish';
19
31
  if (index === this.active)
20
32
  return this.processStatus;
21
33
  return 'wait';
22
34
  }
23
- getIcon(index) {
35
+ /** 渲染图标:子项自定义 icon 优先;否则按状态(finish=✓、error=✕、其余=序号) */
36
+ renderIcon(index) {
37
+ const meta = this.steps[index];
38
+ if (meta && meta.icon) {
39
+ // 自定义图标名:若与 hb-icon 内置图标同名则渲染 hb-icon,否则按文本渲染
40
+ return h("hb-icon", { name: meta.icon, size: 16, "aria-hidden": "true" });
41
+ }
24
42
  const status = this.getStatus(index);
25
43
  if (status === 'finish')
26
44
  return '✓';
@@ -29,7 +47,10 @@ export class Steps {
29
47
  return String(index + 1);
30
48
  }
31
49
  render() {
32
- return (h("div", { key: '3bb957ec22b3943e8dccdd609838adcac9aa0766', class: { 'hb-steps': true, [`hb-steps--${this.direction}`]: true, 'hb-steps--align-center': this.alignCenter } }, this.steps.map((step, i) => (h("div", { class: { 'hb-steps__item': true, [`hb-steps__item--${this.getStatus(i)}`]: true } }, h("div", { class: "hb-steps__head" }, h("span", { class: "hb-steps__icon" }, this.getIcon(i)), i < this.steps.length - 1 && h("div", { class: "hb-steps__line" })), h("div", { class: "hb-steps__main" }, h("div", { class: "hb-steps__title" }, step.title), step.description && h("div", { class: "hb-steps__description" }, step.description)))))));
50
+ return (h("ol", { key: 'f69b42d787de6ee114ed9ebef2e8d1a8fae60363', class: { 'hb-steps': true, [`hb-steps--${this.direction}`]: true, 'hb-steps--align-center': this.alignCenter }, role: "list" }, this.steps.map((step, i) => {
51
+ const status = this.getStatus(i);
52
+ return (h("li", { class: { 'hb-steps__item': true, [`hb-steps__item--${status}`]: true }, role: "listitem", "aria-current": status === 'process' ? 'step' : undefined, "aria-disabled": step.status === 'wait' && i > this.active ? 'true' : undefined }, h("div", { class: "hb-steps__head" }, h("span", { class: "hb-steps__icon", "aria-hidden": "true" }, this.renderIcon(i)), i < this.steps.length - 1 && h("div", { class: "hb-steps__line" })), h("div", { class: "hb-steps__main" }, h("div", { class: "hb-steps__title" }, step.title), step.description && h("div", { class: "hb-steps__description" }, step.description))));
53
+ })));
33
54
  }
34
55
  static get is() { return "hb-steps"; }
35
56
  static get encapsulation() { return "shadow"; }
@@ -69,9 +90,15 @@ export class Steps {
69
90
  "type": "string",
70
91
  "mutable": false,
71
92
  "complexType": {
72
- "original": "'wait' | 'process' | 'finish' | 'error'",
93
+ "original": "StepStatus",
73
94
  "resolved": "\"error\" | \"finish\" | \"process\" | \"wait\"",
74
- "references": {}
95
+ "references": {
96
+ "StepStatus": {
97
+ "location": "local",
98
+ "path": "/Users/vscoderwhy/Desktop/product/web-common/huibo-ui/src/components/Steps/Steps.tsx",
99
+ "id": "src/components/Steps/Steps.tsx::StepStatus"
100
+ }
101
+ }
75
102
  },
76
103
  "required": false,
77
104
  "optional": false,