huibo-ui 0.4.0 → 0.6.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 (661) hide show
  1. package/dist/cjs/{a11y-802de67a.js → a11y-4385c871.js} +17 -2
  2. package/dist/cjs/a11y-4385c871.js.map +1 -0
  3. package/dist/cjs/{date-helpers-1ffddc59.js → date-helpers-c05ef385.js} +5 -16
  4. package/dist/cjs/date-helpers-c05ef385.js.map +1 -0
  5. package/dist/cjs/hb-alert.cjs.entry.js +2 -1
  6. package/dist/cjs/hb-alert.cjs.entry.js.map +1 -1
  7. package/dist/cjs/hb-calendar.cjs.entry.js +2 -2
  8. package/dist/cjs/hb-calendar.cjs.entry.js.map +1 -1
  9. package/dist/cjs/hb-cascader.cjs.entry.js +48 -12
  10. package/dist/cjs/hb-cascader.cjs.entry.js.map +1 -1
  11. package/dist/cjs/hb-checkbox-group.cjs.entry.js +12 -8
  12. package/dist/cjs/hb-checkbox-group.cjs.entry.js.map +1 -1
  13. package/dist/cjs/hb-checkbox.cjs.entry.js +9 -4
  14. package/dist/cjs/hb-checkbox.cjs.entry.js.map +1 -1
  15. package/dist/cjs/hb-collapse-item.cjs.entry.js +13 -4
  16. package/dist/cjs/hb-collapse-item.cjs.entry.js.map +1 -1
  17. package/dist/cjs/hb-collapse.cjs.entry.js +20 -15
  18. package/dist/cjs/hb-collapse.cjs.entry.js.map +1 -1
  19. package/dist/cjs/hb-color-picker.cjs.entry.js +22 -19
  20. package/dist/cjs/hb-color-picker.cjs.entry.js.map +1 -1
  21. package/dist/cjs/hb-date-picker-pane.cjs.entry.js +1 -1
  22. package/dist/cjs/hb-date-picker.cjs.entry.js +13 -10
  23. package/dist/cjs/hb-date-picker.cjs.entry.js.map +1 -1
  24. package/dist/cjs/hb-date-range-picker.cjs.entry.js +1 -1
  25. package/dist/cjs/hb-date-time-picker.cjs.entry.js +1 -1
  26. package/dist/cjs/hb-descriptions.cjs.entry.js.map +1 -1
  27. package/dist/cjs/hb-dialog.cjs.entry.js +51 -12
  28. package/dist/cjs/hb-dialog.cjs.entry.js.map +1 -1
  29. package/dist/cjs/hb-drawer.cjs.entry.js +34 -4
  30. package/dist/cjs/hb-drawer.cjs.entry.js.map +1 -1
  31. package/dist/cjs/hb-dropdown.cjs.entry.js +27 -15
  32. package/dist/cjs/hb-dropdown.cjs.entry.js.map +1 -1
  33. package/dist/cjs/hb-empty.cjs.entry.js +1 -1
  34. package/dist/cjs/hb-float-button.cjs.entry.js +2 -2
  35. package/dist/cjs/hb-form-item.cjs.entry.js +67 -16
  36. package/dist/cjs/hb-form-item.cjs.entry.js.map +1 -1
  37. package/dist/cjs/hb-form.cjs.entry.js +115 -7
  38. package/dist/cjs/hb-form.cjs.entry.js.map +1 -1
  39. package/dist/cjs/hb-image-preview.cjs.entry.js +1 -1
  40. package/dist/cjs/hb-image-preview.cjs.entry.js.map +1 -1
  41. package/dist/cjs/hb-image.cjs.entry.js +21 -3
  42. package/dist/cjs/hb-image.cjs.entry.js.map +1 -1
  43. package/dist/cjs/hb-input-number.cjs.entry.js +7 -7
  44. package/dist/cjs/hb-input-number.cjs.entry.js.map +1 -1
  45. package/dist/cjs/hb-input-tag.cjs.entry.js +2 -2
  46. package/dist/cjs/hb-input.cjs.entry.js +3 -2
  47. package/dist/cjs/hb-input.cjs.entry.js.map +1 -1
  48. package/dist/cjs/hb-layout.cjs.entry.js.map +1 -1
  49. package/dist/cjs/hb-link.cjs.entry.js +2 -2
  50. package/dist/cjs/hb-loading.cjs.entry.js +2 -2
  51. package/dist/cjs/hb-menu-item.cjs.entry.js +14 -5
  52. package/dist/cjs/hb-menu-item.cjs.entry.js.map +1 -1
  53. package/dist/cjs/hb-menu.cjs.entry.js +2 -2
  54. package/dist/cjs/hb-message.cjs.entry.js +13 -4
  55. package/dist/cjs/hb-message.cjs.entry.js.map +1 -1
  56. package/dist/cjs/hb-page-header.cjs.entry.js +1 -1
  57. package/dist/cjs/hb-pagination.cjs.entry.js +8 -5
  58. package/dist/cjs/hb-pagination.cjs.entry.js.map +1 -1
  59. package/dist/cjs/hb-popconfirm.cjs.entry.js +27 -8
  60. package/dist/cjs/hb-popconfirm.cjs.entry.js.map +1 -1
  61. package/dist/cjs/hb-popover.cjs.entry.js +26 -14
  62. package/dist/cjs/hb-popover.cjs.entry.js.map +1 -1
  63. package/dist/cjs/hb-progress.cjs.entry.js +1 -1
  64. package/dist/cjs/hb-radio.cjs.entry.js +8 -3
  65. package/dist/cjs/hb-radio.cjs.entry.js.map +1 -1
  66. package/dist/cjs/hb-rate.cjs.entry.js +3 -3
  67. package/dist/cjs/hb-rate.cjs.entry.js.map +1 -1
  68. package/dist/cjs/hb-row.cjs.entry.js +2 -2
  69. package/dist/cjs/hb-scrollbar.cjs.entry.js +5 -5
  70. package/dist/cjs/hb-scrollbar.cjs.entry.js.map +1 -1
  71. package/dist/cjs/hb-segmented.cjs.entry.js +13 -2
  72. package/dist/cjs/hb-segmented.cjs.entry.js.map +1 -1
  73. package/dist/cjs/hb-select.cjs.entry.js +100 -19
  74. package/dist/cjs/hb-select.cjs.entry.js.map +1 -1
  75. package/dist/cjs/hb-slider.cjs.entry.js +6 -12
  76. package/dist/cjs/hb-slider.cjs.entry.js.map +1 -1
  77. package/dist/cjs/hb-space.cjs.entry.js +2 -2
  78. package/dist/cjs/hb-statistic.cjs.entry.js +1 -1
  79. package/dist/cjs/hb-step.cjs.entry.js +1 -1
  80. package/dist/cjs/hb-steps.cjs.entry.js +3 -3
  81. package/dist/cjs/hb-steps.cjs.entry.js.map +1 -1
  82. package/dist/cjs/hb-sub-menu.cjs.entry.js +5 -5
  83. package/dist/cjs/hb-switch.cjs.entry.js +3 -3
  84. package/dist/cjs/hb-switch.cjs.entry.js.map +1 -1
  85. package/dist/cjs/hb-tab-pane.cjs.entry.js +1 -1
  86. package/dist/cjs/hb-table.cjs.entry.js +218 -41
  87. package/dist/cjs/hb-table.cjs.entry.js.map +1 -1
  88. package/dist/cjs/hb-tabs.cjs.entry.js +31 -10
  89. package/dist/cjs/hb-tabs.cjs.entry.js.map +1 -1
  90. package/dist/cjs/hb-tag.cjs.entry.js +3 -2
  91. package/dist/cjs/hb-tag.cjs.entry.js.map +1 -1
  92. package/dist/cjs/hb-text.cjs.entry.js +2 -2
  93. package/dist/cjs/hb-time-picker.cjs.entry.js +14 -9
  94. package/dist/cjs/hb-time-picker.cjs.entry.js.map +1 -1
  95. package/dist/cjs/hb-time-select.cjs.entry.js +13 -4
  96. package/dist/cjs/hb-time-select.cjs.entry.js.map +1 -1
  97. package/dist/cjs/hb-tooltip.cjs.entry.js +30 -10
  98. package/dist/cjs/hb-tooltip.cjs.entry.js.map +1 -1
  99. package/dist/cjs/hb-tree-select.cjs.entry.js +125 -10
  100. package/dist/cjs/hb-tree-select.cjs.entry.js.map +1 -1
  101. package/dist/cjs/hb-tree.cjs.entry.js +145 -12
  102. package/dist/cjs/hb-tree.cjs.entry.js.map +1 -1
  103. package/dist/cjs/hb-watermark.cjs.entry.js +19 -11
  104. package/dist/cjs/hb-watermark.cjs.entry.js.map +1 -1
  105. package/dist/cjs/huibo-ui.cjs.js +1 -1
  106. package/dist/cjs/loader.cjs.js +1 -1
  107. package/dist/cjs/transition-59f1da0f.js +34 -0
  108. package/dist/cjs/transition-59f1da0f.js.map +1 -0
  109. package/dist/collection/components/Alert/Alert.js +2 -1
  110. package/dist/collection/components/Alert/Alert.js.map +1 -1
  111. package/dist/collection/components/Calendar/Calendar.js +2 -2
  112. package/dist/collection/components/Calendar/Calendar.js.map +1 -1
  113. package/dist/collection/components/Cascader/Cascader.js +47 -11
  114. package/dist/collection/components/Cascader/Cascader.js.map +1 -1
  115. package/dist/collection/components/Checkbox/Checkbox.js +9 -4
  116. package/dist/collection/components/Checkbox/Checkbox.js.map +1 -1
  117. package/dist/collection/components/Checkbox/CheckboxGroup.js +12 -8
  118. package/dist/collection/components/Checkbox/CheckboxGroup.js.map +1 -1
  119. package/dist/collection/components/Collapse/Collapse.js +20 -15
  120. package/dist/collection/components/Collapse/Collapse.js.map +1 -1
  121. package/dist/collection/components/Collapse/CollapseItem.js +33 -4
  122. package/dist/collection/components/Collapse/CollapseItem.js.map +1 -1
  123. package/dist/collection/components/ColorPicker/ColorPicker.js +22 -19
  124. package/dist/collection/components/ColorPicker/ColorPicker.js.map +1 -1
  125. package/dist/collection/components/ColorPicker/color-picker.css +8 -3
  126. package/dist/collection/components/DatePicker/DatePicker.js +12 -9
  127. package/dist/collection/components/DatePicker/DatePicker.js.map +1 -1
  128. package/dist/collection/components/DatePicker/date-picker.css +3 -2
  129. package/dist/collection/components/Descriptions/descriptions.css +30 -10
  130. package/dist/collection/components/Dialog/Dialog.js +54 -10
  131. package/dist/collection/components/Dialog/Dialog.js.map +1 -1
  132. package/dist/collection/components/Dialog/dialog.css +57 -11
  133. package/dist/collection/components/Drawer/Drawer.js +34 -3
  134. package/dist/collection/components/Drawer/Drawer.js.map +1 -1
  135. package/dist/collection/components/Drawer/drawer.css +207 -17
  136. package/dist/collection/components/Dropdown/Dropdown.js +28 -13
  137. package/dist/collection/components/Dropdown/Dropdown.js.map +1 -1
  138. package/dist/collection/components/Dropdown/dropdown.css +24 -2
  139. package/dist/collection/components/Empty/Empty.js +1 -1
  140. package/dist/collection/components/FloatButton/FloatButton.js +2 -2
  141. package/dist/collection/components/Form/Form.js +217 -9
  142. package/dist/collection/components/Form/Form.js.map +1 -1
  143. package/dist/collection/components/Form/FormItem.js +126 -18
  144. package/dist/collection/components/Form/FormItem.js.map +1 -1
  145. package/dist/collection/components/Form/form-item.css +8 -2
  146. package/dist/collection/components/Image/Image.js +24 -3
  147. package/dist/collection/components/Image/Image.js.map +1 -1
  148. package/dist/collection/components/ImagePreview/ImagePreview.js +1 -1
  149. package/dist/collection/components/ImagePreview/ImagePreview.js.map +1 -1
  150. package/dist/collection/components/Input/Input.js +3 -2
  151. package/dist/collection/components/Input/Input.js.map +1 -1
  152. package/dist/collection/components/Input/input.css +1 -2
  153. package/dist/collection/components/InputNumber/InputNumber.js +6 -6
  154. package/dist/collection/components/InputNumber/InputNumber.js.map +1 -1
  155. package/dist/collection/components/InputNumber/input-number.css +11 -1
  156. package/dist/collection/components/InputTag/InputTag.js +2 -2
  157. package/dist/collection/components/Layout/Layout.js.map +1 -1
  158. package/dist/collection/components/Layout/Row.js +2 -2
  159. package/dist/collection/components/Layout/layout.css +1713 -576
  160. package/dist/collection/components/Link/Link.js +2 -2
  161. package/dist/collection/components/Loading/Loading.js +2 -2
  162. package/dist/collection/components/Menu/Menu.js +2 -2
  163. package/dist/collection/components/Menu/MenuItem.js +34 -5
  164. package/dist/collection/components/Menu/MenuItem.js.map +1 -1
  165. package/dist/collection/components/Menu/SubMenu.js +4 -4
  166. package/dist/collection/components/Message/Message.js +13 -4
  167. package/dist/collection/components/Message/Message.js.map +1 -1
  168. package/dist/collection/components/PageHeader/PageHeader.js +1 -1
  169. package/dist/collection/components/Pagination/Pagination.js +8 -5
  170. package/dist/collection/components/Pagination/Pagination.js.map +1 -1
  171. package/dist/collection/components/Popconfirm/Popconfirm.js +28 -6
  172. package/dist/collection/components/Popconfirm/Popconfirm.js.map +1 -1
  173. package/dist/collection/components/Popconfirm/popconfirm.css +80 -16
  174. package/dist/collection/components/Popover/Popover.js +27 -12
  175. package/dist/collection/components/Popover/Popover.js.map +1 -1
  176. package/dist/collection/components/Popover/popover.css +49 -8
  177. package/dist/collection/components/Progress/Progress.js +1 -1
  178. package/dist/collection/components/Radio/Radio.js +8 -3
  179. package/dist/collection/components/Radio/Radio.js.map +1 -1
  180. package/dist/collection/components/Rate/Rate.js +3 -3
  181. package/dist/collection/components/Rate/Rate.js.map +1 -1
  182. package/dist/collection/components/Scrollbar/Scrollbar.js +5 -5
  183. package/dist/collection/components/Scrollbar/Scrollbar.js.map +1 -1
  184. package/dist/collection/components/Segmented/Segmented.js +15 -1
  185. package/dist/collection/components/Segmented/Segmented.js.map +1 -1
  186. package/dist/collection/components/Select/Select.js +123 -19
  187. package/dist/collection/components/Select/Select.js.map +1 -1
  188. package/dist/collection/components/Select/select.css +0 -1
  189. package/dist/collection/components/Slider/Slider.js +6 -12
  190. package/dist/collection/components/Slider/Slider.js.map +1 -1
  191. package/dist/collection/components/Slider/slider.css +0 -1
  192. package/dist/collection/components/Space/Space.js +2 -2
  193. package/dist/collection/components/Statistic/Statistic.js +1 -1
  194. package/dist/collection/components/Steps/Step.js +1 -1
  195. package/dist/collection/components/Steps/Steps.js +2 -2
  196. package/dist/collection/components/Steps/Steps.js.map +1 -1
  197. package/dist/collection/components/Switch/Switch.js +3 -3
  198. package/dist/collection/components/Switch/Switch.js.map +1 -1
  199. package/dist/collection/components/Switch/switch.css +3 -2
  200. package/dist/collection/components/Table/Table.js +296 -41
  201. package/dist/collection/components/Table/Table.js.map +1 -1
  202. package/dist/collection/components/Table/table.css +6 -2
  203. package/dist/collection/components/Tabs/TabPane.js +1 -1
  204. package/dist/collection/components/Tabs/Tabs.js +31 -10
  205. package/dist/collection/components/Tabs/Tabs.js.map +1 -1
  206. package/dist/collection/components/Tag/Tag.js +3 -2
  207. package/dist/collection/components/Tag/Tag.js.map +1 -1
  208. package/dist/collection/components/Text/Text.js +2 -2
  209. package/dist/collection/components/TimePicker/TimePicker.js +14 -9
  210. package/dist/collection/components/TimePicker/TimePicker.js.map +1 -1
  211. package/dist/collection/components/TimeSelect/TimeSelect.js +13 -4
  212. package/dist/collection/components/TimeSelect/TimeSelect.js.map +1 -1
  213. package/dist/collection/components/Tooltip/Tooltip.js +31 -8
  214. package/dist/collection/components/Tooltip/Tooltip.js.map +1 -1
  215. package/dist/collection/components/Tooltip/tooltip.css +24 -2
  216. package/dist/collection/components/Tree/Tree.js +147 -13
  217. package/dist/collection/components/Tree/Tree.js.map +1 -1
  218. package/dist/collection/components/TreeSelect/TreeSelect.js +130 -11
  219. package/dist/collection/components/TreeSelect/TreeSelect.js.map +1 -1
  220. package/dist/collection/components/Watermark/Watermark.js +19 -11
  221. package/dist/collection/components/Watermark/Watermark.js.map +1 -1
  222. package/dist/collection/utils/a11y.js +15 -1
  223. package/dist/collection/utils/a11y.js.map +1 -1
  224. package/dist/collection/utils/date-helpers.js +4 -15
  225. package/dist/collection/utils/date-helpers.js.map +1 -1
  226. package/dist/collection/utils/transition.js +29 -0
  227. package/dist/collection/utils/transition.js.map +1 -0
  228. package/dist/collection/utils/virtual-scroll.js +39 -0
  229. package/dist/collection/utils/virtual-scroll.js.map +1 -0
  230. package/dist/components/hb-alert.js +2 -1
  231. package/dist/components/hb-alert.js.map +1 -1
  232. package/dist/components/hb-calendar.js +2 -2
  233. package/dist/components/hb-calendar.js.map +1 -1
  234. package/dist/components/hb-cascader.js +48 -12
  235. package/dist/components/hb-cascader.js.map +1 -1
  236. package/dist/components/hb-checkbox-group.js +12 -8
  237. package/dist/components/hb-checkbox-group.js.map +1 -1
  238. package/dist/components/hb-checkbox.js +9 -4
  239. package/dist/components/hb-checkbox.js.map +1 -1
  240. package/dist/components/hb-collapse-item.js +14 -4
  241. package/dist/components/hb-collapse-item.js.map +1 -1
  242. package/dist/components/hb-collapse.js +20 -15
  243. package/dist/components/hb-collapse.js.map +1 -1
  244. package/dist/components/hb-color-picker.js +22 -19
  245. package/dist/components/hb-color-picker.js.map +1 -1
  246. package/dist/components/hb-date-picker-pane.js +1 -1
  247. package/dist/components/hb-date-picker.js +13 -10
  248. package/dist/components/hb-date-picker.js.map +1 -1
  249. package/dist/components/hb-date-range-picker.js +1 -1
  250. package/dist/components/hb-date-time-picker.js +1 -1
  251. package/dist/components/hb-descriptions.js.map +1 -1
  252. package/dist/components/hb-dialog.js +53 -13
  253. package/dist/components/hb-dialog.js.map +1 -1
  254. package/dist/components/hb-drawer.js +36 -5
  255. package/dist/components/hb-drawer.js.map +1 -1
  256. package/dist/components/hb-dropdown.js +28 -15
  257. package/dist/components/hb-dropdown.js.map +1 -1
  258. package/dist/components/hb-empty.js +1 -1
  259. package/dist/components/hb-float-button.js +2 -2
  260. package/dist/components/hb-form-item.js +70 -16
  261. package/dist/components/hb-form-item.js.map +1 -1
  262. package/dist/components/hb-form.js +120 -7
  263. package/dist/components/hb-form.js.map +1 -1
  264. package/dist/components/hb-image-preview.js +1 -1
  265. package/dist/components/hb-image-preview.js.map +1 -1
  266. package/dist/components/hb-image.js +23 -3
  267. package/dist/components/hb-image.js.map +1 -1
  268. package/dist/components/hb-input-number.js +7 -7
  269. package/dist/components/hb-input-number.js.map +1 -1
  270. package/dist/components/hb-input-tag.js +2 -2
  271. package/dist/components/hb-input.js +3 -2
  272. package/dist/components/hb-input.js.map +1 -1
  273. package/dist/components/hb-layout.js.map +1 -1
  274. package/dist/components/hb-link.js +2 -2
  275. package/dist/components/hb-loading.js +2 -2
  276. package/dist/components/hb-menu-item.js +15 -5
  277. package/dist/components/hb-menu-item.js.map +1 -1
  278. package/dist/components/hb-menu.js +2 -2
  279. package/dist/components/hb-message.js +13 -4
  280. package/dist/components/hb-message.js.map +1 -1
  281. package/dist/components/hb-page-header.js +1 -1
  282. package/dist/components/hb-pagination.js +8 -5
  283. package/dist/components/hb-pagination.js.map +1 -1
  284. package/dist/components/hb-popconfirm.js +28 -8
  285. package/dist/components/hb-popconfirm.js.map +1 -1
  286. package/dist/components/hb-popover.js +27 -14
  287. package/dist/components/hb-popover.js.map +1 -1
  288. package/dist/components/hb-progress.js +1 -1
  289. package/dist/components/hb-radio.js +8 -3
  290. package/dist/components/hb-radio.js.map +1 -1
  291. package/dist/components/hb-rate.js +3 -3
  292. package/dist/components/hb-rate.js.map +1 -1
  293. package/dist/components/hb-row.js +2 -2
  294. package/dist/components/hb-scrollbar.js +5 -5
  295. package/dist/components/hb-scrollbar.js.map +1 -1
  296. package/dist/components/hb-segmented.js +15 -2
  297. package/dist/components/hb-segmented.js.map +1 -1
  298. package/dist/components/hb-select.js +105 -20
  299. package/dist/components/hb-select.js.map +1 -1
  300. package/dist/components/hb-slider.js +6 -12
  301. package/dist/components/hb-slider.js.map +1 -1
  302. package/dist/components/hb-space.js +2 -2
  303. package/dist/components/hb-statistic.js +1 -1
  304. package/dist/components/hb-step.js +1 -1
  305. package/dist/components/hb-steps.js +3 -3
  306. package/dist/components/hb-steps.js.map +1 -1
  307. package/dist/components/hb-sub-menu.js +5 -5
  308. package/dist/components/hb-switch.js +3 -3
  309. package/dist/components/hb-switch.js.map +1 -1
  310. package/dist/components/hb-tab-pane.js +1 -1
  311. package/dist/components/hb-table.js +226 -43
  312. package/dist/components/hb-table.js.map +1 -1
  313. package/dist/components/hb-tabs.js +31 -10
  314. package/dist/components/hb-tabs.js.map +1 -1
  315. package/dist/components/hb-tag.js +3 -2
  316. package/dist/components/hb-tag.js.map +1 -1
  317. package/dist/components/hb-text.js +2 -2
  318. package/dist/components/hb-time-picker.js +14 -9
  319. package/dist/components/hb-time-picker.js.map +1 -1
  320. package/dist/components/hb-time-select.js +13 -4
  321. package/dist/components/hb-time-select.js.map +1 -1
  322. package/dist/components/hb-tooltip.js +31 -10
  323. package/dist/components/hb-tooltip.js.map +1 -1
  324. package/dist/components/hb-tree-select.js +129 -11
  325. package/dist/components/hb-tree-select.js.map +1 -1
  326. package/dist/components/hb-tree.js +147 -13
  327. package/dist/components/hb-tree.js.map +1 -1
  328. package/dist/components/hb-watermark.js +19 -11
  329. package/dist/components/hb-watermark.js.map +1 -1
  330. package/dist/{esm/a11y-f9ab2964.js → components/p-00aa34c8.js} +17 -3
  331. package/dist/components/p-00aa34c8.js.map +1 -0
  332. package/dist/components/{p-08b4005c.js → p-e0876aca.js} +5 -16
  333. package/dist/components/p-e0876aca.js.map +1 -0
  334. package/dist/components/p-fad66d69.js +32 -0
  335. package/dist/components/p-fad66d69.js.map +1 -0
  336. package/dist/{components/p-cc0aeb50.js → esm/a11y-e4cde5b0.js} +17 -3
  337. package/dist/esm/a11y-e4cde5b0.js.map +1 -0
  338. package/dist/esm/{date-helpers-44507189.js → date-helpers-259ed2f1.js} +5 -16
  339. package/dist/esm/date-helpers-259ed2f1.js.map +1 -0
  340. package/dist/esm/hb-alert.entry.js +2 -1
  341. package/dist/esm/hb-alert.entry.js.map +1 -1
  342. package/dist/esm/hb-calendar.entry.js +2 -2
  343. package/dist/esm/hb-calendar.entry.js.map +1 -1
  344. package/dist/esm/hb-cascader.entry.js +48 -12
  345. package/dist/esm/hb-cascader.entry.js.map +1 -1
  346. package/dist/esm/hb-checkbox-group.entry.js +12 -8
  347. package/dist/esm/hb-checkbox-group.entry.js.map +1 -1
  348. package/dist/esm/hb-checkbox.entry.js +9 -4
  349. package/dist/esm/hb-checkbox.entry.js.map +1 -1
  350. package/dist/esm/hb-collapse-item.entry.js +13 -4
  351. package/dist/esm/hb-collapse-item.entry.js.map +1 -1
  352. package/dist/esm/hb-collapse.entry.js +20 -15
  353. package/dist/esm/hb-collapse.entry.js.map +1 -1
  354. package/dist/esm/hb-color-picker.entry.js +22 -19
  355. package/dist/esm/hb-color-picker.entry.js.map +1 -1
  356. package/dist/esm/hb-date-picker-pane.entry.js +1 -1
  357. package/dist/esm/hb-date-picker.entry.js +13 -10
  358. package/dist/esm/hb-date-picker.entry.js.map +1 -1
  359. package/dist/esm/hb-date-range-picker.entry.js +1 -1
  360. package/dist/esm/hb-date-time-picker.entry.js +1 -1
  361. package/dist/esm/hb-descriptions.entry.js.map +1 -1
  362. package/dist/esm/hb-dialog.entry.js +51 -12
  363. package/dist/esm/hb-dialog.entry.js.map +1 -1
  364. package/dist/esm/hb-drawer.entry.js +34 -4
  365. package/dist/esm/hb-drawer.entry.js.map +1 -1
  366. package/dist/esm/hb-dropdown.entry.js +27 -15
  367. package/dist/esm/hb-dropdown.entry.js.map +1 -1
  368. package/dist/esm/hb-empty.entry.js +1 -1
  369. package/dist/esm/hb-float-button.entry.js +2 -2
  370. package/dist/esm/hb-form-item.entry.js +67 -16
  371. package/dist/esm/hb-form-item.entry.js.map +1 -1
  372. package/dist/esm/hb-form.entry.js +115 -7
  373. package/dist/esm/hb-form.entry.js.map +1 -1
  374. package/dist/esm/hb-image-preview.entry.js +1 -1
  375. package/dist/esm/hb-image-preview.entry.js.map +1 -1
  376. package/dist/esm/hb-image.entry.js +21 -3
  377. package/dist/esm/hb-image.entry.js.map +1 -1
  378. package/dist/esm/hb-input-number.entry.js +7 -7
  379. package/dist/esm/hb-input-number.entry.js.map +1 -1
  380. package/dist/esm/hb-input-tag.entry.js +2 -2
  381. package/dist/esm/hb-input.entry.js +3 -2
  382. package/dist/esm/hb-input.entry.js.map +1 -1
  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-menu-item.entry.js +14 -5
  387. package/dist/esm/hb-menu-item.entry.js.map +1 -1
  388. package/dist/esm/hb-menu.entry.js +2 -2
  389. package/dist/esm/hb-message.entry.js +13 -4
  390. package/dist/esm/hb-message.entry.js.map +1 -1
  391. package/dist/esm/hb-page-header.entry.js +1 -1
  392. package/dist/esm/hb-pagination.entry.js +8 -5
  393. package/dist/esm/hb-pagination.entry.js.map +1 -1
  394. package/dist/esm/hb-popconfirm.entry.js +27 -8
  395. package/dist/esm/hb-popconfirm.entry.js.map +1 -1
  396. package/dist/esm/hb-popover.entry.js +26 -14
  397. package/dist/esm/hb-popover.entry.js.map +1 -1
  398. package/dist/esm/hb-progress.entry.js +1 -1
  399. package/dist/esm/hb-radio.entry.js +8 -3
  400. package/dist/esm/hb-radio.entry.js.map +1 -1
  401. package/dist/esm/hb-rate.entry.js +3 -3
  402. package/dist/esm/hb-rate.entry.js.map +1 -1
  403. package/dist/esm/hb-row.entry.js +2 -2
  404. package/dist/esm/hb-scrollbar.entry.js +5 -5
  405. package/dist/esm/hb-scrollbar.entry.js.map +1 -1
  406. package/dist/esm/hb-segmented.entry.js +13 -2
  407. package/dist/esm/hb-segmented.entry.js.map +1 -1
  408. package/dist/esm/hb-select.entry.js +100 -19
  409. package/dist/esm/hb-select.entry.js.map +1 -1
  410. package/dist/esm/hb-slider.entry.js +6 -12
  411. package/dist/esm/hb-slider.entry.js.map +1 -1
  412. package/dist/esm/hb-space.entry.js +2 -2
  413. package/dist/esm/hb-statistic.entry.js +1 -1
  414. package/dist/esm/hb-step.entry.js +1 -1
  415. package/dist/esm/hb-steps.entry.js +3 -3
  416. package/dist/esm/hb-steps.entry.js.map +1 -1
  417. package/dist/esm/hb-sub-menu.entry.js +5 -5
  418. package/dist/esm/hb-switch.entry.js +3 -3
  419. package/dist/esm/hb-switch.entry.js.map +1 -1
  420. package/dist/esm/hb-tab-pane.entry.js +1 -1
  421. package/dist/esm/hb-table.entry.js +218 -41
  422. package/dist/esm/hb-table.entry.js.map +1 -1
  423. package/dist/esm/hb-tabs.entry.js +31 -10
  424. package/dist/esm/hb-tabs.entry.js.map +1 -1
  425. package/dist/esm/hb-tag.entry.js +3 -2
  426. package/dist/esm/hb-tag.entry.js.map +1 -1
  427. package/dist/esm/hb-text.entry.js +2 -2
  428. package/dist/esm/hb-time-picker.entry.js +14 -9
  429. package/dist/esm/hb-time-picker.entry.js.map +1 -1
  430. package/dist/esm/hb-time-select.entry.js +13 -4
  431. package/dist/esm/hb-time-select.entry.js.map +1 -1
  432. package/dist/esm/hb-tooltip.entry.js +30 -10
  433. package/dist/esm/hb-tooltip.entry.js.map +1 -1
  434. package/dist/esm/hb-tree-select.entry.js +125 -10
  435. package/dist/esm/hb-tree-select.entry.js.map +1 -1
  436. package/dist/esm/hb-tree.entry.js +145 -12
  437. package/dist/esm/hb-tree.entry.js.map +1 -1
  438. package/dist/esm/hb-watermark.entry.js +19 -11
  439. package/dist/esm/hb-watermark.entry.js.map +1 -1
  440. package/dist/esm/huibo-ui.js +1 -1
  441. package/dist/esm/loader.js +1 -1
  442. package/dist/esm/transition-4295d789.js +32 -0
  443. package/dist/esm/transition-4295d789.js.map +1 -0
  444. package/dist/huibo-ui/huibo-ui.esm.js +1 -1
  445. package/dist/huibo-ui/huibo-ui.esm.js.map +1 -1
  446. package/dist/huibo-ui/p-00aa34c8.js +2 -0
  447. package/dist/huibo-ui/p-00aa34c8.js.map +1 -0
  448. package/dist/huibo-ui/p-0cc1e3f3.entry.js +2 -0
  449. package/dist/huibo-ui/p-0cc1e3f3.entry.js.map +1 -0
  450. package/dist/huibo-ui/{p-678b4212.entry.js → p-0ddae4e9.entry.js} +2 -2
  451. package/dist/huibo-ui/p-10f6c184.entry.js.map +1 -1
  452. package/dist/huibo-ui/{p-f4336be9.entry.js → p-14c3b47b.entry.js} +2 -2
  453. package/dist/huibo-ui/{p-c50ad398.entry.js → p-193efdc0.entry.js} +2 -2
  454. package/dist/huibo-ui/{p-735bceef.entry.js → p-1b98152b.entry.js} +2 -2
  455. package/dist/huibo-ui/p-1b98152b.entry.js.map +1 -0
  456. package/dist/huibo-ui/p-1f6d0adb.entry.js +2 -0
  457. package/dist/huibo-ui/p-1f6d0adb.entry.js.map +1 -0
  458. package/dist/huibo-ui/{p-0d4b2997.entry.js → p-2bcda1bb.entry.js} +2 -2
  459. package/dist/huibo-ui/{p-b8d87f7e.entry.js → p-2ca9796a.entry.js} +2 -2
  460. package/dist/huibo-ui/p-2ca9796a.entry.js.map +1 -0
  461. package/dist/huibo-ui/{p-c80f8ace.entry.js → p-2cf5bf20.entry.js} +2 -2
  462. package/dist/huibo-ui/p-2cf5bf20.entry.js.map +1 -0
  463. package/dist/huibo-ui/{p-7da14d7c.entry.js → p-3042f986.entry.js} +2 -2
  464. package/dist/huibo-ui/{p-e039155d.entry.js → p-3dacb26b.entry.js} +2 -2
  465. package/dist/huibo-ui/{p-a084b8e5.entry.js → p-412ff618.entry.js} +2 -2
  466. package/dist/huibo-ui/p-4148d875.entry.js +2 -0
  467. package/dist/huibo-ui/p-4148d875.entry.js.map +1 -0
  468. package/dist/huibo-ui/{p-6beb5b81.entry.js → p-415295f3.entry.js} +2 -2
  469. package/dist/huibo-ui/p-415295f3.entry.js.map +1 -0
  470. package/dist/huibo-ui/p-494e6c25.entry.js +2 -0
  471. package/dist/huibo-ui/p-494e6c25.entry.js.map +1 -0
  472. package/dist/huibo-ui/p-4d87d7f4.entry.js +2 -0
  473. package/dist/huibo-ui/p-4d87d7f4.entry.js.map +1 -0
  474. package/dist/huibo-ui/p-5e253c15.entry.js +2 -0
  475. package/dist/huibo-ui/p-5e253c15.entry.js.map +1 -0
  476. package/dist/huibo-ui/p-63d68c61.entry.js +2 -0
  477. package/dist/huibo-ui/p-63d68c61.entry.js.map +1 -0
  478. package/dist/huibo-ui/{p-ccd09d5a.entry.js → p-6518c435.entry.js} +2 -2
  479. package/dist/huibo-ui/{p-1f8db37a.entry.js → p-687d8dff.entry.js} +2 -2
  480. package/dist/huibo-ui/p-687d8dff.entry.js.map +1 -0
  481. package/dist/huibo-ui/p-688460ce.entry.js +2 -0
  482. package/dist/huibo-ui/p-688460ce.entry.js.map +1 -0
  483. package/dist/huibo-ui/p-69bb1dd9.entry.js +2 -0
  484. package/dist/huibo-ui/p-69bb1dd9.entry.js.map +1 -0
  485. package/dist/huibo-ui/{p-2811e603.entry.js → p-6bfe1954.entry.js} +2 -2
  486. package/dist/huibo-ui/p-6bfe1954.entry.js.map +1 -0
  487. package/dist/huibo-ui/{p-e5cbfa9e.entry.js → p-6c23fbd1.entry.js} +2 -2
  488. package/dist/huibo-ui/p-6c23fbd1.entry.js.map +1 -0
  489. package/dist/huibo-ui/p-6c8cf248.entry.js.map +1 -1
  490. package/dist/huibo-ui/p-6efed295.entry.js +2 -0
  491. package/dist/huibo-ui/p-6efed295.entry.js.map +1 -0
  492. package/dist/huibo-ui/p-7a38b3e2.entry.js +2 -0
  493. package/dist/huibo-ui/p-7a38b3e2.entry.js.map +1 -0
  494. package/dist/huibo-ui/{p-cad57c2d.entry.js → p-7a682c56.entry.js} +2 -2
  495. package/dist/huibo-ui/{p-a8996d22.entry.js → p-815fc943.entry.js} +2 -2
  496. package/dist/huibo-ui/{p-af74667d.entry.js → p-89be7973.entry.js} +2 -2
  497. package/dist/huibo-ui/p-8a202bc5.entry.js.map +1 -1
  498. package/dist/huibo-ui/{p-213b9de7.entry.js → p-8c4415ed.entry.js} +2 -2
  499. package/dist/huibo-ui/p-8c4415ed.entry.js.map +1 -0
  500. package/dist/huibo-ui/{p-8fdbd17c.entry.js → p-950e7465.entry.js} +2 -2
  501. package/dist/huibo-ui/{p-ab9cf0e4.entry.js → p-96cecd21.entry.js} +2 -2
  502. package/dist/huibo-ui/p-96cecd21.entry.js.map +1 -0
  503. package/dist/huibo-ui/{p-2b4556ff.entry.js → p-98b513cd.entry.js} +2 -2
  504. package/dist/huibo-ui/p-98b513cd.entry.js.map +1 -0
  505. package/dist/huibo-ui/{p-89ea1141.entry.js → p-ac45291c.entry.js} +2 -2
  506. package/dist/huibo-ui/{p-e10fcfbe.entry.js → p-b105cf76.entry.js} +2 -2
  507. package/dist/huibo-ui/p-b105cf76.entry.js.map +1 -0
  508. package/dist/huibo-ui/{p-9a5406f0.entry.js → p-b38802b0.entry.js} +2 -2
  509. package/dist/huibo-ui/{p-9a5406f0.entry.js.map → p-b38802b0.entry.js.map} +1 -1
  510. package/dist/huibo-ui/{p-ea74fcae.entry.js → p-b3fd12c7.entry.js} +2 -2
  511. package/dist/huibo-ui/p-b3fd12c7.entry.js.map +1 -0
  512. package/dist/huibo-ui/p-b5ea18ba.entry.js +2 -0
  513. package/dist/huibo-ui/p-b5ea18ba.entry.js.map +1 -0
  514. package/dist/huibo-ui/{p-41d9c846.entry.js → p-b6afe81e.entry.js} +2 -2
  515. package/dist/huibo-ui/p-b7900dee.entry.js +2 -0
  516. package/dist/huibo-ui/p-b7900dee.entry.js.map +1 -0
  517. package/dist/huibo-ui/p-b8c83751.entry.js +2 -0
  518. package/dist/huibo-ui/p-b8c83751.entry.js.map +1 -0
  519. package/dist/huibo-ui/p-c7713947.entry.js +2 -0
  520. package/dist/huibo-ui/p-c7713947.entry.js.map +1 -0
  521. package/dist/huibo-ui/{p-33de6878.entry.js → p-c869842c.entry.js} +2 -2
  522. package/dist/huibo-ui/p-c869842c.entry.js.map +1 -0
  523. package/dist/huibo-ui/p-c8e917db.entry.js.map +1 -1
  524. package/dist/huibo-ui/p-cb66dbef.entry.js +2 -0
  525. package/dist/huibo-ui/p-cb66dbef.entry.js.map +1 -0
  526. package/dist/huibo-ui/p-cde83f76.entry.js +2 -0
  527. package/dist/huibo-ui/p-cde83f76.entry.js.map +1 -0
  528. package/dist/huibo-ui/{p-f5969181.entry.js → p-dd9c6459.entry.js} +2 -2
  529. package/dist/huibo-ui/{p-08b4005c.js → p-e0876aca.js} +1 -1
  530. package/dist/huibo-ui/p-e0876aca.js.map +1 -0
  531. package/dist/huibo-ui/{p-aa5e5e02.entry.js → p-e1773c93.entry.js} +2 -2
  532. package/dist/huibo-ui/p-e1773c93.entry.js.map +1 -0
  533. package/dist/huibo-ui/{p-626b48f1.entry.js → p-e73c357f.entry.js} +2 -2
  534. package/dist/huibo-ui/p-e73c357f.entry.js.map +1 -0
  535. package/dist/huibo-ui/{p-60532a1f.entry.js → p-e7c73624.entry.js} +2 -2
  536. package/dist/huibo-ui/p-e7c73624.entry.js.map +1 -0
  537. package/dist/huibo-ui/{p-86bdc48a.entry.js → p-e8824b2c.entry.js} +2 -2
  538. package/dist/huibo-ui/p-e8824b2c.entry.js.map +1 -0
  539. package/dist/huibo-ui/{p-13010da2.entry.js → p-e9e7abca.entry.js} +2 -2
  540. package/dist/huibo-ui/{p-f6889710.entry.js → p-ea0823f3.entry.js} +2 -2
  541. package/dist/huibo-ui/p-ea0823f3.entry.js.map +1 -0
  542. package/dist/huibo-ui/{p-b468858e.entry.js → p-f1f2483f.entry.js} +2 -2
  543. package/dist/huibo-ui/p-f69599fa.entry.js +2 -0
  544. package/dist/huibo-ui/p-f69599fa.entry.js.map +1 -0
  545. package/dist/huibo-ui/p-fad66d69.js +2 -0
  546. package/dist/huibo-ui/p-fad66d69.js.map +1 -0
  547. package/dist/huibo-ui/{p-fd8301c6.entry.js → p-fd6831f9.entry.js} +2 -2
  548. package/dist/huibo-ui/p-ff6bc5cc.entry.js +2 -0
  549. package/dist/huibo-ui/p-ff6bc5cc.entry.js.map +1 -0
  550. package/dist/types/components/Cascader/Cascader.d.ts +12 -0
  551. package/dist/types/components/Checkbox/Checkbox.d.ts +5 -0
  552. package/dist/types/components/Checkbox/CheckboxGroup.d.ts +1 -0
  553. package/dist/types/components/Collapse/Collapse.d.ts +2 -0
  554. package/dist/types/components/Collapse/CollapseItem.d.ts +8 -1
  555. package/dist/types/components/Dialog/Dialog.d.ts +13 -1
  556. package/dist/types/components/Drawer/Drawer.d.ts +4 -0
  557. package/dist/types/components/Dropdown/Dropdown.d.ts +6 -2
  558. package/dist/types/components/Form/Form.d.ts +59 -0
  559. package/dist/types/components/Form/FormItem.d.ts +23 -0
  560. package/dist/types/components/Image/Image.d.ts +6 -0
  561. package/dist/types/components/Menu/MenuItem.d.ts +8 -1
  562. package/dist/types/components/Message/Message.d.ts +3 -0
  563. package/dist/types/components/Popconfirm/Popconfirm.d.ts +6 -2
  564. package/dist/types/components/Popover/Popover.d.ts +6 -1
  565. package/dist/types/components/Radio/Radio.d.ts +5 -0
  566. package/dist/types/components/Segmented/Segmented.d.ts +6 -0
  567. package/dist/types/components/Select/Select.d.ts +24 -0
  568. package/dist/types/components/Table/Table.d.ts +110 -9
  569. package/dist/types/components/Tabs/Tabs.d.ts +6 -0
  570. package/dist/types/components/Tooltip/Tooltip.d.ts +6 -0
  571. package/dist/types/components/Tree/Tree.d.ts +24 -0
  572. package/dist/types/components/TreeSelect/TreeSelect.d.ts +17 -0
  573. package/dist/types/components/Watermark/Watermark.d.ts +7 -1
  574. package/dist/types/components.d.ts +188 -6
  575. package/dist/types/utils/a11y.d.ts +9 -0
  576. package/dist/types/utils/transition.d.ts +27 -0
  577. package/dist/types/utils/virtual-scroll.d.ts +38 -0
  578. package/package.json +1 -1
  579. package/dist/cjs/a11y-802de67a.js.map +0 -1
  580. package/dist/cjs/date-helpers-1ffddc59.js.map +0 -1
  581. package/dist/components/p-08b4005c.js.map +0 -1
  582. package/dist/components/p-cc0aeb50.js.map +0 -1
  583. package/dist/esm/a11y-f9ab2964.js.map +0 -1
  584. package/dist/esm/date-helpers-44507189.js.map +0 -1
  585. package/dist/huibo-ui/p-08b4005c.js.map +0 -1
  586. package/dist/huibo-ui/p-1f8db37a.entry.js.map +0 -1
  587. package/dist/huibo-ui/p-213b9de7.entry.js.map +0 -1
  588. package/dist/huibo-ui/p-25fd7d5c.entry.js +0 -2
  589. package/dist/huibo-ui/p-25fd7d5c.entry.js.map +0 -1
  590. package/dist/huibo-ui/p-2811e603.entry.js.map +0 -1
  591. package/dist/huibo-ui/p-2943f5d0.entry.js +0 -2
  592. package/dist/huibo-ui/p-2943f5d0.entry.js.map +0 -1
  593. package/dist/huibo-ui/p-2b4556ff.entry.js.map +0 -1
  594. package/dist/huibo-ui/p-33de6878.entry.js.map +0 -1
  595. package/dist/huibo-ui/p-3807da71.entry.js +0 -2
  596. package/dist/huibo-ui/p-3807da71.entry.js.map +0 -1
  597. package/dist/huibo-ui/p-47ef7a86.entry.js +0 -2
  598. package/dist/huibo-ui/p-47ef7a86.entry.js.map +0 -1
  599. package/dist/huibo-ui/p-4d34e43e.entry.js +0 -2
  600. package/dist/huibo-ui/p-4d34e43e.entry.js.map +0 -1
  601. package/dist/huibo-ui/p-54aa2fd8.entry.js +0 -2
  602. package/dist/huibo-ui/p-54aa2fd8.entry.js.map +0 -1
  603. package/dist/huibo-ui/p-60532a1f.entry.js.map +0 -1
  604. package/dist/huibo-ui/p-626b48f1.entry.js.map +0 -1
  605. package/dist/huibo-ui/p-639f167d.entry.js +0 -2
  606. package/dist/huibo-ui/p-639f167d.entry.js.map +0 -1
  607. package/dist/huibo-ui/p-6beb5b81.entry.js.map +0 -1
  608. package/dist/huibo-ui/p-735bceef.entry.js.map +0 -1
  609. package/dist/huibo-ui/p-76519752.entry.js +0 -2
  610. package/dist/huibo-ui/p-76519752.entry.js.map +0 -1
  611. package/dist/huibo-ui/p-79af2efa.entry.js +0 -2
  612. package/dist/huibo-ui/p-79af2efa.entry.js.map +0 -1
  613. package/dist/huibo-ui/p-7f6975ad.entry.js +0 -2
  614. package/dist/huibo-ui/p-7f6975ad.entry.js.map +0 -1
  615. package/dist/huibo-ui/p-86bdc48a.entry.js.map +0 -1
  616. package/dist/huibo-ui/p-8a8443b8.entry.js +0 -2
  617. package/dist/huibo-ui/p-8a8443b8.entry.js.map +0 -1
  618. package/dist/huibo-ui/p-8fd788c9.entry.js +0 -2
  619. package/dist/huibo-ui/p-8fd788c9.entry.js.map +0 -1
  620. package/dist/huibo-ui/p-92521c31.entry.js +0 -2
  621. package/dist/huibo-ui/p-92521c31.entry.js.map +0 -1
  622. package/dist/huibo-ui/p-965d4d02.entry.js +0 -2
  623. package/dist/huibo-ui/p-965d4d02.entry.js.map +0 -1
  624. package/dist/huibo-ui/p-aa5e5e02.entry.js.map +0 -1
  625. package/dist/huibo-ui/p-ab9cf0e4.entry.js.map +0 -1
  626. package/dist/huibo-ui/p-b8d87f7e.entry.js.map +0 -1
  627. package/dist/huibo-ui/p-c6c91664.entry.js +0 -2
  628. package/dist/huibo-ui/p-c6c91664.entry.js.map +0 -1
  629. package/dist/huibo-ui/p-c80f8ace.entry.js.map +0 -1
  630. package/dist/huibo-ui/p-cc0aeb50.js +0 -2
  631. package/dist/huibo-ui/p-cc0aeb50.js.map +0 -1
  632. package/dist/huibo-ui/p-d79a15b1.entry.js +0 -2
  633. package/dist/huibo-ui/p-d79a15b1.entry.js.map +0 -1
  634. package/dist/huibo-ui/p-e10fcfbe.entry.js.map +0 -1
  635. package/dist/huibo-ui/p-e5cbfa9e.entry.js.map +0 -1
  636. package/dist/huibo-ui/p-ea74fcae.entry.js.map +0 -1
  637. package/dist/huibo-ui/p-edbda423.entry.js +0 -2
  638. package/dist/huibo-ui/p-edbda423.entry.js.map +0 -1
  639. package/dist/huibo-ui/p-f6889710.entry.js.map +0 -1
  640. package/dist/huibo-ui/p-f9bb5217.entry.js +0 -2
  641. package/dist/huibo-ui/p-f9bb5217.entry.js.map +0 -1
  642. package/dist/huibo-ui/p-fea20295.entry.js +0 -2
  643. package/dist/huibo-ui/p-fea20295.entry.js.map +0 -1
  644. /package/dist/huibo-ui/{p-678b4212.entry.js.map → p-0ddae4e9.entry.js.map} +0 -0
  645. /package/dist/huibo-ui/{p-f4336be9.entry.js.map → p-14c3b47b.entry.js.map} +0 -0
  646. /package/dist/huibo-ui/{p-c50ad398.entry.js.map → p-193efdc0.entry.js.map} +0 -0
  647. /package/dist/huibo-ui/{p-0d4b2997.entry.js.map → p-2bcda1bb.entry.js.map} +0 -0
  648. /package/dist/huibo-ui/{p-7da14d7c.entry.js.map → p-3042f986.entry.js.map} +0 -0
  649. /package/dist/huibo-ui/{p-e039155d.entry.js.map → p-3dacb26b.entry.js.map} +0 -0
  650. /package/dist/huibo-ui/{p-a084b8e5.entry.js.map → p-412ff618.entry.js.map} +0 -0
  651. /package/dist/huibo-ui/{p-ccd09d5a.entry.js.map → p-6518c435.entry.js.map} +0 -0
  652. /package/dist/huibo-ui/{p-cad57c2d.entry.js.map → p-7a682c56.entry.js.map} +0 -0
  653. /package/dist/huibo-ui/{p-a8996d22.entry.js.map → p-815fc943.entry.js.map} +0 -0
  654. /package/dist/huibo-ui/{p-af74667d.entry.js.map → p-89be7973.entry.js.map} +0 -0
  655. /package/dist/huibo-ui/{p-8fdbd17c.entry.js.map → p-950e7465.entry.js.map} +0 -0
  656. /package/dist/huibo-ui/{p-89ea1141.entry.js.map → p-ac45291c.entry.js.map} +0 -0
  657. /package/dist/huibo-ui/{p-41d9c846.entry.js.map → p-b6afe81e.entry.js.map} +0 -0
  658. /package/dist/huibo-ui/{p-f5969181.entry.js.map → p-dd9c6459.entry.js.map} +0 -0
  659. /package/dist/huibo-ui/{p-13010da2.entry.js.map → p-e9e7abca.entry.js.map} +0 -0
  660. /package/dist/huibo-ui/{p-b468858e.entry.js.map → p-f1f2483f.entry.js.map} +0 -0
  661. /package/dist/huibo-ui/{p-fd8301c6.entry.js.map → p-fd6831f9.entry.js.map} +0 -0
@@ -18,11 +18,29 @@ const Image = class {
18
18
  loaded = false;
19
19
  error = false;
20
20
  previewVisible = false;
21
- handleLoad = () => { this.loaded = true; };
22
- handleError = () => { this.error = true; };
21
+ /**
22
+ * src 时重置 loaded/error
23
+ * 修复 B5——修复前换 src 不清状态:坏图换好图卡在错误占位(error 不清零),
24
+ * 好图换坏图 loaded 仍 true 造成短暂状态错乱。
25
+ */
26
+ handleSrcChange() {
27
+ this.loaded = false;
28
+ this.error = false;
29
+ }
30
+ handleLoad = () => {
31
+ this.loaded = true;
32
+ };
33
+ handleError = () => {
34
+ this.error = true;
35
+ };
23
36
  render() {
24
- return (h("div", { key: 'ba3419b5ff3facd429a8f29451be12982c602143', class: "hb-image", style: { width: this.width, height: this.height, borderRadius: this.radius } }, !this.error ? (h("img", { src: this.src, alt: this.alt, class: { 'hb-image__inner': true, 'hb-image__inner--loaded': this.loaded }, style: { objectFit: this.fit }, loading: this.lazy ? 'lazy' : undefined, onLoad: this.handleLoad, onError: this.handleError, onClick: () => this.preview && (this.previewVisible = true) })) : (h("div", { class: "hb-image__error" }, "\u56FE\u7247\u52A0\u8F7D\u5931\u8D25")), this.previewVisible && (h("div", { key: '327219e256924391b44f02d39f5d7000161b1fb9', class: "hb-image__preview", onClick: () => { this.previewVisible = false; } }, h("img", { key: '3d1cb33434662932aff4c5fd7ffde8477616ff9a', src: this.src, alt: this.alt, class: "hb-image__preview-img" })))));
37
+ return (h("div", { key: 'c9bbb745e78918ca3659138a91e7472911ac4c09', class: "hb-image", style: { width: this.width, height: this.height, borderRadius: this.radius } }, !this.error ? (h("img", { src: this.src, alt: this.alt, class: { 'hb-image__inner': true, 'hb-image__inner--loaded': this.loaded }, style: { objectFit: this.fit }, loading: this.lazy ? 'lazy' : undefined, onLoad: this.handleLoad, onError: this.handleError, onClick: () => this.preview && (this.previewVisible = true) })) : (h("div", { class: "hb-image__error" }, "\u56FE\u7247\u52A0\u8F7D\u5931\u8D25")), this.previewVisible && (h("div", { key: '7d3b00d09c919169eab62ab6f525b2ef2f038a4c', class: "hb-image__preview", onClick: () => {
38
+ this.previewVisible = false;
39
+ } }, h("img", { key: '7c05ea33e51493d3a297f0e1c7d3511efae46a6c', src: this.src, alt: this.alt, class: "hb-image__preview-img" })))));
25
40
  }
41
+ static get watchers() { return {
42
+ "src": ["handleSrcChange"]
43
+ }; }
26
44
  };
27
45
  Image.style = HbImageStyle0;
28
46
 
@@ -1 +1 @@
1
- {"file":"hb-image.entry.js","mappings":";;AAAA,MAAM,QAAQ,GAAG,usMAAusM,CAAC;AACztM,sBAAe,QAAQ;;MCEV,KAAK;;;;IACR,GAAG,GAAW,EAAE,CAAC;IACjB,GAAG,GAAW,EAAE,CAAC;IACjB,KAAK,CAAU;IACf,MAAM,CAAU;IAChB,GAAG,GAAyD,MAAM,CAAC;IACnE,IAAI,GAAY,KAAK,CAAC;IACtB,OAAO,GAAY,KAAK,CAAC;IACzB,MAAM,CAAU;IAEf,MAAM,GAAY,KAAK,CAAC;IACxB,KAAK,GAAY,KAAK,CAAC;IACvB,cAAc,GAAY,KAAK,CAAC;IAEjC,UAAU,GAAG,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;IAC3C,WAAW,GAAG,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC;IAEnD,MAAM;QACJ,QACE,4DAAK,KAAK,EAAC,UAAU,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC,MAAM,EAAE,IAC/F,CAAC,IAAI,CAAC,KAAK,IACV,WACE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAC5B,KAAK,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,yBAAyB,EAAE,IAAI,CAAC,MAAM,EAAE,EAC1E,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAC9B,OAAO,EAAE,IAAI,CAAC,IAAI,GAAG,MAAM,GAAG,SAAS,EACvC,MAAM,EAAE,IAAI,CAAC,UAAU,EACvB,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,OAAO,EAAE,MAAM,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,GAC3D,KAEF,WAAK,KAAK,EAAC,iBAAiB,2CAAa,CAC1C,EACA,IAAI,CAAC,cAAc,KAClB,4DAAK,KAAK,EAAC,mBAAmB,EAAC,OAAO,EAAE,QAAQ,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,EAAE,IAC5E,4DAAK,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,EAAC,uBAAuB,GAAG,CAC/D,CACP,CACG,EACN;KACH;;;;;;","names":[],"sources":["src/components/Image/image.css?tag=hb-image&encapsulation=shadow","src/components/Image/Image.tsx"],"sourcesContent":[":host { display: inline-block; }\n.hb-image { position: relative; display: inline-flex; overflow: hidden; background: var(--hb-color-fill-quaternary); }\n.hb-image__inner { width: 100%; height: 100%; opacity: 0; transition: opacity 0.3s; }\n.hb-image__inner--loaded { opacity: 1; }\n.hb-image__error { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; font-size: var(--hb-font-size-sm); color: var(--hb-color-text-secondary); }\n.hb-image__preview { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,0.8); display: flex; align-items: center; justify-content: center; z-index: 2000; cursor: zoom-out; }\n.hb-image__preview-img { max-width: 90%; max-height: 90%; object-fit: contain; }\n","import { Component, h, Prop, State } from '@stencil/core';\n\n@Component({ tag: 'hb-image', styleUrl: 'image.css', shadow: true })\nexport class Image {\n @Prop() src: string = '';\n @Prop() alt: string = '';\n @Prop() width?: string;\n @Prop() height?: string;\n @Prop() fit: 'fill' | 'contain' | 'cover' | 'none' | 'scale-down' = 'fill';\n @Prop() lazy: boolean = false;\n @Prop() preview: boolean = false;\n @Prop() radius?: string;\n\n @State() loaded: boolean = false;\n @State() error: boolean = false;\n @State() previewVisible: boolean = false;\n\n private handleLoad = () => { this.loaded = true; };\n private handleError = () => { this.error = true; };\n\n render() {\n return (\n <div class=\"hb-image\" style={{ width: this.width, height: this.height, borderRadius: this.radius }}>\n {!this.error ? (\n <img\n src={this.src} alt={this.alt}\n class={{ 'hb-image__inner': true, 'hb-image__inner--loaded': this.loaded }}\n style={{ objectFit: this.fit }}\n loading={this.lazy ? 'lazy' : undefined}\n onLoad={this.handleLoad}\n onError={this.handleError}\n onClick={() => this.preview && (this.previewVisible = true)}\n />\n ) : (\n <div class=\"hb-image__error\">图片加载失败</div>\n )}\n {this.previewVisible && (\n <div class=\"hb-image__preview\" onClick={() => { this.previewVisible = false; }}>\n <img src={this.src} alt={this.alt} class=\"hb-image__preview-img\" />\n </div>\n )}\n </div>\n );\n }\n}\n"],"version":3}
1
+ {"file":"hb-image.entry.js","mappings":";;AAAA,MAAM,QAAQ,GAAG,usMAAusM,CAAC;AACztM,sBAAe,QAAQ;;MCEV,KAAK;;;;IACR,GAAG,GAAW,EAAE,CAAC;IACjB,GAAG,GAAW,EAAE,CAAC;IACjB,KAAK,CAAU;IACf,MAAM,CAAU;IAChB,GAAG,GAAyD,MAAM,CAAC;IACnE,IAAI,GAAY,KAAK,CAAC;IACtB,OAAO,GAAY,KAAK,CAAC;IACzB,MAAM,CAAU;IAEf,MAAM,GAAY,KAAK,CAAC;IACxB,KAAK,GAAY,KAAK,CAAC;IACvB,cAAc,GAAY,KAAK,CAAC;;;;;;IAQzC,eAAe;QACb,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;KACpB;IAEO,UAAU,GAAG;QACnB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;KACpB,CAAC;IACM,WAAW,GAAG;QACpB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;KACnB,CAAC;IAEF,MAAM;QACJ,QACE,4DAAK,KAAK,EAAC,UAAU,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC,MAAM,EAAE,IAC/F,CAAC,IAAI,CAAC,KAAK,IACV,WACE,GAAG,EAAE,IAAI,CAAC,GAAG,EACb,GAAG,EAAE,IAAI,CAAC,GAAG,EACb,KAAK,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,yBAAyB,EAAE,IAAI,CAAC,MAAM,EAAE,EAC1E,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAC9B,OAAO,EAAE,IAAI,CAAC,IAAI,GAAG,MAAM,GAAG,SAAS,EACvC,MAAM,EAAE,IAAI,CAAC,UAAU,EACvB,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,OAAO,EAAE,MAAM,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,GAC3D,KAEF,WAAK,KAAK,EAAC,iBAAiB,2CAAa,CAC1C,EACA,IAAI,CAAC,cAAc,KAClB,4DACE,KAAK,EAAC,mBAAmB,EACzB,OAAO,EAAE;gBACP,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;aAC7B,IAED,4DAAK,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,EAAC,uBAAuB,GAAG,CAC/D,CACP,CACG,EACN;KACH;;;;;;;;;","names":[],"sources":["src/components/Image/image.css?tag=hb-image&encapsulation=shadow","src/components/Image/Image.tsx"],"sourcesContent":[":host { display: inline-block; }\n.hb-image { position: relative; display: inline-flex; overflow: hidden; background: var(--hb-color-fill-quaternary); }\n.hb-image__inner { width: 100%; height: 100%; opacity: 0; transition: opacity 0.3s; }\n.hb-image__inner--loaded { opacity: 1; }\n.hb-image__error { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; font-size: var(--hb-font-size-sm); color: var(--hb-color-text-secondary); }\n.hb-image__preview { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,0.8); display: flex; align-items: center; justify-content: center; z-index: 2000; cursor: zoom-out; }\n.hb-image__preview-img { max-width: 90%; max-height: 90%; object-fit: contain; }\n","import { Component, h, Prop, State, Watch } from '@stencil/core';\n\n@Component({ tag: 'hb-image', styleUrl: 'image.css', shadow: true })\nexport class Image {\n @Prop() src: string = '';\n @Prop() alt: string = '';\n @Prop() width?: string;\n @Prop() height?: string;\n @Prop() fit: 'fill' | 'contain' | 'cover' | 'none' | 'scale-down' = 'fill';\n @Prop() lazy: boolean = false;\n @Prop() preview: boolean = false;\n @Prop() radius?: string;\n\n @State() loaded: boolean = false;\n @State() error: boolean = false;\n @State() previewVisible: boolean = false;\n\n /**\n * 换 src 时重置 loaded/error。\n * 修复 B5——修复前换 src 不清状态:坏图换好图卡在错误占位(error 不清零),\n * 好图换坏图 loaded 仍 true 造成短暂状态错乱。\n */\n @Watch('src')\n handleSrcChange() {\n this.loaded = false;\n this.error = false;\n }\n\n private handleLoad = () => {\n this.loaded = true;\n };\n private handleError = () => {\n this.error = true;\n };\n\n render() {\n return (\n <div class=\"hb-image\" style={{ width: this.width, height: this.height, borderRadius: this.radius }}>\n {!this.error ? (\n <img\n src={this.src}\n alt={this.alt}\n class={{ 'hb-image__inner': true, 'hb-image__inner--loaded': this.loaded }}\n style={{ objectFit: this.fit }}\n loading={this.lazy ? 'lazy' : undefined}\n onLoad={this.handleLoad}\n onError={this.handleError}\n onClick={() => this.preview && (this.previewVisible = true)}\n />\n ) : (\n <div class=\"hb-image__error\">图片加载失败</div>\n )}\n {this.previewVisible && (\n <div\n class=\"hb-image__preview\"\n onClick={() => {\n this.previewVisible = false;\n }}\n >\n <img src={this.src} alt={this.alt} class=\"hb-image__preview-img\" />\n </div>\n )}\n </div>\n );\n }\n}\n"],"version":3}
@@ -1,6 +1,6 @@
1
1
  import { r as registerInstance, c as createEvent, h } from './index-fdf7135e.js';
2
2
 
3
- const inputNumberCss = "/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}@layer theme{:host,:root{--font-sans:ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,::backdrop,:after,:before{border:0 solid;box-sizing:border-box;margin:0;padding:0}::file-selector-button{appearance:button;background-color:#0000;border:0 solid;border-radius:0;box-sizing:border-box;color:inherit;font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;margin:0;margin-inline-end:4px;opacity:1;padding:0}:host,html{-webkit-text-size-adjust:100%;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);line-height:1.5;tab-size:4;-webkit-tap-highlight-color:transparent}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-size:1em;font-variation-settings:var(--default-mono-font-variation-settings,normal)}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}button,input,optgroup,select,textarea{background-color:#0000;border-radius:0;color:inherit;font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;opacity:1}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex;padding-block:0}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field,::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}} /*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer components;:host{--hb-input-number-font-size:14px;--hb-input-number-height:32px;--hb-input-number-border-color:var(--hb-border-color,#dcdfe6);--hb-input-number-border-color-hover:var(--hb-color-primary);--hb-input-number-bg-color:var(--hb-color-white,#fff);display:inline-block;position:relative}.hb-input-number{display:inline-block;position:relative;width:180px}.hb-input-number,.hb-input-number__inner{line-height:var(--hb-input-number-height)}.hb-input-number__inner{-webkit-appearance:none;background-color:var(--hb-input-number-bg-color);border:1px solid var(--hb-input-number-border-color);border-radius:4px;box-sizing:border-box;color:var(--hb-color-text-regular,#606266);display:block;font-size:inherit;height:var(--hb-input-number-height);outline:none;padding:0 50px 0 15px;text-align:left;transition:border-color .2s cubic-bezier(.645,.045,.355,1);width:100%}.hb-input-number--without-controls .hb-input-number__inner{padding:0 15px}.hb-input-number--controls-right .hb-input-number__inner{padding:0 15px 0 50px}.hb-input-number__inner:focus,.hb-input-number__inner:hover:not(:disabled){border-color:var(--hb-input-number-border-color-hover)}.hb-input-number__inner:disabled{background-color:var(--hb-fill-color-light,#f5f7fa);border-color:var(--hb-input-number-border-color);color:var(--hb-color-text-disabled,#c0c4cc);cursor:not-allowed}.hb-input-number__decrease,.hb-input-number__increase{align-items:center;background:var(--hb-fill-color-light,#f5f7fa);color:var(--hb-color-text-regular,#606266);cursor:pointer;display:flex;font-size:13px;height:calc(100% - 2px);justify-content:center;position:absolute;text-align:center;top:1px;transition:all .2s;-webkit-user-select:none;user-select:none;width:35px;z-index:1}.hb-input-number__decrease:hover:not(.hb-input-number__decrease--disabled),.hb-input-number__increase:hover:not(.hb-input-number__increase--disabled){color:var(--hb-color-primary)}.hb-input-number__decrease--disabled,.hb-input-number__increase--disabled{color:var(--hb-color-text-disabled,#c0c4cc);cursor:not-allowed}.hb-input-number__increase{border-radius:0 4px 4px 0;right:1px}.hb-input-number__decrease,.hb-input-number__increase{border-left:1px solid var(--hb-input-number-border-color)}.hb-input-number__decrease{border-radius:0;right:36px}.hb-input-number--controls-right .hb-input-number__increase{border-radius:0 4px 4px 0;right:1px}.hb-input-number--controls-right .hb-input-number__decrease{border-radius:0;right:36px}.hb-input-number__controls{background:var(--hb-fill-color-light,#f5f7fa);border-left:1px solid var(--hb-input-number-border-color);border-radius:0 4px 4px 0;height:calc(100% - 2px);position:absolute;right:1px;top:1px;width:35px}.hb-input-number--controls-right .hb-input-number__controls{border-left:none;border-radius:4px 0 0 4px;border-right:1px solid var(--hb-input-number-border-color);left:1px;right:auto}.hb-input-number--controls-right .hb-input-number__controls .hb-input-number__increase{border:none;border-bottom:1px solid var(--hb-input-number-border-color);border-radius:0;position:static}.hb-input-number--controls-right .hb-input-number__controls .hb-input-number__decrease{border:none;border-radius:0 0 0 4px;position:static}.hb-input-number--small{width:150px}.hb-input-number--small .hb-input-number__inner{font-size:12px;height:24px;line-height:24px;padding:0 40px 0 12px}.hb-input-number--large{width:200px}.hb-input-number--large .hb-input-number__inner{font-size:16px;height:40px;line-height:40px;padding:0 55px 0 18px}.hb-input-number--disabled{cursor:not-allowed}@property --tw-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:\"*\";inherits:false}@property --tw-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:\"*\";inherits:false}@property --tw-inset-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:\"*\";inherits:false}@property --tw-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:\"*\";inherits:false}@property --tw-inset-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:\"*\";inherits:false}@property --tw-ring-offset-width{syntax:\"<length>\";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:\"*\";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}";
3
+ const inputNumberCss = "/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}@layer theme{:host,:root{--font-sans:ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,::backdrop,:after,:before{border:0 solid;box-sizing:border-box;margin:0;padding:0}::file-selector-button{appearance:button;background-color:#0000;border:0 solid;border-radius:0;box-sizing:border-box;color:inherit;font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;margin:0;margin-inline-end:4px;opacity:1;padding:0}:host,html{-webkit-text-size-adjust:100%;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);line-height:1.5;tab-size:4;-webkit-tap-highlight-color:transparent}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-size:1em;font-variation-settings:var(--default-mono-font-variation-settings,normal)}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}button,input,optgroup,select,textarea{background-color:#0000;border-radius:0;color:inherit;font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;opacity:1}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex;padding-block:0}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field,::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}} /*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer components;:host{--hb-input-number-font-size:14px;--hb-input-number-height:32px;--hb-input-number-border-color:var(--hb-border-color,#dcdfe6);--hb-input-number-border-color-hover:var(--hb-color-primary);--hb-input-number-bg-color:var(--hb-color-white,#fff);display:inline-block;position:relative}.hb-input-number{display:inline-block;position:relative;width:180px}.hb-input-number,.hb-input-number__inner{line-height:var(--hb-input-number-height)}.hb-input-number__inner{-webkit-appearance:none;background-color:var(--hb-input-number-bg-color);border:1px solid var(--hb-input-number-border-color);border-radius:4px;box-sizing:border-box;color:var(--hb-color-text-regular,#606266);display:block;font-size:inherit;height:var(--hb-input-number-height);outline:none;padding:0 50px 0 15px;text-align:left;transition:border-color .2s cubic-bezier(.645,.045,.355,1);width:100%}.hb-input-number--without-controls .hb-input-number__inner{padding:0 15px}.hb-input-number--controls-right .hb-input-number__inner{padding:0 15px 0 50px}.hb-input-number__inner:focus,.hb-input-number__inner:hover:not(:disabled){border-color:var(--hb-input-number-border-color-hover)}.hb-input-number__inner:disabled{background-color:var(--hb-fill-color-light,#f5f7fa);border-color:var(--hb-input-number-border-color);color:var(--hb-color-text-disabled,#c0c4cc);cursor:not-allowed}.hb-input-number__decrease,.hb-input-number__increase{align-items:center;background:var(--hb-fill-color-light,#f5f7fa);border:none;color:var(--hb-color-text-regular,#606266);cursor:pointer;display:flex;font-family:inherit;font-size:13px;height:calc(100% - 2px);justify-content:center;line-height:1;padding:0;position:absolute;text-align:center;top:1px;transition:all .2s;-webkit-user-select:none;user-select:none;width:35px;z-index:1}.hb-input-number__decrease:focus-visible,.hb-input-number__increase:focus-visible{outline:2px solid var(--hb-color-primary,#409eff);outline-offset:-2px}.hb-input-number__decrease:hover:not(.hb-input-number__decrease--disabled),.hb-input-number__increase:hover:not(.hb-input-number__increase--disabled){color:var(--hb-color-primary)}.hb-input-number__decrease--disabled,.hb-input-number__increase--disabled{color:var(--hb-color-text-disabled,#c0c4cc);cursor:not-allowed}.hb-input-number__increase{border-radius:0 4px 4px 0;right:1px}.hb-input-number__decrease,.hb-input-number__increase{border-left:1px solid var(--hb-input-number-border-color)}.hb-input-number__decrease{border-radius:0;right:36px}.hb-input-number--controls-right .hb-input-number__increase{border-radius:0 4px 4px 0;right:1px}.hb-input-number--controls-right .hb-input-number__decrease{border-radius:0;right:36px}.hb-input-number__controls{background:var(--hb-fill-color-light,#f5f7fa);border-left:1px solid var(--hb-input-number-border-color);border-radius:0 4px 4px 0;height:calc(100% - 2px);position:absolute;right:1px;top:1px;width:35px}.hb-input-number--controls-right .hb-input-number__controls{border-left:none;border-radius:4px 0 0 4px;border-right:1px solid var(--hb-input-number-border-color);left:1px;right:auto}.hb-input-number--controls-right .hb-input-number__controls .hb-input-number__increase{border:none;border-bottom:1px solid var(--hb-input-number-border-color);border-radius:0;position:static}.hb-input-number--controls-right .hb-input-number__controls .hb-input-number__decrease{border:none;border-radius:0 0 0 4px;position:static}.hb-input-number--small{width:150px}.hb-input-number--small .hb-input-number__inner{font-size:12px;height:24px;line-height:24px;padding:0 40px 0 12px}.hb-input-number--large{width:200px}.hb-input-number--large .hb-input-number__inner{font-size:16px;height:40px;line-height:40px;padding:0 55px 0 18px}.hb-input-number--disabled{cursor:not-allowed}@property --tw-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:\"*\";inherits:false}@property --tw-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:\"*\";inherits:false}@property --tw-inset-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:\"*\";inherits:false}@property --tw-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:\"*\";inherits:false}@property --tw-inset-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:\"*\";inherits:false}@property --tw-ring-offset-width{syntax:\"<length>\";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:\"*\";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}";
4
4
  const HbInputNumberStyle0 = inputNumberCss;
5
5
 
6
6
  const InputNumber = class {
@@ -134,25 +134,25 @@ const InputNumber = class {
134
134
  this.hbChange.emit(newValue);
135
135
  };
136
136
  render() {
137
- return (h("div", { key: 'b77486654ddd70a4661c1278ddc41e1a1c23078a', class: {
137
+ return (h("div", { key: 'cf809c8e0c9c722a4be473a3455626f58aab40d9', class: {
138
138
  'hb-input-number': true,
139
139
  [`hb-input-number--${this.size}`]: true,
140
140
  'hb-input-number--disabled': this.disabled,
141
141
  'hb-input-number--controls-right': this.controlsPosition === 'right',
142
142
  'hb-input-number--without-controls': !this.controls,
143
- } }, this.controls && this.controlsPosition !== 'right' && (h("span", { key: 'c60ff723277ffd25f3515b406cd56ae5e062474b', class: {
143
+ } }, this.controls && this.controlsPosition !== 'right' && (h("button", { key: 'b97e5a774d7747fa61ee59650517ab0f64167dda', type: "button", class: {
144
144
  'hb-input-number__decrease': true,
145
145
  'hb-input-number__decrease--disabled': this.currentValue <= this.min,
146
- }, onClick: this.decrease }, "\u2212")), h("input", { key: '66828157b6c91818b2d93e98935eac0d0e9237f0', type: "number", id: this.inputId, name: this.name, class: "hb-input-number__inner", value: this.currentValue, disabled: this.disabled, readonly: this.readonly, placeholder: this.placeholder, min: this.min, max: this.max, step: this.step, onInput: this.handleInput, onChange: this.handleChange }), this.controls && this.controlsPosition === 'right' && (h("span", { key: '58e9f86173a4a3e7808a1ca4c22f0a2a4ba2f070', class: "hb-input-number__controls" }, h("span", { key: 'ff63589ce88775289c820a6cf02bab140993206a', class: {
146
+ }, "aria-label": "\u51CF\u5C11", "aria-disabled": this.currentValue <= this.min || this.disabled, disabled: this.currentValue <= this.min || this.disabled, onClick: this.decrease }, "\u2212")), h("input", { key: '3b5357639f8b3676bb4de27dd67297288020a97f', type: "number", id: this.inputId, name: this.name, class: "hb-input-number__inner", value: this.currentValue, disabled: this.disabled, readonly: this.readonly, placeholder: this.placeholder, min: this.min, max: this.max, step: this.step, onInput: this.handleInput, onChange: this.handleChange }), this.controls && this.controlsPosition === 'right' && (h("span", { key: '00f8a845f5226999d02914ba6e62a29d24f1a26f', class: "hb-input-number__controls" }, h("button", { key: '886db946083adb10bdf8312dc985194b872000c4', type: "button", class: {
147
147
  'hb-input-number__increase': true,
148
148
  'hb-input-number__increase--disabled': this.currentValue >= this.max,
149
- }, onClick: this.increase }, "+"), h("span", { key: '9bf2c4305bc0bef3fbe3431960a79eac7e4cdbec', class: {
149
+ }, "aria-label": "\u589E\u52A0", "aria-disabled": this.currentValue >= this.max || this.disabled, disabled: this.currentValue >= this.max || this.disabled, onClick: this.increase }, "+"), h("button", { key: '9c9b8d9fa6871e354a38bd5691d0a01b0b87cf9a', type: "button", class: {
150
150
  'hb-input-number__decrease': true,
151
151
  'hb-input-number__decrease--disabled': this.currentValue <= this.min,
152
- }, onClick: this.decrease }, "\u2212"))), this.controls && this.controlsPosition !== 'right' && (h("span", { key: '6bec03b900b7b62692fa0b9a6510ecb8cdb90fbb', class: {
152
+ }, "aria-label": "\u51CF\u5C11", "aria-disabled": this.currentValue <= this.min || this.disabled, disabled: this.currentValue <= this.min || this.disabled, onClick: this.decrease }, "\u2212"))), this.controls && this.controlsPosition !== 'right' && (h("button", { key: 'c32d05810f4c0d9cd660483f45aac0f0f7ac48a5', type: "button", class: {
153
153
  'hb-input-number__increase': true,
154
154
  'hb-input-number__increase--disabled': this.currentValue >= this.max,
155
- }, onClick: this.increase }, "+"))));
155
+ }, "aria-label": "\u589E\u52A0", "aria-disabled": this.currentValue >= this.max || this.disabled, disabled: this.currentValue >= this.max || this.disabled, onClick: this.increase }, "+"))));
156
156
  }
157
157
  static get watchers() { return {
158
158
  "modelValue": ["handleModelValueChange"]
@@ -1 +1 @@
1
- {"file":"hb-input-number.entry.js","mappings":"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","names":[],"sources":["src/components/InputNumber/input-number.css?tag=hb-input-number&encapsulation=shadow","src/components/InputNumber/InputNumber.tsx"],"sourcesContent":[":host {\n display: inline-block;\n position: relative;\n --hb-input-number-font-size: 14px;\n --hb-input-number-height: 32px;\n --hb-input-number-border-color: var(--hb-border-color, #dcdfe6);\n --hb-input-number-border-color-hover: var(--hb-color-primary);\n --hb-input-number-bg-color: var(--hb-color-white, #ffffff);\n}\n\n.hb-input-number {\n position: relative;\n display: inline-block;\n width: 180px;\n line-height: var(--hb-input-number-height);\n}\n\n.hb-input-number__inner {\n -webkit-appearance: none;\n background-color: var(--hb-input-number-bg-color);\n border: 1px solid var(--hb-input-number-border-color);\n border-radius: 4px;\n box-sizing: border-box;\n color: var(--hb-color-text-regular, #606266);\n display: block;\n font-size: inherit;\n height: var(--hb-input-number-height);\n line-height: var(--hb-input-number-height);\n outline: none;\n padding: 0 50px 0 15px;\n text-align: left;\n transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);\n width: 100%;\n}\n\n.hb-input-number--without-controls .hb-input-number__inner {\n padding: 0 15px;\n}\n\n.hb-input-number--controls-right .hb-input-number__inner {\n padding: 0 15px 0 50px;\n}\n\n.hb-input-number__inner:hover:not(:disabled) {\n border-color: var(--hb-input-number-border-color-hover);\n}\n\n.hb-input-number__inner:focus {\n border-color: var(--hb-input-number-border-color-hover);\n}\n\n.hb-input-number__inner:disabled {\n background-color: var(--hb-fill-color-light, #f5f7fa);\n border-color: var(--hb-input-number-border-color);\n color: var(--hb-color-text-disabled, #c0c4cc);\n cursor: not-allowed;\n}\n\n.hb-input-number__increase,\n.hb-input-number__decrease {\n position: absolute;\n z-index: 1;\n top: 1px;\n width: 35px;\n height: calc(100% - 2px);\n text-align: center;\n background: var(--hb-fill-color-light, #f5f7fa);\n color: var(--hb-color-text-regular, #606266);\n cursor: pointer;\n font-size: 13px;\n user-select: none;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s;\n}\n\n.hb-input-number__increase:hover:not(.hb-input-number__increase--disabled),\n.hb-input-number__decrease:hover:not(.hb-input-number__decrease--disabled) {\n color: var(--hb-color-primary);\n}\n\n.hb-input-number__increase--disabled,\n.hb-input-number__decrease--disabled {\n color: var(--hb-color-text-disabled, #c0c4cc);\n cursor: not-allowed;\n}\n\n.hb-input-number__increase {\n right: 1px;\n border-radius: 0 4px 4px 0;\n border-left: 1px solid var(--hb-input-number-border-color);\n}\n\n.hb-input-number__decrease {\n right: 36px;\n border-radius: 0;\n border-left: 1px solid var(--hb-input-number-border-color);\n}\n\n.hb-input-number--controls-right .hb-input-number__increase {\n right: 1px;\n border-radius: 0 4px 4px 0;\n}\n\n.hb-input-number--controls-right .hb-input-number__decrease {\n right: 36px;\n border-radius: 0;\n}\n\n.hb-input-number__controls {\n position: absolute;\n right: 1px;\n top: 1px;\n width: 35px;\n height: calc(100% - 2px);\n border-left: 1px solid var(--hb-input-number-border-color);\n border-radius: 0 4px 4px 0;\n background: var(--hb-fill-color-light, #f5f7fa);\n}\n\n.hb-input-number--controls-right .hb-input-number__controls {\n left: 1px;\n right: auto;\n border-left: none;\n border-right: 1px solid var(--hb-input-number-border-color);\n border-radius: 4px 0 0 4px;\n}\n\n.hb-input-number--controls-right .hb-input-number__controls .hb-input-number__increase {\n position: static;\n border: none;\n border-bottom: 1px solid var(--hb-input-number-border-color);\n border-radius: 0;\n}\n\n.hb-input-number--controls-right .hb-input-number__controls .hb-input-number__decrease {\n position: static;\n border: none;\n border-radius: 0 0 0 4px;\n}\n\n.hb-input-number--small {\n width: 150px;\n}\n\n.hb-input-number--small .hb-input-number__inner {\n height: 24px;\n line-height: 24px;\n font-size: 12px;\n padding: 0 40px 0 12px;\n}\n\n.hb-input-number--large {\n width: 200px;\n}\n\n.hb-input-number--large .hb-input-number__inner {\n height: 40px;\n line-height: 40px;\n font-size: 16px;\n padding: 0 55px 0 18px;\n}\n\n.hb-input-number--disabled {\n cursor: not-allowed;\n}\n\n","import { Component, h, Prop, Event, EventEmitter, State, Watch } from '@stencil/core';\n\n/**\n * InputNumber 数字输入框组件\n * 仅允许输入标准的数字值,可定义范围\n */\n@Component({\n tag: 'hb-input-number',\n styleUrl: 'input-number.css',\n shadow: true,\n})\nexport class InputNumber {\n /**\n * 绑定值\n */\n @Prop({ mutable: true }) modelValue: number = 0;\n\n /**\n * 计数器尺寸\n */\n @Prop() size: 'large' | 'default' | 'small' = 'default';\n\n /**\n * 是否禁用\n * @default false\n */\n @Prop() disabled: boolean = false;\n\n /**\n * 是否只读\n * @default false\n */\n @Prop() readonly: boolean = false;\n\n /**\n * 最小值\n * @default -Infinity\n */\n @Prop() min: number = -Infinity;\n\n /**\n * 最大值\n * @default Infinity\n */\n @Prop() max: number = Infinity;\n\n /**\n * 计数器步长\n * @default 1\n */\n @Prop() step: number = 1;\n\n /**\n * 精度\n */\n @Prop() precision?: number;\n\n /**\n * 是否只能输入 step 的倍数\n * @default false\n */\n @Prop() stepStrictly: boolean = false;\n\n /**\n * 是否使用控制按钮\n * @default true\n */\n @Prop() controls: boolean = true;\n\n /**\n * 控制按钮位置\n */\n @Prop() controlsPosition: '' | 'right' = '';\n\n /**\n * 原生 name 属性\n */\n @Prop() name?: string;\n\n /**\n * 原生 id 属性\n */\n @Prop() inputId?: string;\n\n /**\n * 原生 placeholder 属性\n */\n @Prop() placeholder?: string;\n\n @State() currentValue: number = 0;\n\n /**\n * 值改变事件\n */\n @Event() hbChange: EventEmitter<number>;\n\n /**\n * 输入事件\n */\n @Event() hbInput: EventEmitter<number>;\n\n componentDidLoad() {\n this.currentValue = this.modelValue;\n }\n\n /** 受控模式:外部修改 modelValue 时同步内部 currentValue,保证 UI 与值一致 */\n @Watch('modelValue')\n handleModelValueChange() {\n this.currentValue = this.modelValue;\n }\n\n private formatValue(value: number): number {\n if (this.precision !== undefined) {\n return Number(value.toFixed(this.precision));\n }\n return value;\n }\n\n private clampValue(value: number): number {\n let clamped = Math.max(this.min, Math.min(this.max, value));\n \n if (this.stepStrictly) {\n const step = this.step;\n clamped = Math.round(clamped / step) * step;\n }\n \n return this.formatValue(clamped);\n }\n\n private handleInput = (e: Event) => {\n const target = e.target as HTMLInputElement;\n const value = parseFloat(target.value);\n \n if (isNaN(value)) {\n this.currentValue = this.min;\n } else {\n this.currentValue = this.clampValue(value);\n }\n \n this.modelValue = this.currentValue;\n this.hbInput.emit(this.currentValue);\n };\n\n private handleChange = () => {\n this.hbChange.emit(this.currentValue);\n };\n\n private increase = () => {\n if (this.disabled || this.readonly) return;\n const newValue = this.clampValue(this.currentValue + this.step);\n this.currentValue = newValue;\n this.modelValue = newValue;\n this.hbChange.emit(newValue);\n };\n\n private decrease = () => {\n if (this.disabled || this.readonly) return;\n const newValue = this.clampValue(this.currentValue - this.step);\n this.currentValue = newValue;\n this.modelValue = newValue;\n this.hbChange.emit(newValue);\n };\n\n render() {\n return (\n <div\n class={{\n 'hb-input-number': true,\n [`hb-input-number--${this.size}`]: true,\n 'hb-input-number--disabled': this.disabled,\n 'hb-input-number--controls-right': this.controlsPosition === 'right',\n 'hb-input-number--without-controls': !this.controls,\n }}\n >\n {this.controls && this.controlsPosition !== 'right' && (\n <span\n class={{\n 'hb-input-number__decrease': true,\n 'hb-input-number__decrease--disabled': this.currentValue <= this.min,\n }}\n onClick={this.decrease}\n >\n −\n </span>\n )}\n <input\n type=\"number\"\n id={this.inputId}\n name={this.name}\n class=\"hb-input-number__inner\"\n value={this.currentValue}\n disabled={this.disabled}\n readonly={this.readonly}\n placeholder={this.placeholder}\n min={this.min}\n max={this.max}\n step={this.step}\n onInput={this.handleInput}\n onChange={this.handleChange}\n />\n {this.controls && this.controlsPosition === 'right' && (\n <span class=\"hb-input-number__controls\">\n <span\n class={{\n 'hb-input-number__increase': true,\n 'hb-input-number__increase--disabled': this.currentValue >= this.max,\n }}\n onClick={this.increase}\n >\n +\n </span>\n <span\n class={{\n 'hb-input-number__decrease': true,\n 'hb-input-number__decrease--disabled': this.currentValue <= this.min,\n }}\n onClick={this.decrease}\n >\n −\n </span>\n </span>\n )}\n {this.controls && this.controlsPosition !== 'right' && (\n <span\n class={{\n 'hb-input-number__increase': true,\n 'hb-input-number__increase--disabled': this.currentValue >= this.max,\n }}\n onClick={this.increase}\n >\n +\n </span>\n )}\n </div>\n );\n }\n}\n\n"],"version":3}
1
+ {"file":"hb-input-number.entry.js","mappings":"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","names":[],"sources":["src/components/InputNumber/input-number.css?tag=hb-input-number&encapsulation=shadow","src/components/InputNumber/InputNumber.tsx"],"sourcesContent":[":host {\n display: inline-block;\n position: relative;\n --hb-input-number-font-size: 14px;\n --hb-input-number-height: 32px;\n --hb-input-number-border-color: var(--hb-border-color, #dcdfe6);\n --hb-input-number-border-color-hover: var(--hb-color-primary);\n --hb-input-number-bg-color: var(--hb-color-white, #ffffff);\n}\n\n.hb-input-number {\n position: relative;\n display: inline-block;\n width: 180px;\n line-height: var(--hb-input-number-height);\n}\n\n.hb-input-number__inner {\n -webkit-appearance: none;\n background-color: var(--hb-input-number-bg-color);\n border: 1px solid var(--hb-input-number-border-color);\n border-radius: 4px;\n box-sizing: border-box;\n color: var(--hb-color-text-regular, #606266);\n display: block;\n font-size: inherit;\n height: var(--hb-input-number-height);\n line-height: var(--hb-input-number-height);\n outline: none;\n padding: 0 50px 0 15px;\n text-align: left;\n transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);\n width: 100%;\n}\n\n.hb-input-number--without-controls .hb-input-number__inner {\n padding: 0 15px;\n}\n\n.hb-input-number--controls-right .hb-input-number__inner {\n padding: 0 15px 0 50px;\n}\n\n.hb-input-number__inner:hover:not(:disabled) {\n border-color: var(--hb-input-number-border-color-hover);\n}\n\n.hb-input-number__inner:focus {\n border-color: var(--hb-input-number-border-color-hover);\n}\n\n.hb-input-number__inner:disabled {\n background-color: var(--hb-fill-color-light, #f5f7fa);\n border-color: var(--hb-input-number-border-color);\n color: var(--hb-color-text-disabled, #c0c4cc);\n cursor: not-allowed;\n}\n\n.hb-input-number__increase,\n.hb-input-number__decrease {\n position: absolute;\n z-index: 1;\n top: 1px;\n width: 35px;\n height: calc(100% - 2px);\n text-align: center;\n background: var(--hb-fill-color-light, #f5f7fa);\n color: var(--hb-color-text-regular, #606266);\n cursor: pointer;\n font-size: 13px;\n user-select: none;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s;\n /* button 默认样式重置(A1:从 span 改为 button 后需要) */\n padding: 0;\n border: none;\n font-family: inherit;\n line-height: 1;\n}\n\n.hb-input-number__increase:focus-visible,\n.hb-input-number__decrease:focus-visible {\n outline: 2px solid var(--hb-color-primary, #409eff);\n outline-offset: -2px;\n}\n\n.hb-input-number__increase:hover:not(.hb-input-number__increase--disabled),\n.hb-input-number__decrease:hover:not(.hb-input-number__decrease--disabled) {\n color: var(--hb-color-primary);\n}\n\n.hb-input-number__increase--disabled,\n.hb-input-number__decrease--disabled {\n color: var(--hb-color-text-disabled, #c0c4cc);\n cursor: not-allowed;\n}\n\n.hb-input-number__increase {\n right: 1px;\n border-radius: 0 4px 4px 0;\n border-left: 1px solid var(--hb-input-number-border-color);\n}\n\n.hb-input-number__decrease {\n right: 36px;\n border-radius: 0;\n border-left: 1px solid var(--hb-input-number-border-color);\n}\n\n.hb-input-number--controls-right .hb-input-number__increase {\n right: 1px;\n border-radius: 0 4px 4px 0;\n}\n\n.hb-input-number--controls-right .hb-input-number__decrease {\n right: 36px;\n border-radius: 0;\n}\n\n.hb-input-number__controls {\n position: absolute;\n right: 1px;\n top: 1px;\n width: 35px;\n height: calc(100% - 2px);\n border-left: 1px solid var(--hb-input-number-border-color);\n border-radius: 0 4px 4px 0;\n background: var(--hb-fill-color-light, #f5f7fa);\n}\n\n.hb-input-number--controls-right .hb-input-number__controls {\n left: 1px;\n right: auto;\n border-left: none;\n border-right: 1px solid var(--hb-input-number-border-color);\n border-radius: 4px 0 0 4px;\n}\n\n.hb-input-number--controls-right .hb-input-number__controls .hb-input-number__increase {\n position: static;\n border: none;\n border-bottom: 1px solid var(--hb-input-number-border-color);\n border-radius: 0;\n}\n\n.hb-input-number--controls-right .hb-input-number__controls .hb-input-number__decrease {\n position: static;\n border: none;\n border-radius: 0 0 0 4px;\n}\n\n.hb-input-number--small {\n width: 150px;\n}\n\n.hb-input-number--small .hb-input-number__inner {\n height: 24px;\n line-height: 24px;\n font-size: 12px;\n padding: 0 40px 0 12px;\n}\n\n.hb-input-number--large {\n width: 200px;\n}\n\n.hb-input-number--large .hb-input-number__inner {\n height: 40px;\n line-height: 40px;\n font-size: 16px;\n padding: 0 55px 0 18px;\n}\n\n.hb-input-number--disabled {\n cursor: not-allowed;\n}\n","import { Component, h, Prop, Event, EventEmitter, State, Watch } from '@stencil/core';\n\n/**\n * InputNumber 数字输入框组件\n * 仅允许输入标准的数字值,可定义范围\n */\n@Component({\n tag: 'hb-input-number',\n styleUrl: 'input-number.css',\n shadow: true,\n})\nexport class InputNumber {\n /**\n * 绑定值\n */\n @Prop({ mutable: true }) modelValue: number = 0;\n\n /**\n * 计数器尺寸\n */\n @Prop() size: 'large' | 'default' | 'small' = 'default';\n\n /**\n * 是否禁用\n * @default false\n */\n @Prop() disabled: boolean = false;\n\n /**\n * 是否只读\n * @default false\n */\n @Prop() readonly: boolean = false;\n\n /**\n * 最小值\n * @default -Infinity\n */\n @Prop() min: number = -Infinity;\n\n /**\n * 最大值\n * @default Infinity\n */\n @Prop() max: number = Infinity;\n\n /**\n * 计数器步长\n * @default 1\n */\n @Prop() step: number = 1;\n\n /**\n * 精度\n */\n @Prop() precision?: number;\n\n /**\n * 是否只能输入 step 的倍数\n * @default false\n */\n @Prop() stepStrictly: boolean = false;\n\n /**\n * 是否使用控制按钮\n * @default true\n */\n @Prop() controls: boolean = true;\n\n /**\n * 控制按钮位置\n */\n @Prop() controlsPosition: '' | 'right' = '';\n\n /**\n * 原生 name 属性\n */\n @Prop() name?: string;\n\n /**\n * 原生 id 属性\n */\n @Prop() inputId?: string;\n\n /**\n * 原生 placeholder 属性\n */\n @Prop() placeholder?: string;\n\n @State() currentValue: number = 0;\n\n /**\n * 值改变事件\n */\n @Event() hbChange: EventEmitter<number>;\n\n /**\n * 输入事件\n */\n @Event() hbInput: EventEmitter<number>;\n\n componentDidLoad() {\n this.currentValue = this.modelValue;\n }\n\n /** 受控模式:外部修改 modelValue 时同步内部 currentValue,保证 UI 与值一致 */\n @Watch('modelValue')\n handleModelValueChange() {\n this.currentValue = this.modelValue;\n }\n\n private formatValue(value: number): number {\n if (this.precision !== undefined) {\n return Number(value.toFixed(this.precision));\n }\n return value;\n }\n\n private clampValue(value: number): number {\n let clamped = Math.max(this.min, Math.min(this.max, value));\n\n if (this.stepStrictly) {\n const step = this.step;\n clamped = Math.round(clamped / step) * step;\n }\n\n return this.formatValue(clamped);\n }\n\n private handleInput = (e: Event) => {\n const target = e.target as HTMLInputElement;\n const value = parseFloat(target.value);\n\n if (isNaN(value)) {\n this.currentValue = this.min;\n } else {\n this.currentValue = this.clampValue(value);\n }\n\n this.modelValue = this.currentValue;\n this.hbInput.emit(this.currentValue);\n };\n\n private handleChange = () => {\n this.hbChange.emit(this.currentValue);\n };\n\n private increase = () => {\n if (this.disabled || this.readonly) return;\n const newValue = this.clampValue(this.currentValue + this.step);\n this.currentValue = newValue;\n this.modelValue = newValue;\n this.hbChange.emit(newValue);\n };\n\n private decrease = () => {\n if (this.disabled || this.readonly) return;\n const newValue = this.clampValue(this.currentValue - this.step);\n this.currentValue = newValue;\n this.modelValue = newValue;\n this.hbChange.emit(newValue);\n };\n\n render() {\n return (\n <div\n class={{\n 'hb-input-number': true,\n [`hb-input-number--${this.size}`]: true,\n 'hb-input-number--disabled': this.disabled,\n 'hb-input-number--controls-right': this.controlsPosition === 'right',\n 'hb-input-number--without-controls': !this.controls,\n }}\n >\n {this.controls && this.controlsPosition !== 'right' && (\n <button\n type=\"button\"\n class={{\n 'hb-input-number__decrease': true,\n 'hb-input-number__decrease--disabled': this.currentValue <= this.min,\n }}\n aria-label=\"减少\"\n aria-disabled={this.currentValue <= this.min || this.disabled}\n disabled={this.currentValue <= this.min || this.disabled}\n onClick={this.decrease}\n >\n −\n </button>\n )}\n <input\n type=\"number\"\n id={this.inputId}\n name={this.name}\n class=\"hb-input-number__inner\"\n value={this.currentValue}\n disabled={this.disabled}\n readonly={this.readonly}\n placeholder={this.placeholder}\n min={this.min}\n max={this.max}\n step={this.step}\n onInput={this.handleInput}\n onChange={this.handleChange}\n />\n {this.controls && this.controlsPosition === 'right' && (\n <span class=\"hb-input-number__controls\">\n <button\n type=\"button\"\n class={{\n 'hb-input-number__increase': true,\n 'hb-input-number__increase--disabled': this.currentValue >= this.max,\n }}\n aria-label=\"增加\"\n aria-disabled={this.currentValue >= this.max || this.disabled}\n disabled={this.currentValue >= this.max || this.disabled}\n onClick={this.increase}\n >\n +\n </button>\n <button\n type=\"button\"\n class={{\n 'hb-input-number__decrease': true,\n 'hb-input-number__decrease--disabled': this.currentValue <= this.min,\n }}\n aria-label=\"减少\"\n aria-disabled={this.currentValue <= this.min || this.disabled}\n disabled={this.currentValue <= this.min || this.disabled}\n onClick={this.decrease}\n >\n −\n </button>\n </span>\n )}\n {this.controls && this.controlsPosition !== 'right' && (\n <button\n type=\"button\"\n class={{\n 'hb-input-number__increase': true,\n 'hb-input-number__increase--disabled': this.currentValue >= this.max,\n }}\n aria-label=\"增加\"\n aria-disabled={this.currentValue >= this.max || this.disabled}\n disabled={this.currentValue >= this.max || this.disabled}\n onClick={this.increase}\n >\n +\n </button>\n )}\n </div>\n );\n }\n}\n"],"version":3}
@@ -123,7 +123,7 @@ const InputTag = class {
123
123
  this.hbChange.emit([]);
124
124
  };
125
125
  render() {
126
- return (h("div", { key: '8ce158419ad7a38a870ec04ff67b97fc68884bb3', class: {
126
+ return (h("div", { key: 'eb9c7afe898b95d3b08c068921f50b4848d78ada', class: {
127
127
  'hb-input-tag': true,
128
128
  [`hb-input-tag--${this.size}`]: true,
129
129
  'hb-input-tag--disabled': this.disabled,
@@ -131,7 +131,7 @@ const InputTag = class {
131
131
  }, style: this.width ? { width: this.width } : undefined }, this.modelValue.map((tag) => (h("span", { class: {
132
132
  'hb-input-tag__tag': true,
133
133
  [`hb-input-tag__tag--${this.type}`]: !!this.type,
134
- } }, h("span", { class: "hb-input-tag__tag-text" }, tag), this.closable && (h("span", { class: "hb-input-tag__tag-close", onClick: () => this.removeTag(tag) }, "\u00D7"))))), this.inputVisible && (!this.max || this.modelValue.length < this.max) && (h("input", { key: '8f52afba7e2271936afcd89bfcafd0319eb765bc', ref: (el) => (this.inputRef = el), type: "text", class: "hb-input-tag__input", placeholder: this.placeholder, value: this.inputValue, disabled: this.disabled, maxlength: this.maxlength, onInput: this.handleInput, onKeyDown: this.handleKeyDown, onFocus: this.handleFocus, onBlur: this.handleBlur })), this.clearable && this.modelValue.length > 0 && !this.disabled && (h("span", { key: '5c37d7a9db6c535de62498b4f0a0be1a70846c46', class: "hb-input-tag__clear", onClick: this.handleClearAll }, "\u00D7"))));
134
+ } }, h("span", { class: "hb-input-tag__tag-text" }, tag), this.closable && (h("span", { class: "hb-input-tag__tag-close", onClick: () => this.removeTag(tag) }, "\u00D7"))))), this.inputVisible && (!this.max || this.modelValue.length < this.max) && (h("input", { key: '4f26ff131300b6afbb6278a8066e33c16197990f', ref: (el) => (this.inputRef = el), type: "text", class: "hb-input-tag__input", placeholder: this.placeholder, value: this.inputValue, disabled: this.disabled, maxlength: this.maxlength, onInput: this.handleInput, onKeyDown: this.handleKeyDown, onFocus: this.handleFocus, onBlur: this.handleBlur })), this.clearable && this.modelValue.length > 0 && !this.disabled && (h("span", { key: '2d0156cd68a9d9a11e1e8b78160edfa271bcb188', class: "hb-input-tag__clear", onClick: this.handleClearAll }, "\u00D7"))));
135
135
  }
136
136
  };
137
137
  InputTag.style = HbInputTagStyle0;
@@ -1,4 +1,5 @@
1
1
  import { r as registerInstance, c as createEvent, g as getElement, h } from './index-fdf7135e.js';
2
+ import { a as activationClickHandler } from './a11y-e4cde5b0.js';
2
3
 
3
4
  /**
4
5
  * 表单输入组件共享基础
@@ -267,11 +268,11 @@ const Input = class {
267
268
  render() {
268
269
  const isTextarea = this.type === 'textarea';
269
270
  const InputTag = isTextarea ? 'textarea' : 'input';
270
- return (h("div", { key: '200ae1b7d9257131fa15c06e950962559eaf6509', class: {
271
+ return (h("div", { key: '541681cbcc3f5bc9f0d6ed4e8b5d5d41e498f2a1', class: {
271
272
  ...sizeClassMap('hb-input', this.size),
272
273
  'hb-input--disabled': this.disabled,
273
274
  'hb-input--focused': this.isFocused,
274
- } }, this.prefixIcon && (h("span", { key: '1ba978d8de430fe70864b1daf5781e925cc35b5c', class: "hb-input__prefix" }, h("i", { key: '72abd536835d18ad5e7f75a09f896ebe41ca75d4', class: this.prefixIcon }))), h(InputTag, { key: '80049f50544c8118c73e545223450e5aecfc97ab', ref: (el) => (this.inputRef = el), type: isTextarea ? undefined : this.getInputType(), id: this.inputId, name: this.name, class: "hb-input__inner", placeholder: this.placeholder, value: this.inputValue, disabled: this.disabled, readonly: this.readonly, autocomplete: this.autocomplete, autofocus: this.autofocus, maxlength: this.maxlength, minlength: this.minlength, rows: isTextarea ? this.rows : undefined, style: isTextarea ? { resize: this.autosize ? 'none' : (this.resize || 'none') } : undefined, onInput: this.handleInput, onChange: this.handleChange, onFocus: this.handleFocus, onBlur: this.handleBlur }), (this.showClear || this.suffixIcon || (this.type === 'password' && this.showPassword)) && (h("span", { key: '9ef7d5b2592fbb890f2915c97c5ecb6a5790ef97', class: "hb-input__suffix" }, this.showClear && (h("span", { key: 'c727eb595e73882d7c8c0d74cb65464062724377', class: "hb-input__suffix-inner hb-input__clear", role: "button", "aria-label": "\u6E05\u7A7A", onClick: this.handleClear }, h("svg", { key: '49060a94eba1105ffe4a97a48be513919586737d', viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": 2, "stroke-linecap": "round", "stroke-linejoin": "round", "aria-hidden": "true" }, h("path", { key: '49c82790d5035f47c3f722b2d714f230394b2dda', d: "M6 6l12 12M18 6L6 18" })))), this.type === 'password' && this.showPassword && (h("span", { key: '209212e83bc6c4c0939c6ace984648212c320312', class: "hb-input__suffix-inner hb-input__password", role: "button", "aria-label": this.passwordVisible ? '隐藏密码' : '显示密码', onClick: this.togglePasswordVisible }, this.passwordVisible ? (h("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": 2, "stroke-linecap": "round", "stroke-linejoin": "round", "aria-hidden": "true" }, h("path", { d: "M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7-10-7-10-7z" }), h("circle", { cx: "12", cy: "12", r: "3" }))) : (h("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": 2, "stroke-linecap": "round", "stroke-linejoin": "round", "aria-hidden": "true" }, h("path", { d: "M3 3l18 18M10.6 10.6a3 3 0 0 0 4.2 4.2M9.9 5.1A10.6 10.6 0 0 1 12 5c6.5 0 10 7 10 7a17.8 17.8 0 0 1-2.2 3.2M6.1 6.1A17.7 17.7 0 0 0 2 12s3.5 7 10 7a10.5 10.5 0 0 0 4-.8" }))))), this.suffixIcon && (h("span", { key: '661c50477f3a7d99feb22d71920493a184d66beb', class: "hb-input__suffix-inner" }, h("i", { key: 'f626ef9a8e095ee15ed0b8d3c903635c66d160c1', class: this.suffixIcon }))))), this.showWordLimit && this.maxlength && (h("span", { key: '47eba0fd638cbf8c510f0a94ee1dac808e3bba78', class: "hb-input__count" }, h("span", { key: '2d73a2813633592d8462b9decb3fb3f81fa3abde', class: "hb-input__count-inner" }, this.inputValue.length, " / ", this.maxlength)))));
275
+ } }, this.prefixIcon && (h("span", { key: '5dc6ad6f39d472528e900654de37e13e42e7ea19', class: "hb-input__prefix" }, h("i", { key: '2f28864c2a8d60281eacbfe7c8d65b72e75744f9', class: this.prefixIcon }))), h(InputTag, { key: '2945de32bd65b0eb22849338aa0f4f966ccd0ad5', ref: el => (this.inputRef = el), type: isTextarea ? undefined : this.getInputType(), id: this.inputId, name: this.name, class: "hb-input__inner", placeholder: this.placeholder, value: this.inputValue, disabled: this.disabled, readonly: this.readonly, autocomplete: this.autocomplete, autofocus: this.autofocus, maxlength: this.maxlength, minlength: this.minlength, rows: isTextarea ? this.rows : undefined, style: isTextarea ? { resize: this.autosize ? 'none' : this.resize || 'none' } : undefined, onInput: this.handleInput, onChange: this.handleChange, onFocus: this.handleFocus, onBlur: this.handleBlur }), (this.showClear || this.suffixIcon || (this.type === 'password' && this.showPassword)) && (h("span", { key: '0b416f3f55c1b195bcfc7584eb96de3a47373b49', class: "hb-input__suffix" }, this.showClear && (h("span", { key: '4bd40fa20686602e0049f46bfe3a4ba1eedd704c', class: "hb-input__suffix-inner hb-input__clear", role: "button", "aria-label": "\u6E05\u7A7A", tabIndex: 0, onClick: this.handleClear, onKeyDown: activationClickHandler }, h("svg", { key: 'b4494db539d933d0686fad6744589955669ec402', viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": 2, "stroke-linecap": "round", "stroke-linejoin": "round", "aria-hidden": "true" }, h("path", { key: '02fde0709695629e71d90104f58d2926ae77ce8b', d: "M6 6l12 12M18 6L6 18" })))), this.type === 'password' && this.showPassword && (h("span", { key: 'fed9e94f2f0491d97a06b2ca4faeb86d4d0b4d79', class: "hb-input__suffix-inner hb-input__password", role: "button", "aria-label": this.passwordVisible ? '隐藏密码' : '显示密码', tabIndex: 0, onClick: this.togglePasswordVisible, onKeyDown: activationClickHandler }, this.passwordVisible ? (h("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": 2, "stroke-linecap": "round", "stroke-linejoin": "round", "aria-hidden": "true" }, h("path", { d: "M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7-10-7-10-7z" }), h("circle", { cx: "12", cy: "12", r: "3" }))) : (h("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": 2, "stroke-linecap": "round", "stroke-linejoin": "round", "aria-hidden": "true" }, h("path", { d: "M3 3l18 18M10.6 10.6a3 3 0 0 0 4.2 4.2M9.9 5.1A10.6 10.6 0 0 1 12 5c6.5 0 10 7 10 7a17.8 17.8 0 0 1-2.2 3.2M6.1 6.1A17.7 17.7 0 0 0 2 12s3.5 7 10 7a10.5 10.5 0 0 0 4-.8" }))))), this.suffixIcon && (h("span", { key: 'b7c39885d1c3528746855cd852fed3274d055b0f', class: "hb-input__suffix-inner" }, h("i", { key: 'e6952c4362150d3140feffaa51d9c0ac7f00a4b8', class: this.suffixIcon }))))), this.showWordLimit && this.maxlength && (h("span", { key: 'a6d207cc284a30911e3d17cd44bac5e061c20fac', class: "hb-input__count" }, h("span", { key: '52fa6d789528a8079d34fc4082b0532f52ce43ef', class: "hb-input__count-inner" }, this.inputValue.length, " / ", this.maxlength)))));
275
276
  }
276
277
  static get watchers() { return {
277
278
  "modelValue": ["handleValueChange"]
@@ -1 +1 @@
1
- {"file":"hb-input.entry.js","mappings":"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","names":[],"sources":["src/utils/form-input-base.ts","src/components/Input/input.css?tag=hb-input&encapsulation=shadow","src/components/Input/Input.tsx"],"sourcesContent":["/**\n * 表单输入组件共享基础\n * 统一 size / disabled / clearable / modelValue 这一组在 Input / Select / Cascader /\n * DatePicker / InputNumber / TimePicker 等组件中重复出现的包装模式。\n *\n * 设计原则:纯函数 + 类型导出,不引入基类继承,避免 Stencil 装饰器在继承链上的隐式行为。\n * 组件按需 import 对应工具,渲染时调用即可。\n */\n\n/** 组件尺寸(与 Ant Design 对齐,便于迁移) */\nexport type ComponentSize = 'large' | 'default' | 'small';\n\n/** 全部合法尺寸,用于运行期校验 */\nexport const COMPONENT_SIZES: readonly ComponentSize[] = ['large', 'default', 'small'] as const;\n\n/**\n * 表单输入组件共享的 prop 契约。\n * 跨框架消费方(React / Vue / 原生)可据此推断任一表单输入组件的通用能力,\n * 各组件在此基础上扩展自身特有 prop。\n */\nexport interface FormInputProps {\n /** 绑定值(双向,配合 hbChange 事件) */\n modelValue: unknown;\n /** 尺寸 */\n size?: ComponentSize;\n /** 是否禁用 */\n disabled?: boolean;\n /** 是否只读 */\n readonly?: boolean;\n /** 是否可清空 */\n clearable?: boolean;\n /** 占位文本 */\n placeholder?: string;\n}\n\n/**\n * 生成尺寸 class 名:buildSizeClass('hb-input', 'large') -> 'hb-input--large'\n * 用于替代各组件 render 中重复的 `[`hb-input--${this.size}`]: true` 模板字面量。\n */\nexport function buildSizeClass(base: string, size: ComponentSize | undefined): string {\n const normalized = size && COMPONENT_SIZES.includes(size) ? size : 'default';\n return `${base}--${normalized}`;\n}\n\n/** 清空按钮可见性判定参数 */\nexport interface ClearVisibleOptions {\n /** 是否声明了 clearable */\n clearable: boolean;\n /** 是否禁用(禁用时不显示) */\n disabled?: boolean;\n /** 是否只读(只读时不显示) */\n readonly?: boolean;\n /** 当前是否有值(无值时不显示) */\n hasValue: boolean;\n}\n\n/**\n * 判定清空按钮是否应显示。\n * 抽取自 Input/Select/Cascader 中重复的 `clearable && !disabled && !readonly && hasValue`。\n */\nexport function isClearVisible(options: ClearVisibleOptions): boolean {\n return Boolean(options.clearable && !options.disabled && !options.readonly && options.hasValue);\n}\n\n/**\n * 判定一个值是否「非空」(用于清空按钮显隐)。\n * 兼容字符串、数字、数组(多选)。\n */\nexport function hasInputValue(value: unknown): boolean {\n if (value === null || value === undefined) return false;\n if (typeof value === 'string') return value.length > 0;\n if (typeof value === 'number') return !Number.isNaN(value);\n if (Array.isArray(value)) return value.length > 0;\n return true;\n}\n\n/**\n * 尺寸 class 集合生成器:返回包含 base 与 size class 的对象,可直接展开进 JSX class 绑定。\n * 例:sizeClassMap('hb-input', 'large', this.size) -> { 'hb-input': true, 'hb-input--large': true }\n */\nexport function sizeClassMap(base: string, size: ComponentSize | undefined): Record<string, boolean> {\n return { [base]: true, [buildSizeClass(base, size)]: true };\n}\n",":host {\n display: inline-block;\n position: relative;\n --hb-input-font-size: 14px;\n --hb-input-font-size-large: 16px;\n --hb-input-font-size-small: 12px;\n --hb-input-height: 32px;\n --hb-input-height-large: 40px;\n --hb-input-height-small: 24px;\n --hb-input-border-color: var(--hb-border-color, #dcdfe6);\n --hb-input-border-color-hover: var(--hb-color-primary);\n --hb-input-bg-color: var(--hb-color-white, #ffffff);\n --hb-input-text-color: var(--hb-color-text-regular, #606266);\n --hb-input-placeholder-color: var(--hb-color-text-placeholder, #c0c4cc);\n --hb-input-disabled-color: var(--hb-color-text-disabled, #c0c4cc);\n --hb-input-disabled-bg-color: var(--hb-fill-color-light, #f5f7fa);\n}\n\n.hb-input {\n position: relative;\n font-size: var(--hb-input-font-size);\n display: inline-block;\n width: 100%;\n}\n\n.hb-input__inner {\n -webkit-appearance: none;\n background-color: var(--hb-input-bg-color);\n background-image: none;\n border-radius: 4px;\n border: 1px solid var(--hb-input-border-color);\n box-sizing: border-box;\n color: var(--hb-input-text-color);\n display: inline-block;\n font-size: inherit;\n height: var(--hb-input-height);\n line-height: var(--hb-input-height);\n outline: none;\n padding: 0 15px;\n transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);\n width: 100%;\n}\n\n.hb-input__inner::placeholder {\n color: var(--hb-input-placeholder-color);\n}\n\n.hb-input__inner:hover:not(:disabled) {\n border-color: var(--hb-input-border-color-hover);\n}\n\n.hb-input__inner:focus {\n border-color: var(--hb-input-border-color-hover);\n}\n\n.hb-input__inner:disabled {\n background-color: var(--hb-input-disabled-bg-color);\n border-color: var(--hb-input-border-color);\n color: var(--hb-input-disabled-color);\n cursor: not-allowed;\n}\n\n.hb-input__inner[readonly] {\n background-color: var(--hb-input-disabled-bg-color);\n cursor: default;\n}\n\n.hb-input--small .hb-input__inner {\n height: var(--hb-input-height-small);\n line-height: var(--hb-input-height-small);\n font-size: var(--hb-input-font-size-small);\n padding: 0 12px;\n}\n\n.hb-input--large .hb-input__inner {\n height: var(--hb-input-height-large);\n line-height: var(--hb-input-height-large);\n font-size: var(--hb-input-font-size-large);\n padding: 0 18px;\n}\n\n.hb-input__prefix,\n.hb-input__suffix {\n position: absolute;\n top: 0;\n height: 100%;\n text-align: center;\n color: var(--hb-input-placeholder-color);\n transition: all 0.3s;\n display: flex;\n align-items: center;\n}\n\n.hb-input__prefix {\n left: 5px;\n}\n\n.hb-input__suffix {\n right: 5px;\n}\n\n.hb-input__suffix-inner {\n display: flex;\n align-items: center;\n cursor: pointer;\n user-select: none;\n}\n\n.hb-input__clear {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 16px;\n height: 16px;\n color: var(--hb-input-placeholder-color);\n transition: color 0.2s;\n}\n\n.hb-input__clear svg {\n width: 100%;\n height: 100%;\n}\n\n.hb-input__clear:hover {\n color: var(--hb-input-text-color);\n}\n\n.hb-input__password {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 16px;\n height: 16px;\n color: var(--hb-input-text-color);\n cursor: pointer;\n}\n\n.hb-input__password svg {\n width: 100%;\n height: 100%;\n}\n\n.hb-input__inner[type=\"textarea\"] {\n min-height: 60px;\n padding: 5px 15px;\n line-height: 1.5;\n vertical-align: bottom;\n resize: vertical;\n}\n\n.hb-input__count {\n position: absolute;\n bottom: 5px;\n right: 10px;\n font-size: 12px;\n color: var(--hb-input-placeholder-color);\n}\n\n.hb-input__count-inner {\n background-color: var(--hb-input-bg-color);\n padding: 0 4px;\n}\n\n","import { Component, h, Prop, Event, EventEmitter, State, Watch, Element } from '@stencil/core';\nimport { ComponentSize, hasInputValue, isClearVisible, sizeClassMap } from '../../utils/form-input-base';\n\n/**\n * Input 输入框组件\n * 通过鼠标或键盘输入字符\n */\n@Component({\n tag: 'hb-input',\n styleUrl: 'input.css',\n shadow: true,\n})\nexport class Input {\n @Element() el: HTMLElement;\n\n /**\n * 绑定值\n */\n @Prop({ mutable: true }) modelValue: string = '';\n\n /**\n * 输入框类型\n */\n @Prop() type: string = 'text';\n\n /**\n * 输入框尺寸\n */\n @Prop() size: ComponentSize = 'default';\n\n /**\n * 是否禁用\n * @default false\n */\n @Prop() disabled: boolean = false;\n\n /**\n * 是否只读\n * @default false\n */\n @Prop() readonly: boolean = false;\n\n /**\n * 输入框占位文本\n */\n @Prop() placeholder?: string;\n\n /**\n * 是否可清空\n * @default false\n */\n @Prop() clearable: boolean = false;\n\n /**\n * 是否显示密码可见性切换\n * @default false\n */\n @Prop() showPassword: boolean = false;\n\n /**\n * 是否显示字数统计\n * @default false\n */\n @Prop() showWordLimit: boolean = false;\n\n /**\n * 最大输入长度\n */\n @Prop() maxlength?: number;\n\n /**\n * 最小输入长度\n */\n @Prop() minlength?: number;\n\n /**\n * 原生 name 属性\n */\n @Prop() name?: string;\n\n /**\n * 原生 id 属性\n */\n @Prop() inputId?: string;\n\n /**\n * 原生 autocomplete 属性\n */\n @Prop() autocomplete?: string;\n\n /**\n * 原生 autofocus 属性\n */\n @Prop() autofocus: boolean = false;\n\n /**\n * 输入框头部图标\n */\n @Prop() prefixIcon?: string;\n\n /**\n * 输入框尾部图标\n */\n @Prop() suffixIcon?: string;\n\n /**\n * 输入框行数,仅 type 为 'textarea' 时有效\n */\n @Prop() rows: number = 2;\n\n /**\n * 是否自适应内容高度,仅 type 为 'textarea' 时有效\n */\n @Prop() autosize: boolean | { minRows?: number; maxRows?: number } = false;\n\n /**\n * 是否调整 textarea 大小\n */\n @Prop() resize?: 'none' | 'both' | 'horizontal' | 'vertical';\n\n @State() isFocused: boolean = false;\n @State() showClear: boolean = false;\n @State() passwordVisible: boolean = false;\n @State() inputValue: string = '';\n\n private inputRef?: HTMLInputElement | HTMLTextAreaElement;\n\n /**\n * 值改变事件\n */\n @Event() hbChange: EventEmitter<string>;\n\n /**\n * 输入事件\n */\n @Event() hbInput: EventEmitter<string>;\n\n /**\n * 聚焦事件\n */\n @Event() hbFocus: EventEmitter<FocusEvent>;\n\n /**\n * 失焦事件\n */\n @Event() hbBlur: EventEmitter<FocusEvent>;\n\n /**\n * 清空事件\n */\n @Event() hbClear: EventEmitter<void>;\n\n @Watch('modelValue')\n handleValueChange() {\n this.inputValue = this.modelValue;\n this.updateClearVisible();\n // textarea autosize:外部改值也要重算高度\n this.resizeTextarea();\n }\n\n componentDidLoad() {\n this.inputValue = this.modelValue;\n this.updateClearVisible();\n this.resizeTextarea();\n }\n\n private updateClearVisible() {\n this.showClear = isClearVisible({\n clearable: this.clearable,\n disabled: this.disabled,\n readonly: this.readonly,\n hasValue: hasInputValue(this.inputValue),\n });\n }\n\n /**\n * textarea 自适应高度(autosize)。\n * - autosize=false 或非 textarea:跳过。\n * - autosize=true:按内容自适应。\n * - autosize={minRows,maxRows}:在最小/最大行数间夹取。\n * 算法:先把 height 置 auto 让浏览器按内容重排,再读 scrollHeight,\n * 减去 padding 后按行高换算成行数,最后按 min/max 夹取并写回 height。\n */\n private resizeTextarea() {\n if (this.type !== 'textarea' || !this.autosize) return;\n const ta = this.inputRef as HTMLTextAreaElement | undefined;\n if (!ta) return;\n\n // 行高:优先取计算样式,兜底 22px\n const computed = typeof window !== 'undefined' ? window.getComputedStyle(ta) : null;\n const lineHeight = computed && parseFloat(computed.lineHeight) ? parseFloat(computed.lineHeight) : 22;\n const paddingTop = computed ? parseFloat(computed.paddingTop) || 0 : 0;\n const paddingBottom = computed ? parseFloat(computed.paddingBottom) || 0 : 0;\n\n const opts = typeof this.autosize === 'object' ? this.autosize : {};\n const minRows = opts.minRows ?? 1;\n const maxRows = opts.maxRows ?? Infinity;\n\n const minH = minRows * lineHeight + paddingTop + paddingBottom;\n const maxH = maxRows === Infinity ? Infinity : maxRows * lineHeight + paddingTop + paddingBottom;\n\n // 先 reset 高度以读取真实内容高度\n ta.style.height = 'auto';\n const scrollH = ta.scrollHeight;\n const clamped = Math.max(minH, Math.min(scrollH, maxH === Infinity ? scrollH : maxH));\n ta.style.height = `${clamped}px`;\n // overflow:能滚动时才显示滚动条\n ta.style.overflowY = scrollH > clamped ? 'auto' : 'hidden';\n }\n\n private handleInput = (e: Event) => {\n const target = e.target as HTMLInputElement | HTMLTextAreaElement;\n this.inputValue = target.value;\n this.modelValue = target.value;\n this.updateClearVisible();\n this.hbInput.emit(target.value);\n this.resizeTextarea();\n };\n\n private handleChange = (e: Event) => {\n const target = e.target as HTMLInputElement | HTMLTextAreaElement;\n this.hbChange.emit(target.value);\n };\n\n private handleFocus = (e: FocusEvent) => {\n this.isFocused = true;\n this.updateClearVisible();\n this.hbFocus.emit(e);\n };\n\n private handleBlur = (e: FocusEvent) => {\n this.isFocused = false;\n this.updateClearVisible();\n this.hbBlur.emit(e);\n };\n\n private handleClear = (e: Event) => {\n e.stopPropagation();\n this.inputValue = '';\n this.modelValue = '';\n this.updateClearVisible();\n this.hbClear.emit();\n this.hbChange.emit('');\n if (this.inputRef) {\n this.inputRef.focus();\n }\n };\n\n private togglePasswordVisible = () => {\n this.passwordVisible = !this.passwordVisible;\n };\n\n private getInputType(): string {\n if (this.type === 'password' && this.showPassword) {\n return this.passwordVisible ? 'text' : 'password';\n }\n return this.type;\n }\n\n render() {\n const isTextarea = this.type === 'textarea';\n const InputTag = isTextarea ? 'textarea' : 'input';\n\n return (\n <div\n class={{\n ...sizeClassMap('hb-input', this.size),\n 'hb-input--disabled': this.disabled,\n 'hb-input--focused': this.isFocused,\n }}\n >\n {this.prefixIcon && (\n <span class=\"hb-input__prefix\">\n <i class={this.prefixIcon}></i>\n </span>\n )}\n <InputTag\n ref={(el) => (this.inputRef = el)}\n type={isTextarea ? undefined : this.getInputType()}\n id={this.inputId}\n name={this.name}\n class=\"hb-input__inner\"\n placeholder={this.placeholder}\n value={this.inputValue}\n disabled={this.disabled}\n readonly={this.readonly}\n autocomplete={this.autocomplete}\n autofocus={this.autofocus}\n maxlength={this.maxlength}\n minlength={this.minlength}\n rows={isTextarea ? this.rows : undefined}\n style={isTextarea ? { resize: this.autosize ? 'none' : (this.resize || 'none') } : undefined}\n onInput={this.handleInput}\n onChange={this.handleChange}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n />\n {(this.showClear || this.suffixIcon || (this.type === 'password' && this.showPassword)) && (\n <span class=\"hb-input__suffix\">\n {this.showClear && (\n <span class=\"hb-input__suffix-inner hb-input__clear\" role=\"button\" aria-label=\"清空\" onClick={this.handleClear}>\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width={2} stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\">\n <path d=\"M6 6l12 12M18 6L6 18\" />\n </svg>\n </span>\n )}\n {this.type === 'password' && this.showPassword && (\n <span\n class=\"hb-input__suffix-inner hb-input__password\"\n role=\"button\"\n aria-label={this.passwordVisible ? '隐藏密码' : '显示密码'}\n onClick={this.togglePasswordVisible}\n >\n {this.passwordVisible ? (\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width={2} stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\">\n <path d=\"M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7-10-7-10-7z\" />\n <circle cx=\"12\" cy=\"12\" r=\"3\" />\n </svg>\n ) : (\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width={2} stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\">\n <path d=\"M3 3l18 18M10.6 10.6a3 3 0 0 0 4.2 4.2M9.9 5.1A10.6 10.6 0 0 1 12 5c6.5 0 10 7 10 7a17.8 17.8 0 0 1-2.2 3.2M6.1 6.1A17.7 17.7 0 0 0 2 12s3.5 7 10 7a10.5 10.5 0 0 0 4-.8\" />\n </svg>\n )}\n </span>\n )}\n {this.suffixIcon && (\n <span class=\"hb-input__suffix-inner\">\n <i class={this.suffixIcon}></i>\n </span>\n )}\n </span>\n )}\n {this.showWordLimit && this.maxlength && (\n <span class=\"hb-input__count\">\n <span class=\"hb-input__count-inner\">\n {this.inputValue.length} / {this.maxlength}\n </span>\n </span>\n )}\n </div>\n );\n }\n}\n\n"],"version":3}
1
+ {"file":"hb-input.entry.js","mappings":"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","names":[],"sources":["src/utils/form-input-base.ts","src/components/Input/input.css?tag=hb-input&encapsulation=shadow","src/components/Input/Input.tsx"],"sourcesContent":["/**\n * 表单输入组件共享基础\n * 统一 size / disabled / clearable / modelValue 这一组在 Input / Select / Cascader /\n * DatePicker / InputNumber / TimePicker 等组件中重复出现的包装模式。\n *\n * 设计原则:纯函数 + 类型导出,不引入基类继承,避免 Stencil 装饰器在继承链上的隐式行为。\n * 组件按需 import 对应工具,渲染时调用即可。\n */\n\n/** 组件尺寸(与 Ant Design 对齐,便于迁移) */\nexport type ComponentSize = 'large' | 'default' | 'small';\n\n/** 全部合法尺寸,用于运行期校验 */\nexport const COMPONENT_SIZES: readonly ComponentSize[] = ['large', 'default', 'small'] as const;\n\n/**\n * 表单输入组件共享的 prop 契约。\n * 跨框架消费方(React / Vue / 原生)可据此推断任一表单输入组件的通用能力,\n * 各组件在此基础上扩展自身特有 prop。\n */\nexport interface FormInputProps {\n /** 绑定值(双向,配合 hbChange 事件) */\n modelValue: unknown;\n /** 尺寸 */\n size?: ComponentSize;\n /** 是否禁用 */\n disabled?: boolean;\n /** 是否只读 */\n readonly?: boolean;\n /** 是否可清空 */\n clearable?: boolean;\n /** 占位文本 */\n placeholder?: string;\n}\n\n/**\n * 生成尺寸 class 名:buildSizeClass('hb-input', 'large') -> 'hb-input--large'\n * 用于替代各组件 render 中重复的 `[`hb-input--${this.size}`]: true` 模板字面量。\n */\nexport function buildSizeClass(base: string, size: ComponentSize | undefined): string {\n const normalized = size && COMPONENT_SIZES.includes(size) ? size : 'default';\n return `${base}--${normalized}`;\n}\n\n/** 清空按钮可见性判定参数 */\nexport interface ClearVisibleOptions {\n /** 是否声明了 clearable */\n clearable: boolean;\n /** 是否禁用(禁用时不显示) */\n disabled?: boolean;\n /** 是否只读(只读时不显示) */\n readonly?: boolean;\n /** 当前是否有值(无值时不显示) */\n hasValue: boolean;\n}\n\n/**\n * 判定清空按钮是否应显示。\n * 抽取自 Input/Select/Cascader 中重复的 `clearable && !disabled && !readonly && hasValue`。\n */\nexport function isClearVisible(options: ClearVisibleOptions): boolean {\n return Boolean(options.clearable && !options.disabled && !options.readonly && options.hasValue);\n}\n\n/**\n * 判定一个值是否「非空」(用于清空按钮显隐)。\n * 兼容字符串、数字、数组(多选)。\n */\nexport function hasInputValue(value: unknown): boolean {\n if (value === null || value === undefined) return false;\n if (typeof value === 'string') return value.length > 0;\n if (typeof value === 'number') return !Number.isNaN(value);\n if (Array.isArray(value)) return value.length > 0;\n return true;\n}\n\n/**\n * 尺寸 class 集合生成器:返回包含 base 与 size class 的对象,可直接展开进 JSX class 绑定。\n * 例:sizeClassMap('hb-input', 'large', this.size) -> { 'hb-input': true, 'hb-input--large': true }\n */\nexport function sizeClassMap(base: string, size: ComponentSize | undefined): Record<string, boolean> {\n return { [base]: true, [buildSizeClass(base, size)]: true };\n}\n",":host {\n display: inline-block;\n position: relative;\n --hb-input-font-size: 14px;\n --hb-input-font-size-large: 16px;\n --hb-input-font-size-small: 12px;\n --hb-input-height: 32px;\n --hb-input-height-large: 40px;\n --hb-input-height-small: 24px;\n --hb-input-border-color: var(--hb-border-color, #dcdfe6);\n --hb-input-border-color-hover: var(--hb-color-primary);\n --hb-input-bg-color: var(--hb-color-white, #ffffff);\n --hb-input-text-color: var(--hb-color-text-regular, #606266);\n --hb-input-placeholder-color: var(--hb-color-text-placeholder, #c0c4cc);\n --hb-input-disabled-color: var(--hb-color-text-disabled, #c0c4cc);\n --hb-input-disabled-bg-color: var(--hb-fill-color-light, #f5f7fa);\n}\n\n.hb-input {\n position: relative;\n font-size: var(--hb-input-font-size);\n display: inline-block;\n width: 100%;\n}\n\n.hb-input__inner {\n -webkit-appearance: none;\n background-color: var(--hb-input-bg-color);\n background-image: none;\n border-radius: 4px;\n border: 1px solid var(--hb-input-border-color);\n box-sizing: border-box;\n color: var(--hb-input-text-color);\n display: inline-block;\n font-size: inherit;\n height: var(--hb-input-height);\n line-height: var(--hb-input-height);\n outline: none;\n padding: 0 15px;\n transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);\n width: 100%;\n}\n\n.hb-input__inner::placeholder {\n color: var(--hb-input-placeholder-color);\n}\n\n.hb-input__inner:hover:not(:disabled) {\n border-color: var(--hb-input-border-color-hover);\n}\n\n.hb-input__inner:focus {\n border-color: var(--hb-input-border-color-hover);\n}\n\n.hb-input__inner:disabled {\n background-color: var(--hb-input-disabled-bg-color);\n border-color: var(--hb-input-border-color);\n color: var(--hb-input-disabled-color);\n cursor: not-allowed;\n}\n\n.hb-input__inner[readonly] {\n background-color: var(--hb-input-disabled-bg-color);\n cursor: default;\n}\n\n.hb-input--small .hb-input__inner {\n height: var(--hb-input-height-small);\n line-height: var(--hb-input-height-small);\n font-size: var(--hb-input-font-size-small);\n padding: 0 12px;\n}\n\n.hb-input--large .hb-input__inner {\n height: var(--hb-input-height-large);\n line-height: var(--hb-input-height-large);\n font-size: var(--hb-input-font-size-large);\n padding: 0 18px;\n}\n\n.hb-input__prefix,\n.hb-input__suffix {\n position: absolute;\n top: 0;\n height: 100%;\n text-align: center;\n color: var(--hb-input-placeholder-color);\n transition: all 0.3s;\n display: flex;\n align-items: center;\n}\n\n.hb-input__prefix {\n left: 5px;\n}\n\n.hb-input__suffix {\n right: 5px;\n}\n\n.hb-input__suffix-inner {\n display: flex;\n align-items: center;\n cursor: pointer;\n user-select: none;\n}\n\n.hb-input__clear {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 16px;\n height: 16px;\n color: var(--hb-input-placeholder-color);\n transition: color 0.2s;\n}\n\n.hb-input__clear svg {\n width: 100%;\n height: 100%;\n}\n\n.hb-input__clear:hover {\n color: var(--hb-input-text-color);\n}\n\n.hb-input__password {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 16px;\n height: 16px;\n color: var(--hb-input-text-color);\n cursor: pointer;\n}\n\n.hb-input__password svg {\n width: 100%;\n height: 100%;\n}\n\n.hb-input__inner[type='textarea'] {\n min-height: 60px;\n padding: 5px 15px;\n line-height: 1.5;\n vertical-align: bottom;\n resize: vertical;\n}\n\n.hb-input__count {\n position: absolute;\n bottom: 5px;\n right: 10px;\n font-size: 12px;\n color: var(--hb-input-placeholder-color);\n}\n\n.hb-input__count-inner {\n background-color: var(--hb-input-bg-color);\n padding: 0 4px;\n}\n","import { Component, h, Prop, Event, EventEmitter, State, Watch, Element } from '@stencil/core';\nimport { ComponentSize, hasInputValue, isClearVisible, sizeClassMap } from '../../utils/form-input-base';\nimport { activationClickHandler } from '../../utils/a11y';\n\n/**\n * Input 输入框组件\n * 通过鼠标或键盘输入字符\n */\n@Component({\n tag: 'hb-input',\n styleUrl: 'input.css',\n shadow: true,\n})\nexport class Input {\n @Element() el: HTMLElement;\n\n /**\n * 绑定值\n */\n @Prop({ mutable: true }) modelValue: string = '';\n\n /**\n * 输入框类型\n */\n @Prop() type: string = 'text';\n\n /**\n * 输入框尺寸\n */\n @Prop() size: ComponentSize = 'default';\n\n /**\n * 是否禁用\n * @default false\n */\n @Prop() disabled: boolean = false;\n\n /**\n * 是否只读\n * @default false\n */\n @Prop() readonly: boolean = false;\n\n /**\n * 输入框占位文本\n */\n @Prop() placeholder?: string;\n\n /**\n * 是否可清空\n * @default false\n */\n @Prop() clearable: boolean = false;\n\n /**\n * 是否显示密码可见性切换\n * @default false\n */\n @Prop() showPassword: boolean = false;\n\n /**\n * 是否显示字数统计\n * @default false\n */\n @Prop() showWordLimit: boolean = false;\n\n /**\n * 最大输入长度\n */\n @Prop() maxlength?: number;\n\n /**\n * 最小输入长度\n */\n @Prop() minlength?: number;\n\n /**\n * 原生 name 属性\n */\n @Prop() name?: string;\n\n /**\n * 原生 id 属性\n */\n @Prop() inputId?: string;\n\n /**\n * 原生 autocomplete 属性\n */\n @Prop() autocomplete?: string;\n\n /**\n * 原生 autofocus 属性\n */\n @Prop() autofocus: boolean = false;\n\n /**\n * 输入框头部图标\n */\n @Prop() prefixIcon?: string;\n\n /**\n * 输入框尾部图标\n */\n @Prop() suffixIcon?: string;\n\n /**\n * 输入框行数,仅 type 为 'textarea' 时有效\n */\n @Prop() rows: number = 2;\n\n /**\n * 是否自适应内容高度,仅 type 为 'textarea' 时有效\n */\n @Prop() autosize: boolean | { minRows?: number; maxRows?: number } = false;\n\n /**\n * 是否调整 textarea 大小\n */\n @Prop() resize?: 'none' | 'both' | 'horizontal' | 'vertical';\n\n @State() isFocused: boolean = false;\n @State() showClear: boolean = false;\n @State() passwordVisible: boolean = false;\n @State() inputValue: string = '';\n\n private inputRef?: HTMLInputElement | HTMLTextAreaElement;\n\n /**\n * 值改变事件\n */\n @Event() hbChange: EventEmitter<string>;\n\n /**\n * 输入事件\n */\n @Event() hbInput: EventEmitter<string>;\n\n /**\n * 聚焦事件\n */\n @Event() hbFocus: EventEmitter<FocusEvent>;\n\n /**\n * 失焦事件\n */\n @Event() hbBlur: EventEmitter<FocusEvent>;\n\n /**\n * 清空事件\n */\n @Event() hbClear: EventEmitter<void>;\n\n @Watch('modelValue')\n handleValueChange() {\n this.inputValue = this.modelValue;\n this.updateClearVisible();\n // textarea autosize:外部改值也要重算高度\n this.resizeTextarea();\n }\n\n componentDidLoad() {\n this.inputValue = this.modelValue;\n this.updateClearVisible();\n this.resizeTextarea();\n }\n\n private updateClearVisible() {\n this.showClear = isClearVisible({\n clearable: this.clearable,\n disabled: this.disabled,\n readonly: this.readonly,\n hasValue: hasInputValue(this.inputValue),\n });\n }\n\n /**\n * textarea 自适应高度(autosize)。\n * - autosize=false 或非 textarea:跳过。\n * - autosize=true:按内容自适应。\n * - autosize={minRows,maxRows}:在最小/最大行数间夹取。\n * 算法:先把 height 置 auto 让浏览器按内容重排,再读 scrollHeight,\n * 减去 padding 后按行高换算成行数,最后按 min/max 夹取并写回 height。\n */\n private resizeTextarea() {\n if (this.type !== 'textarea' || !this.autosize) return;\n const ta = this.inputRef as HTMLTextAreaElement | undefined;\n if (!ta) return;\n\n // 行高:优先取计算样式,兜底 22px\n const computed = typeof window !== 'undefined' ? window.getComputedStyle(ta) : null;\n const lineHeight = computed && parseFloat(computed.lineHeight) ? parseFloat(computed.lineHeight) : 22;\n const paddingTop = computed ? parseFloat(computed.paddingTop) || 0 : 0;\n const paddingBottom = computed ? parseFloat(computed.paddingBottom) || 0 : 0;\n\n const opts = typeof this.autosize === 'object' ? this.autosize : {};\n const minRows = opts.minRows ?? 1;\n const maxRows = opts.maxRows ?? Infinity;\n\n const minH = minRows * lineHeight + paddingTop + paddingBottom;\n const maxH = maxRows === Infinity ? Infinity : maxRows * lineHeight + paddingTop + paddingBottom;\n\n // 先 reset 高度以读取真实内容高度\n ta.style.height = 'auto';\n const scrollH = ta.scrollHeight;\n const clamped = Math.max(minH, Math.min(scrollH, maxH === Infinity ? scrollH : maxH));\n ta.style.height = `${clamped}px`;\n // overflow:能滚动时才显示滚动条\n ta.style.overflowY = scrollH > clamped ? 'auto' : 'hidden';\n }\n\n private handleInput = (e: Event) => {\n const target = e.target as HTMLInputElement | HTMLTextAreaElement;\n this.inputValue = target.value;\n this.modelValue = target.value;\n this.updateClearVisible();\n this.hbInput.emit(target.value);\n this.resizeTextarea();\n };\n\n private handleChange = (e: Event) => {\n const target = e.target as HTMLInputElement | HTMLTextAreaElement;\n this.hbChange.emit(target.value);\n };\n\n private handleFocus = (e: FocusEvent) => {\n this.isFocused = true;\n this.updateClearVisible();\n this.hbFocus.emit(e);\n };\n\n private handleBlur = (e: FocusEvent) => {\n this.isFocused = false;\n this.updateClearVisible();\n this.hbBlur.emit(e);\n };\n\n private handleClear = (e: Event) => {\n e.stopPropagation();\n this.inputValue = '';\n this.modelValue = '';\n this.updateClearVisible();\n this.hbClear.emit();\n this.hbChange.emit('');\n if (this.inputRef) {\n this.inputRef.focus();\n }\n };\n\n private togglePasswordVisible = () => {\n this.passwordVisible = !this.passwordVisible;\n };\n\n private getInputType(): string {\n if (this.type === 'password' && this.showPassword) {\n return this.passwordVisible ? 'text' : 'password';\n }\n return this.type;\n }\n\n render() {\n const isTextarea = this.type === 'textarea';\n const InputTag = isTextarea ? 'textarea' : 'input';\n\n return (\n <div\n class={{\n ...sizeClassMap('hb-input', this.size),\n 'hb-input--disabled': this.disabled,\n 'hb-input--focused': this.isFocused,\n }}\n >\n {this.prefixIcon && (\n <span class=\"hb-input__prefix\">\n <i class={this.prefixIcon}></i>\n </span>\n )}\n <InputTag\n ref={el => (this.inputRef = el)}\n type={isTextarea ? undefined : this.getInputType()}\n id={this.inputId}\n name={this.name}\n class=\"hb-input__inner\"\n placeholder={this.placeholder}\n value={this.inputValue}\n disabled={this.disabled}\n readonly={this.readonly}\n autocomplete={this.autocomplete}\n autofocus={this.autofocus}\n maxlength={this.maxlength}\n minlength={this.minlength}\n rows={isTextarea ? this.rows : undefined}\n style={isTextarea ? { resize: this.autosize ? 'none' : this.resize || 'none' } : undefined}\n onInput={this.handleInput}\n onChange={this.handleChange}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n />\n {(this.showClear || this.suffixIcon || (this.type === 'password' && this.showPassword)) && (\n <span class=\"hb-input__suffix\">\n {this.showClear && (\n <span class=\"hb-input__suffix-inner hb-input__clear\" role=\"button\" aria-label=\"清空\" tabIndex={0} onClick={this.handleClear} onKeyDown={activationClickHandler}>\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width={2} stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\">\n <path d=\"M6 6l12 12M18 6L6 18\" />\n </svg>\n </span>\n )}\n {this.type === 'password' && this.showPassword && (\n <span\n class=\"hb-input__suffix-inner hb-input__password\"\n role=\"button\"\n aria-label={this.passwordVisible ? '隐藏密码' : '显示密码'}\n tabIndex={0}\n onClick={this.togglePasswordVisible}\n onKeyDown={activationClickHandler}\n >\n {this.passwordVisible ? (\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width={2} stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\">\n <path d=\"M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7-10-7-10-7z\" />\n <circle cx=\"12\" cy=\"12\" r=\"3\" />\n </svg>\n ) : (\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width={2} stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\">\n <path d=\"M3 3l18 18M10.6 10.6a3 3 0 0 0 4.2 4.2M9.9 5.1A10.6 10.6 0 0 1 12 5c6.5 0 10 7 10 7a17.8 17.8 0 0 1-2.2 3.2M6.1 6.1A17.7 17.7 0 0 0 2 12s3.5 7 10 7a10.5 10.5 0 0 0 4-.8\" />\n </svg>\n )}\n </span>\n )}\n {this.suffixIcon && (\n <span class=\"hb-input__suffix-inner\">\n <i class={this.suffixIcon}></i>\n </span>\n )}\n </span>\n )}\n {this.showWordLimit && this.maxlength && (\n <span class=\"hb-input__count\">\n <span class=\"hb-input__count-inner\">\n {this.inputValue.length} / {this.maxlength}\n </span>\n </span>\n )}\n </div>\n );\n }\n}\n"],"version":3}
@@ -1 +1 @@
1
- {"file":"hb-layout.entry.js","mappings":";;AAAA,MAAM,SAAS,GAAG,k0vBAAk0vB,CAAC;AACr1vB,uBAAe,SAAS;;MCmBX,MAAM;;;;;;;;IAKT,IAAI,GAAW,EAAE,CAAC;;;;;IAMlB,MAAM,GAAW,CAAC,CAAC;;;;;IAMnB,IAAI,GAAW,CAAC,CAAC;;;;;IAMjB,IAAI,GAAW,CAAC,CAAC;;;;IAKjB,EAAE,CAA0B;;;;IAK5B,EAAE,CAA0B;;;;IAK5B,EAAE,CAA0B;;;;IAK5B,EAAE,CAA0B;;;;IAK5B,EAAE,CAA0B;;IAG5B,mBAAmB,CAAC,KAAyC;QACnE,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,EAAE,CAAC;QACrD,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;QACtD,OAAO,KAAK,CAAC;KACd;IAEO,WAAW;QACjB,MAAM,OAAO,GAAa,CAAC,QAAQ,CAAC,CAAC;;QAGrC,IAAI,IAAI,CAAC,IAAI;YAAE,OAAO,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACnD,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9D,IAAI,IAAI,CAAC,IAAI;YAAE,OAAO,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACxD,IAAI,IAAI,CAAC,IAAI;YAAE,OAAO,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;;;QAIxD,MAAM,GAAG,GAA4C,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACpF,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE;YACpB,MAAM,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;YACnB,IAAI,CAAC,KAAK,SAAS;gBAAE,SAAS;YAC9B,MAAM,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;YACtC,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS;gBAAE,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YACjE,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS;gBAAE,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;YAC5E,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS;gBAAE,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YACtE,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS;gBAAE,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;SACvE;QAED,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAC1B;IAED,MAAM;QACJ,QACE,4DAAK,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,IAC5B,8DAAa,CACT,EACN;KACH;;;;;;","names":[],"sources":["src/components/Layout/layout.css?tag=hb-layout&encapsulation=shadow","src/components/Layout/Layout.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.hb-col {\n position: relative;\n width: 100%;\n box-sizing: border-box;\n}\n\n/* Generate col classes for span 1-24 */\n.hb-col-1 { width: 4.16666667%; }\n.hb-col-2 { width: 8.33333333%; }\n.hb-col-3 { width: 12.5%; }\n.hb-col-4 { width: 16.66666667%; }\n.hb-col-5 { width: 20.83333333%; }\n.hb-col-6 { width: 25%; }\n.hb-col-7 { width: 29.16666667%; }\n.hb-col-8 { width: 33.33333333%; }\n.hb-col-9 { width: 37.5%; }\n.hb-col-10 { width: 41.66666667%; }\n.hb-col-11 { width: 45.83333333%; }\n.hb-col-12 { width: 50%; }\n.hb-col-13 { width: 54.16666667%; }\n.hb-col-14 { width: 58.33333333%; }\n.hb-col-15 { width: 62.5%; }\n.hb-col-16 { width: 66.66666667%; }\n.hb-col-17 { width: 70.83333333%; }\n.hb-col-18 { width: 75%; }\n.hb-col-19 { width: 79.16666667%; }\n.hb-col-20 { width: 83.33333333%; }\n.hb-col-21 { width: 87.5%; }\n.hb-col-22 { width: 91.66666667%; }\n.hb-col-23 { width: 95.83333333%; }\n.hb-col-24 { width: 100%; }\n\n/* Offset classes */\n.hb-col-offset-1 { margin-left: 4.16666667%; }\n.hb-col-offset-2 { margin-left: 8.33333333%; }\n.hb-col-offset-3 { margin-left: 12.5%; }\n.hb-col-offset-4 { margin-left: 16.66666667%; }\n.hb-col-offset-5 { margin-left: 20.83333333%; }\n.hb-col-offset-6 { margin-left: 25%; }\n.hb-col-offset-7 { margin-left: 29.16666667%; }\n.hb-col-offset-8 { margin-left: 33.33333333%; }\n.hb-col-offset-9 { margin-left: 37.5%; }\n.hb-col-offset-10 { margin-left: 41.66666667%; }\n.hb-col-offset-11 { margin-left: 45.83333333%; }\n.hb-col-offset-12 { margin-left: 50%; }\n.hb-col-offset-13 { margin-left: 54.16666667%; }\n.hb-col-offset-14 { margin-left: 58.33333333%; }\n.hb-col-offset-15 { margin-left: 62.5%; }\n.hb-col-offset-16 { margin-left: 66.66666667%; }\n.hb-col-offset-17 { margin-left: 70.83333333%; }\n.hb-col-offset-18 { margin-left: 75%; }\n.hb-col-offset-19 { margin-left: 79.16666667%; }\n.hb-col-offset-20 { margin-left: 83.33333333%; }\n.hb-col-offset-21 { margin-left: 87.5%; }\n.hb-col-offset-22 { margin-left: 91.66666667%; }\n.hb-col-offset-23 { margin-left: 95.83333333%; }\n\n/* Push classes */\n.hb-col-push-1 { left: 4.16666667%; }\n.hb-col-push-2 { left: 8.33333333%; }\n.hb-col-push-3 { left: 12.5%; }\n.hb-col-push-4 { left: 16.66666667%; }\n.hb-col-push-5 { left: 20.83333333%; }\n.hb-col-push-6 { left: 25%; }\n.hb-col-push-7 { left: 29.16666667%; }\n.hb-col-push-8 { left: 33.33333333%; }\n.hb-col-push-9 { left: 37.5%; }\n.hb-col-push-10 { left: 41.66666667%; }\n.hb-col-push-11 { left: 45.83333333%; }\n.hb-col-push-12 { left: 50%; }\n\n/* Pull classes */\n.hb-col-pull-1 { right: 4.16666667%; }\n.hb-col-pull-2 { right: 8.33333333%; }\n.hb-col-pull-3 { right: 12.5%; }\n.hb-col-pull-4 { right: 16.66666667%; }\n.hb-col-pull-5 { right: 20.83333333%; }\n.hb-col-pull-6 { right: 25%; }\n.hb-col-pull-7 { right: 29.16666667%; }\n.hb-col-pull-8 { right: 33.33333333%; }\n.hb-col-pull-9 { right: 37.5%; }\n.hb-col-pull-10 { right: 41.66666667%; }\n.hb-col-pull-11 { right: 45.83333333%; }\n.hb-col-pull-12 { right: 50%; }\n\n\n/* ============================================================\n * 响应式栅格(xs/sm/md/lg/xl)—— 由 Layout.tsx 输出对应 class,\n * 这里按断点用 @media 应用宽度/偏移/推拉。\n * xs 无 @media(移动端默认);sm/md/lg/xl 用 min-width 渐进增强。\n * 对齐 antd Grid 断点:576 / 768 / 992 / 1200\n * ============================================================ */\n\n.hb-col-xs-0 { display: none; }\n.hb-col-xs-1 { width: 4.16666667%; }\n.hb-col-xs-2 { width: 8.33333333%; }\n.hb-col-xs-3 { width: 12.5%; }\n.hb-col-xs-4 { width: 16.66666667%; }\n.hb-col-xs-5 { width: 20.83333333%; }\n.hb-col-xs-6 { width: 25%; }\n.hb-col-xs-7 { width: 29.16666667%; }\n.hb-col-xs-8 { width: 33.33333333%; }\n.hb-col-xs-9 { width: 37.5%; }\n.hb-col-xs-10 { width: 41.66666667%; }\n.hb-col-xs-11 { width: 45.83333333%; }\n.hb-col-xs-12 { width: 50%; }\n.hb-col-xs-13 { width: 54.16666667%; }\n.hb-col-xs-14 { width: 58.33333333%; }\n.hb-col-xs-15 { width: 62.5%; }\n.hb-col-xs-16 { width: 66.66666667%; }\n.hb-col-xs-17 { width: 70.83333333%; }\n.hb-col-xs-18 { width: 75%; }\n.hb-col-xs-19 { width: 79.16666667%; }\n.hb-col-xs-20 { width: 83.33333333%; }\n.hb-col-xs-21 { width: 87.5%; }\n.hb-col-xs-22 { width: 91.66666667%; }\n.hb-col-xs-23 { width: 95.83333333%; }\n.hb-col-xs-24 { width: 100%; }\n.hb-col-xs-offset-0 { margin-left: 0; }\n.hb-col-xs-offset-1 { margin-left: 4.16666667%; }\n.hb-col-xs-offset-2 { margin-left: 8.33333333%; }\n.hb-col-xs-offset-3 { margin-left: 12.5%; }\n.hb-col-xs-offset-4 { margin-left: 16.66666667%; }\n.hb-col-xs-offset-5 { margin-left: 20.83333333%; }\n.hb-col-xs-offset-6 { margin-left: 25%; }\n.hb-col-xs-offset-7 { margin-left: 29.16666667%; }\n.hb-col-xs-offset-8 { margin-left: 33.33333333%; }\n.hb-col-xs-offset-9 { margin-left: 37.5%; }\n.hb-col-xs-offset-10 { margin-left: 41.66666667%; }\n.hb-col-xs-offset-11 { margin-left: 45.83333333%; }\n.hb-col-xs-offset-12 { margin-left: 50%; }\n.hb-col-xs-offset-13 { margin-left: 54.16666667%; }\n.hb-col-xs-offset-14 { margin-left: 58.33333333%; }\n.hb-col-xs-offset-15 { margin-left: 62.5%; }\n.hb-col-xs-offset-16 { margin-left: 66.66666667%; }\n.hb-col-xs-offset-17 { margin-left: 70.83333333%; }\n.hb-col-xs-offset-18 { margin-left: 75%; }\n.hb-col-xs-offset-19 { margin-left: 79.16666667%; }\n.hb-col-xs-offset-20 { margin-left: 83.33333333%; }\n.hb-col-xs-offset-21 { margin-left: 87.5%; }\n.hb-col-xs-offset-22 { margin-left: 91.66666667%; }\n.hb-col-xs-offset-23 { margin-left: 95.83333333%; }\n.hb-col-xs-offset-24 { margin-left: 100%; }\n.hb-col-xs-push-0 { left: 0; }\n.hb-col-xs-push-1 { left: 4.16666667%; }\n.hb-col-xs-push-2 { left: 8.33333333%; }\n.hb-col-xs-push-3 { left: 12.5%; }\n.hb-col-xs-push-4 { left: 16.66666667%; }\n.hb-col-xs-push-5 { left: 20.83333333%; }\n.hb-col-xs-push-6 { left: 25%; }\n.hb-col-xs-push-7 { left: 29.16666667%; }\n.hb-col-xs-push-8 { left: 33.33333333%; }\n.hb-col-xs-push-9 { left: 37.5%; }\n.hb-col-xs-push-10 { left: 41.66666667%; }\n.hb-col-xs-push-11 { left: 45.83333333%; }\n.hb-col-xs-push-12 { left: 50%; }\n.hb-col-xs-push-13 { left: 54.16666667%; }\n.hb-col-xs-push-14 { left: 58.33333333%; }\n.hb-col-xs-push-15 { left: 62.5%; }\n.hb-col-xs-push-16 { left: 66.66666667%; }\n.hb-col-xs-push-17 { left: 70.83333333%; }\n.hb-col-xs-push-18 { left: 75%; }\n.hb-col-xs-push-19 { left: 79.16666667%; }\n.hb-col-xs-push-20 { left: 83.33333333%; }\n.hb-col-xs-push-21 { left: 87.5%; }\n.hb-col-xs-push-22 { left: 91.66666667%; }\n.hb-col-xs-push-23 { left: 95.83333333%; }\n.hb-col-xs-push-24 { left: 100%; }\n.hb-col-xs-pull-0 { right: 0; }\n.hb-col-xs-pull-1 { right: 4.16666667%; }\n.hb-col-xs-pull-2 { right: 8.33333333%; }\n.hb-col-xs-pull-3 { right: 12.5%; }\n.hb-col-xs-pull-4 { right: 16.66666667%; }\n.hb-col-xs-pull-5 { right: 20.83333333%; }\n.hb-col-xs-pull-6 { right: 25%; }\n.hb-col-xs-pull-7 { right: 29.16666667%; }\n.hb-col-xs-pull-8 { right: 33.33333333%; }\n.hb-col-xs-pull-9 { right: 37.5%; }\n.hb-col-xs-pull-10 { right: 41.66666667%; }\n.hb-col-xs-pull-11 { right: 45.83333333%; }\n.hb-col-xs-pull-12 { right: 50%; }\n.hb-col-xs-pull-13 { right: 54.16666667%; }\n.hb-col-xs-pull-14 { right: 58.33333333%; }\n.hb-col-xs-pull-15 { right: 62.5%; }\n.hb-col-xs-pull-16 { right: 66.66666667%; }\n.hb-col-xs-pull-17 { right: 70.83333333%; }\n.hb-col-xs-pull-18 { right: 75%; }\n.hb-col-xs-pull-19 { right: 79.16666667%; }\n.hb-col-xs-pull-20 { right: 83.33333333%; }\n.hb-col-xs-pull-21 { right: 87.5%; }\n.hb-col-xs-pull-22 { right: 91.66666667%; }\n.hb-col-xs-pull-23 { right: 95.83333333%; }\n.hb-col-xs-pull-24 { right: 100%; }\n\n@media (min-width: 576px) {\n\n.hb-col-sm-0 { display: none; }\n.hb-col-sm-1 { width: 4.16666667%; }\n.hb-col-sm-2 { width: 8.33333333%; }\n.hb-col-sm-3 { width: 12.5%; }\n.hb-col-sm-4 { width: 16.66666667%; }\n.hb-col-sm-5 { width: 20.83333333%; }\n.hb-col-sm-6 { width: 25%; }\n.hb-col-sm-7 { width: 29.16666667%; }\n.hb-col-sm-8 { width: 33.33333333%; }\n.hb-col-sm-9 { width: 37.5%; }\n.hb-col-sm-10 { width: 41.66666667%; }\n.hb-col-sm-11 { width: 45.83333333%; }\n.hb-col-sm-12 { width: 50%; }\n.hb-col-sm-13 { width: 54.16666667%; }\n.hb-col-sm-14 { width: 58.33333333%; }\n.hb-col-sm-15 { width: 62.5%; }\n.hb-col-sm-16 { width: 66.66666667%; }\n.hb-col-sm-17 { width: 70.83333333%; }\n.hb-col-sm-18 { width: 75%; }\n.hb-col-sm-19 { width: 79.16666667%; }\n.hb-col-sm-20 { width: 83.33333333%; }\n.hb-col-sm-21 { width: 87.5%; }\n.hb-col-sm-22 { width: 91.66666667%; }\n.hb-col-sm-23 { width: 95.83333333%; }\n.hb-col-sm-24 { width: 100%; }\n.hb-col-sm-offset-0 { margin-left: 0; }\n.hb-col-sm-offset-1 { margin-left: 4.16666667%; }\n.hb-col-sm-offset-2 { margin-left: 8.33333333%; }\n.hb-col-sm-offset-3 { margin-left: 12.5%; }\n.hb-col-sm-offset-4 { margin-left: 16.66666667%; }\n.hb-col-sm-offset-5 { margin-left: 20.83333333%; }\n.hb-col-sm-offset-6 { margin-left: 25%; }\n.hb-col-sm-offset-7 { margin-left: 29.16666667%; }\n.hb-col-sm-offset-8 { margin-left: 33.33333333%; }\n.hb-col-sm-offset-9 { margin-left: 37.5%; }\n.hb-col-sm-offset-10 { margin-left: 41.66666667%; }\n.hb-col-sm-offset-11 { margin-left: 45.83333333%; }\n.hb-col-sm-offset-12 { margin-left: 50%; }\n.hb-col-sm-offset-13 { margin-left: 54.16666667%; }\n.hb-col-sm-offset-14 { margin-left: 58.33333333%; }\n.hb-col-sm-offset-15 { margin-left: 62.5%; }\n.hb-col-sm-offset-16 { margin-left: 66.66666667%; }\n.hb-col-sm-offset-17 { margin-left: 70.83333333%; }\n.hb-col-sm-offset-18 { margin-left: 75%; }\n.hb-col-sm-offset-19 { margin-left: 79.16666667%; }\n.hb-col-sm-offset-20 { margin-left: 83.33333333%; }\n.hb-col-sm-offset-21 { margin-left: 87.5%; }\n.hb-col-sm-offset-22 { margin-left: 91.66666667%; }\n.hb-col-sm-offset-23 { margin-left: 95.83333333%; }\n.hb-col-sm-offset-24 { margin-left: 100%; }\n.hb-col-sm-push-0 { left: 0; }\n.hb-col-sm-push-1 { left: 4.16666667%; }\n.hb-col-sm-push-2 { left: 8.33333333%; }\n.hb-col-sm-push-3 { left: 12.5%; }\n.hb-col-sm-push-4 { left: 16.66666667%; }\n.hb-col-sm-push-5 { left: 20.83333333%; }\n.hb-col-sm-push-6 { left: 25%; }\n.hb-col-sm-push-7 { left: 29.16666667%; }\n.hb-col-sm-push-8 { left: 33.33333333%; }\n.hb-col-sm-push-9 { left: 37.5%; }\n.hb-col-sm-push-10 { left: 41.66666667%; }\n.hb-col-sm-push-11 { left: 45.83333333%; }\n.hb-col-sm-push-12 { left: 50%; }\n.hb-col-sm-push-13 { left: 54.16666667%; }\n.hb-col-sm-push-14 { left: 58.33333333%; }\n.hb-col-sm-push-15 { left: 62.5%; }\n.hb-col-sm-push-16 { left: 66.66666667%; }\n.hb-col-sm-push-17 { left: 70.83333333%; }\n.hb-col-sm-push-18 { left: 75%; }\n.hb-col-sm-push-19 { left: 79.16666667%; }\n.hb-col-sm-push-20 { left: 83.33333333%; }\n.hb-col-sm-push-21 { left: 87.5%; }\n.hb-col-sm-push-22 { left: 91.66666667%; }\n.hb-col-sm-push-23 { left: 95.83333333%; }\n.hb-col-sm-push-24 { left: 100%; }\n.hb-col-sm-pull-0 { right: 0; }\n.hb-col-sm-pull-1 { right: 4.16666667%; }\n.hb-col-sm-pull-2 { right: 8.33333333%; }\n.hb-col-sm-pull-3 { right: 12.5%; }\n.hb-col-sm-pull-4 { right: 16.66666667%; }\n.hb-col-sm-pull-5 { right: 20.83333333%; }\n.hb-col-sm-pull-6 { right: 25%; }\n.hb-col-sm-pull-7 { right: 29.16666667%; }\n.hb-col-sm-pull-8 { right: 33.33333333%; }\n.hb-col-sm-pull-9 { right: 37.5%; }\n.hb-col-sm-pull-10 { right: 41.66666667%; }\n.hb-col-sm-pull-11 { right: 45.83333333%; }\n.hb-col-sm-pull-12 { right: 50%; }\n.hb-col-sm-pull-13 { right: 54.16666667%; }\n.hb-col-sm-pull-14 { right: 58.33333333%; }\n.hb-col-sm-pull-15 { right: 62.5%; }\n.hb-col-sm-pull-16 { right: 66.66666667%; }\n.hb-col-sm-pull-17 { right: 70.83333333%; }\n.hb-col-sm-pull-18 { right: 75%; }\n.hb-col-sm-pull-19 { right: 79.16666667%; }\n.hb-col-sm-pull-20 { right: 83.33333333%; }\n.hb-col-sm-pull-21 { right: 87.5%; }\n.hb-col-sm-pull-22 { right: 91.66666667%; }\n.hb-col-sm-pull-23 { right: 95.83333333%; }\n.hb-col-sm-pull-24 { right: 100%; }\n}\n\n@media (min-width: 768px) {\n\n.hb-col-md-0 { display: none; }\n.hb-col-md-1 { width: 4.16666667%; }\n.hb-col-md-2 { width: 8.33333333%; }\n.hb-col-md-3 { width: 12.5%; }\n.hb-col-md-4 { width: 16.66666667%; }\n.hb-col-md-5 { width: 20.83333333%; }\n.hb-col-md-6 { width: 25%; }\n.hb-col-md-7 { width: 29.16666667%; }\n.hb-col-md-8 { width: 33.33333333%; }\n.hb-col-md-9 { width: 37.5%; }\n.hb-col-md-10 { width: 41.66666667%; }\n.hb-col-md-11 { width: 45.83333333%; }\n.hb-col-md-12 { width: 50%; }\n.hb-col-md-13 { width: 54.16666667%; }\n.hb-col-md-14 { width: 58.33333333%; }\n.hb-col-md-15 { width: 62.5%; }\n.hb-col-md-16 { width: 66.66666667%; }\n.hb-col-md-17 { width: 70.83333333%; }\n.hb-col-md-18 { width: 75%; }\n.hb-col-md-19 { width: 79.16666667%; }\n.hb-col-md-20 { width: 83.33333333%; }\n.hb-col-md-21 { width: 87.5%; }\n.hb-col-md-22 { width: 91.66666667%; }\n.hb-col-md-23 { width: 95.83333333%; }\n.hb-col-md-24 { width: 100%; }\n.hb-col-md-offset-0 { margin-left: 0; }\n.hb-col-md-offset-1 { margin-left: 4.16666667%; }\n.hb-col-md-offset-2 { margin-left: 8.33333333%; }\n.hb-col-md-offset-3 { margin-left: 12.5%; }\n.hb-col-md-offset-4 { margin-left: 16.66666667%; }\n.hb-col-md-offset-5 { margin-left: 20.83333333%; }\n.hb-col-md-offset-6 { margin-left: 25%; }\n.hb-col-md-offset-7 { margin-left: 29.16666667%; }\n.hb-col-md-offset-8 { margin-left: 33.33333333%; }\n.hb-col-md-offset-9 { margin-left: 37.5%; }\n.hb-col-md-offset-10 { margin-left: 41.66666667%; }\n.hb-col-md-offset-11 { margin-left: 45.83333333%; }\n.hb-col-md-offset-12 { margin-left: 50%; }\n.hb-col-md-offset-13 { margin-left: 54.16666667%; }\n.hb-col-md-offset-14 { margin-left: 58.33333333%; }\n.hb-col-md-offset-15 { margin-left: 62.5%; }\n.hb-col-md-offset-16 { margin-left: 66.66666667%; }\n.hb-col-md-offset-17 { margin-left: 70.83333333%; }\n.hb-col-md-offset-18 { margin-left: 75%; }\n.hb-col-md-offset-19 { margin-left: 79.16666667%; }\n.hb-col-md-offset-20 { margin-left: 83.33333333%; }\n.hb-col-md-offset-21 { margin-left: 87.5%; }\n.hb-col-md-offset-22 { margin-left: 91.66666667%; }\n.hb-col-md-offset-23 { margin-left: 95.83333333%; }\n.hb-col-md-offset-24 { margin-left: 100%; }\n.hb-col-md-push-0 { left: 0; }\n.hb-col-md-push-1 { left: 4.16666667%; }\n.hb-col-md-push-2 { left: 8.33333333%; }\n.hb-col-md-push-3 { left: 12.5%; }\n.hb-col-md-push-4 { left: 16.66666667%; }\n.hb-col-md-push-5 { left: 20.83333333%; }\n.hb-col-md-push-6 { left: 25%; }\n.hb-col-md-push-7 { left: 29.16666667%; }\n.hb-col-md-push-8 { left: 33.33333333%; }\n.hb-col-md-push-9 { left: 37.5%; }\n.hb-col-md-push-10 { left: 41.66666667%; }\n.hb-col-md-push-11 { left: 45.83333333%; }\n.hb-col-md-push-12 { left: 50%; }\n.hb-col-md-push-13 { left: 54.16666667%; }\n.hb-col-md-push-14 { left: 58.33333333%; }\n.hb-col-md-push-15 { left: 62.5%; }\n.hb-col-md-push-16 { left: 66.66666667%; }\n.hb-col-md-push-17 { left: 70.83333333%; }\n.hb-col-md-push-18 { left: 75%; }\n.hb-col-md-push-19 { left: 79.16666667%; }\n.hb-col-md-push-20 { left: 83.33333333%; }\n.hb-col-md-push-21 { left: 87.5%; }\n.hb-col-md-push-22 { left: 91.66666667%; }\n.hb-col-md-push-23 { left: 95.83333333%; }\n.hb-col-md-push-24 { left: 100%; }\n.hb-col-md-pull-0 { right: 0; }\n.hb-col-md-pull-1 { right: 4.16666667%; }\n.hb-col-md-pull-2 { right: 8.33333333%; }\n.hb-col-md-pull-3 { right: 12.5%; }\n.hb-col-md-pull-4 { right: 16.66666667%; }\n.hb-col-md-pull-5 { right: 20.83333333%; }\n.hb-col-md-pull-6 { right: 25%; }\n.hb-col-md-pull-7 { right: 29.16666667%; }\n.hb-col-md-pull-8 { right: 33.33333333%; }\n.hb-col-md-pull-9 { right: 37.5%; }\n.hb-col-md-pull-10 { right: 41.66666667%; }\n.hb-col-md-pull-11 { right: 45.83333333%; }\n.hb-col-md-pull-12 { right: 50%; }\n.hb-col-md-pull-13 { right: 54.16666667%; }\n.hb-col-md-pull-14 { right: 58.33333333%; }\n.hb-col-md-pull-15 { right: 62.5%; }\n.hb-col-md-pull-16 { right: 66.66666667%; }\n.hb-col-md-pull-17 { right: 70.83333333%; }\n.hb-col-md-pull-18 { right: 75%; }\n.hb-col-md-pull-19 { right: 79.16666667%; }\n.hb-col-md-pull-20 { right: 83.33333333%; }\n.hb-col-md-pull-21 { right: 87.5%; }\n.hb-col-md-pull-22 { right: 91.66666667%; }\n.hb-col-md-pull-23 { right: 95.83333333%; }\n.hb-col-md-pull-24 { right: 100%; }\n}\n\n@media (min-width: 992px) {\n\n.hb-col-lg-0 { display: none; }\n.hb-col-lg-1 { width: 4.16666667%; }\n.hb-col-lg-2 { width: 8.33333333%; }\n.hb-col-lg-3 { width: 12.5%; }\n.hb-col-lg-4 { width: 16.66666667%; }\n.hb-col-lg-5 { width: 20.83333333%; }\n.hb-col-lg-6 { width: 25%; }\n.hb-col-lg-7 { width: 29.16666667%; }\n.hb-col-lg-8 { width: 33.33333333%; }\n.hb-col-lg-9 { width: 37.5%; }\n.hb-col-lg-10 { width: 41.66666667%; }\n.hb-col-lg-11 { width: 45.83333333%; }\n.hb-col-lg-12 { width: 50%; }\n.hb-col-lg-13 { width: 54.16666667%; }\n.hb-col-lg-14 { width: 58.33333333%; }\n.hb-col-lg-15 { width: 62.5%; }\n.hb-col-lg-16 { width: 66.66666667%; }\n.hb-col-lg-17 { width: 70.83333333%; }\n.hb-col-lg-18 { width: 75%; }\n.hb-col-lg-19 { width: 79.16666667%; }\n.hb-col-lg-20 { width: 83.33333333%; }\n.hb-col-lg-21 { width: 87.5%; }\n.hb-col-lg-22 { width: 91.66666667%; }\n.hb-col-lg-23 { width: 95.83333333%; }\n.hb-col-lg-24 { width: 100%; }\n.hb-col-lg-offset-0 { margin-left: 0; }\n.hb-col-lg-offset-1 { margin-left: 4.16666667%; }\n.hb-col-lg-offset-2 { margin-left: 8.33333333%; }\n.hb-col-lg-offset-3 { margin-left: 12.5%; }\n.hb-col-lg-offset-4 { margin-left: 16.66666667%; }\n.hb-col-lg-offset-5 { margin-left: 20.83333333%; }\n.hb-col-lg-offset-6 { margin-left: 25%; }\n.hb-col-lg-offset-7 { margin-left: 29.16666667%; }\n.hb-col-lg-offset-8 { margin-left: 33.33333333%; }\n.hb-col-lg-offset-9 { margin-left: 37.5%; }\n.hb-col-lg-offset-10 { margin-left: 41.66666667%; }\n.hb-col-lg-offset-11 { margin-left: 45.83333333%; }\n.hb-col-lg-offset-12 { margin-left: 50%; }\n.hb-col-lg-offset-13 { margin-left: 54.16666667%; }\n.hb-col-lg-offset-14 { margin-left: 58.33333333%; }\n.hb-col-lg-offset-15 { margin-left: 62.5%; }\n.hb-col-lg-offset-16 { margin-left: 66.66666667%; }\n.hb-col-lg-offset-17 { margin-left: 70.83333333%; }\n.hb-col-lg-offset-18 { margin-left: 75%; }\n.hb-col-lg-offset-19 { margin-left: 79.16666667%; }\n.hb-col-lg-offset-20 { margin-left: 83.33333333%; }\n.hb-col-lg-offset-21 { margin-left: 87.5%; }\n.hb-col-lg-offset-22 { margin-left: 91.66666667%; }\n.hb-col-lg-offset-23 { margin-left: 95.83333333%; }\n.hb-col-lg-offset-24 { margin-left: 100%; }\n.hb-col-lg-push-0 { left: 0; }\n.hb-col-lg-push-1 { left: 4.16666667%; }\n.hb-col-lg-push-2 { left: 8.33333333%; }\n.hb-col-lg-push-3 { left: 12.5%; }\n.hb-col-lg-push-4 { left: 16.66666667%; }\n.hb-col-lg-push-5 { left: 20.83333333%; }\n.hb-col-lg-push-6 { left: 25%; }\n.hb-col-lg-push-7 { left: 29.16666667%; }\n.hb-col-lg-push-8 { left: 33.33333333%; }\n.hb-col-lg-push-9 { left: 37.5%; }\n.hb-col-lg-push-10 { left: 41.66666667%; }\n.hb-col-lg-push-11 { left: 45.83333333%; }\n.hb-col-lg-push-12 { left: 50%; }\n.hb-col-lg-push-13 { left: 54.16666667%; }\n.hb-col-lg-push-14 { left: 58.33333333%; }\n.hb-col-lg-push-15 { left: 62.5%; }\n.hb-col-lg-push-16 { left: 66.66666667%; }\n.hb-col-lg-push-17 { left: 70.83333333%; }\n.hb-col-lg-push-18 { left: 75%; }\n.hb-col-lg-push-19 { left: 79.16666667%; }\n.hb-col-lg-push-20 { left: 83.33333333%; }\n.hb-col-lg-push-21 { left: 87.5%; }\n.hb-col-lg-push-22 { left: 91.66666667%; }\n.hb-col-lg-push-23 { left: 95.83333333%; }\n.hb-col-lg-push-24 { left: 100%; }\n.hb-col-lg-pull-0 { right: 0; }\n.hb-col-lg-pull-1 { right: 4.16666667%; }\n.hb-col-lg-pull-2 { right: 8.33333333%; }\n.hb-col-lg-pull-3 { right: 12.5%; }\n.hb-col-lg-pull-4 { right: 16.66666667%; }\n.hb-col-lg-pull-5 { right: 20.83333333%; }\n.hb-col-lg-pull-6 { right: 25%; }\n.hb-col-lg-pull-7 { right: 29.16666667%; }\n.hb-col-lg-pull-8 { right: 33.33333333%; }\n.hb-col-lg-pull-9 { right: 37.5%; }\n.hb-col-lg-pull-10 { right: 41.66666667%; }\n.hb-col-lg-pull-11 { right: 45.83333333%; }\n.hb-col-lg-pull-12 { right: 50%; }\n.hb-col-lg-pull-13 { right: 54.16666667%; }\n.hb-col-lg-pull-14 { right: 58.33333333%; }\n.hb-col-lg-pull-15 { right: 62.5%; }\n.hb-col-lg-pull-16 { right: 66.66666667%; }\n.hb-col-lg-pull-17 { right: 70.83333333%; }\n.hb-col-lg-pull-18 { right: 75%; }\n.hb-col-lg-pull-19 { right: 79.16666667%; }\n.hb-col-lg-pull-20 { right: 83.33333333%; }\n.hb-col-lg-pull-21 { right: 87.5%; }\n.hb-col-lg-pull-22 { right: 91.66666667%; }\n.hb-col-lg-pull-23 { right: 95.83333333%; }\n.hb-col-lg-pull-24 { right: 100%; }\n}\n\n@media (min-width: 1200px) {\n\n.hb-col-xl-0 { display: none; }\n.hb-col-xl-1 { width: 4.16666667%; }\n.hb-col-xl-2 { width: 8.33333333%; }\n.hb-col-xl-3 { width: 12.5%; }\n.hb-col-xl-4 { width: 16.66666667%; }\n.hb-col-xl-5 { width: 20.83333333%; }\n.hb-col-xl-6 { width: 25%; }\n.hb-col-xl-7 { width: 29.16666667%; }\n.hb-col-xl-8 { width: 33.33333333%; }\n.hb-col-xl-9 { width: 37.5%; }\n.hb-col-xl-10 { width: 41.66666667%; }\n.hb-col-xl-11 { width: 45.83333333%; }\n.hb-col-xl-12 { width: 50%; }\n.hb-col-xl-13 { width: 54.16666667%; }\n.hb-col-xl-14 { width: 58.33333333%; }\n.hb-col-xl-15 { width: 62.5%; }\n.hb-col-xl-16 { width: 66.66666667%; }\n.hb-col-xl-17 { width: 70.83333333%; }\n.hb-col-xl-18 { width: 75%; }\n.hb-col-xl-19 { width: 79.16666667%; }\n.hb-col-xl-20 { width: 83.33333333%; }\n.hb-col-xl-21 { width: 87.5%; }\n.hb-col-xl-22 { width: 91.66666667%; }\n.hb-col-xl-23 { width: 95.83333333%; }\n.hb-col-xl-24 { width: 100%; }\n.hb-col-xl-offset-0 { margin-left: 0; }\n.hb-col-xl-offset-1 { margin-left: 4.16666667%; }\n.hb-col-xl-offset-2 { margin-left: 8.33333333%; }\n.hb-col-xl-offset-3 { margin-left: 12.5%; }\n.hb-col-xl-offset-4 { margin-left: 16.66666667%; }\n.hb-col-xl-offset-5 { margin-left: 20.83333333%; }\n.hb-col-xl-offset-6 { margin-left: 25%; }\n.hb-col-xl-offset-7 { margin-left: 29.16666667%; }\n.hb-col-xl-offset-8 { margin-left: 33.33333333%; }\n.hb-col-xl-offset-9 { margin-left: 37.5%; }\n.hb-col-xl-offset-10 { margin-left: 41.66666667%; }\n.hb-col-xl-offset-11 { margin-left: 45.83333333%; }\n.hb-col-xl-offset-12 { margin-left: 50%; }\n.hb-col-xl-offset-13 { margin-left: 54.16666667%; }\n.hb-col-xl-offset-14 { margin-left: 58.33333333%; }\n.hb-col-xl-offset-15 { margin-left: 62.5%; }\n.hb-col-xl-offset-16 { margin-left: 66.66666667%; }\n.hb-col-xl-offset-17 { margin-left: 70.83333333%; }\n.hb-col-xl-offset-18 { margin-left: 75%; }\n.hb-col-xl-offset-19 { margin-left: 79.16666667%; }\n.hb-col-xl-offset-20 { margin-left: 83.33333333%; }\n.hb-col-xl-offset-21 { margin-left: 87.5%; }\n.hb-col-xl-offset-22 { margin-left: 91.66666667%; }\n.hb-col-xl-offset-23 { margin-left: 95.83333333%; }\n.hb-col-xl-offset-24 { margin-left: 100%; }\n.hb-col-xl-push-0 { left: 0; }\n.hb-col-xl-push-1 { left: 4.16666667%; }\n.hb-col-xl-push-2 { left: 8.33333333%; }\n.hb-col-xl-push-3 { left: 12.5%; }\n.hb-col-xl-push-4 { left: 16.66666667%; }\n.hb-col-xl-push-5 { left: 20.83333333%; }\n.hb-col-xl-push-6 { left: 25%; }\n.hb-col-xl-push-7 { left: 29.16666667%; }\n.hb-col-xl-push-8 { left: 33.33333333%; }\n.hb-col-xl-push-9 { left: 37.5%; }\n.hb-col-xl-push-10 { left: 41.66666667%; }\n.hb-col-xl-push-11 { left: 45.83333333%; }\n.hb-col-xl-push-12 { left: 50%; }\n.hb-col-xl-push-13 { left: 54.16666667%; }\n.hb-col-xl-push-14 { left: 58.33333333%; }\n.hb-col-xl-push-15 { left: 62.5%; }\n.hb-col-xl-push-16 { left: 66.66666667%; }\n.hb-col-xl-push-17 { left: 70.83333333%; }\n.hb-col-xl-push-18 { left: 75%; }\n.hb-col-xl-push-19 { left: 79.16666667%; }\n.hb-col-xl-push-20 { left: 83.33333333%; }\n.hb-col-xl-push-21 { left: 87.5%; }\n.hb-col-xl-push-22 { left: 91.66666667%; }\n.hb-col-xl-push-23 { left: 95.83333333%; }\n.hb-col-xl-push-24 { left: 100%; }\n.hb-col-xl-pull-0 { right: 0; }\n.hb-col-xl-pull-1 { right: 4.16666667%; }\n.hb-col-xl-pull-2 { right: 8.33333333%; }\n.hb-col-xl-pull-3 { right: 12.5%; }\n.hb-col-xl-pull-4 { right: 16.66666667%; }\n.hb-col-xl-pull-5 { right: 20.83333333%; }\n.hb-col-xl-pull-6 { right: 25%; }\n.hb-col-xl-pull-7 { right: 29.16666667%; }\n.hb-col-xl-pull-8 { right: 33.33333333%; }\n.hb-col-xl-pull-9 { right: 37.5%; }\n.hb-col-xl-pull-10 { right: 41.66666667%; }\n.hb-col-xl-pull-11 { right: 45.83333333%; }\n.hb-col-xl-pull-12 { right: 50%; }\n.hb-col-xl-pull-13 { right: 54.16666667%; }\n.hb-col-xl-pull-14 { right: 58.33333333%; }\n.hb-col-xl-pull-15 { right: 62.5%; }\n.hb-col-xl-pull-16 { right: 66.66666667%; }\n.hb-col-xl-pull-17 { right: 70.83333333%; }\n.hb-col-xl-pull-18 { right: 75%; }\n.hb-col-xl-pull-19 { right: 79.16666667%; }\n.hb-col-xl-pull-20 { right: 83.33333333%; }\n.hb-col-xl-pull-21 { right: 87.5%; }\n.hb-col-xl-pull-22 { right: 91.66666667%; }\n.hb-col-xl-pull-23 { right: 95.83333333%; }\n.hb-col-xl-pull-24 { right: 100%; }\n}\n","import { Component, h, Prop } from '@stencil/core';\n\n/** 响应式栅格配置(对齐 antd:可传 number 或 {span,offset,push,pull}) */\nexport interface ColResponsive {\n span?: number;\n offset?: number;\n push?: number;\n pull?: number;\n}\n\n/**\n * Layout 布局组件\n * 通过基础的 24 分栏,迅速简便地创建布局。\n * 支持响应式:xs/sm/md/lg/xl 在对应断点应用各自的 span/offset/push/pull。\n */\n@Component({\n tag: 'hb-layout',\n styleUrl: 'layout.css',\n shadow: true,\n})\nexport class Layout {\n /**\n * 栅格占据的列数\n * @default 24\n */\n @Prop() span: number = 24;\n\n /**\n * 栅格左侧的间隔格数\n * @default 0\n */\n @Prop() offset: number = 0;\n\n /**\n * 栅格向右移动格数\n * @default 0\n */\n @Prop() push: number = 0;\n\n /**\n * 栅格向左移动格数\n * @default 0\n */\n @Prop() pull: number = 0;\n\n /**\n * <576px 响应式栅格数或者栅格属性对象\n */\n @Prop() xs?: number | ColResponsive;\n\n /**\n * ≥576px 响应式栅格数或者栅格属性对象\n */\n @Prop() sm?: number | ColResponsive;\n\n /**\n * ≥768px 响应式栅格数或者栅格属性对象\n */\n @Prop() md?: number | ColResponsive;\n\n /**\n * ≥992px 响应式栅格数或者栅格属性对象\n */\n @Prop() lg?: number | ColResponsive;\n\n /**\n * ≥1200px 响应式栅格数或者栅格属性对象\n */\n @Prop() xl?: number | ColResponsive;\n\n /** 把响应式 prop(number 或对象)规范化为 {span,offset,push,pull} */\n private normalizeResponsive(value: number | ColResponsive | undefined): ColResponsive {\n if (value === undefined || value === null) return {};\n if (typeof value === 'number') return { span: value };\n return value;\n }\n\n private getColClass() {\n const classes: string[] = ['hb-col'];\n\n // 基础(无断点)span/offset/push/pull —— 仅在没有 xs 时作为 xs 默认(antd 行为)\n if (this.span) classes.push(`hb-col-${this.span}`);\n if (this.offset) classes.push(`hb-col-offset-${this.offset}`);\n if (this.push) classes.push(`hb-col-push-${this.push}`);\n if (this.pull) classes.push(`hb-col-pull-${this.pull}`);\n\n // 响应式断点:生成 hb-col-{bp}-{span} / hb-col-{bp}-offset-{n} 等 class,\n // CSS 用 @media 在对应断点应用(覆盖基础值)。\n const bps: Array<'xs' | 'sm' | 'md' | 'lg' | 'xl'> = ['xs', 'sm', 'md', 'lg', 'xl'];\n for (const bp of bps) {\n const v = this[bp];\n if (v === undefined) continue;\n const r = this.normalizeResponsive(v);\n if (r.span !== undefined) classes.push(`hb-col-${bp}-${r.span}`);\n if (r.offset !== undefined) classes.push(`hb-col-${bp}-offset-${r.offset}`);\n if (r.push !== undefined) classes.push(`hb-col-${bp}-push-${r.push}`);\n if (r.pull !== undefined) classes.push(`hb-col-${bp}-pull-${r.pull}`);\n }\n\n return classes.join(' ');\n }\n\n render() {\n return (\n <div class={this.getColClass()}>\n <slot></slot>\n </div>\n );\n }\n}\n\n"],"version":3}
1
+ {"file":"hb-layout.entry.js","mappings":";;AAAA,MAAM,SAAS,GAAG,k0vBAAk0vB,CAAC;AACr1vB,uBAAe,SAAS;;MCmBX,MAAM;;;;;;;;IAKT,IAAI,GAAW,EAAE,CAAC;;;;;IAMlB,MAAM,GAAW,CAAC,CAAC;;;;;IAMnB,IAAI,GAAW,CAAC,CAAC;;;;;IAMjB,IAAI,GAAW,CAAC,CAAC;;;;IAKjB,EAAE,CAA0B;;;;IAK5B,EAAE,CAA0B;;;;IAK5B,EAAE,CAA0B;;;;IAK5B,EAAE,CAA0B;;;;IAK5B,EAAE,CAA0B;;IAG5B,mBAAmB,CAAC,KAAyC;QACnE,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,EAAE,CAAC;QACrD,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;QACtD,OAAO,KAAK,CAAC;KACd;IAEO,WAAW;QACjB,MAAM,OAAO,GAAa,CAAC,QAAQ,CAAC,CAAC;;QAGrC,IAAI,IAAI,CAAC,IAAI;YAAE,OAAO,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACnD,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9D,IAAI,IAAI,CAAC,IAAI;YAAE,OAAO,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACxD,IAAI,IAAI,CAAC,IAAI;YAAE,OAAO,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;;;QAIxD,MAAM,GAAG,GAA4C,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACpF,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE;YACpB,MAAM,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;YACnB,IAAI,CAAC,KAAK,SAAS;gBAAE,SAAS;YAC9B,MAAM,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;YACtC,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS;gBAAE,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YACjE,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS;gBAAE,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;YAC5E,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS;gBAAE,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YACtE,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS;gBAAE,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;SACvE;QAED,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAC1B;IAED,MAAM;QACJ,QACE,4DAAK,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,IAC5B,8DAAa,CACT,EACN;KACH;;;;;;","names":[],"sources":["src/components/Layout/layout.css?tag=hb-layout&encapsulation=shadow","src/components/Layout/Layout.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.hb-col {\n position: relative;\n width: 100%;\n box-sizing: border-box;\n}\n\n/* Generate col classes for span 1-24 */\n.hb-col-1 {\n width: 4.16666667%;\n}\n.hb-col-2 {\n width: 8.33333333%;\n}\n.hb-col-3 {\n width: 12.5%;\n}\n.hb-col-4 {\n width: 16.66666667%;\n}\n.hb-col-5 {\n width: 20.83333333%;\n}\n.hb-col-6 {\n width: 25%;\n}\n.hb-col-7 {\n width: 29.16666667%;\n}\n.hb-col-8 {\n width: 33.33333333%;\n}\n.hb-col-9 {\n width: 37.5%;\n}\n.hb-col-10 {\n width: 41.66666667%;\n}\n.hb-col-11 {\n width: 45.83333333%;\n}\n.hb-col-12 {\n width: 50%;\n}\n.hb-col-13 {\n width: 54.16666667%;\n}\n.hb-col-14 {\n width: 58.33333333%;\n}\n.hb-col-15 {\n width: 62.5%;\n}\n.hb-col-16 {\n width: 66.66666667%;\n}\n.hb-col-17 {\n width: 70.83333333%;\n}\n.hb-col-18 {\n width: 75%;\n}\n.hb-col-19 {\n width: 79.16666667%;\n}\n.hb-col-20 {\n width: 83.33333333%;\n}\n.hb-col-21 {\n width: 87.5%;\n}\n.hb-col-22 {\n width: 91.66666667%;\n}\n.hb-col-23 {\n width: 95.83333333%;\n}\n.hb-col-24 {\n width: 100%;\n}\n\n/* Offset classes */\n.hb-col-offset-1 {\n margin-left: 4.16666667%;\n}\n.hb-col-offset-2 {\n margin-left: 8.33333333%;\n}\n.hb-col-offset-3 {\n margin-left: 12.5%;\n}\n.hb-col-offset-4 {\n margin-left: 16.66666667%;\n}\n.hb-col-offset-5 {\n margin-left: 20.83333333%;\n}\n.hb-col-offset-6 {\n margin-left: 25%;\n}\n.hb-col-offset-7 {\n margin-left: 29.16666667%;\n}\n.hb-col-offset-8 {\n margin-left: 33.33333333%;\n}\n.hb-col-offset-9 {\n margin-left: 37.5%;\n}\n.hb-col-offset-10 {\n margin-left: 41.66666667%;\n}\n.hb-col-offset-11 {\n margin-left: 45.83333333%;\n}\n.hb-col-offset-12 {\n margin-left: 50%;\n}\n.hb-col-offset-13 {\n margin-left: 54.16666667%;\n}\n.hb-col-offset-14 {\n margin-left: 58.33333333%;\n}\n.hb-col-offset-15 {\n margin-left: 62.5%;\n}\n.hb-col-offset-16 {\n margin-left: 66.66666667%;\n}\n.hb-col-offset-17 {\n margin-left: 70.83333333%;\n}\n.hb-col-offset-18 {\n margin-left: 75%;\n}\n.hb-col-offset-19 {\n margin-left: 79.16666667%;\n}\n.hb-col-offset-20 {\n margin-left: 83.33333333%;\n}\n.hb-col-offset-21 {\n margin-left: 87.5%;\n}\n.hb-col-offset-22 {\n margin-left: 91.66666667%;\n}\n.hb-col-offset-23 {\n margin-left: 95.83333333%;\n}\n\n/* Push classes */\n.hb-col-push-1 {\n left: 4.16666667%;\n}\n.hb-col-push-2 {\n left: 8.33333333%;\n}\n.hb-col-push-3 {\n left: 12.5%;\n}\n.hb-col-push-4 {\n left: 16.66666667%;\n}\n.hb-col-push-5 {\n left: 20.83333333%;\n}\n.hb-col-push-6 {\n left: 25%;\n}\n.hb-col-push-7 {\n left: 29.16666667%;\n}\n.hb-col-push-8 {\n left: 33.33333333%;\n}\n.hb-col-push-9 {\n left: 37.5%;\n}\n.hb-col-push-10 {\n left: 41.66666667%;\n}\n.hb-col-push-11 {\n left: 45.83333333%;\n}\n.hb-col-push-12 {\n left: 50%;\n}\n\n/* Pull classes */\n.hb-col-pull-1 {\n right: 4.16666667%;\n}\n.hb-col-pull-2 {\n right: 8.33333333%;\n}\n.hb-col-pull-3 {\n right: 12.5%;\n}\n.hb-col-pull-4 {\n right: 16.66666667%;\n}\n.hb-col-pull-5 {\n right: 20.83333333%;\n}\n.hb-col-pull-6 {\n right: 25%;\n}\n.hb-col-pull-7 {\n right: 29.16666667%;\n}\n.hb-col-pull-8 {\n right: 33.33333333%;\n}\n.hb-col-pull-9 {\n right: 37.5%;\n}\n.hb-col-pull-10 {\n right: 41.66666667%;\n}\n.hb-col-pull-11 {\n right: 45.83333333%;\n}\n.hb-col-pull-12 {\n right: 50%;\n}\n\n/* ============================================================\n * 响应式栅格(xs/sm/md/lg/xl)—— 由 Layout.tsx 输出对应 class,\n * 这里按断点用 @media 应用宽度/偏移/推拉。\n * xs 无 @media(移动端默认);sm/md/lg/xl 用 min-width 渐进增强。\n * 对齐 antd Grid 断点:576 / 768 / 992 / 1200\n * ============================================================ */\n\n.hb-col-xs-0 {\n display: none;\n}\n.hb-col-xs-1 {\n width: 4.16666667%;\n}\n.hb-col-xs-2 {\n width: 8.33333333%;\n}\n.hb-col-xs-3 {\n width: 12.5%;\n}\n.hb-col-xs-4 {\n width: 16.66666667%;\n}\n.hb-col-xs-5 {\n width: 20.83333333%;\n}\n.hb-col-xs-6 {\n width: 25%;\n}\n.hb-col-xs-7 {\n width: 29.16666667%;\n}\n.hb-col-xs-8 {\n width: 33.33333333%;\n}\n.hb-col-xs-9 {\n width: 37.5%;\n}\n.hb-col-xs-10 {\n width: 41.66666667%;\n}\n.hb-col-xs-11 {\n width: 45.83333333%;\n}\n.hb-col-xs-12 {\n width: 50%;\n}\n.hb-col-xs-13 {\n width: 54.16666667%;\n}\n.hb-col-xs-14 {\n width: 58.33333333%;\n}\n.hb-col-xs-15 {\n width: 62.5%;\n}\n.hb-col-xs-16 {\n width: 66.66666667%;\n}\n.hb-col-xs-17 {\n width: 70.83333333%;\n}\n.hb-col-xs-18 {\n width: 75%;\n}\n.hb-col-xs-19 {\n width: 79.16666667%;\n}\n.hb-col-xs-20 {\n width: 83.33333333%;\n}\n.hb-col-xs-21 {\n width: 87.5%;\n}\n.hb-col-xs-22 {\n width: 91.66666667%;\n}\n.hb-col-xs-23 {\n width: 95.83333333%;\n}\n.hb-col-xs-24 {\n width: 100%;\n}\n.hb-col-xs-offset-0 {\n margin-left: 0;\n}\n.hb-col-xs-offset-1 {\n margin-left: 4.16666667%;\n}\n.hb-col-xs-offset-2 {\n margin-left: 8.33333333%;\n}\n.hb-col-xs-offset-3 {\n margin-left: 12.5%;\n}\n.hb-col-xs-offset-4 {\n margin-left: 16.66666667%;\n}\n.hb-col-xs-offset-5 {\n margin-left: 20.83333333%;\n}\n.hb-col-xs-offset-6 {\n margin-left: 25%;\n}\n.hb-col-xs-offset-7 {\n margin-left: 29.16666667%;\n}\n.hb-col-xs-offset-8 {\n margin-left: 33.33333333%;\n}\n.hb-col-xs-offset-9 {\n margin-left: 37.5%;\n}\n.hb-col-xs-offset-10 {\n margin-left: 41.66666667%;\n}\n.hb-col-xs-offset-11 {\n margin-left: 45.83333333%;\n}\n.hb-col-xs-offset-12 {\n margin-left: 50%;\n}\n.hb-col-xs-offset-13 {\n margin-left: 54.16666667%;\n}\n.hb-col-xs-offset-14 {\n margin-left: 58.33333333%;\n}\n.hb-col-xs-offset-15 {\n margin-left: 62.5%;\n}\n.hb-col-xs-offset-16 {\n margin-left: 66.66666667%;\n}\n.hb-col-xs-offset-17 {\n margin-left: 70.83333333%;\n}\n.hb-col-xs-offset-18 {\n margin-left: 75%;\n}\n.hb-col-xs-offset-19 {\n margin-left: 79.16666667%;\n}\n.hb-col-xs-offset-20 {\n margin-left: 83.33333333%;\n}\n.hb-col-xs-offset-21 {\n margin-left: 87.5%;\n}\n.hb-col-xs-offset-22 {\n margin-left: 91.66666667%;\n}\n.hb-col-xs-offset-23 {\n margin-left: 95.83333333%;\n}\n.hb-col-xs-offset-24 {\n margin-left: 100%;\n}\n.hb-col-xs-push-0 {\n left: 0;\n}\n.hb-col-xs-push-1 {\n left: 4.16666667%;\n}\n.hb-col-xs-push-2 {\n left: 8.33333333%;\n}\n.hb-col-xs-push-3 {\n left: 12.5%;\n}\n.hb-col-xs-push-4 {\n left: 16.66666667%;\n}\n.hb-col-xs-push-5 {\n left: 20.83333333%;\n}\n.hb-col-xs-push-6 {\n left: 25%;\n}\n.hb-col-xs-push-7 {\n left: 29.16666667%;\n}\n.hb-col-xs-push-8 {\n left: 33.33333333%;\n}\n.hb-col-xs-push-9 {\n left: 37.5%;\n}\n.hb-col-xs-push-10 {\n left: 41.66666667%;\n}\n.hb-col-xs-push-11 {\n left: 45.83333333%;\n}\n.hb-col-xs-push-12 {\n left: 50%;\n}\n.hb-col-xs-push-13 {\n left: 54.16666667%;\n}\n.hb-col-xs-push-14 {\n left: 58.33333333%;\n}\n.hb-col-xs-push-15 {\n left: 62.5%;\n}\n.hb-col-xs-push-16 {\n left: 66.66666667%;\n}\n.hb-col-xs-push-17 {\n left: 70.83333333%;\n}\n.hb-col-xs-push-18 {\n left: 75%;\n}\n.hb-col-xs-push-19 {\n left: 79.16666667%;\n}\n.hb-col-xs-push-20 {\n left: 83.33333333%;\n}\n.hb-col-xs-push-21 {\n left: 87.5%;\n}\n.hb-col-xs-push-22 {\n left: 91.66666667%;\n}\n.hb-col-xs-push-23 {\n left: 95.83333333%;\n}\n.hb-col-xs-push-24 {\n left: 100%;\n}\n.hb-col-xs-pull-0 {\n right: 0;\n}\n.hb-col-xs-pull-1 {\n right: 4.16666667%;\n}\n.hb-col-xs-pull-2 {\n right: 8.33333333%;\n}\n.hb-col-xs-pull-3 {\n right: 12.5%;\n}\n.hb-col-xs-pull-4 {\n right: 16.66666667%;\n}\n.hb-col-xs-pull-5 {\n right: 20.83333333%;\n}\n.hb-col-xs-pull-6 {\n right: 25%;\n}\n.hb-col-xs-pull-7 {\n right: 29.16666667%;\n}\n.hb-col-xs-pull-8 {\n right: 33.33333333%;\n}\n.hb-col-xs-pull-9 {\n right: 37.5%;\n}\n.hb-col-xs-pull-10 {\n right: 41.66666667%;\n}\n.hb-col-xs-pull-11 {\n right: 45.83333333%;\n}\n.hb-col-xs-pull-12 {\n right: 50%;\n}\n.hb-col-xs-pull-13 {\n right: 54.16666667%;\n}\n.hb-col-xs-pull-14 {\n right: 58.33333333%;\n}\n.hb-col-xs-pull-15 {\n right: 62.5%;\n}\n.hb-col-xs-pull-16 {\n right: 66.66666667%;\n}\n.hb-col-xs-pull-17 {\n right: 70.83333333%;\n}\n.hb-col-xs-pull-18 {\n right: 75%;\n}\n.hb-col-xs-pull-19 {\n right: 79.16666667%;\n}\n.hb-col-xs-pull-20 {\n right: 83.33333333%;\n}\n.hb-col-xs-pull-21 {\n right: 87.5%;\n}\n.hb-col-xs-pull-22 {\n right: 91.66666667%;\n}\n.hb-col-xs-pull-23 {\n right: 95.83333333%;\n}\n.hb-col-xs-pull-24 {\n right: 100%;\n}\n\n@media (min-width: 576px) {\n .hb-col-sm-0 {\n display: none;\n }\n .hb-col-sm-1 {\n width: 4.16666667%;\n }\n .hb-col-sm-2 {\n width: 8.33333333%;\n }\n .hb-col-sm-3 {\n width: 12.5%;\n }\n .hb-col-sm-4 {\n width: 16.66666667%;\n }\n .hb-col-sm-5 {\n width: 20.83333333%;\n }\n .hb-col-sm-6 {\n width: 25%;\n }\n .hb-col-sm-7 {\n width: 29.16666667%;\n }\n .hb-col-sm-8 {\n width: 33.33333333%;\n }\n .hb-col-sm-9 {\n width: 37.5%;\n }\n .hb-col-sm-10 {\n width: 41.66666667%;\n }\n .hb-col-sm-11 {\n width: 45.83333333%;\n }\n .hb-col-sm-12 {\n width: 50%;\n }\n .hb-col-sm-13 {\n width: 54.16666667%;\n }\n .hb-col-sm-14 {\n width: 58.33333333%;\n }\n .hb-col-sm-15 {\n width: 62.5%;\n }\n .hb-col-sm-16 {\n width: 66.66666667%;\n }\n .hb-col-sm-17 {\n width: 70.83333333%;\n }\n .hb-col-sm-18 {\n width: 75%;\n }\n .hb-col-sm-19 {\n width: 79.16666667%;\n }\n .hb-col-sm-20 {\n width: 83.33333333%;\n }\n .hb-col-sm-21 {\n width: 87.5%;\n }\n .hb-col-sm-22 {\n width: 91.66666667%;\n }\n .hb-col-sm-23 {\n width: 95.83333333%;\n }\n .hb-col-sm-24 {\n width: 100%;\n }\n .hb-col-sm-offset-0 {\n margin-left: 0;\n }\n .hb-col-sm-offset-1 {\n margin-left: 4.16666667%;\n }\n .hb-col-sm-offset-2 {\n margin-left: 8.33333333%;\n }\n .hb-col-sm-offset-3 {\n margin-left: 12.5%;\n }\n .hb-col-sm-offset-4 {\n margin-left: 16.66666667%;\n }\n .hb-col-sm-offset-5 {\n margin-left: 20.83333333%;\n }\n .hb-col-sm-offset-6 {\n margin-left: 25%;\n }\n .hb-col-sm-offset-7 {\n margin-left: 29.16666667%;\n }\n .hb-col-sm-offset-8 {\n margin-left: 33.33333333%;\n }\n .hb-col-sm-offset-9 {\n margin-left: 37.5%;\n }\n .hb-col-sm-offset-10 {\n margin-left: 41.66666667%;\n }\n .hb-col-sm-offset-11 {\n margin-left: 45.83333333%;\n }\n .hb-col-sm-offset-12 {\n margin-left: 50%;\n }\n .hb-col-sm-offset-13 {\n margin-left: 54.16666667%;\n }\n .hb-col-sm-offset-14 {\n margin-left: 58.33333333%;\n }\n .hb-col-sm-offset-15 {\n margin-left: 62.5%;\n }\n .hb-col-sm-offset-16 {\n margin-left: 66.66666667%;\n }\n .hb-col-sm-offset-17 {\n margin-left: 70.83333333%;\n }\n .hb-col-sm-offset-18 {\n margin-left: 75%;\n }\n .hb-col-sm-offset-19 {\n margin-left: 79.16666667%;\n }\n .hb-col-sm-offset-20 {\n margin-left: 83.33333333%;\n }\n .hb-col-sm-offset-21 {\n margin-left: 87.5%;\n }\n .hb-col-sm-offset-22 {\n margin-left: 91.66666667%;\n }\n .hb-col-sm-offset-23 {\n margin-left: 95.83333333%;\n }\n .hb-col-sm-offset-24 {\n margin-left: 100%;\n }\n .hb-col-sm-push-0 {\n left: 0;\n }\n .hb-col-sm-push-1 {\n left: 4.16666667%;\n }\n .hb-col-sm-push-2 {\n left: 8.33333333%;\n }\n .hb-col-sm-push-3 {\n left: 12.5%;\n }\n .hb-col-sm-push-4 {\n left: 16.66666667%;\n }\n .hb-col-sm-push-5 {\n left: 20.83333333%;\n }\n .hb-col-sm-push-6 {\n left: 25%;\n }\n .hb-col-sm-push-7 {\n left: 29.16666667%;\n }\n .hb-col-sm-push-8 {\n left: 33.33333333%;\n }\n .hb-col-sm-push-9 {\n left: 37.5%;\n }\n .hb-col-sm-push-10 {\n left: 41.66666667%;\n }\n .hb-col-sm-push-11 {\n left: 45.83333333%;\n }\n .hb-col-sm-push-12 {\n left: 50%;\n }\n .hb-col-sm-push-13 {\n left: 54.16666667%;\n }\n .hb-col-sm-push-14 {\n left: 58.33333333%;\n }\n .hb-col-sm-push-15 {\n left: 62.5%;\n }\n .hb-col-sm-push-16 {\n left: 66.66666667%;\n }\n .hb-col-sm-push-17 {\n left: 70.83333333%;\n }\n .hb-col-sm-push-18 {\n left: 75%;\n }\n .hb-col-sm-push-19 {\n left: 79.16666667%;\n }\n .hb-col-sm-push-20 {\n left: 83.33333333%;\n }\n .hb-col-sm-push-21 {\n left: 87.5%;\n }\n .hb-col-sm-push-22 {\n left: 91.66666667%;\n }\n .hb-col-sm-push-23 {\n left: 95.83333333%;\n }\n .hb-col-sm-push-24 {\n left: 100%;\n }\n .hb-col-sm-pull-0 {\n right: 0;\n }\n .hb-col-sm-pull-1 {\n right: 4.16666667%;\n }\n .hb-col-sm-pull-2 {\n right: 8.33333333%;\n }\n .hb-col-sm-pull-3 {\n right: 12.5%;\n }\n .hb-col-sm-pull-4 {\n right: 16.66666667%;\n }\n .hb-col-sm-pull-5 {\n right: 20.83333333%;\n }\n .hb-col-sm-pull-6 {\n right: 25%;\n }\n .hb-col-sm-pull-7 {\n right: 29.16666667%;\n }\n .hb-col-sm-pull-8 {\n right: 33.33333333%;\n }\n .hb-col-sm-pull-9 {\n right: 37.5%;\n }\n .hb-col-sm-pull-10 {\n right: 41.66666667%;\n }\n .hb-col-sm-pull-11 {\n right: 45.83333333%;\n }\n .hb-col-sm-pull-12 {\n right: 50%;\n }\n .hb-col-sm-pull-13 {\n right: 54.16666667%;\n }\n .hb-col-sm-pull-14 {\n right: 58.33333333%;\n }\n .hb-col-sm-pull-15 {\n right: 62.5%;\n }\n .hb-col-sm-pull-16 {\n right: 66.66666667%;\n }\n .hb-col-sm-pull-17 {\n right: 70.83333333%;\n }\n .hb-col-sm-pull-18 {\n right: 75%;\n }\n .hb-col-sm-pull-19 {\n right: 79.16666667%;\n }\n .hb-col-sm-pull-20 {\n right: 83.33333333%;\n }\n .hb-col-sm-pull-21 {\n right: 87.5%;\n }\n .hb-col-sm-pull-22 {\n right: 91.66666667%;\n }\n .hb-col-sm-pull-23 {\n right: 95.83333333%;\n }\n .hb-col-sm-pull-24 {\n right: 100%;\n }\n}\n\n@media (min-width: 768px) {\n .hb-col-md-0 {\n display: none;\n }\n .hb-col-md-1 {\n width: 4.16666667%;\n }\n .hb-col-md-2 {\n width: 8.33333333%;\n }\n .hb-col-md-3 {\n width: 12.5%;\n }\n .hb-col-md-4 {\n width: 16.66666667%;\n }\n .hb-col-md-5 {\n width: 20.83333333%;\n }\n .hb-col-md-6 {\n width: 25%;\n }\n .hb-col-md-7 {\n width: 29.16666667%;\n }\n .hb-col-md-8 {\n width: 33.33333333%;\n }\n .hb-col-md-9 {\n width: 37.5%;\n }\n .hb-col-md-10 {\n width: 41.66666667%;\n }\n .hb-col-md-11 {\n width: 45.83333333%;\n }\n .hb-col-md-12 {\n width: 50%;\n }\n .hb-col-md-13 {\n width: 54.16666667%;\n }\n .hb-col-md-14 {\n width: 58.33333333%;\n }\n .hb-col-md-15 {\n width: 62.5%;\n }\n .hb-col-md-16 {\n width: 66.66666667%;\n }\n .hb-col-md-17 {\n width: 70.83333333%;\n }\n .hb-col-md-18 {\n width: 75%;\n }\n .hb-col-md-19 {\n width: 79.16666667%;\n }\n .hb-col-md-20 {\n width: 83.33333333%;\n }\n .hb-col-md-21 {\n width: 87.5%;\n }\n .hb-col-md-22 {\n width: 91.66666667%;\n }\n .hb-col-md-23 {\n width: 95.83333333%;\n }\n .hb-col-md-24 {\n width: 100%;\n }\n .hb-col-md-offset-0 {\n margin-left: 0;\n }\n .hb-col-md-offset-1 {\n margin-left: 4.16666667%;\n }\n .hb-col-md-offset-2 {\n margin-left: 8.33333333%;\n }\n .hb-col-md-offset-3 {\n margin-left: 12.5%;\n }\n .hb-col-md-offset-4 {\n margin-left: 16.66666667%;\n }\n .hb-col-md-offset-5 {\n margin-left: 20.83333333%;\n }\n .hb-col-md-offset-6 {\n margin-left: 25%;\n }\n .hb-col-md-offset-7 {\n margin-left: 29.16666667%;\n }\n .hb-col-md-offset-8 {\n margin-left: 33.33333333%;\n }\n .hb-col-md-offset-9 {\n margin-left: 37.5%;\n }\n .hb-col-md-offset-10 {\n margin-left: 41.66666667%;\n }\n .hb-col-md-offset-11 {\n margin-left: 45.83333333%;\n }\n .hb-col-md-offset-12 {\n margin-left: 50%;\n }\n .hb-col-md-offset-13 {\n margin-left: 54.16666667%;\n }\n .hb-col-md-offset-14 {\n margin-left: 58.33333333%;\n }\n .hb-col-md-offset-15 {\n margin-left: 62.5%;\n }\n .hb-col-md-offset-16 {\n margin-left: 66.66666667%;\n }\n .hb-col-md-offset-17 {\n margin-left: 70.83333333%;\n }\n .hb-col-md-offset-18 {\n margin-left: 75%;\n }\n .hb-col-md-offset-19 {\n margin-left: 79.16666667%;\n }\n .hb-col-md-offset-20 {\n margin-left: 83.33333333%;\n }\n .hb-col-md-offset-21 {\n margin-left: 87.5%;\n }\n .hb-col-md-offset-22 {\n margin-left: 91.66666667%;\n }\n .hb-col-md-offset-23 {\n margin-left: 95.83333333%;\n }\n .hb-col-md-offset-24 {\n margin-left: 100%;\n }\n .hb-col-md-push-0 {\n left: 0;\n }\n .hb-col-md-push-1 {\n left: 4.16666667%;\n }\n .hb-col-md-push-2 {\n left: 8.33333333%;\n }\n .hb-col-md-push-3 {\n left: 12.5%;\n }\n .hb-col-md-push-4 {\n left: 16.66666667%;\n }\n .hb-col-md-push-5 {\n left: 20.83333333%;\n }\n .hb-col-md-push-6 {\n left: 25%;\n }\n .hb-col-md-push-7 {\n left: 29.16666667%;\n }\n .hb-col-md-push-8 {\n left: 33.33333333%;\n }\n .hb-col-md-push-9 {\n left: 37.5%;\n }\n .hb-col-md-push-10 {\n left: 41.66666667%;\n }\n .hb-col-md-push-11 {\n left: 45.83333333%;\n }\n .hb-col-md-push-12 {\n left: 50%;\n }\n .hb-col-md-push-13 {\n left: 54.16666667%;\n }\n .hb-col-md-push-14 {\n left: 58.33333333%;\n }\n .hb-col-md-push-15 {\n left: 62.5%;\n }\n .hb-col-md-push-16 {\n left: 66.66666667%;\n }\n .hb-col-md-push-17 {\n left: 70.83333333%;\n }\n .hb-col-md-push-18 {\n left: 75%;\n }\n .hb-col-md-push-19 {\n left: 79.16666667%;\n }\n .hb-col-md-push-20 {\n left: 83.33333333%;\n }\n .hb-col-md-push-21 {\n left: 87.5%;\n }\n .hb-col-md-push-22 {\n left: 91.66666667%;\n }\n .hb-col-md-push-23 {\n left: 95.83333333%;\n }\n .hb-col-md-push-24 {\n left: 100%;\n }\n .hb-col-md-pull-0 {\n right: 0;\n }\n .hb-col-md-pull-1 {\n right: 4.16666667%;\n }\n .hb-col-md-pull-2 {\n right: 8.33333333%;\n }\n .hb-col-md-pull-3 {\n right: 12.5%;\n }\n .hb-col-md-pull-4 {\n right: 16.66666667%;\n }\n .hb-col-md-pull-5 {\n right: 20.83333333%;\n }\n .hb-col-md-pull-6 {\n right: 25%;\n }\n .hb-col-md-pull-7 {\n right: 29.16666667%;\n }\n .hb-col-md-pull-8 {\n right: 33.33333333%;\n }\n .hb-col-md-pull-9 {\n right: 37.5%;\n }\n .hb-col-md-pull-10 {\n right: 41.66666667%;\n }\n .hb-col-md-pull-11 {\n right: 45.83333333%;\n }\n .hb-col-md-pull-12 {\n right: 50%;\n }\n .hb-col-md-pull-13 {\n right: 54.16666667%;\n }\n .hb-col-md-pull-14 {\n right: 58.33333333%;\n }\n .hb-col-md-pull-15 {\n right: 62.5%;\n }\n .hb-col-md-pull-16 {\n right: 66.66666667%;\n }\n .hb-col-md-pull-17 {\n right: 70.83333333%;\n }\n .hb-col-md-pull-18 {\n right: 75%;\n }\n .hb-col-md-pull-19 {\n right: 79.16666667%;\n }\n .hb-col-md-pull-20 {\n right: 83.33333333%;\n }\n .hb-col-md-pull-21 {\n right: 87.5%;\n }\n .hb-col-md-pull-22 {\n right: 91.66666667%;\n }\n .hb-col-md-pull-23 {\n right: 95.83333333%;\n }\n .hb-col-md-pull-24 {\n right: 100%;\n }\n}\n\n@media (min-width: 992px) {\n .hb-col-lg-0 {\n display: none;\n }\n .hb-col-lg-1 {\n width: 4.16666667%;\n }\n .hb-col-lg-2 {\n width: 8.33333333%;\n }\n .hb-col-lg-3 {\n width: 12.5%;\n }\n .hb-col-lg-4 {\n width: 16.66666667%;\n }\n .hb-col-lg-5 {\n width: 20.83333333%;\n }\n .hb-col-lg-6 {\n width: 25%;\n }\n .hb-col-lg-7 {\n width: 29.16666667%;\n }\n .hb-col-lg-8 {\n width: 33.33333333%;\n }\n .hb-col-lg-9 {\n width: 37.5%;\n }\n .hb-col-lg-10 {\n width: 41.66666667%;\n }\n .hb-col-lg-11 {\n width: 45.83333333%;\n }\n .hb-col-lg-12 {\n width: 50%;\n }\n .hb-col-lg-13 {\n width: 54.16666667%;\n }\n .hb-col-lg-14 {\n width: 58.33333333%;\n }\n .hb-col-lg-15 {\n width: 62.5%;\n }\n .hb-col-lg-16 {\n width: 66.66666667%;\n }\n .hb-col-lg-17 {\n width: 70.83333333%;\n }\n .hb-col-lg-18 {\n width: 75%;\n }\n .hb-col-lg-19 {\n width: 79.16666667%;\n }\n .hb-col-lg-20 {\n width: 83.33333333%;\n }\n .hb-col-lg-21 {\n width: 87.5%;\n }\n .hb-col-lg-22 {\n width: 91.66666667%;\n }\n .hb-col-lg-23 {\n width: 95.83333333%;\n }\n .hb-col-lg-24 {\n width: 100%;\n }\n .hb-col-lg-offset-0 {\n margin-left: 0;\n }\n .hb-col-lg-offset-1 {\n margin-left: 4.16666667%;\n }\n .hb-col-lg-offset-2 {\n margin-left: 8.33333333%;\n }\n .hb-col-lg-offset-3 {\n margin-left: 12.5%;\n }\n .hb-col-lg-offset-4 {\n margin-left: 16.66666667%;\n }\n .hb-col-lg-offset-5 {\n margin-left: 20.83333333%;\n }\n .hb-col-lg-offset-6 {\n margin-left: 25%;\n }\n .hb-col-lg-offset-7 {\n margin-left: 29.16666667%;\n }\n .hb-col-lg-offset-8 {\n margin-left: 33.33333333%;\n }\n .hb-col-lg-offset-9 {\n margin-left: 37.5%;\n }\n .hb-col-lg-offset-10 {\n margin-left: 41.66666667%;\n }\n .hb-col-lg-offset-11 {\n margin-left: 45.83333333%;\n }\n .hb-col-lg-offset-12 {\n margin-left: 50%;\n }\n .hb-col-lg-offset-13 {\n margin-left: 54.16666667%;\n }\n .hb-col-lg-offset-14 {\n margin-left: 58.33333333%;\n }\n .hb-col-lg-offset-15 {\n margin-left: 62.5%;\n }\n .hb-col-lg-offset-16 {\n margin-left: 66.66666667%;\n }\n .hb-col-lg-offset-17 {\n margin-left: 70.83333333%;\n }\n .hb-col-lg-offset-18 {\n margin-left: 75%;\n }\n .hb-col-lg-offset-19 {\n margin-left: 79.16666667%;\n }\n .hb-col-lg-offset-20 {\n margin-left: 83.33333333%;\n }\n .hb-col-lg-offset-21 {\n margin-left: 87.5%;\n }\n .hb-col-lg-offset-22 {\n margin-left: 91.66666667%;\n }\n .hb-col-lg-offset-23 {\n margin-left: 95.83333333%;\n }\n .hb-col-lg-offset-24 {\n margin-left: 100%;\n }\n .hb-col-lg-push-0 {\n left: 0;\n }\n .hb-col-lg-push-1 {\n left: 4.16666667%;\n }\n .hb-col-lg-push-2 {\n left: 8.33333333%;\n }\n .hb-col-lg-push-3 {\n left: 12.5%;\n }\n .hb-col-lg-push-4 {\n left: 16.66666667%;\n }\n .hb-col-lg-push-5 {\n left: 20.83333333%;\n }\n .hb-col-lg-push-6 {\n left: 25%;\n }\n .hb-col-lg-push-7 {\n left: 29.16666667%;\n }\n .hb-col-lg-push-8 {\n left: 33.33333333%;\n }\n .hb-col-lg-push-9 {\n left: 37.5%;\n }\n .hb-col-lg-push-10 {\n left: 41.66666667%;\n }\n .hb-col-lg-push-11 {\n left: 45.83333333%;\n }\n .hb-col-lg-push-12 {\n left: 50%;\n }\n .hb-col-lg-push-13 {\n left: 54.16666667%;\n }\n .hb-col-lg-push-14 {\n left: 58.33333333%;\n }\n .hb-col-lg-push-15 {\n left: 62.5%;\n }\n .hb-col-lg-push-16 {\n left: 66.66666667%;\n }\n .hb-col-lg-push-17 {\n left: 70.83333333%;\n }\n .hb-col-lg-push-18 {\n left: 75%;\n }\n .hb-col-lg-push-19 {\n left: 79.16666667%;\n }\n .hb-col-lg-push-20 {\n left: 83.33333333%;\n }\n .hb-col-lg-push-21 {\n left: 87.5%;\n }\n .hb-col-lg-push-22 {\n left: 91.66666667%;\n }\n .hb-col-lg-push-23 {\n left: 95.83333333%;\n }\n .hb-col-lg-push-24 {\n left: 100%;\n }\n .hb-col-lg-pull-0 {\n right: 0;\n }\n .hb-col-lg-pull-1 {\n right: 4.16666667%;\n }\n .hb-col-lg-pull-2 {\n right: 8.33333333%;\n }\n .hb-col-lg-pull-3 {\n right: 12.5%;\n }\n .hb-col-lg-pull-4 {\n right: 16.66666667%;\n }\n .hb-col-lg-pull-5 {\n right: 20.83333333%;\n }\n .hb-col-lg-pull-6 {\n right: 25%;\n }\n .hb-col-lg-pull-7 {\n right: 29.16666667%;\n }\n .hb-col-lg-pull-8 {\n right: 33.33333333%;\n }\n .hb-col-lg-pull-9 {\n right: 37.5%;\n }\n .hb-col-lg-pull-10 {\n right: 41.66666667%;\n }\n .hb-col-lg-pull-11 {\n right: 45.83333333%;\n }\n .hb-col-lg-pull-12 {\n right: 50%;\n }\n .hb-col-lg-pull-13 {\n right: 54.16666667%;\n }\n .hb-col-lg-pull-14 {\n right: 58.33333333%;\n }\n .hb-col-lg-pull-15 {\n right: 62.5%;\n }\n .hb-col-lg-pull-16 {\n right: 66.66666667%;\n }\n .hb-col-lg-pull-17 {\n right: 70.83333333%;\n }\n .hb-col-lg-pull-18 {\n right: 75%;\n }\n .hb-col-lg-pull-19 {\n right: 79.16666667%;\n }\n .hb-col-lg-pull-20 {\n right: 83.33333333%;\n }\n .hb-col-lg-pull-21 {\n right: 87.5%;\n }\n .hb-col-lg-pull-22 {\n right: 91.66666667%;\n }\n .hb-col-lg-pull-23 {\n right: 95.83333333%;\n }\n .hb-col-lg-pull-24 {\n right: 100%;\n }\n}\n\n@media (min-width: 1200px) {\n .hb-col-xl-0 {\n display: none;\n }\n .hb-col-xl-1 {\n width: 4.16666667%;\n }\n .hb-col-xl-2 {\n width: 8.33333333%;\n }\n .hb-col-xl-3 {\n width: 12.5%;\n }\n .hb-col-xl-4 {\n width: 16.66666667%;\n }\n .hb-col-xl-5 {\n width: 20.83333333%;\n }\n .hb-col-xl-6 {\n width: 25%;\n }\n .hb-col-xl-7 {\n width: 29.16666667%;\n }\n .hb-col-xl-8 {\n width: 33.33333333%;\n }\n .hb-col-xl-9 {\n width: 37.5%;\n }\n .hb-col-xl-10 {\n width: 41.66666667%;\n }\n .hb-col-xl-11 {\n width: 45.83333333%;\n }\n .hb-col-xl-12 {\n width: 50%;\n }\n .hb-col-xl-13 {\n width: 54.16666667%;\n }\n .hb-col-xl-14 {\n width: 58.33333333%;\n }\n .hb-col-xl-15 {\n width: 62.5%;\n }\n .hb-col-xl-16 {\n width: 66.66666667%;\n }\n .hb-col-xl-17 {\n width: 70.83333333%;\n }\n .hb-col-xl-18 {\n width: 75%;\n }\n .hb-col-xl-19 {\n width: 79.16666667%;\n }\n .hb-col-xl-20 {\n width: 83.33333333%;\n }\n .hb-col-xl-21 {\n width: 87.5%;\n }\n .hb-col-xl-22 {\n width: 91.66666667%;\n }\n .hb-col-xl-23 {\n width: 95.83333333%;\n }\n .hb-col-xl-24 {\n width: 100%;\n }\n .hb-col-xl-offset-0 {\n margin-left: 0;\n }\n .hb-col-xl-offset-1 {\n margin-left: 4.16666667%;\n }\n .hb-col-xl-offset-2 {\n margin-left: 8.33333333%;\n }\n .hb-col-xl-offset-3 {\n margin-left: 12.5%;\n }\n .hb-col-xl-offset-4 {\n margin-left: 16.66666667%;\n }\n .hb-col-xl-offset-5 {\n margin-left: 20.83333333%;\n }\n .hb-col-xl-offset-6 {\n margin-left: 25%;\n }\n .hb-col-xl-offset-7 {\n margin-left: 29.16666667%;\n }\n .hb-col-xl-offset-8 {\n margin-left: 33.33333333%;\n }\n .hb-col-xl-offset-9 {\n margin-left: 37.5%;\n }\n .hb-col-xl-offset-10 {\n margin-left: 41.66666667%;\n }\n .hb-col-xl-offset-11 {\n margin-left: 45.83333333%;\n }\n .hb-col-xl-offset-12 {\n margin-left: 50%;\n }\n .hb-col-xl-offset-13 {\n margin-left: 54.16666667%;\n }\n .hb-col-xl-offset-14 {\n margin-left: 58.33333333%;\n }\n .hb-col-xl-offset-15 {\n margin-left: 62.5%;\n }\n .hb-col-xl-offset-16 {\n margin-left: 66.66666667%;\n }\n .hb-col-xl-offset-17 {\n margin-left: 70.83333333%;\n }\n .hb-col-xl-offset-18 {\n margin-left: 75%;\n }\n .hb-col-xl-offset-19 {\n margin-left: 79.16666667%;\n }\n .hb-col-xl-offset-20 {\n margin-left: 83.33333333%;\n }\n .hb-col-xl-offset-21 {\n margin-left: 87.5%;\n }\n .hb-col-xl-offset-22 {\n margin-left: 91.66666667%;\n }\n .hb-col-xl-offset-23 {\n margin-left: 95.83333333%;\n }\n .hb-col-xl-offset-24 {\n margin-left: 100%;\n }\n .hb-col-xl-push-0 {\n left: 0;\n }\n .hb-col-xl-push-1 {\n left: 4.16666667%;\n }\n .hb-col-xl-push-2 {\n left: 8.33333333%;\n }\n .hb-col-xl-push-3 {\n left: 12.5%;\n }\n .hb-col-xl-push-4 {\n left: 16.66666667%;\n }\n .hb-col-xl-push-5 {\n left: 20.83333333%;\n }\n .hb-col-xl-push-6 {\n left: 25%;\n }\n .hb-col-xl-push-7 {\n left: 29.16666667%;\n }\n .hb-col-xl-push-8 {\n left: 33.33333333%;\n }\n .hb-col-xl-push-9 {\n left: 37.5%;\n }\n .hb-col-xl-push-10 {\n left: 41.66666667%;\n }\n .hb-col-xl-push-11 {\n left: 45.83333333%;\n }\n .hb-col-xl-push-12 {\n left: 50%;\n }\n .hb-col-xl-push-13 {\n left: 54.16666667%;\n }\n .hb-col-xl-push-14 {\n left: 58.33333333%;\n }\n .hb-col-xl-push-15 {\n left: 62.5%;\n }\n .hb-col-xl-push-16 {\n left: 66.66666667%;\n }\n .hb-col-xl-push-17 {\n left: 70.83333333%;\n }\n .hb-col-xl-push-18 {\n left: 75%;\n }\n .hb-col-xl-push-19 {\n left: 79.16666667%;\n }\n .hb-col-xl-push-20 {\n left: 83.33333333%;\n }\n .hb-col-xl-push-21 {\n left: 87.5%;\n }\n .hb-col-xl-push-22 {\n left: 91.66666667%;\n }\n .hb-col-xl-push-23 {\n left: 95.83333333%;\n }\n .hb-col-xl-push-24 {\n left: 100%;\n }\n .hb-col-xl-pull-0 {\n right: 0;\n }\n .hb-col-xl-pull-1 {\n right: 4.16666667%;\n }\n .hb-col-xl-pull-2 {\n right: 8.33333333%;\n }\n .hb-col-xl-pull-3 {\n right: 12.5%;\n }\n .hb-col-xl-pull-4 {\n right: 16.66666667%;\n }\n .hb-col-xl-pull-5 {\n right: 20.83333333%;\n }\n .hb-col-xl-pull-6 {\n right: 25%;\n }\n .hb-col-xl-pull-7 {\n right: 29.16666667%;\n }\n .hb-col-xl-pull-8 {\n right: 33.33333333%;\n }\n .hb-col-xl-pull-9 {\n right: 37.5%;\n }\n .hb-col-xl-pull-10 {\n right: 41.66666667%;\n }\n .hb-col-xl-pull-11 {\n right: 45.83333333%;\n }\n .hb-col-xl-pull-12 {\n right: 50%;\n }\n .hb-col-xl-pull-13 {\n right: 54.16666667%;\n }\n .hb-col-xl-pull-14 {\n right: 58.33333333%;\n }\n .hb-col-xl-pull-15 {\n right: 62.5%;\n }\n .hb-col-xl-pull-16 {\n right: 66.66666667%;\n }\n .hb-col-xl-pull-17 {\n right: 70.83333333%;\n }\n .hb-col-xl-pull-18 {\n right: 75%;\n }\n .hb-col-xl-pull-19 {\n right: 79.16666667%;\n }\n .hb-col-xl-pull-20 {\n right: 83.33333333%;\n }\n .hb-col-xl-pull-21 {\n right: 87.5%;\n }\n .hb-col-xl-pull-22 {\n right: 91.66666667%;\n }\n .hb-col-xl-pull-23 {\n right: 95.83333333%;\n }\n .hb-col-xl-pull-24 {\n right: 100%;\n }\n}\n","import { Component, h, Prop } from '@stencil/core';\n\n/** 响应式栅格配置(对齐 antd:可传 number 或 {span,offset,push,pull}) */\nexport interface ColResponsive {\n span?: number;\n offset?: number;\n push?: number;\n pull?: number;\n}\n\n/**\n * Layout 布局组件\n * 通过基础的 24 分栏,迅速简便地创建布局。\n * 支持响应式:xs/sm/md/lg/xl 在对应断点应用各自的 span/offset/push/pull。\n */\n@Component({\n tag: 'hb-layout',\n styleUrl: 'layout.css',\n shadow: true,\n})\nexport class Layout {\n /**\n * 栅格占据的列数\n * @default 24\n */\n @Prop() span: number = 24;\n\n /**\n * 栅格左侧的间隔格数\n * @default 0\n */\n @Prop() offset: number = 0;\n\n /**\n * 栅格向右移动格数\n * @default 0\n */\n @Prop() push: number = 0;\n\n /**\n * 栅格向左移动格数\n * @default 0\n */\n @Prop() pull: number = 0;\n\n /**\n * <576px 响应式栅格数或者栅格属性对象\n */\n @Prop() xs?: number | ColResponsive;\n\n /**\n * ≥576px 响应式栅格数或者栅格属性对象\n */\n @Prop() sm?: number | ColResponsive;\n\n /**\n * ≥768px 响应式栅格数或者栅格属性对象\n */\n @Prop() md?: number | ColResponsive;\n\n /**\n * ≥992px 响应式栅格数或者栅格属性对象\n */\n @Prop() lg?: number | ColResponsive;\n\n /**\n * ≥1200px 响应式栅格数或者栅格属性对象\n */\n @Prop() xl?: number | ColResponsive;\n\n /** 把响应式 prop(number 或对象)规范化为 {span,offset,push,pull} */\n private normalizeResponsive(value: number | ColResponsive | undefined): ColResponsive {\n if (value === undefined || value === null) return {};\n if (typeof value === 'number') return { span: value };\n return value;\n }\n\n private getColClass() {\n const classes: string[] = ['hb-col'];\n\n // 基础(无断点)span/offset/push/pull —— 仅在没有 xs 时作为 xs 默认(antd 行为)\n if (this.span) classes.push(`hb-col-${this.span}`);\n if (this.offset) classes.push(`hb-col-offset-${this.offset}`);\n if (this.push) classes.push(`hb-col-push-${this.push}`);\n if (this.pull) classes.push(`hb-col-pull-${this.pull}`);\n\n // 响应式断点:生成 hb-col-{bp}-{span} / hb-col-{bp}-offset-{n} 等 class,\n // CSS 用 @media 在对应断点应用(覆盖基础值)。\n const bps: Array<'xs' | 'sm' | 'md' | 'lg' | 'xl'> = ['xs', 'sm', 'md', 'lg', 'xl'];\n for (const bp of bps) {\n const v = this[bp];\n if (v === undefined) continue;\n const r = this.normalizeResponsive(v);\n if (r.span !== undefined) classes.push(`hb-col-${bp}-${r.span}`);\n if (r.offset !== undefined) classes.push(`hb-col-${bp}-offset-${r.offset}`);\n if (r.push !== undefined) classes.push(`hb-col-${bp}-push-${r.push}`);\n if (r.pull !== undefined) classes.push(`hb-col-${bp}-pull-${r.pull}`);\n }\n\n return classes.join(' ');\n }\n\n render() {\n return (\n <div class={this.getColClass()}>\n <slot></slot>\n </div>\n );\n }\n}\n"],"version":3}
@@ -48,12 +48,12 @@ const Link = class {
48
48
  };
49
49
  render() {
50
50
  const Tag = this.href ? 'a' : 'span';
51
- return (h(Tag, { key: '7903426ed8f9d0553bfabf22068e8e74f4bc6232', class: {
51
+ return (h(Tag, { key: 'adc292c63a29c892aad0a7fbc8731daab5cb274f', class: {
52
52
  'hb-link': true,
53
53
  [`hb-link--${this.type}`]: true,
54
54
  'hb-link--underline': this.underline,
55
55
  'hb-link--disabled': this.disabled,
56
- }, href: this.disabled ? undefined : this.href, target: this.target, onClick: this.handleClick }, this.icon && h("i", { key: '1945af3c95d3d9a29a2bbed159d48b10230f8901', class: this.icon }), h("slot", { key: '2499cb000e716f05f55c230a8c8ad72f15ce215a' })));
56
+ }, href: this.disabled ? undefined : this.href, target: this.target, onClick: this.handleClick }, this.icon && h("i", { key: '8647d19079e91743aa0cb73e170f1a017caed895', class: this.icon }), h("slot", { key: '852517194c30de3092746039dfa1d294dc5fd243' })));
57
57
  }
58
58
  };
59
59
  Link.style = HbLinkStyle0;