huibo-ui 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (668) hide show
  1. package/dist/cjs/{date-helpers-904747ff.js → date-helpers-1ffddc59.js} +7 -3
  2. package/dist/cjs/date-helpers-1ffddc59.js.map +1 -0
  3. package/dist/cjs/hb-affix.cjs.entry.js +1 -1
  4. package/dist/cjs/hb-aside.cjs.entry.js +1 -1
  5. package/dist/cjs/hb-avatar.cjs.entry.js +1 -1
  6. package/dist/cjs/hb-backtop.cjs.entry.js +2 -2
  7. package/dist/cjs/hb-badge.cjs.entry.js +1 -1
  8. package/dist/cjs/hb-breadcrumb-item.cjs.entry.js +1 -1
  9. package/dist/cjs/hb-breadcrumb.cjs.entry.js +1 -1
  10. package/dist/cjs/hb-button.cjs.entry.js +2 -2
  11. package/dist/cjs/hb-calendar.cjs.entry.js +78 -10
  12. package/dist/cjs/hb-calendar.cjs.entry.js.map +1 -1
  13. package/dist/cjs/hb-card.cjs.entry.js +1 -1
  14. package/dist/cjs/hb-cascader.cjs.entry.js +270 -146
  15. package/dist/cjs/hb-cascader.cjs.entry.js.map +1 -1
  16. package/dist/cjs/hb-checkbox-group.cjs.entry.js +2 -2
  17. package/dist/cjs/hb-checkbox.cjs.entry.js +3 -3
  18. package/dist/cjs/hb-collapse-item.cjs.entry.js +1 -1
  19. package/dist/cjs/hb-collapse.cjs.entry.js +1 -1
  20. package/dist/cjs/hb-color-picker-panel.cjs.entry.js +2 -2
  21. package/dist/cjs/hb-color-picker.cjs.entry.js +91 -14
  22. package/dist/cjs/hb-color-picker.cjs.entry.js.map +1 -1
  23. package/dist/cjs/hb-config-provider.cjs.entry.js +1 -1
  24. package/dist/cjs/hb-container.cjs.entry.js +2 -2
  25. package/dist/cjs/hb-date-picker-pane.cjs.entry.js +2 -2
  26. package/dist/cjs/hb-date-picker.cjs.entry.js +85 -7
  27. package/dist/cjs/hb-date-picker.cjs.entry.js.map +1 -1
  28. package/dist/cjs/hb-date-range-picker.cjs.entry.js +3 -3
  29. package/dist/cjs/hb-date-time-picker.cjs.entry.js +3 -3
  30. package/dist/cjs/hb-descriptions.cjs.entry.js +2 -2
  31. package/dist/cjs/hb-descriptions.cjs.entry.js.map +1 -1
  32. package/dist/cjs/hb-divider.cjs.entry.js +2 -2
  33. package/dist/cjs/hb-drawer.cjs.entry.js +1 -1
  34. package/dist/cjs/hb-dropdown.cjs.entry.js +74 -6
  35. package/dist/cjs/hb-dropdown.cjs.entry.js.map +1 -1
  36. package/dist/cjs/hb-empty.cjs.entry.js +1 -1
  37. package/dist/cjs/hb-float-button.cjs.entry.js +2 -2
  38. package/dist/cjs/hb-footer.cjs.entry.js +1 -1
  39. package/dist/cjs/hb-form-item.cjs.entry.js +59 -8
  40. package/dist/cjs/hb-form-item.cjs.entry.js.map +1 -1
  41. package/dist/cjs/hb-form.cjs.entry.js +3 -3
  42. package/dist/cjs/hb-form.cjs.entry.js.map +1 -1
  43. package/dist/cjs/hb-header.cjs.entry.js +1 -1
  44. package/dist/cjs/hb-image-preview.cjs.entry.js +12 -8
  45. package/dist/cjs/hb-image-preview.cjs.entry.js.map +1 -1
  46. package/dist/cjs/hb-image.cjs.entry.js +1 -1
  47. package/dist/cjs/hb-input-number.cjs.entry.js +5 -5
  48. package/dist/cjs/hb-input-tag.cjs.entry.js +2 -2
  49. package/dist/cjs/hb-input.cjs.entry.js +39 -3
  50. package/dist/cjs/hb-input.cjs.entry.js.map +1 -1
  51. package/dist/cjs/hb-layout.cjs.entry.js +36 -14
  52. package/dist/cjs/hb-layout.cjs.entry.js.map +1 -1
  53. package/dist/cjs/hb-link.cjs.entry.js +2 -2
  54. package/dist/cjs/hb-loading.cjs.entry.js +2 -2
  55. package/dist/cjs/hb-main.cjs.entry.js +1 -1
  56. package/dist/cjs/hb-menu-item.cjs.entry.js +2 -2
  57. package/dist/cjs/hb-menu.cjs.entry.js +3 -3
  58. package/dist/cjs/hb-menu.cjs.entry.js.map +1 -1
  59. package/dist/cjs/hb-message.cjs.entry.js +2 -2
  60. package/dist/cjs/hb-notification.cjs.entry.js +2 -2
  61. package/dist/cjs/hb-page-header.cjs.entry.js +1 -1
  62. package/dist/cjs/hb-pagination.cjs.entry.js +21 -8
  63. package/dist/cjs/hb-pagination.cjs.entry.js.map +1 -1
  64. package/dist/cjs/hb-popconfirm.cjs.entry.js +37 -7
  65. package/dist/cjs/hb-popconfirm.cjs.entry.js.map +1 -1
  66. package/dist/cjs/hb-popover.cjs.entry.js +22 -2
  67. package/dist/cjs/hb-popover.cjs.entry.js.map +1 -1
  68. package/dist/cjs/hb-progress.cjs.entry.js +1 -1
  69. package/dist/cjs/hb-radio.cjs.entry.js +2 -2
  70. package/dist/cjs/hb-rate.cjs.entry.js +45 -3
  71. package/dist/cjs/hb-rate.cjs.entry.js.map +1 -1
  72. package/dist/cjs/hb-result.cjs.entry.js +1 -1
  73. package/dist/cjs/hb-row.cjs.entry.js +2 -2
  74. package/dist/cjs/hb-segmented.cjs.entry.js +39 -5
  75. package/dist/cjs/hb-segmented.cjs.entry.js.map +1 -1
  76. package/dist/cjs/hb-select.cjs.entry.js +47 -8
  77. package/dist/cjs/hb-select.cjs.entry.js.map +1 -1
  78. package/dist/cjs/hb-slider.cjs.entry.js +189 -20
  79. package/dist/cjs/hb-slider.cjs.entry.js.map +1 -1
  80. package/dist/cjs/hb-space.cjs.entry.js +2 -2
  81. package/dist/cjs/hb-statistic.cjs.entry.js +1 -1
  82. package/dist/cjs/hb-step.cjs.entry.js +1 -1
  83. package/dist/cjs/hb-steps.cjs.entry.js +30 -9
  84. package/dist/cjs/hb-steps.cjs.entry.js.map +1 -1
  85. package/dist/cjs/hb-sub-menu.cjs.entry.js +4 -4
  86. package/dist/cjs/hb-switch.cjs.entry.js +9 -4
  87. package/dist/cjs/hb-switch.cjs.entry.js.map +1 -1
  88. package/dist/cjs/hb-tab-pane.cjs.entry.js +1 -1
  89. package/dist/cjs/hb-table.cjs.entry.js +1 -1
  90. package/dist/cjs/hb-table.cjs.entry.js.map +1 -1
  91. package/dist/cjs/hb-tabs.cjs.entry.js +2 -2
  92. package/dist/cjs/hb-tag.cjs.entry.js +2 -2
  93. package/dist/cjs/hb-text.cjs.entry.js +2 -2
  94. package/dist/cjs/hb-time-picker.cjs.entry.js +4 -4
  95. package/dist/cjs/hb-time-select.cjs.entry.js +2 -2
  96. package/dist/cjs/hb-timeline.cjs.entry.js +1 -1
  97. package/dist/cjs/hb-tooltip.cjs.entry.js +18 -1
  98. package/dist/cjs/hb-tooltip.cjs.entry.js.map +1 -1
  99. package/dist/cjs/hb-transfer.cjs.entry.js +2 -2
  100. package/dist/cjs/hb-tree-select.cjs.entry.js +95 -18
  101. package/dist/cjs/hb-tree-select.cjs.entry.js.map +1 -1
  102. package/dist/cjs/hb-tree.cjs.entry.js +1 -1
  103. package/dist/cjs/hb-upload.cjs.entry.js +3 -3
  104. package/dist/cjs/hb-watermark.cjs.entry.js +1 -1
  105. package/dist/cjs/huibo-ui.cjs.js +1 -1
  106. package/dist/cjs/loader.cjs.js +1 -1
  107. package/dist/collection/collection-manifest.json +3 -3
  108. package/dist/collection/components/Affix/Affix.js +1 -1
  109. package/dist/collection/components/Avatar/Avatar.js +1 -1
  110. package/dist/collection/components/Backtop/Backtop.js +2 -2
  111. package/dist/collection/components/Badge/Badge.js +1 -1
  112. package/dist/collection/components/Breadcrumb/Breadcrumb.js +1 -1
  113. package/dist/collection/components/Breadcrumb/BreadcrumbItem.js +1 -1
  114. package/dist/collection/components/Button/Button.js +2 -2
  115. package/dist/collection/components/Calendar/Calendar.js +84 -10
  116. package/dist/collection/components/Calendar/Calendar.js.map +1 -1
  117. package/dist/collection/components/Calendar/calendar.css +16 -0
  118. package/dist/collection/components/Card/Card.js +1 -1
  119. package/dist/collection/components/Cascader/Cascader.js +374 -194
  120. package/dist/collection/components/Cascader/Cascader.js.map +1 -1
  121. package/dist/collection/components/Cascader/cascader.css +170 -16
  122. package/dist/collection/components/Checkbox/Checkbox.js +3 -3
  123. package/dist/collection/components/Checkbox/CheckboxGroup.js +2 -2
  124. package/dist/collection/components/Collapse/Collapse.js +1 -1
  125. package/dist/collection/components/Collapse/CollapseItem.js +1 -1
  126. package/dist/collection/components/ColorPicker/ColorPicker.js +92 -14
  127. package/dist/collection/components/ColorPicker/ColorPicker.js.map +1 -1
  128. package/dist/collection/components/ColorPicker/color-picker.css +13 -0
  129. package/dist/collection/components/ColorPickerPanel/ColorPickerPanel.js +2 -2
  130. package/dist/collection/components/ConfigProvider/ConfigProvider.js +1 -1
  131. package/dist/collection/components/Container/Aside.js +1 -1
  132. package/dist/collection/components/Container/Container.js +2 -2
  133. package/dist/collection/components/Container/Footer.js +1 -1
  134. package/dist/collection/components/Container/Header.js +1 -1
  135. package/dist/collection/components/Container/Main.js +1 -1
  136. package/dist/collection/components/DatePicker/DatePicker.js +89 -10
  137. package/dist/collection/components/DatePicker/DatePicker.js.map +1 -1
  138. package/dist/collection/components/DatePicker/date-picker.css +62 -2
  139. package/dist/collection/components/DatePickerPane/DatePickerPane.js +1 -1
  140. package/dist/collection/components/DateRangePicker/DateRangePicker.js +2 -2
  141. package/dist/collection/components/DateTimePicker/DateTimePicker.js +2 -2
  142. package/dist/collection/components/Descriptions/Descriptions.js +1 -1
  143. package/dist/collection/components/Descriptions/descriptions.css +22 -0
  144. package/dist/collection/components/Divider/Divider.js +2 -2
  145. package/dist/collection/components/Drawer/Drawer.js +1 -1
  146. package/dist/collection/components/Dropdown/Dropdown.js +83 -7
  147. package/dist/collection/components/Dropdown/Dropdown.js.map +1 -1
  148. package/dist/collection/components/Dropdown/dropdown.css +2 -1
  149. package/dist/collection/components/Empty/Empty.js +1 -1
  150. package/dist/collection/components/FloatButton/FloatButton.js +2 -2
  151. package/dist/collection/components/Form/Form.js +2 -2
  152. package/dist/collection/components/Form/FormItem.js +60 -9
  153. package/dist/collection/components/Form/FormItem.js.map +1 -1
  154. package/dist/collection/components/Form/form-item.css +49 -4
  155. package/dist/collection/components/Form/form.css +1 -0
  156. package/dist/collection/components/Image/Image.js +1 -1
  157. package/dist/collection/components/ImagePreview/ImagePreview.js +12 -8
  158. package/dist/collection/components/ImagePreview/ImagePreview.js.map +1 -1
  159. package/dist/collection/components/Input/Input.js +38 -2
  160. package/dist/collection/components/Input/Input.js.map +1 -1
  161. package/dist/collection/components/Input/input.css +21 -2
  162. package/dist/collection/components/InputNumber/InputNumber.js +5 -5
  163. package/dist/collection/components/InputTag/InputTag.js +2 -2
  164. package/dist/collection/components/Layout/Layout.js +87 -34
  165. package/dist/collection/components/Layout/Layout.js.map +1 -1
  166. package/dist/collection/components/Layout/Row.js +2 -2
  167. package/dist/collection/components/Layout/layout.css +524 -0
  168. package/dist/collection/components/Link/Link.js +2 -2
  169. package/dist/collection/components/Loading/Loading.js +2 -2
  170. package/dist/collection/components/Menu/Menu.js +2 -2
  171. package/dist/collection/components/Menu/MenuItem.js +2 -2
  172. package/dist/collection/components/Menu/SubMenu.js +4 -4
  173. package/dist/collection/components/Menu/menu.css +25 -0
  174. package/dist/collection/components/Message/Message.js +2 -2
  175. package/dist/collection/components/Notification/Notification.js +2 -2
  176. package/dist/collection/components/PageHeader/PageHeader.js +1 -1
  177. package/dist/collection/components/Pagination/Pagination.js +23 -7
  178. package/dist/collection/components/Pagination/Pagination.js.map +1 -1
  179. package/dist/collection/components/Pagination/pagination.css +23 -0
  180. package/dist/collection/components/Popconfirm/Popconfirm.js +44 -7
  181. package/dist/collection/components/Popconfirm/Popconfirm.js.map +1 -1
  182. package/dist/collection/components/Popover/Popover.js +29 -2
  183. package/dist/collection/components/Popover/Popover.js.map +1 -1
  184. package/dist/collection/components/Progress/Progress.js +1 -1
  185. package/dist/collection/components/Radio/Radio.js +2 -2
  186. package/dist/collection/components/Rate/Rate.js +45 -3
  187. package/dist/collection/components/Rate/Rate.js.map +1 -1
  188. package/dist/collection/components/Result/Result.js +1 -1
  189. package/dist/collection/components/Segmented/Segmented.js +51 -6
  190. package/dist/collection/components/Segmented/Segmented.js.map +1 -1
  191. package/dist/collection/components/Select/Select.js +46 -7
  192. package/dist/collection/components/Select/Select.js.map +1 -1
  193. package/dist/collection/components/Select/select.css +50 -4
  194. package/dist/collection/components/Slider/Slider.js +221 -21
  195. package/dist/collection/components/Slider/Slider.js.map +1 -1
  196. package/dist/collection/components/Slider/slider.css +58 -7
  197. package/dist/collection/components/Space/Space.js +2 -2
  198. package/dist/collection/components/Statistic/Statistic.js +1 -1
  199. package/dist/collection/components/Steps/Step.js +1 -1
  200. package/dist/collection/components/Steps/Steps.js +35 -8
  201. package/dist/collection/components/Steps/Steps.js.map +1 -1
  202. package/dist/collection/components/Switch/Switch.js +8 -3
  203. package/dist/collection/components/Switch/Switch.js.map +1 -1
  204. package/dist/collection/components/Switch/switch.css +45 -0
  205. package/dist/collection/components/Table/table.css +20 -0
  206. package/dist/collection/components/Tabs/TabPane.js +1 -1
  207. package/dist/collection/components/Tabs/Tabs.js +2 -2
  208. package/dist/collection/components/Tag/Tag.js +2 -2
  209. package/dist/collection/components/Text/Text.js +2 -2
  210. package/dist/collection/components/TimePicker/TimePicker.js +4 -4
  211. package/dist/collection/components/TimeSelect/TimeSelect.js +2 -2
  212. package/dist/collection/components/Timeline/Timeline.js +1 -1
  213. package/dist/collection/components/Tooltip/Tooltip.js +25 -2
  214. package/dist/collection/components/Tooltip/Tooltip.js.map +1 -1
  215. package/dist/collection/components/Transfer/Transfer.js +2 -2
  216. package/dist/collection/components/Tree/Tree.js +1 -1
  217. package/dist/collection/components/TreeSelect/TreeSelect.js +94 -17
  218. package/dist/collection/components/TreeSelect/TreeSelect.js.map +1 -1
  219. package/dist/collection/components/TreeSelect/tree-select.css +41 -7
  220. package/dist/collection/components/Upload/Upload.js +3 -3
  221. package/dist/collection/components/Watermark/Watermark.js +1 -1
  222. package/dist/collection/utils/date-helpers.js +6 -2
  223. package/dist/collection/utils/date-helpers.js.map +1 -1
  224. package/dist/components/hb-affix.js +1 -1
  225. package/dist/components/hb-aside.js +1 -1
  226. package/dist/components/hb-avatar.js +1 -1
  227. package/dist/components/hb-backtop.js +2 -2
  228. package/dist/components/hb-badge.js +1 -1
  229. package/dist/components/hb-breadcrumb-item.js +1 -1
  230. package/dist/components/hb-breadcrumb.js +1 -1
  231. package/dist/components/hb-button.js +2 -2
  232. package/dist/components/hb-calendar.js +80 -11
  233. package/dist/components/hb-calendar.js.map +1 -1
  234. package/dist/components/hb-card.js +1 -1
  235. package/dist/components/hb-cascader.js +273 -146
  236. package/dist/components/hb-cascader.js.map +1 -1
  237. package/dist/components/hb-checkbox-group.js +2 -2
  238. package/dist/components/hb-checkbox.js +3 -3
  239. package/dist/components/hb-collapse-item.js +1 -1
  240. package/dist/components/hb-collapse.js +1 -1
  241. package/dist/components/hb-color-picker-panel.js +2 -2
  242. package/dist/components/hb-color-picker.js +93 -15
  243. package/dist/components/hb-color-picker.js.map +1 -1
  244. package/dist/components/hb-config-provider.js +1 -1
  245. package/dist/components/hb-container.js +2 -2
  246. package/dist/components/hb-date-picker-pane.js +2 -2
  247. package/dist/components/hb-date-picker.js +87 -8
  248. package/dist/components/hb-date-picker.js.map +1 -1
  249. package/dist/components/hb-date-range-picker.js +3 -3
  250. package/dist/components/hb-date-time-picker.js +3 -3
  251. package/dist/components/hb-descriptions.js +2 -2
  252. package/dist/components/hb-descriptions.js.map +1 -1
  253. package/dist/components/hb-divider.js +2 -2
  254. package/dist/components/hb-drawer.js +1 -1
  255. package/dist/components/hb-dropdown.js +76 -7
  256. package/dist/components/hb-dropdown.js.map +1 -1
  257. package/dist/components/hb-empty.js +1 -1
  258. package/dist/components/hb-float-button.js +2 -2
  259. package/dist/components/hb-footer.js +1 -1
  260. package/dist/components/hb-form-item.js +59 -8
  261. package/dist/components/hb-form-item.js.map +1 -1
  262. package/dist/components/hb-form.js +3 -3
  263. package/dist/components/hb-form.js.map +1 -1
  264. package/dist/components/hb-header.js +1 -1
  265. package/dist/components/hb-icon.js +1 -89
  266. package/dist/components/hb-icon.js.map +1 -1
  267. package/dist/components/hb-image-preview.js +12 -8
  268. package/dist/components/hb-image-preview.js.map +1 -1
  269. package/dist/components/hb-image.js +1 -1
  270. package/dist/components/hb-input-number.js +5 -5
  271. package/dist/components/hb-input-tag.js +2 -2
  272. package/dist/components/hb-input.js +39 -3
  273. package/dist/components/hb-input.js.map +1 -1
  274. package/dist/components/hb-layout.js +36 -14
  275. package/dist/components/hb-layout.js.map +1 -1
  276. package/dist/components/hb-link.js +2 -2
  277. package/dist/components/hb-loading.js +2 -2
  278. package/dist/components/hb-main.js +1 -1
  279. package/dist/components/hb-menu-item.js +2 -2
  280. package/dist/components/hb-menu.js +3 -3
  281. package/dist/components/hb-menu.js.map +1 -1
  282. package/dist/components/hb-message.js +2 -2
  283. package/dist/components/hb-notification.js +2 -2
  284. package/dist/components/hb-page-header.js +1 -1
  285. package/dist/components/hb-pagination.js +25 -10
  286. package/dist/components/hb-pagination.js.map +1 -1
  287. package/dist/components/hb-popconfirm.js +37 -7
  288. package/dist/components/hb-popconfirm.js.map +1 -1
  289. package/dist/components/hb-popover.js +22 -2
  290. package/dist/components/hb-popover.js.map +1 -1
  291. package/dist/components/hb-progress.js +1 -1
  292. package/dist/components/hb-radio.js +2 -2
  293. package/dist/components/hb-rate.js +45 -3
  294. package/dist/components/hb-rate.js.map +1 -1
  295. package/dist/components/hb-result.js +1 -1
  296. package/dist/components/hb-row.js +2 -2
  297. package/dist/components/hb-segmented.js +41 -6
  298. package/dist/components/hb-segmented.js.map +1 -1
  299. package/dist/components/hb-select.js +47 -8
  300. package/dist/components/hb-select.js.map +1 -1
  301. package/dist/components/hb-slider.js +194 -21
  302. package/dist/components/hb-slider.js.map +1 -1
  303. package/dist/components/hb-space.js +2 -2
  304. package/dist/components/hb-statistic.js +1 -1
  305. package/dist/components/hb-step.js +1 -1
  306. package/dist/components/hb-steps.js +35 -8
  307. package/dist/components/hb-steps.js.map +1 -1
  308. package/dist/components/hb-sub-menu.js +4 -4
  309. package/dist/components/hb-switch.js +9 -4
  310. package/dist/components/hb-switch.js.map +1 -1
  311. package/dist/components/hb-tab-pane.js +1 -1
  312. package/dist/components/hb-table.js +1 -1
  313. package/dist/components/hb-table.js.map +1 -1
  314. package/dist/components/hb-tabs.js +2 -2
  315. package/dist/components/hb-tag.js +2 -2
  316. package/dist/components/hb-text.js +2 -2
  317. package/dist/components/hb-time-picker.js +4 -4
  318. package/dist/components/hb-time-select.js +2 -2
  319. package/dist/components/hb-timeline.js +1 -1
  320. package/dist/components/hb-tooltip.js +18 -1
  321. package/dist/components/hb-tooltip.js.map +1 -1
  322. package/dist/components/hb-transfer.js +2 -2
  323. package/dist/components/hb-tree-select.js +95 -18
  324. package/dist/components/hb-tree-select.js.map +1 -1
  325. package/dist/components/hb-tree.js +1 -1
  326. package/dist/components/hb-upload.js +3 -3
  327. package/dist/components/hb-watermark.js +1 -1
  328. package/dist/components/{p-cf94cbf6.js → p-08b4005c.js} +7 -3
  329. package/dist/components/p-08b4005c.js.map +1 -0
  330. package/dist/components/p-86d92faf.js +93 -0
  331. package/dist/components/p-86d92faf.js.map +1 -0
  332. package/dist/esm/{date-helpers-e4d85a67.js → date-helpers-44507189.js} +7 -3
  333. package/dist/esm/date-helpers-44507189.js.map +1 -0
  334. package/dist/esm/hb-affix.entry.js +1 -1
  335. package/dist/esm/hb-aside.entry.js +1 -1
  336. package/dist/esm/hb-avatar.entry.js +1 -1
  337. package/dist/esm/hb-backtop.entry.js +2 -2
  338. package/dist/esm/hb-badge.entry.js +1 -1
  339. package/dist/esm/hb-breadcrumb-item.entry.js +1 -1
  340. package/dist/esm/hb-breadcrumb.entry.js +1 -1
  341. package/dist/esm/hb-button.entry.js +2 -2
  342. package/dist/esm/hb-calendar.entry.js +78 -10
  343. package/dist/esm/hb-calendar.entry.js.map +1 -1
  344. package/dist/esm/hb-card.entry.js +1 -1
  345. package/dist/esm/hb-cascader.entry.js +270 -146
  346. package/dist/esm/hb-cascader.entry.js.map +1 -1
  347. package/dist/esm/hb-checkbox-group.entry.js +2 -2
  348. package/dist/esm/hb-checkbox.entry.js +3 -3
  349. package/dist/esm/hb-collapse-item.entry.js +1 -1
  350. package/dist/esm/hb-collapse.entry.js +1 -1
  351. package/dist/esm/hb-color-picker-panel.entry.js +2 -2
  352. package/dist/esm/hb-color-picker.entry.js +91 -14
  353. package/dist/esm/hb-color-picker.entry.js.map +1 -1
  354. package/dist/esm/hb-config-provider.entry.js +1 -1
  355. package/dist/esm/hb-container.entry.js +2 -2
  356. package/dist/esm/hb-date-picker-pane.entry.js +2 -2
  357. package/dist/esm/hb-date-picker.entry.js +85 -7
  358. package/dist/esm/hb-date-picker.entry.js.map +1 -1
  359. package/dist/esm/hb-date-range-picker.entry.js +3 -3
  360. package/dist/esm/hb-date-time-picker.entry.js +3 -3
  361. package/dist/esm/hb-descriptions.entry.js +2 -2
  362. package/dist/esm/hb-descriptions.entry.js.map +1 -1
  363. package/dist/esm/hb-divider.entry.js +2 -2
  364. package/dist/esm/hb-drawer.entry.js +1 -1
  365. package/dist/esm/hb-dropdown.entry.js +74 -6
  366. package/dist/esm/hb-dropdown.entry.js.map +1 -1
  367. package/dist/esm/hb-empty.entry.js +1 -1
  368. package/dist/esm/hb-float-button.entry.js +2 -2
  369. package/dist/esm/hb-footer.entry.js +1 -1
  370. package/dist/esm/hb-form-item.entry.js +59 -8
  371. package/dist/esm/hb-form-item.entry.js.map +1 -1
  372. package/dist/esm/hb-form.entry.js +3 -3
  373. package/dist/esm/hb-form.entry.js.map +1 -1
  374. package/dist/esm/hb-header.entry.js +1 -1
  375. package/dist/esm/hb-image-preview.entry.js +12 -8
  376. package/dist/esm/hb-image-preview.entry.js.map +1 -1
  377. package/dist/esm/hb-image.entry.js +1 -1
  378. package/dist/esm/hb-input-number.entry.js +5 -5
  379. package/dist/esm/hb-input-tag.entry.js +2 -2
  380. package/dist/esm/hb-input.entry.js +39 -3
  381. package/dist/esm/hb-input.entry.js.map +1 -1
  382. package/dist/esm/hb-layout.entry.js +36 -14
  383. package/dist/esm/hb-layout.entry.js.map +1 -1
  384. package/dist/esm/hb-link.entry.js +2 -2
  385. package/dist/esm/hb-loading.entry.js +2 -2
  386. package/dist/esm/hb-main.entry.js +1 -1
  387. package/dist/esm/hb-menu-item.entry.js +2 -2
  388. package/dist/esm/hb-menu.entry.js +3 -3
  389. package/dist/esm/hb-menu.entry.js.map +1 -1
  390. package/dist/esm/hb-message.entry.js +2 -2
  391. package/dist/esm/hb-notification.entry.js +2 -2
  392. package/dist/esm/hb-page-header.entry.js +1 -1
  393. package/dist/esm/hb-pagination.entry.js +21 -8
  394. package/dist/esm/hb-pagination.entry.js.map +1 -1
  395. package/dist/esm/hb-popconfirm.entry.js +37 -7
  396. package/dist/esm/hb-popconfirm.entry.js.map +1 -1
  397. package/dist/esm/hb-popover.entry.js +22 -2
  398. package/dist/esm/hb-popover.entry.js.map +1 -1
  399. package/dist/esm/hb-progress.entry.js +1 -1
  400. package/dist/esm/hb-radio.entry.js +2 -2
  401. package/dist/esm/hb-rate.entry.js +45 -3
  402. package/dist/esm/hb-rate.entry.js.map +1 -1
  403. package/dist/esm/hb-result.entry.js +1 -1
  404. package/dist/esm/hb-row.entry.js +2 -2
  405. package/dist/esm/hb-segmented.entry.js +40 -6
  406. package/dist/esm/hb-segmented.entry.js.map +1 -1
  407. package/dist/esm/hb-select.entry.js +47 -8
  408. package/dist/esm/hb-select.entry.js.map +1 -1
  409. package/dist/esm/hb-slider.entry.js +189 -20
  410. package/dist/esm/hb-slider.entry.js.map +1 -1
  411. package/dist/esm/hb-space.entry.js +2 -2
  412. package/dist/esm/hb-statistic.entry.js +1 -1
  413. package/dist/esm/hb-step.entry.js +1 -1
  414. package/dist/esm/hb-steps.entry.js +28 -7
  415. package/dist/esm/hb-steps.entry.js.map +1 -1
  416. package/dist/esm/hb-sub-menu.entry.js +4 -4
  417. package/dist/esm/hb-switch.entry.js +9 -4
  418. package/dist/esm/hb-switch.entry.js.map +1 -1
  419. package/dist/esm/hb-tab-pane.entry.js +1 -1
  420. package/dist/esm/hb-table.entry.js +1 -1
  421. package/dist/esm/hb-table.entry.js.map +1 -1
  422. package/dist/esm/hb-tabs.entry.js +2 -2
  423. package/dist/esm/hb-tag.entry.js +2 -2
  424. package/dist/esm/hb-text.entry.js +2 -2
  425. package/dist/esm/hb-time-picker.entry.js +4 -4
  426. package/dist/esm/hb-time-select.entry.js +2 -2
  427. package/dist/esm/hb-timeline.entry.js +1 -1
  428. package/dist/esm/hb-tooltip.entry.js +18 -1
  429. package/dist/esm/hb-tooltip.entry.js.map +1 -1
  430. package/dist/esm/hb-transfer.entry.js +2 -2
  431. package/dist/esm/hb-tree-select.entry.js +95 -18
  432. package/dist/esm/hb-tree-select.entry.js.map +1 -1
  433. package/dist/esm/hb-tree.entry.js +1 -1
  434. package/dist/esm/hb-upload.entry.js +3 -3
  435. package/dist/esm/hb-watermark.entry.js +1 -1
  436. package/dist/esm/huibo-ui.js +1 -1
  437. package/dist/esm/loader.js +1 -1
  438. package/dist/huibo-ui/huibo-ui.css +1 -1
  439. package/dist/huibo-ui/huibo-ui.esm.js +1 -1
  440. package/dist/huibo-ui/huibo-ui.esm.js.map +1 -1
  441. package/dist/huibo-ui/p-02f15843.entry.js +2 -0
  442. package/dist/huibo-ui/p-08b4005c.js +2 -0
  443. package/dist/huibo-ui/p-08b4005c.js.map +1 -0
  444. package/dist/huibo-ui/{p-fd19813c.entry.js → p-0d4b2997.entry.js} +2 -2
  445. package/dist/huibo-ui/{p-672076c3.entry.js → p-10f6c184.entry.js} +2 -2
  446. package/dist/huibo-ui/p-10f6c184.entry.js.map +1 -0
  447. package/dist/huibo-ui/{p-d7815b4f.entry.js → p-13010da2.entry.js} +2 -2
  448. package/dist/huibo-ui/{p-8c80a765.entry.js → p-15db24e9.entry.js} +2 -2
  449. package/dist/huibo-ui/{p-8d925e3d.entry.js → p-1b0fbe69.entry.js} +2 -2
  450. package/dist/huibo-ui/p-1f8db37a.entry.js +2 -0
  451. package/dist/huibo-ui/p-1f8db37a.entry.js.map +1 -0
  452. package/dist/huibo-ui/{p-f374d5a3.entry.js → p-20632186.entry.js} +2 -2
  453. package/dist/huibo-ui/{p-e6f2d71d.entry.js → p-20fc554b.entry.js} +2 -2
  454. package/dist/huibo-ui/{p-315feadf.entry.js → p-213b9de7.entry.js} +2 -2
  455. package/dist/huibo-ui/p-25fd7d5c.entry.js +2 -0
  456. package/dist/huibo-ui/p-25fd7d5c.entry.js.map +1 -0
  457. package/dist/huibo-ui/p-2811e603.entry.js +2 -0
  458. package/dist/huibo-ui/p-2811e603.entry.js.map +1 -0
  459. package/dist/huibo-ui/{p-64ca0980.entry.js → p-2943f5d0.entry.js} +2 -2
  460. package/dist/huibo-ui/p-2943f5d0.entry.js.map +1 -0
  461. package/dist/huibo-ui/{p-710f38de.entry.js → p-2b4556ff.entry.js} +2 -2
  462. package/dist/huibo-ui/{p-e0ab9010.entry.js → p-33de6878.entry.js} +2 -2
  463. package/dist/huibo-ui/{p-ebd04656.entry.js → p-3807da71.entry.js} +2 -2
  464. package/dist/huibo-ui/{p-6a1ec3ff.entry.js → p-3deff48c.entry.js} +2 -2
  465. package/dist/huibo-ui/{p-e2a8a396.entry.js → p-41d9c846.entry.js} +2 -2
  466. package/dist/huibo-ui/{p-0a033738.entry.js → p-47ef7a86.entry.js} +2 -2
  467. package/dist/huibo-ui/p-4d34e43e.entry.js +2 -0
  468. package/dist/huibo-ui/p-4d34e43e.entry.js.map +1 -0
  469. package/dist/huibo-ui/p-54aa2fd8.entry.js +2 -0
  470. package/dist/huibo-ui/p-54aa2fd8.entry.js.map +1 -0
  471. package/dist/huibo-ui/{p-88127de1.entry.js → p-55cd13eb.entry.js} +2 -2
  472. package/dist/huibo-ui/{p-58ebb9b3.entry.js → p-5c839288.entry.js} +2 -2
  473. package/dist/huibo-ui/{p-c1b4eacb.entry.js → p-60532a1f.entry.js} +2 -2
  474. package/dist/huibo-ui/{p-59b2e61c.entry.js → p-626b48f1.entry.js} +2 -2
  475. package/dist/huibo-ui/p-626b48f1.entry.js.map +1 -0
  476. package/dist/huibo-ui/p-639f167d.entry.js +2 -0
  477. package/dist/huibo-ui/p-639f167d.entry.js.map +1 -0
  478. package/dist/huibo-ui/{p-f1c084c5.entry.js → p-678b4212.entry.js} +2 -2
  479. package/dist/huibo-ui/p-6beb5b81.entry.js +2 -0
  480. package/dist/huibo-ui/p-6beb5b81.entry.js.map +1 -0
  481. package/dist/huibo-ui/{p-a0015341.entry.js → p-6bfeab80.entry.js} +2 -2
  482. package/dist/huibo-ui/p-6c8cf248.entry.js +2 -0
  483. package/dist/huibo-ui/p-6c8cf248.entry.js.map +1 -0
  484. package/dist/huibo-ui/{p-85f68526.entry.js → p-735bceef.entry.js} +2 -2
  485. package/dist/huibo-ui/{p-8b1ae77e.entry.js → p-746a11a3.entry.js} +2 -2
  486. package/dist/huibo-ui/p-76519752.entry.js +2 -0
  487. package/dist/huibo-ui/{p-d3939d44.entry.js → p-79af2efa.entry.js} +2 -2
  488. package/dist/huibo-ui/{p-e0768565.entry.js → p-7da14d7c.entry.js} +2 -2
  489. package/dist/huibo-ui/{p-8c987d57.entry.js → p-7f65dc36.entry.js} +2 -2
  490. package/dist/huibo-ui/{p-0e65e1bd.entry.js → p-86bdc48a.entry.js} +2 -2
  491. package/dist/huibo-ui/p-86bdc48a.entry.js.map +1 -0
  492. package/dist/huibo-ui/{p-d87fc21a.entry.js → p-88a6c905.entry.js} +2 -2
  493. package/dist/huibo-ui/{p-d64b91ef.entry.js → p-89ea1141.entry.js} +2 -2
  494. package/dist/huibo-ui/p-89ea1141.entry.js.map +1 -0
  495. package/dist/huibo-ui/p-8a202bc5.entry.js +2 -0
  496. package/dist/huibo-ui/p-8a202bc5.entry.js.map +1 -0
  497. package/dist/huibo-ui/p-8a8443b8.entry.js +2 -0
  498. package/dist/huibo-ui/p-8a8443b8.entry.js.map +1 -0
  499. package/dist/huibo-ui/p-8fd788c9.entry.js +2 -0
  500. package/dist/huibo-ui/p-8fd788c9.entry.js.map +1 -0
  501. package/dist/huibo-ui/{p-9319c650.entry.js → p-8fdbd17c.entry.js} +2 -2
  502. package/dist/huibo-ui/p-92521c31.entry.js +2 -0
  503. package/dist/huibo-ui/p-92521c31.entry.js.map +1 -0
  504. package/dist/huibo-ui/{p-c3e665f6.entry.js → p-9a5406f0.entry.js} +2 -2
  505. package/dist/huibo-ui/p-9a5406f0.entry.js.map +1 -0
  506. package/dist/huibo-ui/{p-c321c4aa.entry.js → p-a084b8e5.entry.js} +2 -2
  507. package/dist/huibo-ui/{p-5df47135.entry.js → p-a190ca89.entry.js} +2 -2
  508. package/dist/huibo-ui/{p-463de26d.entry.js → p-a8996d22.entry.js} +2 -2
  509. package/dist/huibo-ui/p-aa5e5e02.entry.js +2 -0
  510. package/dist/huibo-ui/p-aa5e5e02.entry.js.map +1 -0
  511. package/dist/huibo-ui/{p-6b381d0e.entry.js → p-ab9cf0e4.entry.js} +2 -2
  512. package/dist/huibo-ui/{p-477d8568.entry.js → p-aeae83af.entry.js} +2 -2
  513. package/dist/huibo-ui/{p-77017274.entry.js → p-af74667d.entry.js} +2 -2
  514. package/dist/huibo-ui/{p-b489a526.entry.js → p-b06c8020.entry.js} +2 -2
  515. package/dist/huibo-ui/{p-2e6584ea.entry.js → p-b468858e.entry.js} +2 -2
  516. package/dist/huibo-ui/{p-2b286698.entry.js → p-b7885d4a.entry.js} +2 -2
  517. package/dist/huibo-ui/{p-231a7335.entry.js → p-b8d87f7e.entry.js} +2 -2
  518. package/dist/huibo-ui/{p-8b027491.entry.js → p-c50ad398.entry.js} +2 -2
  519. package/dist/huibo-ui/p-c6c91664.entry.js +2 -0
  520. package/dist/huibo-ui/{p-c3e8893d.entry.js → p-c80f8ace.entry.js} +2 -2
  521. package/dist/huibo-ui/p-c80f8ace.entry.js.map +1 -0
  522. package/dist/huibo-ui/{p-476527c1.entry.js → p-c8e917db.entry.js} +2 -2
  523. package/dist/huibo-ui/p-c8e917db.entry.js.map +1 -0
  524. package/dist/huibo-ui/{p-c922d672.entry.js → p-cad57c2d.entry.js} +2 -2
  525. package/dist/huibo-ui/{p-a042e3d0.entry.js → p-ccd09d5a.entry.js} +2 -2
  526. package/dist/huibo-ui/p-d79a15b1.entry.js +2 -0
  527. package/dist/huibo-ui/p-d79a15b1.entry.js.map +1 -0
  528. package/dist/huibo-ui/{p-10c088f3.entry.js → p-d9c7c378.entry.js} +2 -2
  529. package/dist/huibo-ui/{p-80aca641.entry.js → p-dfccc7aa.entry.js} +2 -2
  530. package/dist/huibo-ui/{p-21682e92.entry.js → p-dfd144d8.entry.js} +2 -2
  531. package/dist/huibo-ui/{p-be48d2aa.entry.js → p-e039155d.entry.js} +2 -2
  532. package/dist/huibo-ui/{p-dfaf7e37.entry.js → p-e10fcfbe.entry.js} +2 -2
  533. package/dist/huibo-ui/{p-079a4130.entry.js → p-e3155cd7.entry.js} +2 -2
  534. package/dist/huibo-ui/{p-4001c08d.entry.js → p-e5cbfa9e.entry.js} +2 -2
  535. package/dist/huibo-ui/p-e5cbfa9e.entry.js.map +1 -0
  536. package/dist/huibo-ui/p-edbda423.entry.js +2 -0
  537. package/dist/huibo-ui/p-edbda423.entry.js.map +1 -0
  538. package/dist/huibo-ui/{p-465dcb4c.entry.js → p-f2c78699.entry.js} +2 -2
  539. package/dist/huibo-ui/{p-6ac242fe.entry.js → p-f4336be9.entry.js} +2 -2
  540. package/dist/huibo-ui/{p-332c8877.entry.js → p-f5969181.entry.js} +2 -2
  541. package/dist/huibo-ui/{p-f81ec512.entry.js → p-f6889710.entry.js} +2 -2
  542. package/dist/huibo-ui/{p-24ad7eec.entry.js → p-f9bb5217.entry.js} +2 -2
  543. package/dist/huibo-ui/{p-4d8b1404.entry.js → p-fd8301c6.entry.js} +2 -2
  544. package/dist/huibo-ui/{p-dd05cb2c.entry.js → p-fea20295.entry.js} +2 -2
  545. package/dist/types/components/Calendar/Calendar.d.ts +13 -1
  546. package/dist/types/components/Cascader/Cascader.d.ts +68 -90
  547. package/dist/types/components/ColorPicker/ColorPicker.d.ts +11 -0
  548. package/dist/types/components/DatePicker/DatePicker.d.ts +14 -3
  549. package/dist/types/components/Dropdown/Dropdown.d.ts +14 -1
  550. package/dist/types/components/Form/FormItem.d.ts +10 -0
  551. package/dist/types/components/ImagePreview/ImagePreview.d.ts +5 -1
  552. package/dist/types/components/Input/Input.d.ts +9 -0
  553. package/dist/types/components/Layout/Layout.d.ts +20 -10
  554. package/dist/types/components/Pagination/Pagination.d.ts +3 -0
  555. package/dist/types/components/Popconfirm/Popconfirm.d.ts +12 -0
  556. package/dist/types/components/Popover/Popover.d.ts +9 -0
  557. package/dist/types/components/Rate/Rate.d.ts +7 -0
  558. package/dist/types/components/Segmented/Segmented.d.ts +12 -1
  559. package/dist/types/components/Select/Select.d.ts +6 -0
  560. package/dist/types/components/Slider/Slider.d.ts +27 -1
  561. package/dist/types/components/Steps/Steps.d.ts +14 -6
  562. package/dist/types/components/Tooltip/Tooltip.d.ts +9 -1
  563. package/dist/types/components/TreeSelect/TreeSelect.d.ts +9 -0
  564. package/dist/types/components.d.ts +250 -94
  565. package/dist/types/utils/date-helpers.d.ts +1 -1
  566. package/package.json +8 -2
  567. package/readme.md +88 -73
  568. package/dist/cjs/date-helpers-904747ff.js.map +0 -1
  569. package/dist/components/p-cf94cbf6.js.map +0 -1
  570. package/dist/esm/date-helpers-e4d85a67.js.map +0 -1
  571. package/dist/huibo-ui/p-003cee87.entry.js +0 -2
  572. package/dist/huibo-ui/p-003cee87.entry.js.map +0 -1
  573. package/dist/huibo-ui/p-0bef78ac.entry.js +0 -2
  574. package/dist/huibo-ui/p-0bef78ac.entry.js.map +0 -1
  575. package/dist/huibo-ui/p-0e65e1bd.entry.js.map +0 -1
  576. package/dist/huibo-ui/p-0f189251.entry.js +0 -2
  577. package/dist/huibo-ui/p-0f189251.entry.js.map +0 -1
  578. package/dist/huibo-ui/p-1b5acd6d.entry.js +0 -2
  579. package/dist/huibo-ui/p-1b5acd6d.entry.js.map +0 -1
  580. package/dist/huibo-ui/p-3c7f73c8.entry.js +0 -2
  581. package/dist/huibo-ui/p-3c7f73c8.entry.js.map +0 -1
  582. package/dist/huibo-ui/p-4001c08d.entry.js.map +0 -1
  583. package/dist/huibo-ui/p-44c48246.entry.js +0 -2
  584. package/dist/huibo-ui/p-44c48246.entry.js.map +0 -1
  585. package/dist/huibo-ui/p-476527c1.entry.js.map +0 -1
  586. package/dist/huibo-ui/p-4d0dff15.entry.js +0 -2
  587. package/dist/huibo-ui/p-58d20809.entry.js +0 -2
  588. package/dist/huibo-ui/p-58d20809.entry.js.map +0 -1
  589. package/dist/huibo-ui/p-59b2e61c.entry.js.map +0 -1
  590. package/dist/huibo-ui/p-64ca0980.entry.js.map +0 -1
  591. package/dist/huibo-ui/p-672076c3.entry.js.map +0 -1
  592. package/dist/huibo-ui/p-756acbdb.entry.js +0 -2
  593. package/dist/huibo-ui/p-756acbdb.entry.js.map +0 -1
  594. package/dist/huibo-ui/p-75a93de3.entry.js +0 -2
  595. package/dist/huibo-ui/p-75a93de3.entry.js.map +0 -1
  596. package/dist/huibo-ui/p-769960f4.entry.js +0 -2
  597. package/dist/huibo-ui/p-8d615521.entry.js +0 -2
  598. package/dist/huibo-ui/p-8d615521.entry.js.map +0 -1
  599. package/dist/huibo-ui/p-953b9514.entry.js +0 -2
  600. package/dist/huibo-ui/p-ad6b0c6e.entry.js +0 -2
  601. package/dist/huibo-ui/p-ad6b0c6e.entry.js.map +0 -1
  602. package/dist/huibo-ui/p-c1a059d9.entry.js +0 -2
  603. package/dist/huibo-ui/p-c1a059d9.entry.js.map +0 -1
  604. package/dist/huibo-ui/p-c3e665f6.entry.js.map +0 -1
  605. package/dist/huibo-ui/p-c3e8893d.entry.js.map +0 -1
  606. package/dist/huibo-ui/p-cf94cbf6.js +0 -2
  607. package/dist/huibo-ui/p-cf94cbf6.js.map +0 -1
  608. package/dist/huibo-ui/p-d64b91ef.entry.js.map +0 -1
  609. package/dist/huibo-ui/p-e9490259.entry.js +0 -2
  610. package/dist/huibo-ui/p-e9490259.entry.js.map +0 -1
  611. package/dist/huibo-ui/p-ed0ff857.entry.js +0 -2
  612. package/dist/huibo-ui/p-ed0ff857.entry.js.map +0 -1
  613. package/dist/huibo-ui/p-f0ac7db5.entry.js +0 -2
  614. package/dist/huibo-ui/p-f0ac7db5.entry.js.map +0 -1
  615. /package/dist/huibo-ui/{p-4d0dff15.entry.js.map → p-02f15843.entry.js.map} +0 -0
  616. /package/dist/huibo-ui/{p-fd19813c.entry.js.map → p-0d4b2997.entry.js.map} +0 -0
  617. /package/dist/huibo-ui/{p-d7815b4f.entry.js.map → p-13010da2.entry.js.map} +0 -0
  618. /package/dist/huibo-ui/{p-8c80a765.entry.js.map → p-15db24e9.entry.js.map} +0 -0
  619. /package/dist/huibo-ui/{p-8d925e3d.entry.js.map → p-1b0fbe69.entry.js.map} +0 -0
  620. /package/dist/huibo-ui/{p-f374d5a3.entry.js.map → p-20632186.entry.js.map} +0 -0
  621. /package/dist/huibo-ui/{p-e6f2d71d.entry.js.map → p-20fc554b.entry.js.map} +0 -0
  622. /package/dist/huibo-ui/{p-315feadf.entry.js.map → p-213b9de7.entry.js.map} +0 -0
  623. /package/dist/huibo-ui/{p-710f38de.entry.js.map → p-2b4556ff.entry.js.map} +0 -0
  624. /package/dist/huibo-ui/{p-e0ab9010.entry.js.map → p-33de6878.entry.js.map} +0 -0
  625. /package/dist/huibo-ui/{p-ebd04656.entry.js.map → p-3807da71.entry.js.map} +0 -0
  626. /package/dist/huibo-ui/{p-6a1ec3ff.entry.js.map → p-3deff48c.entry.js.map} +0 -0
  627. /package/dist/huibo-ui/{p-e2a8a396.entry.js.map → p-41d9c846.entry.js.map} +0 -0
  628. /package/dist/huibo-ui/{p-0a033738.entry.js.map → p-47ef7a86.entry.js.map} +0 -0
  629. /package/dist/huibo-ui/{p-88127de1.entry.js.map → p-55cd13eb.entry.js.map} +0 -0
  630. /package/dist/huibo-ui/{p-58ebb9b3.entry.js.map → p-5c839288.entry.js.map} +0 -0
  631. /package/dist/huibo-ui/{p-c1b4eacb.entry.js.map → p-60532a1f.entry.js.map} +0 -0
  632. /package/dist/huibo-ui/{p-f1c084c5.entry.js.map → p-678b4212.entry.js.map} +0 -0
  633. /package/dist/huibo-ui/{p-a0015341.entry.js.map → p-6bfeab80.entry.js.map} +0 -0
  634. /package/dist/huibo-ui/{p-85f68526.entry.js.map → p-735bceef.entry.js.map} +0 -0
  635. /package/dist/huibo-ui/{p-8b1ae77e.entry.js.map → p-746a11a3.entry.js.map} +0 -0
  636. /package/dist/huibo-ui/{p-953b9514.entry.js.map → p-76519752.entry.js.map} +0 -0
  637. /package/dist/huibo-ui/{p-d3939d44.entry.js.map → p-79af2efa.entry.js.map} +0 -0
  638. /package/dist/huibo-ui/{p-e0768565.entry.js.map → p-7da14d7c.entry.js.map} +0 -0
  639. /package/dist/huibo-ui/{p-8c987d57.entry.js.map → p-7f65dc36.entry.js.map} +0 -0
  640. /package/dist/huibo-ui/{p-d87fc21a.entry.js.map → p-88a6c905.entry.js.map} +0 -0
  641. /package/dist/huibo-ui/{p-9319c650.entry.js.map → p-8fdbd17c.entry.js.map} +0 -0
  642. /package/dist/huibo-ui/{p-c321c4aa.entry.js.map → p-a084b8e5.entry.js.map} +0 -0
  643. /package/dist/huibo-ui/{p-5df47135.entry.js.map → p-a190ca89.entry.js.map} +0 -0
  644. /package/dist/huibo-ui/{p-463de26d.entry.js.map → p-a8996d22.entry.js.map} +0 -0
  645. /package/dist/huibo-ui/{p-6b381d0e.entry.js.map → p-ab9cf0e4.entry.js.map} +0 -0
  646. /package/dist/huibo-ui/{p-477d8568.entry.js.map → p-aeae83af.entry.js.map} +0 -0
  647. /package/dist/huibo-ui/{p-77017274.entry.js.map → p-af74667d.entry.js.map} +0 -0
  648. /package/dist/huibo-ui/{p-b489a526.entry.js.map → p-b06c8020.entry.js.map} +0 -0
  649. /package/dist/huibo-ui/{p-2e6584ea.entry.js.map → p-b468858e.entry.js.map} +0 -0
  650. /package/dist/huibo-ui/{p-2b286698.entry.js.map → p-b7885d4a.entry.js.map} +0 -0
  651. /package/dist/huibo-ui/{p-231a7335.entry.js.map → p-b8d87f7e.entry.js.map} +0 -0
  652. /package/dist/huibo-ui/{p-8b027491.entry.js.map → p-c50ad398.entry.js.map} +0 -0
  653. /package/dist/huibo-ui/{p-769960f4.entry.js.map → p-c6c91664.entry.js.map} +0 -0
  654. /package/dist/huibo-ui/{p-c922d672.entry.js.map → p-cad57c2d.entry.js.map} +0 -0
  655. /package/dist/huibo-ui/{p-a042e3d0.entry.js.map → p-ccd09d5a.entry.js.map} +0 -0
  656. /package/dist/huibo-ui/{p-10c088f3.entry.js.map → p-d9c7c378.entry.js.map} +0 -0
  657. /package/dist/huibo-ui/{p-80aca641.entry.js.map → p-dfccc7aa.entry.js.map} +0 -0
  658. /package/dist/huibo-ui/{p-21682e92.entry.js.map → p-dfd144d8.entry.js.map} +0 -0
  659. /package/dist/huibo-ui/{p-be48d2aa.entry.js.map → p-e039155d.entry.js.map} +0 -0
  660. /package/dist/huibo-ui/{p-dfaf7e37.entry.js.map → p-e10fcfbe.entry.js.map} +0 -0
  661. /package/dist/huibo-ui/{p-079a4130.entry.js.map → p-e3155cd7.entry.js.map} +0 -0
  662. /package/dist/huibo-ui/{p-465dcb4c.entry.js.map → p-f2c78699.entry.js.map} +0 -0
  663. /package/dist/huibo-ui/{p-6ac242fe.entry.js.map → p-f4336be9.entry.js.map} +0 -0
  664. /package/dist/huibo-ui/{p-332c8877.entry.js.map → p-f5969181.entry.js.map} +0 -0
  665. /package/dist/huibo-ui/{p-f81ec512.entry.js.map → p-f6889710.entry.js.map} +0 -0
  666. /package/dist/huibo-ui/{p-24ad7eec.entry.js.map → p-f9bb5217.entry.js.map} +0 -0
  667. /package/dist/huibo-ui/{p-4d8b1404.entry.js.map → p-fd8301c6.entry.js.map} +0 -0
  668. /package/dist/huibo-ui/{p-dd05cb2c.entry.js.map → p-fea20295.entry.js.map} +0 -0
@@ -1,2 +0,0 @@
1
- import{r as e,c as t,h as a}from"./p-e42dfa95.js";import{p as i,a as o,W as r,g as n,M as s}from"./p-cf94cbf6.js";const l='/*! 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{display:block}.hb-calendar{background-color:var(--hb-color-white,#fff);border-radius:4px;box-sizing:border-box;padding:12px;width:100%}.hb-calendar__header{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.hb-calendar__header-label{color:var(--hb-color-text-regular,#606266);font-size:14px;font-weight:600}.hb-calendar__next-btn,.hb-calendar__prev-btn{background:0 0;border:none;color:var(--hb-color-text-regular,#606266);cursor:pointer;font-size:18px;line-height:1;padding:4px 8px;transition:color .2s}.hb-calendar__next-btn:hover,.hb-calendar__prev-btn:hover{color:var(--hb-color-primary)}.hb-calendar__weekdays{display:grid;gap:4px;grid-template-columns:repeat(7,1fr);margin-bottom:8px}.hb-calendar__weekday{color:var(--hb-color-text-placeholder,#c0c4cc);font-size:12px;font-weight:500;padding:4px 0;text-align:center}.hb-calendar__days{display:grid;gap:4px;grid-template-columns:repeat(7,1fr)}.hb-calendar__day{align-items:center;aspect-ratio:1;border-radius:4px;color:var(--hb-color-text-regular,#606266);cursor:pointer;display:flex;font-size:13px;justify-content:center;transition:all .2s;-webkit-user-select:none;user-select:none}.hb-calendar__day:hover:not(.hb-calendar__day--other-month){background-color:var(--hb-fill-color-light,#f5f7fa)}.hb-calendar__day--other-month{color:var(--hb-color-text-placeholder,#c0c4cc);cursor:default}.hb-calendar__day--today{color:var(--hb-color-primary);font-weight:600}.hb-calendar__day--selected{color:var(--hb-color-white,#fff)}.hb-calendar__day--selected,.hb-calendar__day--selected:hover{background-color:var(--hb-color-primary)}@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}';const d=l;const c=class{constructor(a){e(this,a);this.hbChange=t(this,"hbChange",7)}modelValue;firstDayOfWeek=0;disabledDate;hbChange;viewDate=new Date;selectedDate;componentDidLoad(){this.initFromModelValue()}handleModelValueChange(){this.initFromModelValue()}initFromModelValue(){const e=i(this.modelValue);this.selectedDate=e;if(e){this.viewDate=new Date(e.getFullYear(),e.getMonth(),1)}}handleSelect=e=>{if(!e.isCurrentMonth)return;if(this.disabledDate&&this.disabledDate(e.date))return;this.selectedDate=e.date;const t=this.toISODate(e.date);this.modelValue=t;this.hbChange.emit(t)};toISODate(e){const t=e.getFullYear();const a=String(e.getMonth()+1).padStart(2,"0");const i=String(e.getDate()).padStart(2,"0");return`${t}-${a}-${i}`}changeMonth(e){this.viewDate=o(this.viewDate,e)}get orderedWeekNames(){const e=(this.firstDayOfWeek%7+7)%7;return[...r.slice(e),...r.slice(0,e)]}render(){const e=n(this.viewDate,this.selectedDate);const t=this.viewDate;return a("div",{key:"349964b635ebec88f000ea4b26c4c6779f9f8925",class:"hb-calendar"},a("div",{key:"05a23a21700199202f902cab89c01af76ebe4bb6",class:"hb-calendar__header"},a("button",{key:"442c8a247cff4cbfc76e1a73a983f6e1255f7fd5",type:"button",class:"hb-calendar__prev-btn",onClick:()=>this.changeMonth(-1),"aria-label":"上一月"},"‹"),a("span",{key:"be82bfda5eddbee738587405924ebad7cb4757f9",class:"hb-calendar__header-label"},t.getFullYear(),"年 ",s[t.getMonth()]),a("button",{key:"d25451367e0ae14dd93efe57bfa7381535940d4b",type:"button",class:"hb-calendar__next-btn",onClick:()=>this.changeMonth(1),"aria-label":"下一月"},"›")),a("div",{key:"1ecc238f1f6c08e4e32aad8067277dd4f6ee94b8",class:"hb-calendar__body"},a("div",{key:"52e7bfd36efbcb3cf0d0ee5f5f8a2798169f9a64",class:"hb-calendar__weekdays"},this.orderedWeekNames.map((e=>a("div",{class:"hb-calendar__weekday"},e)))),a("div",{key:"54545d72d643142c0b3f46f2b6817764fe22fdb2",class:"hb-calendar__days"},e.map(((e,t)=>a("div",{key:t,class:{"hb-calendar__day":true,"hb-calendar__day--other-month":!e.isCurrentMonth,"hb-calendar__day--today":e.isToday,"hb-calendar__day--selected":e.isSelected},onClick:()=>this.handleSelect(e)},e.date.getDate()))))))}static get watchers(){return{modelValue:["handleModelValueChange"]}}};c.style=d;export{c as hb_calendar};
2
- //# sourceMappingURL=p-756acbdb.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["calendarCss","HbCalendarStyle0","Calendar","modelValue","firstDayOfWeek","disabledDate","hbChange","viewDate","Date","selectedDate","componentDidLoad","this","initFromModelValue","handleModelValueChange","parsed","parseDate","getFullYear","getMonth","handleSelect","day","isCurrentMonth","date","iso","toISODate","emit","y","m","String","padStart","d","getDate","changeMonth","delta","addMonths","orderedWeekNames","offset","WEEK_DAY_NAMES","slice","render","days","getCalendarDays","current","h","key","class","type","onClick","MONTH_NAMES","map","index","isToday","isSelected"],"sources":["src/components/Calendar/calendar.css?tag=hb-calendar&encapsulation=shadow","src/components/Calendar/Calendar.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.hb-calendar {\n width: 100%;\n padding: 12px;\n box-sizing: border-box;\n background-color: var(--hb-color-white, #ffffff);\n border-radius: 4px;\n}\n\n/* 头部:年月 + 上下月按钮 */\n.hb-calendar__header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 12px;\n}\n\n.hb-calendar__header-label {\n font-weight: 600;\n font-size: 14px;\n color: var(--hb-color-text-regular, #606266);\n}\n\n.hb-calendar__prev-btn,\n.hb-calendar__next-btn {\n background: none;\n border: none;\n font-size: 18px;\n cursor: pointer;\n color: var(--hb-color-text-regular, #606266);\n padding: 4px 8px;\n line-height: 1;\n transition: color 0.2s;\n}\n\n.hb-calendar__prev-btn:hover,\n.hb-calendar__next-btn:hover {\n color: var(--hb-color-primary);\n}\n\n/* 星期行 */\n.hb-calendar__weekdays {\n display: grid;\n grid-template-columns: repeat(7, 1fr);\n gap: 4px;\n margin-bottom: 8px;\n}\n\n.hb-calendar__weekday {\n text-align: center;\n font-size: 12px;\n color: var(--hb-color-text-placeholder, #c0c4cc);\n font-weight: 500;\n padding: 4px 0;\n}\n\n/* 日期网格 */\n.hb-calendar__days {\n display: grid;\n grid-template-columns: repeat(7, 1fr);\n gap: 4px;\n}\n\n.hb-calendar__day {\n aspect-ratio: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 13px;\n color: var(--hb-color-text-regular, #606266);\n cursor: pointer;\n border-radius: 4px;\n transition: all 0.2s;\n user-select: none;\n}\n\n.hb-calendar__day:hover:not(.hb-calendar__day--other-month) {\n background-color: var(--hb-fill-color-light, #f5f7fa);\n}\n\n.hb-calendar__day--other-month {\n color: var(--hb-color-text-placeholder, #c0c4cc);\n cursor: default;\n}\n\n.hb-calendar__day--today {\n color: var(--hb-color-primary);\n font-weight: 600;\n}\n\n.hb-calendar__day--selected {\n background-color: var(--hb-color-primary);\n color: var(--hb-color-white, #ffffff);\n}\n\n.hb-calendar__day--selected:hover {\n background-color: var(--hb-color-primary);\n}\n","import { Component, h, Prop, Event, EventEmitter, State, Watch } from '@stencil/core';\nimport {\n getCalendarDays,\n parseDate,\n addMonths,\n MONTH_NAMES,\n WEEK_DAY_NAMES,\n} from '../../utils/date-helpers';\n\n/**\n * Calendar 日历组件\n * 月份视图日历,支持选中日期与月份切换\n */\n@Component({\n tag: 'hb-calendar',\n styleUrl: 'calendar.css',\n shadow: true,\n})\nexport class Calendar {\n /**\n * 绑定值(ISO 日期字符串)\n */\n @Prop({ mutable: true }) modelValue?: string;\n\n /**\n * 每周第一天(0=周日,1=周一 …)\n * @default 0\n */\n @Prop() firstDayOfWeek: number = 0;\n\n /**\n * 禁用日期判定(声明预留,暂不强求实现)\n */\n @Prop() disabledDate?: (date: Date) => boolean;\n\n /**\n * 值改变事件,detail 为 ISO 日期字符串\n */\n @Event() hbChange: EventEmitter<string>;\n\n @State() viewDate: Date = new Date();\n @State() selectedDate?: Date;\n\n componentDidLoad() {\n this.initFromModelValue();\n }\n\n @Watch('modelValue')\n handleModelValueChange() {\n this.initFromModelValue();\n }\n\n private initFromModelValue() {\n const parsed = parseDate(this.modelValue);\n this.selectedDate = parsed;\n if (parsed) {\n this.viewDate = new Date(parsed.getFullYear(), parsed.getMonth(), 1);\n }\n }\n\n private handleSelect = (day: { date: Date; isCurrentMonth: boolean }) => {\n if (!day.isCurrentMonth) return;\n if (this.disabledDate && this.disabledDate(day.date)) return;\n this.selectedDate = day.date;\n const iso = this.toISODate(day.date);\n this.modelValue = iso;\n this.hbChange.emit(iso);\n };\n\n private toISODate(date: Date): string {\n const y = date.getFullYear();\n const m = String(date.getMonth() + 1).padStart(2, '0');\n const d = String(date.getDate()).padStart(2, '0');\n return `${y}-${m}-${d}`;\n }\n\n private changeMonth(delta: number) {\n this.viewDate = addMonths(this.viewDate, delta);\n }\n\n /** 按 firstDayOfWeek 重排星期标题(getCalendarDays 网格恒以周日为首列) */\n private get orderedWeekNames(): string[] {\n const offset = ((this.firstDayOfWeek % 7) + 7) % 7;\n return [...WEEK_DAY_NAMES.slice(offset), ...WEEK_DAY_NAMES.slice(0, offset)];\n }\n\n render() {\n const days = getCalendarDays(this.viewDate, this.selectedDate);\n const current = this.viewDate;\n\n return (\n <div class=\"hb-calendar\">\n <div class=\"hb-calendar__header\">\n <button\n type=\"button\"\n class=\"hb-calendar__prev-btn\"\n onClick={() => this.changeMonth(-1)}\n aria-label=\"上一月\"\n >\n ‹\n </button>\n <span class=\"hb-calendar__header-label\">\n {current.getFullYear()}年 {MONTH_NAMES[current.getMonth()]}\n </span>\n <button\n type=\"button\"\n class=\"hb-calendar__next-btn\"\n onClick={() => this.changeMonth(1)}\n aria-label=\"下一月\"\n >\n ›\n </button>\n </div>\n <div class=\"hb-calendar__body\">\n <div class=\"hb-calendar__weekdays\">\n {this.orderedWeekNames.map((day) => (\n <div class=\"hb-calendar__weekday\">{day}</div>\n ))}\n </div>\n <div class=\"hb-calendar__days\">\n {days.map((day, index) => (\n <div\n key={index}\n class={{\n 'hb-calendar__day': true,\n 'hb-calendar__day--other-month': !day.isCurrentMonth,\n 'hb-calendar__day--today': day.isToday,\n 'hb-calendar__day--selected': day.isSelected,\n }}\n onClick={() => this.handleSelect(day)}\n >\n {day.date.getDate()}\n </div>\n ))}\n </div>\n </div>\n </div>\n );\n }\n}\n"],"mappings":"kHAAA,MAAMA,EAAc,yoOACpB,MAAAC,EAAeD,E,MCiBFE,EAAQ,M,4DAIMC,WAMjBC,eAAyB,EAKzBC,aAKCC,SAEAC,SAAiB,IAAIC,KACrBC,aAET,gBAAAC,GACEC,KAAKC,oB,CAIP,sBAAAC,GACEF,KAAKC,oB,CAGC,kBAAAA,GACN,MAAME,EAASC,EAAUJ,KAAKR,YAC9BQ,KAAKF,aAAeK,EACpB,GAAIA,EAAQ,CACVH,KAAKJ,SAAW,IAAIC,KAAKM,EAAOE,cAAeF,EAAOG,WAAY,E,EAI9DC,aAAgBC,IACtB,IAAKA,EAAIC,eAAgB,OACzB,GAAIT,KAAKN,cAAgBM,KAAKN,aAAac,EAAIE,MAAO,OACtDV,KAAKF,aAAeU,EAAIE,KACxB,MAAMC,EAAMX,KAAKY,UAAUJ,EAAIE,MAC/BV,KAAKR,WAAamB,EAClBX,KAAKL,SAASkB,KAAKF,EAAI,EAGjB,SAAAC,CAAUF,GAChB,MAAMI,EAAIJ,EAAKL,cACf,MAAMU,EAAIC,OAAON,EAAKJ,WAAa,GAAGW,SAAS,EAAG,KAClD,MAAMC,EAAIF,OAAON,EAAKS,WAAWF,SAAS,EAAG,KAC7C,MAAO,GAAGH,KAAKC,KAAKG,G,CAGd,WAAAE,CAAYC,GAClBrB,KAAKJ,SAAW0B,EAAUtB,KAAKJ,SAAUyB,E,CAI3C,oBAAYE,GACV,MAAMC,GAAWxB,KAAKP,eAAiB,EAAK,GAAK,EACjD,MAAO,IAAIgC,EAAeC,MAAMF,MAAYC,EAAeC,MAAM,EAAGF,G,CAGtE,MAAAG,GACE,MAAMC,EAAOC,EAAgB7B,KAAKJ,SAAUI,KAAKF,cACjD,MAAMgC,EAAU9B,KAAKJ,SAErB,OACEmC,EAAA,OAAAC,IAAA,2CAAKC,MAAM,eACTF,EAAA,OAAAC,IAAA,2CAAKC,MAAM,uBACTF,EAAA,UAAAC,IAAA,2CACEE,KAAK,SACLD,MAAM,wBACNE,QAAS,IAAMnC,KAAKoB,aAAa,GAAE,aACxB,OAAK,KAIlBW,EAAA,QAAAC,IAAA,2CAAMC,MAAM,6BACTH,EAAQzB,cAAa,KAAI+B,EAAYN,EAAQxB,aAEhDyB,EAAA,UAAAC,IAAA,2CACEE,KAAK,SACLD,MAAM,wBACNE,QAAS,IAAMnC,KAAKoB,YAAY,GAAE,aACvB,OAAK,MAKpBW,EAAA,OAAAC,IAAA,2CAAKC,MAAM,qBACTF,EAAA,OAAAC,IAAA,2CAAKC,MAAM,yBACRjC,KAAKuB,iBAAiBc,KAAK7B,GAC1BuB,EAAA,OAAKE,MAAM,wBAAwBzB,MAGvCuB,EAAA,OAAAC,IAAA,2CAAKC,MAAM,qBACRL,EAAKS,KAAI,CAAC7B,EAAK8B,IACdP,EAAA,OACEC,IAAKM,EACLL,MAAO,CACL,mBAAoB,KACpB,iCAAkCzB,EAAIC,eACtC,0BAA2BD,EAAI+B,QAC/B,6BAA8B/B,EAAIgC,YAEpCL,QAAS,IAAMnC,KAAKO,aAAaC,IAEhCA,EAAIE,KAAKS,e","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r as e,c as t,g as i,h as a}from"./p-e42dfa95.js";import{c as r}from"./p-4ef5a884.js";import{p as o,f as n,a as s,g as l,M as d,W as c}from"./p-cf94cbf6.js";const h='/*! 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{.grid{display:grid}.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-date-picker-font-size:14px;--hb-date-picker-height:32px;--hb-date-picker-border-color:var(--hb-border-color,#dcdfe6);--hb-date-picker-border-color-hover:var(--hb-color-primary);--hb-date-picker-bg-color:var(--hb-color-white,#fff);display:inline-block;position:relative}.hb-date-picker{display:inline-block;position:relative;width:240px}.hb-date-picker__input-wrapper{cursor:pointer;display:inline-block;position:relative;width:100%}.hb-date-picker__input{background-color:var(--hb-date-picker-bg-color);border:1px solid var(--hb-date-picker-border-color);border-radius:4px;box-sizing:border-box;color:var(--hb-color-text-regular,#606266);cursor:pointer;display:inline-block;font-size:var(--hb-date-picker-font-size);height:var(--hb-date-picker-height);line-height:var(--hb-date-picker-height);outline:none;padding:0 30px 0 15px;transition:border-color .2s cubic-bezier(.645,.045,.355,1);width:100%}.hb-date-picker__input:focus,.hb-date-picker__input:hover:not(:disabled){border-color:var(--hb-date-picker-border-color-hover)}.hb-date-picker__suffix{align-items:center;display:flex;position:absolute;right:8px;top:50%;transform:translateY(-50%)}.hb-date-picker__clear{color:var(--hb-color-text-placeholder,#c0c4cc);cursor:pointer;font-size:16px;margin-right:8px;transition:color .2s}.hb-date-picker__clear:hover{color:var(--hb-color-text-regular,#606266)}.hb-date-picker__icon{font-size:14px}.hb-date-picker__dropdown{background-color:var(--hb-date-picker-bg-color);border:1px solid var(--hb-date-picker-border-color);border-radius:4px;box-shadow:0 2px 12px #0000001a;left:0;margin-top:4px;min-width:280px;padding:12px;position:absolute;top:100%;z-index:1000}.hb-date-picker__header{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.hb-date-picker__header-label{color:var(--hb-color-text-regular,#606266);font-size:14px;font-weight:600}.hb-date-picker__next-btn,.hb-date-picker__prev-btn{background:0 0;border:none;color:var(--hb-color-text-regular,#606266);cursor:pointer;font-size:18px;padding:4px 8px;transition:color .2s}.hb-date-picker__next-btn:hover,.hb-date-picker__prev-btn:hover{color:var(--hb-color-primary)}.hb-date-picker__weekdays{display:grid;gap:4px;grid-template-columns:repeat(7,1fr);margin-bottom:8px}.hb-date-picker__weekday{color:var(--hb-color-text-placeholder,#c0c4cc);font-size:12px;font-weight:500;text-align:center}.hb-date-picker__days{display:grid;gap:4px;grid-template-columns:repeat(7,1fr)}.hb-date-picker__day{align-items:center;aspect-ratio:1;border-radius:4px;color:var(--hb-color-text-regular,#606266);cursor:pointer;display:flex;font-size:13px;justify-content:center;transition:all .2s}.hb-date-picker__day:hover:not(.hb-date-picker__day--other-month){background-color:var(--hb-fill-color-light,#f5f7fa)}.hb-date-picker__day--other-month{color:var(--hb-color-text-placeholder,#c0c4cc);cursor:default}.hb-date-picker__day--today{color:var(--hb-color-primary);font-weight:600}.hb-date-picker__day--selected{background-color:var(--hb-color-primary);color:var(--hb-color-white,#fff)}.hb-date-picker__day--disabled{color:var(--hb-color-text-placeholder,#c0c4cc);cursor:not-allowed}.hb-date-picker__day--disabled:hover{background-color:#0000}.hb-date-picker--small{width:200px}.hb-date-picker--small .hb-date-picker__input{font-size:12px;height:24px;line-height:24px;padding:0 25px 0 12px}.hb-date-picker--large{width:280px}.hb-date-picker--large .hb-date-picker__input{font-size:16px;height:40px;line-height:40px;padding:0 35px 0 18px}.hb-date-picker--disabled{cursor:not-allowed}.hb-date-picker--disabled .hb-date-picker__input{background-color:var(--hb-fill-color-light,#f5f7fa);border-color:var(--hb-date-picker-border-color);color:var(--hb-color-text-disabled,#c0c4cc);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}';const p=h;const b=class{constructor(i){e(this,i);this.hbChange=t(this,"hbChange",7)}get el(){return i(this)}modelValue;placeholder="请选择日期";disabled=false;size="default";clearable=false;format="YYYY-MM-DD";valueFormat;type="date";disabledDate;name;inputId;isOpen=false;inputValue="";selectedDate;hbChange;clickOutside=r({host:null,isOpen:()=>this.isOpen,onClose:()=>{this.isOpen=false}});componentDidLoad(){this.clickOutside=r({host:this.el,isOpen:()=>this.isOpen,onClose:()=>{this.isOpen=false}});this.clickOutside.connect();this.updateInputValue()}disconnectedCallback(){this.clickOutside.disconnect()}handleValueChange(){this.updateInputValue()}updateInputValue(){const e=o(this.modelValue);if(!e){this.inputValue="";this.selectedDate=undefined;return}this.selectedDate=e;this.inputValue=n(e,this.format)}handleInputClick=()=>{if(this.disabled)return;this.isOpen=!this.isOpen};handleClear=e=>{e.stopPropagation();this.modelValue=undefined;this.inputValue="";this.selectedDate=undefined;this.isOpen=false;this.hbChange.emit(undefined)};handleDateSelect=e=>{if(this.disabledDate&&this.disabledDate(e))return;this.selectedDate=e;this.modelValue=this.valueFormat?n(e,this.format):e;this.updateInputValue();this.isOpen=false;this.hbChange.emit(this.modelValue)};changeMonth(e){this.selectedDate=s(this.selectedDate||new Date,e)}isDateDisabled=e=>!!this.disabledDate&&this.disabledDate(e);render(){const e=l(this.selectedDate||new Date,this.selectedDate);const t=this.selectedDate||new Date;return a("div",{key:"79e20fe927318faa30086dbe5cd3e17b24077f8f",class:{"hb-date-picker":true,"hb-date-picker--open":this.isOpen,"hb-date-picker--disabled":this.disabled,[`hb-date-picker--${this.size}`]:true}},a("div",{key:"eb216f889017004192cdc04496334c21e714e971",class:"hb-date-picker__input-wrapper",onClick:this.handleInputClick},a("input",{key:"ac23cc7e2d3ba77141ec342477bf984ce581b30a",type:"text",id:this.inputId,name:this.name,class:"hb-date-picker__input",placeholder:this.placeholder,value:this.inputValue,disabled:this.disabled,readonly:true,role:"combobox","aria-haspopup":"dialog","aria-expanded":this.isOpen?"true":"false","aria-label":this.placeholder}),a("span",{key:"d9371788b72feacd581e908d65770af8b9eb535a",class:"hb-date-picker__suffix"},this.clearable&&this.modelValue&&a("span",{key:"86601557f8419ba22111ca214c3130ee444b383e",class:"hb-date-picker__clear",role:"button","aria-label":"清空",onClick:this.handleClear},"×"),a("span",{key:"55662b6a4b49cf42c54e2906fb062c8c45a9259e",class:"hb-date-picker__icon","aria-hidden":"true"},"📅"))),this.isOpen&&a("div",{key:"3b1d2bbb8fd12b5b8c2748028f7b13daa08df5a0",class:"hb-date-picker__dropdown",role:"dialog","aria-label":"选择日期"},a("div",{key:"310b54cb7c477fc52657b220201e82f69059b3a0",class:"hb-date-picker__header"},a("button",{key:"63cf02ce80ea6522592863a31696b91b79ebd0ef",type:"button",class:"hb-date-picker__prev-btn","aria-label":"上一月",onClick:()=>this.changeMonth(-1)},"‹"),a("span",{key:"f74837430f189198929125413a7b61568e37c1a7",class:"hb-date-picker__header-label","aria-live":"polite"},t.getFullYear(),"年 ",d[t.getMonth()]),a("button",{key:"db36b5b8823fa3dc5f8355d77225b19ea262d2fd",type:"button",class:"hb-date-picker__next-btn","aria-label":"下一月",onClick:()=>this.changeMonth(1)},"›")),a("div",{key:"2adbe9940556d5f01049bcdb4777c67b2519c5ef",class:"hb-date-picker__body",role:"grid"},a("div",{key:"d4b2deab072b795b852abdb4e54f9c3493feaecd",class:"hb-date-picker__weekdays",role:"row"},c.map((e=>a("div",{class:"hb-date-picker__weekday",role:"columnheader","aria-disabled":"true"},e)))),a("div",{key:"208e6260719c97616be80386b3fc9da3521eed83",class:"hb-date-picker__days",role:"row"},e.map(((e,t)=>{const i=e.isCurrentMonth&&this.isDateDisabled(e.date);return a("div",{key:t,class:{"hb-date-picker__day":true,"hb-date-picker__day--other-month":!e.isCurrentMonth,"hb-date-picker__day--today":e.isToday,"hb-date-picker__day--selected":e.isSelected,"hb-date-picker__day--disabled":i},role:"gridcell","aria-selected":e.isSelected?"true":"false","aria-disabled":!e.isCurrentMonth||i?"true":undefined,"aria-label":n(e.date,this.format),onClick:()=>e.isCurrentMonth&&!i&&this.handleDateSelect(e.date)},e.date.getDate())}))))))}static get watchers(){return{modelValue:["handleValueChange"]}}};b.style=p;export{b as hb_date_picker};
2
- //# sourceMappingURL=p-75a93de3.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["datePickerCss","HbDatePickerStyle0","DatePicker","modelValue","placeholder","disabled","size","clearable","format","valueFormat","type","disabledDate","name","inputId","isOpen","inputValue","selectedDate","hbChange","clickOutside","createClickOutsideHandler","host","this","onClose","componentDidLoad","el","connect","updateInputValue","disconnectedCallback","disconnect","handleValueChange","date","parseDate","undefined","formatDate","handleInputClick","handleClear","e","stopPropagation","emit","handleDateSelect","changeMonth","delta","addMonths","Date","isDateDisabled","render","days","getCalendarDays","current","h","key","class","onClick","id","value","readonly","role","getFullYear","MONTH_NAMES","getMonth","WEEK_DAY_NAMES","map","day","index","dayDisabled","isCurrentMonth","isToday","isSelected","getDate"],"sources":["src/components/DatePicker/date-picker.css?tag=hb-date-picker&encapsulation=shadow","src/components/DatePicker/DatePicker.tsx"],"sourcesContent":[":host {\n display: inline-block;\n position: relative;\n --hb-date-picker-font-size: 14px;\n --hb-date-picker-height: 32px;\n --hb-date-picker-border-color: var(--hb-border-color, #dcdfe6);\n --hb-date-picker-border-color-hover: var(--hb-color-primary);\n --hb-date-picker-bg-color: var(--hb-color-white, #ffffff);\n}\n\n.hb-date-picker {\n display: inline-block;\n position: relative;\n width: 240px;\n}\n\n.hb-date-picker__input-wrapper {\n position: relative;\n display: inline-block;\n width: 100%;\n cursor: pointer;\n}\n\n.hb-date-picker__input {\n display: inline-block;\n width: 100%;\n height: var(--hb-date-picker-height);\n line-height: var(--hb-date-picker-height);\n padding: 0 30px 0 15px;\n font-size: var(--hb-date-picker-font-size);\n color: var(--hb-color-text-regular, #606266);\n background-color: var(--hb-date-picker-bg-color);\n border: 1px solid var(--hb-date-picker-border-color);\n border-radius: 4px;\n box-sizing: border-box;\n cursor: pointer;\n outline: none;\n transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);\n}\n\n.hb-date-picker__input:hover:not(:disabled) {\n border-color: var(--hb-date-picker-border-color-hover);\n}\n\n.hb-date-picker__input:focus {\n border-color: var(--hb-date-picker-border-color-hover);\n}\n\n.hb-date-picker__suffix {\n position: absolute;\n right: 8px;\n top: 50%;\n transform: translateY(-50%);\n display: flex;\n align-items: center;\n}\n\n.hb-date-picker__clear {\n margin-right: 8px;\n cursor: pointer;\n font-size: 16px;\n color: var(--hb-color-text-placeholder, #c0c4cc);\n transition: color 0.2s;\n}\n\n.hb-date-picker__clear:hover {\n color: var(--hb-color-text-regular, #606266);\n}\n\n.hb-date-picker__icon {\n font-size: 14px;\n}\n\n.hb-date-picker__dropdown {\n position: absolute;\n top: 100%;\n left: 0;\n margin-top: 4px;\n background-color: var(--hb-date-picker-bg-color);\n border: 1px solid var(--hb-date-picker-border-color);\n border-radius: 4px;\n box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);\n z-index: 1000;\n min-width: 280px;\n padding: 12px;\n}\n\n.hb-date-picker__header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 12px;\n}\n\n.hb-date-picker__header-label {\n font-weight: 600;\n font-size: 14px;\n color: var(--hb-color-text-regular, #606266);\n}\n\n.hb-date-picker__prev-btn,\n.hb-date-picker__next-btn {\n background: none;\n border: none;\n font-size: 18px;\n cursor: pointer;\n color: var(--hb-color-text-regular, #606266);\n padding: 4px 8px;\n transition: color 0.2s;\n}\n\n.hb-date-picker__prev-btn:hover,\n.hb-date-picker__next-btn:hover {\n color: var(--hb-color-primary);\n}\n\n.hb-date-picker__weekdays {\n display: grid;\n grid-template-columns: repeat(7, 1fr);\n gap: 4px;\n margin-bottom: 8px;\n}\n\n.hb-date-picker__weekday {\n text-align: center;\n font-size: 12px;\n color: var(--hb-color-text-placeholder, #c0c4cc);\n font-weight: 500;\n}\n\n.hb-date-picker__days {\n display: grid;\n grid-template-columns: repeat(7, 1fr);\n gap: 4px;\n}\n\n.hb-date-picker__day {\n aspect-ratio: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 13px;\n color: var(--hb-color-text-regular, #606266);\n cursor: pointer;\n border-radius: 4px;\n transition: all 0.2s;\n}\n\n.hb-date-picker__day:hover:not(.hb-date-picker__day--other-month) {\n background-color: var(--hb-fill-color-light, #f5f7fa);\n}\n\n.hb-date-picker__day--other-month {\n color: var(--hb-color-text-placeholder, #c0c4cc);\n cursor: default;\n}\n\n.hb-date-picker__day--today {\n color: var(--hb-color-primary);\n font-weight: 600;\n}\n\n.hb-date-picker__day--selected {\n background-color: var(--hb-color-primary);\n color: var(--hb-color-white, #ffffff);\n}\n\n.hb-date-picker__day--disabled {\n color: var(--hb-color-text-placeholder, #c0c4cc);\n cursor: not-allowed;\n}\n\n.hb-date-picker__day--disabled:hover {\n background-color: transparent;\n}\n\n.hb-date-picker--small {\n width: 200px;\n}\n\n.hb-date-picker--small .hb-date-picker__input {\n height: 24px;\n line-height: 24px;\n font-size: 12px;\n padding: 0 25px 0 12px;\n}\n\n.hb-date-picker--large {\n width: 280px;\n}\n\n.hb-date-picker--large .hb-date-picker__input {\n height: 40px;\n line-height: 40px;\n font-size: 16px;\n padding: 0 35px 0 18px;\n}\n\n.hb-date-picker--disabled {\n cursor: not-allowed;\n}\n\n.hb-date-picker--disabled .hb-date-picker__input {\n background-color: var(--hb-fill-color-light, #f5f7fa);\n border-color: var(--hb-date-picker-border-color);\n color: var(--hb-color-text-disabled, #c0c4cc);\n cursor: not-allowed;\n}\n\n","import { Component, h, Prop, Event, EventEmitter, State, Element, Watch } from '@stencil/core';\nimport { createClickOutsideHandler } from '../../utils/click-outside';\nimport { getCalendarDays, formatDate, parseDate, addMonths, MONTH_NAMES, WEEK_DAY_NAMES } from '../../utils/date-helpers';\n\n/**\n * DatePicker 日期选择器组件\n * 用于选择或输入日期\n */\n@Component({\n tag: 'hb-date-picker',\n styleUrl: 'date-picker.css',\n shadow: true,\n})\nexport class DatePicker {\n @Element() el: HTMLElement;\n\n /** 绑定值 */\n @Prop({ mutable: true }) modelValue?: string | Date;\n\n /** 输入框占位文本 */\n @Prop() placeholder: string = '请选择日期';\n\n /** 是否禁用 */\n @Prop() disabled: boolean = false;\n\n /** 输入框尺寸 */\n @Prop() size: 'large' | 'default' | 'small' = 'default';\n\n /** 是否可清空 */\n @Prop() clearable: boolean = false;\n\n /** 日期格式 */\n @Prop() format: string = 'YYYY-MM-DD';\n\n /** 显示在输入框中的格式 */\n @Prop() valueFormat?: string;\n\n /**\n * 日期选择器类型\n * 当前仅支持 'date',更多类型将在后续版本实现\n */\n @Prop() type = 'date' as const;\n\n /**\n * 禁用日期判定函数。返回 true 的日期在日历中不可选(加 disabled 态、不可点击、aria-disabled)。\n * @param date 当前日期格子的 Date 对象\n */\n @Prop() disabledDate?: (date: Date) => boolean;\n\n /** 原生 name 属性 */\n @Prop() name?: string;\n\n /** 原生 id 属性 */\n @Prop() inputId?: string;\n\n @State() isOpen: boolean = false;\n @State() inputValue: string = '';\n @State() selectedDate?: Date;\n\n /** 值改变事件 */\n @Event() hbChange: EventEmitter<string | Date>;\n\n private clickOutside = createClickOutsideHandler({\n host: null as any,\n isOpen: () => this.isOpen,\n onClose: () => { this.isOpen = false; },\n });\n\n componentDidLoad() {\n this.clickOutside = createClickOutsideHandler({\n host: this.el,\n isOpen: () => this.isOpen,\n onClose: () => { this.isOpen = false; },\n });\n this.clickOutside.connect();\n this.updateInputValue();\n }\n\n disconnectedCallback() {\n this.clickOutside.disconnect();\n }\n\n @Watch('modelValue')\n handleValueChange() {\n this.updateInputValue();\n }\n\n private updateInputValue() {\n const date = parseDate(this.modelValue);\n if (!date) {\n this.inputValue = '';\n this.selectedDate = undefined;\n return;\n }\n this.selectedDate = date;\n this.inputValue = formatDate(date, this.format);\n }\n\n private handleInputClick = () => {\n if (this.disabled) return;\n this.isOpen = !this.isOpen;\n };\n\n private handleClear = (e: Event) => {\n e.stopPropagation();\n this.modelValue = undefined;\n this.inputValue = '';\n this.selectedDate = undefined;\n this.isOpen = false;\n this.hbChange.emit(undefined);\n };\n\n private handleDateSelect = (date: Date) => {\n // disabledDate 返回 true 的日期不可选\n if (this.disabledDate && this.disabledDate(date)) return;\n this.selectedDate = date;\n this.modelValue = this.valueFormat ? formatDate(date, this.format) : date;\n this.updateInputValue();\n this.isOpen = false;\n this.hbChange.emit(this.modelValue);\n };\n\n private changeMonth(delta: number) {\n this.selectedDate = addMonths(this.selectedDate || new Date(), delta);\n }\n\n /** 判断某日期是否被 disabledDate 禁用 */\n private isDateDisabled = (date: Date): boolean => {\n return !!this.disabledDate && this.disabledDate(date);\n };\n\n render() {\n const days = getCalendarDays(this.selectedDate || new Date(), this.selectedDate);\n const current = this.selectedDate || new Date();\n\n return (\n <div\n class={{\n 'hb-date-picker': true,\n 'hb-date-picker--open': this.isOpen,\n 'hb-date-picker--disabled': this.disabled,\n [`hb-date-picker--${this.size}`]: true,\n }}\n >\n <div class=\"hb-date-picker__input-wrapper\" onClick={this.handleInputClick}>\n <input\n type=\"text\"\n id={this.inputId}\n name={this.name}\n class=\"hb-date-picker__input\"\n placeholder={this.placeholder}\n value={this.inputValue}\n disabled={this.disabled}\n readonly\n role=\"combobox\"\n aria-haspopup=\"dialog\"\n aria-expanded={this.isOpen ? 'true' : 'false'}\n aria-label={this.placeholder}\n />\n <span class=\"hb-date-picker__suffix\">\n {this.clearable && this.modelValue && (\n <span class=\"hb-date-picker__clear\" role=\"button\" aria-label=\"清空\" onClick={this.handleClear}>\n ×\n </span>\n )}\n <span class=\"hb-date-picker__icon\" aria-hidden=\"true\">📅</span>\n </span>\n </div>\n {this.isOpen && (\n <div class=\"hb-date-picker__dropdown\" role=\"dialog\" aria-label=\"选择日期\">\n <div class=\"hb-date-picker__header\">\n <button\n type=\"button\"\n class=\"hb-date-picker__prev-btn\"\n aria-label=\"上一月\"\n onClick={() => this.changeMonth(-1)}\n >\n ‹\n </button>\n <span class=\"hb-date-picker__header-label\" aria-live=\"polite\">\n {current.getFullYear()}年 {MONTH_NAMES[current.getMonth()]}\n </span>\n <button\n type=\"button\"\n class=\"hb-date-picker__next-btn\"\n aria-label=\"下一月\"\n onClick={() => this.changeMonth(1)}\n >\n ›\n </button>\n </div>\n <div class=\"hb-date-picker__body\" role=\"grid\">\n <div class=\"hb-date-picker__weekdays\" role=\"row\">\n {WEEK_DAY_NAMES.map(day => (\n <div class=\"hb-date-picker__weekday\" role=\"columnheader\" aria-disabled=\"true\">{day}</div>\n ))}\n </div>\n <div class=\"hb-date-picker__days\" role=\"row\">\n {days.map((day, index) => {\n const dayDisabled = day.isCurrentMonth && this.isDateDisabled(day.date);\n return (\n <div\n key={index}\n class={{\n 'hb-date-picker__day': true,\n 'hb-date-picker__day--other-month': !day.isCurrentMonth,\n 'hb-date-picker__day--today': day.isToday,\n 'hb-date-picker__day--selected': day.isSelected,\n 'hb-date-picker__day--disabled': dayDisabled,\n }}\n role=\"gridcell\"\n aria-selected={day.isSelected ? 'true' : 'false'}\n aria-disabled={!day.isCurrentMonth || dayDisabled ? 'true' : undefined}\n aria-label={formatDate(day.date, this.format)}\n onClick={() => day.isCurrentMonth && !dayDisabled && this.handleDateSelect(day.date)}\n >\n {day.date.getDate()}\n </div>\n );\n })}\n </div>\n </div>\n </div>\n )}\n </div>\n );\n }\n}\n\n"],"mappings":"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","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r as e,g as a,h as t}from"./p-e42dfa95.js";import{i as s}from"./p-cc0aeb50.js";const i=class{constructor(a){e(this,a)}get el(){return a(this)}key="";title="";disabled=false;active=false;isOpen=false;componentDidLoad(){this.isOpen=this.active}handleActiveChange(e){this.isOpen=e}toggle=()=>{if(this.disabled)return;this.isOpen=!this.isOpen;this.active=this.isOpen;this.el.dispatchEvent(new CustomEvent("hbCollapseItemToggle",{detail:{key:this.key,active:this.isOpen},bubbles:true,composed:true}))};handleHeaderKeydown=e=>{if(this.disabled)return;if(s(e.key)){e.preventDefault();this.toggle()}};render(){return t("div",{key:"37cf0afe29b3a3b6bb538a8dc962804a71c9dce9",class:{"hb-collapse-item":true,"hb-collapse-item--active":this.isOpen,"hb-collapse-item--disabled":this.disabled}},t("div",{key:"be864927a75dc717aab21745f728adbd149fd3b8",class:"hb-collapse-item__header",role:"button",tabindex:this.disabled?-1:0,"aria-expanded":this.isOpen?"true":"false","aria-disabled":this.disabled?"true":undefined,onClick:this.toggle,onKeyDown:this.handleHeaderKeydown},t("span",{key:"afea7c20f59efc964aeebfb995d0b713ebb28542",class:"hb-collapse-item__title"},this.title),t("span",{key:"1aa30ec50c6105f8a07a2ac30ea8108d19923eb8",class:{"hb-collapse-item__arrow":true,"hb-collapse-item__arrow--open":this.isOpen}},"▶")),t("div",{key:"6e6d66dd8477019c7dc8dbc66fd81646e8c3899a",class:{"hb-collapse-item__wrapper":true,"hb-collapse-item__wrapper--open":this.isOpen}},t("div",{key:"776a67a054ea8fd5b664f2e475843ff2344b41c4",class:"hb-collapse-item__content"},t("slot",{key:"1fc2c8492891d16fef88b83c2f46207a2508a81e"}))))}static get watchers(){return{active:["handleActiveChange"]}}};export{i as hb_collapse_item};
2
- //# sourceMappingURL=p-769960f4.entry.js.map
@@ -1,2 +0,0 @@
1
- import{r as e,c as t,g as i,h as o}from"./p-e42dfa95.js";import{c as r}from"./p-4ef5a884.js";import{g as n}from"./p-ecce2b5e.js";const a='/*! 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{display:inline-block;position:relative}.hb-dropdown__trigger{cursor:pointer;display:inline-block}.hb-dropdown__menu{animation:hb-dropdown-fade-in .15s ease-out;background-color:var(--hb-color-bg-elevated);border-radius:var(--hb-border-radius-base);box-shadow:var(--hb-box-shadow);left:0;margin-top:4px;min-width:120px;padding:4px 0;position:absolute;top:100%}.hb-dropdown__item{align-items:center;color:var(--hb-color-text);cursor:pointer;display:flex;font-size:var(--hb-font-size-sm);padding:6px 16px;transition:background-color var(--hb-transition-duration);white-space:nowrap}.hb-dropdown__item:hover:not(.hb-dropdown__item--disabled){background-color:var(--hb-color-fill-tertiary);color:var(--hb-color-primary)}.hb-dropdown__item--disabled{color:var(--hb-color-text-disabled);cursor:not-allowed}.hb-dropdown__item--divided{border-top:1px solid var(--hb-color-border-secondary);margin-top:4px;padding-top:8px}.hb-dropdown__item--danger{color:var(--hb-color-danger)}.hb-dropdown__item--danger:hover:not(.hb-dropdown__item--disabled){background-color:var(--hb-color-danger-bg);color:var(--hb-color-danger)}@keyframes hb-dropdown-fade-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@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}';const s=a;const d=class{constructor(i){e(this,i);this.hbCommand=t(this,"hbCommand",7)}get el(){return i(this)}items=[];trigger="hover";disabled=false;isOpen=false;hbCommand;clickOutside=r({host:null,isOpen:()=>this.isOpen,onClose:()=>{this.isOpen=false}});componentDidLoad(){this.clickOutside=r({host:this.el,isOpen:()=>this.isOpen,onClose:()=>{this.isOpen=false}});if(this.trigger==="click"){this.clickOutside.connect()}}disconnectedCallback(){this.clickOutside.disconnect()}show=()=>{if(this.disabled)return;this.isOpen=true};hide=()=>{this.isOpen=false};toggle=()=>{if(this.disabled)return;this.isOpen=!this.isOpen};handleSelect=e=>{if(e.disabled)return;this.isOpen=false;this.hbCommand.emit(e.key)};render(){const e=this.trigger==="hover"?{onMouseEnter:this.show,onMouseLeave:this.hide}:{onClick:this.toggle};return o("div",{key:"65db176398a94c702f6c3fcdc4128ed0e6afc376",class:"hb-dropdown",...e},o("div",{key:"2c96f9af4f69d1a1c52195546b5b777e5a2d54b8",class:"hb-dropdown__trigger"},o("slot",{key:"cd007dcd7d357cc1d041472a72faa0a3a025bda2"})),this.isOpen&&o("div",{key:"a3bdebbc0a701e01df36b701bc13de130c4e8d24",class:"hb-dropdown__menu",style:{zIndex:String(n())}},this.items.map((e=>o("div",{class:{"hb-dropdown__item":true,"hb-dropdown__item--disabled":e.disabled,"hb-dropdown__item--divided":e.divided,"hb-dropdown__item--danger":e.danger},onClick:()=>this.handleSelect(e)},e.label)))))}};d.style=s;export{d as hb_dropdown};
2
- //# sourceMappingURL=p-8d615521.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["dropdownCss","HbDropdownStyle0","Dropdown","items","trigger","disabled","isOpen","hbCommand","clickOutside","createClickOutsideHandler","host","this","onClose","componentDidLoad","el","connect","disconnectedCallback","disconnect","show","hide","toggle","handleSelect","item","emit","key","render","triggerEvents","onMouseEnter","onMouseLeave","onClick","h","class","style","zIndex","String","getNextZIndex","map","divided","danger","label"],"sources":["src/components/Dropdown/dropdown.css?tag=hb-dropdown&encapsulation=shadow","src/components/Dropdown/Dropdown.tsx"],"sourcesContent":[":host {\n display: inline-block;\n position: relative;\n}\n\n.hb-dropdown__trigger {\n display: inline-block;\n cursor: pointer;\n}\n\n.hb-dropdown__menu {\n position: absolute;\n top: 100%;\n left: 0;\n min-width: 120px;\n margin-top: 4px;\n padding: 4px 0;\n background-color: var(--hb-color-bg-elevated);\n border-radius: var(--hb-border-radius-base);\n box-shadow: var(--hb-box-shadow);\n animation: hb-dropdown-fade-in 0.15s ease-out;\n}\n\n.hb-dropdown__item {\n display: flex;\n align-items: center;\n padding: 6px 16px;\n font-size: var(--hb-font-size-sm);\n color: var(--hb-color-text);\n cursor: pointer;\n white-space: nowrap;\n transition: background-color var(--hb-transition-duration);\n}\n\n.hb-dropdown__item:hover:not(.hb-dropdown__item--disabled) {\n background-color: var(--hb-color-fill-tertiary);\n color: var(--hb-color-primary);\n}\n\n.hb-dropdown__item--disabled {\n color: var(--hb-color-text-disabled);\n cursor: not-allowed;\n}\n\n.hb-dropdown__item--divided {\n margin-top: 4px;\n padding-top: 8px;\n border-top: 1px solid var(--hb-color-border-secondary);\n}\n\n.hb-dropdown__item--danger {\n color: var(--hb-color-danger);\n}\n.hb-dropdown__item--danger:hover:not(.hb-dropdown__item--disabled) {\n background-color: var(--hb-color-danger-bg);\n color: var(--hb-color-danger);\n}\n\n@keyframes hb-dropdown-fade-in {\n from { opacity: 0; transform: translateY(-4px); }\n to { opacity: 1; transform: translateY(0); }\n}\n","import { Component, h, Prop, State, Element, Event, EventEmitter } from '@stencil/core';\nimport { createClickOutsideHandler } from '../../utils/click-outside';\nimport { getNextZIndex } from '../../utils/popup-manager';\n\nexport interface DropdownItem {\n key: string;\n label: string;\n disabled?: boolean;\n divided?: boolean;\n danger?: boolean;\n}\n\n/**\n * Dropdown 下拉菜单组件\n * 将动作或菜单折叠到下拉菜单中\n */\n@Component({\n tag: 'hb-dropdown',\n styleUrl: 'dropdown.css',\n shadow: true,\n})\nexport class Dropdown {\n @Element() el: HTMLElement;\n\n /** 菜单项 */\n @Prop() items: DropdownItem[] = [];\n\n /** 触发方式 */\n @Prop() trigger: 'hover' | 'click' = 'hover';\n\n /** 是否禁用 */\n @Prop() disabled: boolean = false;\n\n @State() isOpen: boolean = false;\n\n /** 命令事件 */\n @Event() hbCommand: EventEmitter<string>;\n\n private clickOutside = createClickOutsideHandler({\n host: null as any,\n isOpen: () => this.isOpen,\n onClose: () => { this.isOpen = false; },\n });\n\n componentDidLoad() {\n this.clickOutside = createClickOutsideHandler({\n host: this.el,\n isOpen: () => this.isOpen,\n onClose: () => { this.isOpen = false; },\n });\n if (this.trigger === 'click') {\n this.clickOutside.connect();\n }\n }\n\n disconnectedCallback() {\n this.clickOutside.disconnect();\n }\n\n private show = () => {\n if (this.disabled) return;\n this.isOpen = true;\n };\n\n private hide = () => {\n this.isOpen = false;\n };\n\n private toggle = () => {\n if (this.disabled) return;\n this.isOpen = !this.isOpen;\n };\n\n private handleSelect = (item: DropdownItem) => {\n if (item.disabled) return;\n this.isOpen = false;\n this.hbCommand.emit(item.key);\n };\n\n render() {\n const triggerEvents = this.trigger === 'hover'\n ? { onMouseEnter: this.show, onMouseLeave: this.hide }\n : { onClick: this.toggle };\n\n return (\n <div class=\"hb-dropdown\" {...triggerEvents}>\n <div class=\"hb-dropdown__trigger\">\n <slot />\n </div>\n {this.isOpen && (\n <div class=\"hb-dropdown__menu\" style={{ zIndex: String(getNextZIndex()) }}>\n {this.items.map(item => (\n <div\n class={{\n 'hb-dropdown__item': true,\n 'hb-dropdown__item--disabled': item.disabled,\n 'hb-dropdown__item--divided': item.divided,\n 'hb-dropdown__item--danger': item.danger,\n }}\n onClick={() => this.handleSelect(item)}\n >\n {item.label}\n </div>\n ))}\n </div>\n )}\n </div>\n );\n }\n}\n"],"mappings":"iIAAA,MAAMA,EAAc,gwNACpB,MAAAC,EAAeD,E,MCoBFE,EAAQ,M,sFAIXC,MAAwB,GAGxBC,QAA6B,QAG7BC,SAAoB,MAEnBC,OAAkB,MAGlBC,UAEDC,aAAeC,EAA0B,CAC/CC,KAAM,KACNJ,OAAQ,IAAMK,KAAKL,OACnBM,QAAS,KAAQD,KAAKL,OAAS,KAAK,IAGtC,gBAAAO,GACEF,KAAKH,aAAeC,EAA0B,CAC5CC,KAAMC,KAAKG,GACXR,OAAQ,IAAMK,KAAKL,OACnBM,QAAS,KAAQD,KAAKL,OAAS,KAAK,IAEtC,GAAIK,KAAKP,UAAY,QAAS,CAC5BO,KAAKH,aAAaO,S,EAItB,oBAAAC,GACEL,KAAKH,aAAaS,Y,CAGZC,KAAO,KACb,GAAIP,KAAKN,SAAU,OACnBM,KAAKL,OAAS,IAAI,EAGZa,KAAO,KACbR,KAAKL,OAAS,KAAK,EAGbc,OAAS,KACf,GAAIT,KAAKN,SAAU,OACnBM,KAAKL,QAAUK,KAAKL,MAAM,EAGpBe,aAAgBC,IACtB,GAAIA,EAAKjB,SAAU,OACnBM,KAAKL,OAAS,MACdK,KAAKJ,UAAUgB,KAAKD,EAAKE,IAAI,EAG/B,MAAAC,GACE,MAAMC,EAAgBf,KAAKP,UAAY,QACnC,CAAEuB,aAAchB,KAAKO,KAAMU,aAAcjB,KAAKQ,MAC9C,CAAEU,QAASlB,KAAKS,QAEpB,OACEU,EAAA,OAAAN,IAAA,2CAAKO,MAAM,iBAAkBL,GAC3BI,EAAA,OAAAN,IAAA,2CAAKO,MAAM,wBACTD,EAAA,QAAAN,IAAA,8CAEDb,KAAKL,QACJwB,EAAA,OAAAN,IAAA,2CAAKO,MAAM,oBAAoBC,MAAO,CAAEC,OAAQC,OAAOC,OACpDxB,KAAKR,MAAMiC,KAAId,GACdQ,EAAA,OACEC,MAAO,CACL,oBAAqB,KACrB,8BAA+BT,EAAKjB,SACpC,6BAA8BiB,EAAKe,QACnC,4BAA6Bf,EAAKgB,QAEpCT,QAAS,IAAMlB,KAAKU,aAAaC,IAEhCA,EAAKiB,U","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r as s,g as e,h as a}from"./p-e42dfa95.js";const t={success:"✓",warning:"⚠",info:"ℹ",error:"✕",loading:"⏳"};const i=class{constructor(e){s(this,e)}get el(){return e(this)}message="";type="info";closable=false;duration=3e3;visible=true;componentDidLoad(){if(this.duration>0){setTimeout((()=>this.close()),this.duration)}}close=()=>{this.visible=false;setTimeout((()=>this.el.remove()),300)};render(){return a("div",{key:"51069b8f2a5079fcfd64bb24168907bbcfbfd869",class:{"hb-message":true,[`hb-message--${this.type}`]:true,"hb-message--visible":this.visible},role:"alert"},a("span",{key:"ad3123ae0c4eb9b8010c446bf0016d54af7b8a3a",class:"hb-message__icon"},t[this.type]),a("span",{key:"557ea0f92544ab58079a498b8f90dc774746c0a2",class:"hb-message__text"},this.message),this.closable&&a("span",{key:"e90e3380ba2b9a473d5f839983b959584948fd2a",class:"hb-message__close",onClick:this.close},"×"))}};export{i as hb_message};
2
- //# sourceMappingURL=p-953b9514.entry.js.map
@@ -1,2 +0,0 @@
1
- import{r as t,g as e,h as i}from"./p-e42dfa95.js";import{c as o,g as a}from"./p-ecce2b5e.js";const r='/*! 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{.visible{visibility:visible}.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;.hb-tooltip__trigger,:host{display:inline-block}.hb-tooltip__popup{background-color:var(--hb-p-gray-800);border-radius:var(--hb-border-radius-sm);box-shadow:var(--hb-box-shadow);color:#fff;font-size:var(--hb-font-size-sm);pointer-events:auto;word-wrap:break-word;animation:hb-tooltip-fade-in .15s ease-out;line-height:1.4;max-width:300px;padding:6px 12px;position:fixed}.hb-tooltip__arrow{background-color:var(--hb-p-gray-800);height:8px;position:absolute;transform:rotate(45deg);width:8px}.hb-tooltip__content{position:relative;z-index:1}@keyframes hb-tooltip-fade-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@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}';const n=r;const s=class{constructor(e){t(this,e)}get el(){return e(this)}content="";placement="top";trigger="hover";disabled=false;showArrow=true;visible=false;popupStyle={};triggerRef;popupRef;hideTimer;show=()=>{if(this.disabled)return;clearTimeout(this.hideTimer);this.visible=true;requestAnimationFrame((()=>this.updatePosition()))};hide=()=>{this.hideTimer=setTimeout((()=>{this.visible=false}),100)};toggle=()=>{if(this.disabled)return;if(this.visible){this.hide()}else{this.show()}};updatePosition(){if(!this.triggerRef||!this.popupRef)return;const t=this.triggerRef.getBoundingClientRect();const{width:e,height:i}=this.popupRef.getBoundingClientRect();const r=o(t,e,i,this.placement,8);this.popupStyle={top:`${r.top}px`,left:`${r.left}px`,zIndex:String(a())}}render(){const t=this.trigger==="hover"?{onMouseEnter:this.show,onMouseLeave:this.hide}:{onClick:this.toggle};return i("div",{key:"e98d79b104fc92f63d77cbd87c490d84e0646c64",class:"hb-tooltip",...t},i("div",{key:"74088a95833070259d447d57e03a894f20d0e044",ref:t=>{this.triggerRef=t},class:"hb-tooltip__trigger"},i("slot",{key:"ce84437a1fedd763630764a5627763a4601d195e"})),this.visible&&i("div",{key:"1b5b74c439a5925c3cf10fc552369bd83354fcf4",ref:t=>{this.popupRef=t},class:"hb-tooltip__popup",style:this.popupStyle,onMouseEnter:()=>this.trigger==="hover"&&this.show(),onMouseLeave:()=>this.trigger==="hover"&&this.hide()},this.showArrow&&i("div",{key:"73b08948dcc030a487a0d0f11afbb2fb4bcbdc51",class:"hb-tooltip__arrow"}),i("div",{key:"564f396c5eb5e3cb5bffe7dc8ec956c54bfc484d",class:"hb-tooltip__content"},this.content)))}};s.style=n;export{s as hb_tooltip};
2
- //# sourceMappingURL=p-ad6b0c6e.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["tooltipCss","HbTooltipStyle0","Tooltip","content","placement","trigger","disabled","showArrow","visible","popupStyle","triggerRef","popupRef","hideTimer","show","this","clearTimeout","requestAnimationFrame","updatePosition","hide","setTimeout","toggle","triggerRect","getBoundingClientRect","width","height","pos","computePosition","top","left","zIndex","String","getNextZIndex","render","triggerEvents","onMouseEnter","onMouseLeave","onClick","h","key","class","ref","el","style"],"sources":["src/components/Tooltip/tooltip.css?tag=hb-tooltip&encapsulation=shadow","src/components/Tooltip/Tooltip.tsx"],"sourcesContent":[":host {\n display: inline-block;\n}\n\n.hb-tooltip__trigger {\n display: inline-block;\n}\n\n.hb-tooltip__popup {\n position: fixed;\n padding: 6px 12px;\n border-radius: var(--hb-border-radius-sm);\n background-color: var(--hb-p-gray-800);\n color: #fff;\n font-size: var(--hb-font-size-sm);\n line-height: 1.4;\n pointer-events: auto;\n box-shadow: var(--hb-box-shadow);\n animation: hb-tooltip-fade-in 0.15s ease-out;\n max-width: 300px;\n word-wrap: break-word;\n}\n\n.hb-tooltip__arrow {\n position: absolute;\n width: 8px;\n height: 8px;\n background-color: var(--hb-p-gray-800);\n transform: rotate(45deg);\n}\n\n.hb-tooltip__content {\n position: relative;\n z-index: 1;\n}\n\n@keyframes hb-tooltip-fade-in {\n from { opacity: 0; transform: scale(0.95); }\n to { opacity: 1; transform: scale(1); }\n}\n","import { Component, h, Prop, State, Element } from '@stencil/core';\nimport { computePosition, getNextZIndex, Placement } from '../../utils/popup-manager';\n\n/**\n * Tooltip 文字提示组件\n * 鼠标悬停或点击时显示提示文字\n */\n@Component({\n tag: 'hb-tooltip',\n styleUrl: 'tooltip.css',\n shadow: true,\n})\nexport class Tooltip {\n @Element() el: HTMLElement;\n\n /** 提示文字 */\n @Prop() content: string = '';\n\n /** 弹出位置 */\n @Prop() placement: Placement = 'top';\n\n /** 触发方式 */\n @Prop() trigger: 'hover' | 'click' = 'hover';\n\n /** 是否禁用 */\n @Prop() disabled: boolean = false;\n\n /** 是否显示箭头 */\n @Prop() showArrow: boolean = true;\n\n @State() visible: boolean = false;\n @State() popupStyle: Record<string, string> = {};\n\n private triggerRef?: HTMLElement;\n private popupRef?: HTMLDivElement;\n private hideTimer?: ReturnType<typeof setTimeout>;\n\n private show = () => {\n if (this.disabled) return;\n clearTimeout(this.hideTimer);\n this.visible = true;\n requestAnimationFrame(() => this.updatePosition());\n };\n\n private hide = () => {\n this.hideTimer = setTimeout(() => { this.visible = false; }, 100);\n };\n\n private toggle = () => {\n if (this.disabled) return;\n if (this.visible) {\n this.hide();\n } else {\n this.show();\n }\n };\n\n private updatePosition() {\n if (!this.triggerRef || !this.popupRef) return;\n const triggerRect = this.triggerRef.getBoundingClientRect();\n const { width, height } = this.popupRef.getBoundingClientRect();\n const pos = computePosition(triggerRect, width, height, this.placement, 8);\n this.popupStyle = {\n top: `${pos.top}px`,\n left: `${pos.left}px`,\n zIndex: String(getNextZIndex()),\n };\n }\n\n render() {\n const triggerEvents = this.trigger === 'hover'\n ? { onMouseEnter: this.show, onMouseLeave: this.hide }\n : { onClick: this.toggle };\n\n return (\n <div class=\"hb-tooltip\" {...triggerEvents}>\n <div\n ref={(el: any) => { this.triggerRef = el; }}\n class=\"hb-tooltip__trigger\"\n >\n <slot />\n </div>\n {this.visible && (\n <div\n ref={(el: any) => { this.popupRef = el; }}\n class=\"hb-tooltip__popup\"\n style={this.popupStyle}\n onMouseEnter={() => this.trigger === 'hover' && this.show()}\n onMouseLeave={() => this.trigger === 'hover' && this.hide()}\n >\n {this.showArrow && <div class=\"hb-tooltip__arrow\" />}\n <div class=\"hb-tooltip__content\">{this.content}</div>\n </div>\n )}\n </div>\n );\n }\n}\n"],"mappings":"6FAAA,MAAMA,EAAa,ktMACnB,MAAAC,EAAeD,E,MCWFE,EAAO,M,iDAIVC,QAAkB,GAGlBC,UAAuB,MAGvBC,QAA6B,QAG7BC,SAAoB,MAGpBC,UAAqB,KAEpBC,QAAmB,MACnBC,WAAqC,GAEtCC,WACAC,SACAC,UAEAC,KAAO,KACb,GAAIC,KAAKR,SAAU,OACnBS,aAAaD,KAAKF,WAClBE,KAAKN,QAAU,KACfQ,uBAAsB,IAAMF,KAAKG,kBAAiB,EAG5CC,KAAO,KACbJ,KAAKF,UAAYO,YAAW,KAAQL,KAAKN,QAAU,KAAK,GAAK,IAAI,EAG3DY,OAAS,KACf,GAAIN,KAAKR,SAAU,OACnB,GAAIQ,KAAKN,QAAS,CAChBM,KAAKI,M,KACA,CACLJ,KAAKD,M,GAID,cAAAI,GACN,IAAKH,KAAKJ,aAAeI,KAAKH,SAAU,OACxC,MAAMU,EAAcP,KAAKJ,WAAWY,wBACpC,MAAMC,MAAEA,EAAKC,OAAEA,GAAWV,KAAKH,SAASW,wBACxC,MAAMG,EAAMC,EAAgBL,EAAaE,EAAOC,EAAQV,KAAKV,UAAW,GACxEU,KAAKL,WAAa,CAChBkB,IAAK,GAAGF,EAAIE,QACZC,KAAM,GAAGH,EAAIG,SACbC,OAAQC,OAAOC,K,CAInB,MAAAC,GACE,MAAMC,EAAgBnB,KAAKT,UAAY,QACnC,CAAE6B,aAAcpB,KAAKD,KAAMsB,aAAcrB,KAAKI,MAC9C,CAAEkB,QAAStB,KAAKM,QAEpB,OACEiB,EAAA,OAAAC,IAAA,2CAAKC,MAAM,gBAAiBN,GAC1BI,EAAA,OAAAC,IAAA,2CACEE,IAAMC,IAAc3B,KAAKJ,WAAa+B,CAAE,EACxCF,MAAM,uBAENF,EAAA,QAAAC,IAAA,8CAEDxB,KAAKN,SACJ6B,EAAA,OAAAC,IAAA,2CACEE,IAAMC,IAAc3B,KAAKH,SAAW8B,CAAE,EACtCF,MAAM,oBACNG,MAAO5B,KAAKL,WACZyB,aAAc,IAAMpB,KAAKT,UAAY,SAAWS,KAAKD,OACrDsB,aAAc,IAAMrB,KAAKT,UAAY,SAAWS,KAAKI,QAEpDJ,KAAKP,WAAa8B,EAAA,OAAAC,IAAA,2CAAKC,MAAM,sBAC9BF,EAAA,OAAAC,IAAA,2CAAKC,MAAM,uBAAuBzB,KAAKX,U","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r as e,c as i,g as t,h as o}from"./p-e42dfa95.js";const r='/*! 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{display:inline-block;position:relative}.hb-color-picker{display:inline-block}.hb-color-picker__trigger{align-items:center;border:1px solid var(--hb-border-color,#dcdfe6);border-radius:4px;cursor:pointer;display:inline-flex;padding:4px;transition:border-color .2s}.hb-color-picker__trigger:hover:not(.hb-color-picker--disabled){border-color:var(--hb-color-primary)}.hb-color-picker__color{border:1px solid var(--hb-border-color-lighter,#e4e7ed);border-radius:2px;height:20px;width:40px}.hb-color-picker__text{color:var(--hb-color-text-regular,#606266);font-size:14px;margin-left:8px}.hb-color-picker__dropdown{background-color:var(--hb-color-white,#fff);border:1px solid var(--hb-border-color,#dcdfe6);border-radius:4px;box-shadow:0 2px 12px #0000001a;left:0;margin-top:4px;min-width:300px;padding:12px;position:absolute;top:100%;z-index:1000}.hb-color-picker__saturation{border-radius:4px;cursor:crosshair;height:180px;overflow:hidden;position:relative;-webkit-user-select:none;user-select:none;width:100%}.hb-color-picker__saturation-bg{inset:0;position:absolute}.hb-color-picker__saturation-white{background:linear-gradient(90deg,#fff,#fff0);inset:0;position:absolute}.hb-color-picker__saturation-black{background:linear-gradient(#0000,#000);inset:0;position:absolute}.hb-color-picker__saturation-pointer{border:2px solid var(--hb-color-white,#fff);border-radius:50%;box-shadow:0 0 2px #0000004d;height:12px;position:absolute;transform:translate(-50%,-50%);width:12px}.hb-color-picker__controls{margin-top:12px}.hb-color-picker__alpha,.hb-color-picker__hue{border-radius:2px;cursor:pointer;height:12px;margin-bottom:8px;position:relative}.hb-color-picker__hue{position:relative}.hb-color-picker__hue-bar{background:linear-gradient(90deg,red,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red);border-radius:2px;height:100%}.hb-color-picker__hue-pointer{background:#fff;border:1px solid #0000004d;border-radius:2px;box-shadow:0 0 2px #0000004d;height:100%;pointer-events:none;position:absolute;top:0;transform:translate(-50%);width:4px}.hb-color-picker__alpha-bar{background-image:linear-gradient(45deg,#ccc 25%,#0000 0),linear-gradient(-45deg,#ccc 25%,#0000 0),linear-gradient(45deg,#0000 75%,#ccc 0),linear-gradient(-45deg,#0000 75%,#ccc 0);background-position:0 0,0 4px,4px -4px,-4px 0;background-size:8px 8px;border-radius:2px;height:100%}.hb-color-picker__input{margin-top:12px}.hb-color-picker__input-hex{border:1px solid var(--hb-border-color,#dcdfe6);border-radius:4px;font-size:13px;margin-bottom:8px;padding:6px 8px;width:100%}.hb-color-picker__input-rgb{display:flex;gap:8px}.hb-color-picker__input-rgb input{border:1px solid var(--hb-border-color,#dcdfe6);border-radius:4px;flex:1;font-size:13px;padding:6px 8px}.hb-color-picker__predefine{border-top:1px solid var(--hb-border-color-lighter,#e4e7ed);display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;padding-top:12px}.hb-color-picker__predefine-color{border:2px solid #0000;border-radius:4px;cursor:pointer;height:24px;transition:transform .2s;width:24px}.hb-color-picker__predefine-color:hover{transform:scale(1.1)}.hb-color-picker__predefine-color--selected{border-color:var(--hb-color-primary);transform:scale(1.1)}.hb-color-picker--disabled{cursor:not-allowed;opacity:.6}.hb-color-picker--disabled .hb-color-picker__trigger{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}';const a=r;const n=class{constructor(t){e(this,t);this.hbChange=i(this,"hbChange",7);this.hbActiveChange=i(this,"hbActiveChange",7)}get el(){return t(this)}modelValue;disabled=false;colorFormat="hex";showAlpha=false;predefine;isOpen=false;currentColor="#409EFF";hue=210;saturation=100;value=100;hbChange;hbActiveChange;componentDidLoad(){if(this.modelValue){this.currentColor=this.modelValue;this.updateHSVFromColor(this.modelValue)}else{this.updateHSVFromColor(this.currentColor)}document.addEventListener("click",this.handleDocumentClick)}disconnectedCallback(){document.removeEventListener("click",this.handleDocumentClick)}handleDocumentClick=e=>{if(!this.isOpen)return;const i=e.target;if(!this.el.contains(i)){this.isOpen=false}};handleValueChange(){if(this.modelValue){this.currentColor=this.modelValue;this.updateHSVFromColor(this.modelValue)}}handleTriggerClick=()=>{if(this.disabled)return;this.isOpen=!this.isOpen};handleColorSelect=e=>{this.currentColor=e;this.modelValue=e;this.hbChange.emit(e);this.hbActiveChange.emit(e)};handleSaturationClick=e=>{const i=e.currentTarget;const t=i.getBoundingClientRect();const o=e.clientX-t.left;const r=e.clientY-t.top;this.saturation=Math.max(0,Math.min(100,o/t.width*100));this.value=Math.max(0,Math.min(100,100-r/t.height*100));const a=this.hsvToHex(this.hue,this.saturation,this.value);this.handleColorSelect(a)};handleHueClick=e=>{const i=e.currentTarget;const t=i.getBoundingClientRect();const o=e.clientX-t.left;this.hue=Math.max(0,Math.min(360,o/t.width*360));const r=this.hsvToHex(this.hue,this.saturation,this.value);this.handleColorSelect(r)};handleInputChange=e=>{const i=e.target;const t=i.value;if(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/.test(t)){this.handleColorSelect(t)}};handleRgbInputChange=(e,i)=>{const t=this.hexToRgb(this.currentColor);if(t){const o=parseInt(i,10);if(!isNaN(o)&&o>=0&&o<=255){if(e===0)t.r=o;else if(e===1)t.g=o;else if(e===2)t.b=o;const i=`#${[t.r,t.g,t.b].map((e=>{const i=e.toString(16);return i.length===1?"0"+i:i})).join("")}`;this.handleColorSelect(i)}}};hexToRgb(e){const i=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return i?{r:parseInt(i[1],16),g:parseInt(i[2],16),b:parseInt(i[3],16)}:null}rgbToHsv(e,i,t){e=e/255;i=i/255;t=t/255;const o=Math.max(e,i,t);const r=Math.min(e,i,t);const a=o-r;let n=0;if(a!==0){if(o===e){n=(i-t)/a%6}else if(o===i){n=(t-e)/a+2}else{n=(e-i)/a+4}}n=Math.round(n*60);if(n<0)n+=360;const s=o===0?0:Math.round(a/o*100);const l=Math.round(o*100);return{h:n,s,v:l}}hsvToRgb(e,i,t){i=i/100;t=t/100;const o=t*i;const r=o*(1-Math.abs(e/60%2-1));const a=t-o;let n=0,s=0,l=0;if(e>=0&&e<60){n=o;s=r;l=0}else if(e>=60&&e<120){n=r;s=o;l=0}else if(e>=120&&e<180){n=0;s=o;l=r}else if(e>=180&&e<240){n=0;s=r;l=o}else if(e>=240&&e<300){n=r;s=0;l=o}else if(e>=300&&e<360){n=o;s=0;l=r}return{r:Math.round((n+a)*255),g:Math.round((s+a)*255),b:Math.round((l+a)*255)}}hsvToHex(e,i,t){const o=this.hsvToRgb(e,i,t);return`#${[o.r,o.g,o.b].map((e=>{const i=e.toString(16);return i.length===1?"0"+i:i})).join("")}`}updateHSVFromColor(e){const i=this.hexToRgb(e);if(i){const e=this.rgbToHsv(i.r,i.g,i.b);this.hue=e.h;this.saturation=e.s;this.value=e.v}}render(){const e=this.hexToRgb(this.currentColor);const i=this.predefine||["#ff4500","#ff8c00","#ffd700","#90ee90","#00ced1","#1e90ff","#c71585","#000000","#ffffff","#808080"];const t=this.hsvToHex(this.hue,100,100);return o("div",{key:"3a91756cec6b901dbd98049c6dea3f13cb0125b9",class:{"hb-color-picker":true,"hb-color-picker--open":this.isOpen,"hb-color-picker--disabled":this.disabled}},o("div",{key:"60fcf367b48d726dec4626cade99ae39c10c83f7",class:"hb-color-picker__trigger",onClick:this.handleTriggerClick},o("div",{key:"9b9f4c7f1444d76f1d6df1c480949572affb4a71",class:"hb-color-picker__color",style:{backgroundColor:this.currentColor}}),o("span",{key:"ddc5c6d1d875012ad46638324b2e9a80eb50d989",class:"hb-color-picker__text"},this.currentColor)),this.isOpen&&o("div",{key:"4f96c8be969d8b37f0acba6f9ec55d0b0223485d",class:"hb-color-picker__dropdown"},o("div",{key:"6e754aa587fbe8161315ab3fedfd71ccdf7b9a7e",class:"hb-color-picker__panel"},o("div",{key:"477dbbe265a0538e3f65f0d3c03dc653cf063982",class:"hb-color-picker__saturation",onClick:this.handleSaturationClick},o("div",{key:"eff441602d0795cfb6a05b9470dcec762c47e2a2",class:"hb-color-picker__saturation-bg",style:{backgroundColor:t}}),o("div",{key:"3f3e8c420dbea347c6859f046d0398e1141de926",class:"hb-color-picker__saturation-white"}),o("div",{key:"e501004e2e2d9f585b48bcc4a90def07c39964c2",class:"hb-color-picker__saturation-black"}),o("div",{key:"b00cda534203c12195977d0933bd36b1baafab34",class:"hb-color-picker__saturation-pointer",style:{left:`${this.saturation}%`,top:`${100-this.value}%`}})),o("div",{key:"ee86c70a807d70aa292a0208a3a172b35c791325",class:"hb-color-picker__controls"},o("div",{key:"d4dda211347b9c3e4ef1dc5e28f5a6a44359a162",class:"hb-color-picker__hue",onClick:this.handleHueClick},o("div",{key:"dbab23a4059b6dd2aeada35d7434c79a61860867",class:"hb-color-picker__hue-bar"}),o("div",{key:"b612775578712beac58a487a23a25c812fb28077",class:"hb-color-picker__hue-pointer",style:{left:`${this.hue/360*100}%`}})),this.showAlpha&&o("div",{key:"1aee2cd74b0cdf27d0afcbd09384ae707a5d7485",class:"hb-color-picker__alpha"},o("div",{key:"eba46d362053e05c89a93f34dfb453a8ed2253c7",class:"hb-color-picker__alpha-bar",style:{backgroundColor:this.currentColor}}))),o("div",{key:"60f66da4a79a2eb0ce1c389d65fd30362bbb7c61",class:"hb-color-picker__input"},o("input",{key:"1411561687211e4ea149421bfaf624c7cdc45ead",type:"text",class:"hb-color-picker__input-hex",value:this.currentColor,onInput:this.handleInputChange}),e&&o("div",{key:"c24d2df8b8d04fee9eeba4d8de660d14857cdf77",class:"hb-color-picker__input-rgb"},o("input",{key:"e4dd71d86bda84168f7342b3cf0a7513f608f0e1",type:"number",min:"0",max:"255",value:e.r,onInput:e=>this.handleRgbInputChange(0,e.target.value)}),o("input",{key:"198c25b1f2fe03bae65b2a6120b226684623a5a1",type:"number",min:"0",max:"255",value:e.g,onInput:e=>this.handleRgbInputChange(1,e.target.value)}),o("input",{key:"fe0c9273a4d283f3f4bde1b8c258e0adc370b9a6",type:"number",min:"0",max:"255",value:e.b,onInput:e=>this.handleRgbInputChange(2,e.target.value)}))),this.predefine&&this.predefine.length>0&&o("div",{key:"52b711be9fd4794a42fb0c4747a53df529895932",class:"hb-color-picker__predefine"},i.map((e=>o("div",{class:{"hb-color-picker__predefine-color":true,"hb-color-picker__predefine-color--selected":e===this.currentColor},style:{backgroundColor:e},onClick:()=>this.handleColorSelect(e)})))))))}static get watchers(){return{modelValue:["handleValueChange"]}}};n.style=a;export{n as hb_color_picker};
2
- //# sourceMappingURL=p-c1a059d9.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["colorPickerCss","HbColorPickerStyle0","ColorPicker","modelValue","disabled","colorFormat","showAlpha","predefine","isOpen","currentColor","hue","saturation","value","hbChange","hbActiveChange","componentDidLoad","this","updateHSVFromColor","document","addEventListener","handleDocumentClick","disconnectedCallback","removeEventListener","e","target","el","contains","handleValueChange","handleTriggerClick","handleColorSelect","color","emit","handleSaturationClick","currentTarget","rect","getBoundingClientRect","x","clientX","left","y","clientY","top","Math","max","min","width","height","hex","hsvToHex","handleHueClick","handleInputChange","test","handleRgbInputChange","index","rgb","hexToRgb","num","parseInt","isNaN","r","g","b","map","toString","length","join","result","exec","rgbToHsv","diff","h","round","s","v","hsvToRgb","c","abs","m","hsv","render","predefinedColors","hueColor","key","class","onClick","style","backgroundColor","type","onInput"],"sources":["src/components/ColorPicker/color-picker.css?tag=hb-color-picker&encapsulation=shadow","src/components/ColorPicker/ColorPicker.tsx"],"sourcesContent":[":host {\n display: inline-block;\n position: relative;\n}\n\n.hb-color-picker {\n display: inline-block;\n}\n\n.hb-color-picker__trigger {\n display: inline-flex;\n align-items: center;\n padding: 4px;\n border: 1px solid var(--hb-border-color, #dcdfe6);\n border-radius: 4px;\n cursor: pointer;\n transition: border-color 0.2s;\n}\n\n.hb-color-picker__trigger:hover:not(.hb-color-picker--disabled) {\n border-color: var(--hb-color-primary);\n}\n\n.hb-color-picker__color {\n width: 40px;\n height: 20px;\n border-radius: 2px;\n border: 1px solid var(--hb-border-color-lighter, #e4e7ed);\n}\n\n.hb-color-picker__text {\n margin-left: 8px;\n font-size: 14px;\n color: var(--hb-color-text-regular, #606266);\n}\n\n.hb-color-picker__dropdown {\n position: absolute;\n top: 100%;\n left: 0;\n margin-top: 4px;\n background-color: var(--hb-color-white, #ffffff);\n border: 1px solid var(--hb-border-color, #dcdfe6);\n border-radius: 4px;\n box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);\n z-index: 1000;\n padding: 12px;\n min-width: 300px;\n}\n\n.hb-color-picker__saturation {\n position: relative;\n width: 100%;\n height: 180px;\n border-radius: 4px;\n overflow: hidden;\n cursor: crosshair;\n user-select: none;\n}\n\n.hb-color-picker__saturation-bg {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n /* 背景色会根据当前色相动态设置 */\n}\n\n.hb-color-picker__saturation-white {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: linear-gradient(to right, #fff, rgba(255, 255, 255, 0));\n}\n\n.hb-color-picker__saturation-black {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: linear-gradient(to top, #000, rgba(0, 0, 0, 0));\n}\n\n.hb-color-picker__saturation-pointer {\n position: absolute;\n width: 12px;\n height: 12px;\n border: 2px solid var(--hb-color-white, #ffffff);\n border-radius: 50%;\n transform: translate(-50%, -50%);\n box-shadow: 0 0 2px rgba(0, 0, 0, 0.3);\n}\n\n.hb-color-picker__controls {\n margin-top: 12px;\n}\n\n.hb-color-picker__hue,\n.hb-color-picker__alpha {\n position: relative;\n height: 12px;\n border-radius: 2px;\n margin-bottom: 8px;\n cursor: pointer;\n}\n\n.hb-color-picker__hue {\n position: relative;\n}\n\n.hb-color-picker__hue-bar {\n height: 100%;\n background: linear-gradient(to right, #f00 0%, #ff0 17%, #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\n border-radius: 2px;\n}\n\n.hb-color-picker__hue-pointer {\n position: absolute;\n top: 0;\n width: 4px;\n height: 100%;\n background: #fff;\n border: 1px solid rgba(0, 0, 0, 0.3);\n border-radius: 2px;\n transform: translateX(-50%);\n box-shadow: 0 0 2px rgba(0, 0, 0, 0.3);\n pointer-events: none;\n}\n\n.hb-color-picker__alpha-bar {\n height: 100%;\n background-image: linear-gradient(45deg, #ccc 25%, transparent 25%), linear-gradient(-45deg, #ccc 25%, transparent 25%), linear-gradient(45deg, transparent 75%, #ccc 75%), linear-gradient(-45deg, transparent 75%, #ccc 75%);\n background-size: 8px 8px;\n background-position: 0 0, 0 4px, 4px -4px, -4px 0px;\n border-radius: 2px;\n}\n\n.hb-color-picker__input {\n margin-top: 12px;\n}\n\n.hb-color-picker__input-hex {\n width: 100%;\n padding: 6px 8px;\n border: 1px solid var(--hb-border-color, #dcdfe6);\n border-radius: 4px;\n font-size: 13px;\n margin-bottom: 8px;\n}\n\n.hb-color-picker__input-rgb {\n display: flex;\n gap: 8px;\n}\n\n.hb-color-picker__input-rgb input {\n flex: 1;\n padding: 6px 8px;\n border: 1px solid var(--hb-border-color, #dcdfe6);\n border-radius: 4px;\n font-size: 13px;\n}\n\n.hb-color-picker__predefine {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n margin-top: 12px;\n padding-top: 12px;\n border-top: 1px solid var(--hb-border-color-lighter, #e4e7ed);\n}\n\n.hb-color-picker__predefine-color {\n width: 24px;\n height: 24px;\n border-radius: 4px;\n cursor: pointer;\n border: 2px solid transparent;\n transition: transform 0.2s;\n}\n\n.hb-color-picker__predefine-color:hover {\n transform: scale(1.1);\n}\n\n.hb-color-picker__predefine-color--selected {\n border-color: var(--hb-color-primary);\n transform: scale(1.1);\n}\n\n.hb-color-picker--disabled {\n opacity: 0.6;\n cursor: not-allowed;\n}\n\n.hb-color-picker--disabled .hb-color-picker__trigger {\n cursor: not-allowed;\n}\n\n","import { Component, h, Prop, Event, EventEmitter, State, Element, Watch } from '@stencil/core';\n\n/**\n * ColorPicker 颜色选择器组件\n * 用于颜色选择,支持多种格式\n */\n@Component({\n tag: 'hb-color-picker',\n styleUrl: 'color-picker.css',\n shadow: true,\n})\nexport class ColorPicker {\n @Element() el: HTMLElement;\n\n /**\n * 绑定值\n */\n @Prop({ mutable: true }) modelValue?: string;\n\n /**\n * 是否禁用\n * @default false\n */\n @Prop() disabled: boolean = false;\n\n /**\n * 颜色格式\n */\n @Prop() colorFormat: 'hsl' | 'hsv' | 'hex' | 'rgb' = 'hex';\n\n /**\n * 是否显示透明度\n * @default false\n */\n @Prop() showAlpha: boolean = false;\n\n /**\n * 预定义颜色\n */\n @Prop() predefine?: string[];\n\n @State() isOpen: boolean = false;\n @State() currentColor: string = '#409EFF';\n @State() hue: number = 210; // 色相值 0-360\n @State() saturation: number = 100; // 饱和度 0-100\n @State() value: number = 100; // 明度 0-100\n\n /**\n * 值改变事件\n */\n @Event() hbChange: EventEmitter<string>;\n\n /**\n * 激活时触发\n */\n @Event() hbActiveChange: EventEmitter<string>;\n\n componentDidLoad() {\n if (this.modelValue) {\n this.currentColor = this.modelValue;\n this.updateHSVFromColor(this.modelValue);\n } else {\n this.updateHSVFromColor(this.currentColor);\n }\n document.addEventListener('click', this.handleDocumentClick);\n }\n\n disconnectedCallback() {\n document.removeEventListener('click', this.handleDocumentClick);\n }\n\n private handleDocumentClick = (e: MouseEvent) => {\n if (!this.isOpen) return;\n const target = e.target as HTMLElement;\n if (!this.el.contains(target)) {\n this.isOpen = false;\n }\n };\n\n @Watch('modelValue')\n handleValueChange() {\n if (this.modelValue) {\n this.currentColor = this.modelValue;\n this.updateHSVFromColor(this.modelValue);\n }\n }\n\n private handleTriggerClick = () => {\n if (this.disabled) return;\n this.isOpen = !this.isOpen;\n };\n\n private handleColorSelect = (color: string) => {\n this.currentColor = color;\n this.modelValue = color;\n this.hbChange.emit(color);\n this.hbActiveChange.emit(color);\n };\n\n private handleSaturationClick = (e: MouseEvent) => {\n const target = e.currentTarget as HTMLElement;\n const rect = target.getBoundingClientRect();\n const x = e.clientX - rect.left;\n const y = e.clientY - rect.top;\n \n // X 轴代表饱和度 (0-100%)\n this.saturation = Math.max(0, Math.min(100, (x / rect.width) * 100));\n // Y 轴代表明度 (0-100%,从上到下)\n this.value = Math.max(0, Math.min(100, 100 - (y / rect.height) * 100));\n \n const hex = this.hsvToHex(this.hue, this.saturation, this.value);\n this.handleColorSelect(hex);\n };\n\n private handleHueClick = (e: MouseEvent) => {\n const target = e.currentTarget as HTMLElement;\n const rect = target.getBoundingClientRect();\n const x = e.clientX - rect.left;\n \n // 色相值 0-360\n this.hue = Math.max(0, Math.min(360, (x / rect.width) * 360));\n \n const hex = this.hsvToHex(this.hue, this.saturation, this.value);\n this.handleColorSelect(hex);\n };\n\n private handleInputChange = (e: Event) => {\n const target = e.target as HTMLInputElement;\n const value = target.value;\n // 验证 hex 颜色格式\n if (/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/.test(value)) {\n this.handleColorSelect(value);\n }\n };\n\n private handleRgbInputChange = (index: number, value: string) => {\n const rgb = this.hexToRgb(this.currentColor);\n if (rgb) {\n const num = parseInt(value, 10);\n if (!isNaN(num) && num >= 0 && num <= 255) {\n if (index === 0) rgb.r = num;\n else if (index === 1) rgb.g = num;\n else if (index === 2) rgb.b = num;\n \n const hex = `#${[rgb.r, rgb.g, rgb.b].map(x => {\n const hex = x.toString(16);\n return hex.length === 1 ? '0' + hex : hex;\n }).join('')}`;\n this.handleColorSelect(hex);\n }\n }\n };\n\n private hexToRgb(hex: string): { r: number; g: number; b: number } | null {\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n return result ? {\n r: parseInt(result[1], 16),\n g: parseInt(result[2], 16),\n b: parseInt(result[3], 16)\n } : null;\n }\n\n // RGB 转 HSV\n private rgbToHsv(r: number, g: number, b: number): { h: number; s: number; v: number } {\n r = r / 255;\n g = g / 255;\n b = b / 255;\n\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const diff = max - min;\n\n let h = 0;\n if (diff !== 0) {\n if (max === r) {\n h = ((g - b) / diff) % 6;\n } else if (max === g) {\n h = (b - r) / diff + 2;\n } else {\n h = (r - g) / diff + 4;\n }\n }\n h = Math.round(h * 60);\n if (h < 0) h += 360;\n\n const s = max === 0 ? 0 : Math.round((diff / max) * 100);\n const v = Math.round(max * 100);\n\n return { h, s, v };\n }\n\n // HSV 转 RGB\n private hsvToRgb(h: number, s: number, v: number): { r: number; g: number; b: number } {\n s = s / 100;\n v = v / 100;\n\n const c = v * s;\n const x = c * (1 - Math.abs(((h / 60) % 2) - 1));\n const m = v - c;\n\n let r = 0, g = 0, b = 0;\n\n if (h >= 0 && h < 60) {\n r = c; g = x; b = 0;\n } else if (h >= 60 && h < 120) {\n r = x; g = c; b = 0;\n } else if (h >= 120 && h < 180) {\n r = 0; g = c; b = x;\n } else if (h >= 180 && h < 240) {\n r = 0; g = x; b = c;\n } else if (h >= 240 && h < 300) {\n r = x; g = 0; b = c;\n } else if (h >= 300 && h < 360) {\n r = c; g = 0; b = x;\n }\n\n return {\n r: Math.round((r + m) * 255),\n g: Math.round((g + m) * 255),\n b: Math.round((b + m) * 255)\n };\n }\n\n // HSV 转 Hex\n private hsvToHex(h: number, s: number, v: number): string {\n const rgb = this.hsvToRgb(h, s, v);\n return `#${[rgb.r, rgb.g, rgb.b].map(x => {\n const hex = x.toString(16);\n return hex.length === 1 ? '0' + hex : hex;\n }).join('')}`;\n }\n\n // 从颜色值更新 HSV\n private updateHSVFromColor(color: string) {\n const rgb = this.hexToRgb(color);\n if (rgb) {\n const hsv = this.rgbToHsv(rgb.r, rgb.g, rgb.b);\n this.hue = hsv.h;\n this.saturation = hsv.s;\n this.value = hsv.v;\n }\n }\n\n render() {\n const rgb = this.hexToRgb(this.currentColor);\n const predefinedColors = this.predefine || [\n '#ff4500', '#ff8c00', '#ffd700', '#90ee90', '#00ced1',\n '#1e90ff', '#c71585', '#000000', '#ffffff', '#808080',\n ];\n\n // 根据当前色相生成饱和度面板的背景色\n const hueColor = this.hsvToHex(this.hue, 100, 100);\n\n return (\n <div\n class={{\n 'hb-color-picker': true,\n 'hb-color-picker--open': this.isOpen,\n 'hb-color-picker--disabled': this.disabled,\n }}\n >\n <div class=\"hb-color-picker__trigger\" onClick={this.handleTriggerClick}>\n <div class=\"hb-color-picker__color\" style={{ backgroundColor: this.currentColor }}></div>\n <span class=\"hb-color-picker__text\">{this.currentColor}</span>\n </div>\n {this.isOpen && (\n <div class=\"hb-color-picker__dropdown\">\n <div class=\"hb-color-picker__panel\">\n <div class=\"hb-color-picker__saturation\" onClick={this.handleSaturationClick}>\n <div class=\"hb-color-picker__saturation-bg\" style={{ backgroundColor: hueColor }}></div>\n <div class=\"hb-color-picker__saturation-white\"></div>\n <div class=\"hb-color-picker__saturation-black\"></div>\n <div\n class=\"hb-color-picker__saturation-pointer\"\n style={{\n left: `${this.saturation}%`,\n top: `${100 - this.value}%`,\n }}\n ></div>\n </div>\n <div class=\"hb-color-picker__controls\">\n <div class=\"hb-color-picker__hue\" onClick={this.handleHueClick}>\n <div class=\"hb-color-picker__hue-bar\"></div>\n <div\n class=\"hb-color-picker__hue-pointer\"\n style={{\n left: `${(this.hue / 360) * 100}%`,\n }}\n ></div>\n </div>\n {this.showAlpha && (\n <div class=\"hb-color-picker__alpha\">\n <div class=\"hb-color-picker__alpha-bar\" style={{ backgroundColor: this.currentColor }}></div>\n </div>\n )}\n </div>\n <div class=\"hb-color-picker__input\">\n <input\n type=\"text\"\n class=\"hb-color-picker__input-hex\"\n value={this.currentColor}\n onInput={this.handleInputChange}\n />\n {rgb && (\n <div class=\"hb-color-picker__input-rgb\">\n <input \n type=\"number\" \n min=\"0\" \n max=\"255\" \n value={rgb.r}\n onInput={(e) => this.handleRgbInputChange(0, (e.target as HTMLInputElement).value)}\n />\n <input \n type=\"number\" \n min=\"0\" \n max=\"255\" \n value={rgb.g}\n onInput={(e) => this.handleRgbInputChange(1, (e.target as HTMLInputElement).value)}\n />\n <input \n type=\"number\" \n min=\"0\" \n max=\"255\" \n value={rgb.b}\n onInput={(e) => this.handleRgbInputChange(2, (e.target as HTMLInputElement).value)}\n />\n </div>\n )}\n </div>\n {this.predefine && this.predefine.length > 0 && (\n <div class=\"hb-color-picker__predefine\">\n {predefinedColors.map((color) => (\n <div\n class={{\n 'hb-color-picker__predefine-color': true,\n 'hb-color-picker__predefine-color--selected': color === this.currentColor,\n }}\n style={{ backgroundColor: color }}\n onClick={() => this.handleColorSelect(color)}\n ></div>\n ))}\n </div>\n )}\n </div>\n </div>\n )}\n </div>\n );\n }\n}\n\n"],"mappings":"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","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":["rateCss","HbRateStyle0","Rate","modelValue","max","disabled","allowHalf","readonly","showScore","showText","texts","scoreTemplate","hoverValue","currentValue","hbChange","componentDidLoad","this","handleValueChange","handleClick","value","isHalf","newValue","emit","handleMouseEnter","handleMouseLeave","getDisplayValue","getText","Math","ceil","getScoreText","replace","String","render","displayValue","stars","Array","from","length","_","i","h","key","class","map","isFull","isActive","onMouseEnter","onMouseLeave","onClick","e","stopPropagation"],"sources":["src/components/Rate/rate.css?tag=hb-rate&encapsulation=shadow","src/components/Rate/Rate.tsx"],"sourcesContent":[":host {\n display: inline-block;\n --hb-rate-font-size: 20px;\n --hb-rate-color: var(--hb-color-warning, #e6a23c);\n --hb-rate-void-color: var(--hb-color-text-placeholder, #c0c4cc);\n}\n\n.hb-rate {\n display: inline-block;\n height: var(--hb-rate-font-size);\n line-height: var(--hb-rate-font-size);\n vertical-align: middle;\n}\n\n.hb-rate__item {\n position: relative;\n display: inline-block;\n font-size: var(--hb-rate-font-size);\n margin-right: 6px;\n color: var(--hb-rate-void-color);\n cursor: pointer;\n transition: transform 0.2s;\n}\n\n.hb-rate__item:hover {\n transform: scale(1.1);\n}\n\n.hb-rate__item--active {\n color: var(--hb-rate-color);\n}\n\n.hb-rate__icon {\n display: block;\n}\n\n.hb-rate__half {\n position: absolute;\n left: 0;\n top: 0;\n width: 50%;\n overflow: hidden;\n color: var(--hb-rate-void-color);\n}\n\n.hb-rate__half--active {\n color: var(--hb-rate-color);\n}\n\n.hb-rate__text {\n margin-left: 8px;\n font-size: 14px;\n color: var(--hb-color-text-regular, #606266);\n vertical-align: middle;\n}\n\n","import { Component, h, Prop, Event, EventEmitter, State, Watch } from '@stencil/core';\n\n/**\n * Rate 评分组件\n * 评分组件\n */\n@Component({\n tag: 'hb-rate',\n styleUrl: 'rate.css',\n shadow: true,\n})\nexport class Rate {\n /**\n * 绑定值\n */\n @Prop({ mutable: true }) modelValue: number = 0;\n\n /**\n * 最大分值\n * @default 5\n */\n @Prop() max: number = 5;\n\n /**\n * 是否禁用\n * @default false\n */\n @Prop() disabled: boolean = false;\n\n /**\n * 是否允许半选\n * @default false\n */\n @Prop() allowHalf: boolean = false;\n\n /**\n * 只读\n * @default false\n */\n @Prop() readonly: boolean = false;\n\n /**\n * 是否显示分数\n * @default false\n */\n @Prop() showScore: boolean = false;\n\n /**\n * 是否显示文本\n * @default false\n */\n @Prop() showText: boolean = false;\n\n /**\n * 辅助文字数组\n */\n @Prop() texts?: string[];\n\n /**\n * 分数显示模板\n */\n @Prop() scoreTemplate?: string;\n\n @State() hoverValue: number = 0;\n @State() currentValue: number = 0;\n\n /**\n * 值改变事件\n */\n @Event() hbChange: EventEmitter<number>;\n\n componentDidLoad() {\n this.currentValue = this.modelValue;\n }\n\n @Watch('modelValue')\n handleValueChange() {\n this.currentValue = this.modelValue;\n }\n\n private handleClick = (value: number, isHalf: boolean) => {\n if (this.disabled || this.readonly) return;\n \n const newValue = isHalf && this.allowHalf ? value - 0.5 : value;\n this.currentValue = newValue;\n this.modelValue = newValue;\n this.hoverValue = 0;\n this.hbChange.emit(newValue);\n };\n\n private handleMouseEnter = (value: number) => {\n if (this.disabled || this.readonly) return;\n this.hoverValue = value;\n };\n\n private handleMouseLeave = () => {\n if (this.disabled || this.readonly) return;\n this.hoverValue = 0;\n };\n\n private getDisplayValue(): number {\n return this.hoverValue || this.currentValue;\n }\n\n private getText(): string {\n const value = Math.ceil(this.currentValue);\n if (this.texts && this.texts[value - 1]) {\n return this.texts[value - 1];\n }\n return '';\n }\n\n private getScoreText(): string {\n if (this.scoreTemplate) {\n return this.scoreTemplate.replace('{value}', String(this.currentValue));\n }\n return `${this.currentValue} / ${this.max}`;\n }\n\n render() {\n const displayValue = this.getDisplayValue();\n const stars = Array.from({ length: this.max }, (_, i) => i + 1);\n\n return (\n <div class=\"hb-rate\">\n {stars.map((value) => {\n const isFull = displayValue >= value;\n const isHalf = this.allowHalf && displayValue >= value - 0.5 && displayValue < value;\n const isActive = isFull || isHalf;\n\n return (\n <span\n class={{\n 'hb-rate__item': true,\n 'hb-rate__item--active': isActive,\n 'hb-rate__item--half': isHalf,\n }}\n onMouseEnter={() => this.handleMouseEnter(value)}\n onMouseLeave={this.handleMouseLeave}\n onClick={() => this.handleClick(value, false)}\n >\n {this.allowHalf && (\n <span\n class={{\n 'hb-rate__half': true,\n 'hb-rate__half--active': isHalf,\n }}\n onClick={(e) => {\n e.stopPropagation();\n this.handleClick(value, true);\n }}\n >\n ★\n </span>\n )}\n <span class=\"hb-rate__icon\">★</span>\n </span>\n );\n })}\n {this.showScore && (\n <span class=\"hb-rate__text\">{this.getScoreText()}</span>\n )}\n {this.showText && this.getText() && (\n <span class=\"hb-rate__text\">{this.getText()}</span>\n )}\n </div>\n );\n }\n}\n\n"],"mappings":"kDAAA,MAAMA,EAAU,y4MAChB,MAAAC,EAAeD,E,MCUFE,EAAI,M,4DAIUC,WAAqB,EAMtCC,IAAc,EAMdC,SAAoB,MAMpBC,UAAqB,MAMrBC,SAAoB,MAMpBC,UAAqB,MAMrBC,SAAoB,MAKpBC,MAKAC,cAECC,WAAqB,EACrBC,aAAuB,EAKvBC,SAET,gBAAAC,GACEC,KAAKH,aAAeG,KAAKb,U,CAI3B,iBAAAc,GACED,KAAKH,aAAeG,KAAKb,U,CAGnBe,YAAc,CAACC,EAAeC,KACpC,GAAIJ,KAAKX,UAAYW,KAAKT,SAAU,OAEpC,MAAMc,EAAWD,GAAUJ,KAAKV,UAAYa,EAAQ,GAAMA,EAC1DH,KAAKH,aAAeQ,EACpBL,KAAKb,WAAakB,EAClBL,KAAKJ,WAAa,EAClBI,KAAKF,SAASQ,KAAKD,EAAS,EAGtBE,iBAAoBJ,IAC1B,GAAIH,KAAKX,UAAYW,KAAKT,SAAU,OACpCS,KAAKJ,WAAaO,CAAK,EAGjBK,iBAAmB,KACzB,GAAIR,KAAKX,UAAYW,KAAKT,SAAU,OACpCS,KAAKJ,WAAa,CAAC,EAGb,eAAAa,GACN,OAAOT,KAAKJ,YAAcI,KAAKH,Y,CAGzB,OAAAa,GACN,MAAMP,EAAQQ,KAAKC,KAAKZ,KAAKH,cAC7B,GAAIG,KAAKN,OAASM,KAAKN,MAAMS,EAAQ,GAAI,CACvC,OAAOH,KAAKN,MAAMS,EAAQ,E,CAE5B,MAAO,E,CAGD,YAAAU,GACN,GAAIb,KAAKL,cAAe,CACtB,OAAOK,KAAKL,cAAcmB,QAAQ,UAAWC,OAAOf,KAAKH,c,CAE3D,MAAO,GAAGG,KAAKH,kBAAkBG,KAAKZ,K,CAGxC,MAAA4B,GACE,MAAMC,EAAejB,KAAKS,kBAC1B,MAAMS,EAAQC,MAAMC,KAAK,CAAEC,OAAQrB,KAAKZ,MAAO,CAACkC,EAAGC,IAAMA,EAAI,IAE7D,OACEC,EAAA,OAAAC,IAAA,2CAAKC,MAAM,WACRR,EAAMS,KAAKxB,IACV,MAAMyB,EAASX,GAAgBd,EAC/B,MAAMC,EAASJ,KAAKV,WAAa2B,GAAgBd,EAAQ,IAAOc,EAAed,EAC/E,MAAM0B,EAAWD,GAAUxB,EAE3B,OACEoB,EAAA,QACEE,MAAO,CACL,gBAAiB,KACjB,wBAAyBG,EACzB,sBAAuBzB,GAEzB0B,aAAc,IAAM9B,KAAKO,iBAAiBJ,GAC1C4B,aAAc/B,KAAKQ,iBACnBwB,QAAS,IAAMhC,KAAKE,YAAYC,EAAO,QAEtCH,KAAKV,WACJkC,EAAA,QACEE,MAAO,CACL,gBAAiB,KACjB,wBAAyBtB,GAE3B4B,QAAUC,IACRA,EAAEC,kBACFlC,KAAKE,YAAYC,EAAO,KAAK,GAC9B,KAKLqB,EAAA,QAAME,MAAM,iBAAe,KACtB,IAGV1B,KAAKR,WACJgC,EAAA,QAAAC,IAAA,2CAAMC,MAAM,iBAAiB1B,KAAKa,gBAEnCb,KAAKP,UAAYO,KAAKU,WACrBc,EAAA,QAAAC,IAAA,2CAAMC,MAAM,iBAAiB1B,KAAKU,W","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":["stepsCss","HbStepsStyle0","Steps","active","processStatus","alignCenter","direction","steps","componentDidLoad","items","this","el","querySelectorAll","Array","from","map","item","title","getAttribute","description","undefined","getStatus","index","getIcon","status","String","render","h","key","class","step","i","length"],"sources":["src/components/Steps/steps.css?tag=hb-steps&encapsulation=shadow","src/components/Steps/Steps.tsx"],"sourcesContent":[":host { display: block; }\n.hb-steps { display: flex; }\n.hb-steps--vertical { flex-direction: column; }\n.hb-steps__item { flex: 1; display: flex; flex-direction: column; align-items: center; position: relative; }\n.hb-steps--vertical .hb-steps__item { flex-direction: row; align-items: flex-start; gap: var(--hb-spacing-sm); padding-bottom: var(--hb-spacing-md); }\n.hb-steps__head { display: flex; align-items: center; width: 100%; }\n.hb-steps__icon {\n width: 28px; height: 28px; border-radius: 50%; display: flex; align-items: center; justify-content: center;\n font-size: var(--hb-font-size-sm); font-weight: 600; flex-shrink: 0;\n background: var(--hb-color-fill); color: var(--hb-color-text-secondary); transition: all 0.3s;\n}\n.hb-steps__item--process .hb-steps__icon { background: var(--hb-color-primary); color: #fff; }\n.hb-steps__item--finish .hb-steps__icon { background: var(--hb-color-primary); color: #fff; }\n.hb-steps__item--error .hb-steps__icon { background: var(--hb-color-danger); color: #fff; }\n.hb-steps__line { flex: 1; height: 2px; background: var(--hb-color-border-secondary); margin: 0 var(--hb-spacing-xs); }\n.hb-steps__item--finish .hb-steps__line { background: var(--hb-color-primary); }\n.hb-steps__main { text-align: center; margin-top: var(--hb-spacing-xs); }\n.hb-steps--vertical .hb-steps__main { text-align: left; }\n\n/* 对齐方式(alignCenter prop):默认 false 时图标与文字左对齐,true 时居中 */\n.hb-steps:not(.hb-steps--align-center) .hb-steps__item { align-items: flex-start; }\n.hb-steps:not(.hb-steps--align-center) .hb-steps__main { text-align: left; }\n.hb-steps__title { font-size: var(--hb-font-size-sm); font-weight: 600; }\n.hb-steps__item--process .hb-steps__title { color: var(--hb-color-primary); }\n.hb-steps__description { font-size: var(--hb-font-size-xs); color: var(--hb-color-text-secondary); margin-top: 2px; }\n","import { Component, h, Prop, State, Element } from '@stencil/core';\n\n@Component({ tag: 'hb-steps', styleUrl: 'steps.css', shadow: true })\nexport class Steps {\n @Element() el: HTMLElement;\n @Prop() active: number = 0;\n @Prop() processStatus: 'wait' | 'process' | 'finish' | 'error' = 'process';\n @Prop() alignCenter: boolean = false;\n @Prop() direction: 'horizontal' | 'vertical' = 'horizontal';\n\n @State() steps: { title: string; description?: string }[] = [];\n\n componentDidLoad() {\n const items = this.el.querySelectorAll('hb-step');\n this.steps = Array.from(items).map((item) => ({\n title: item.getAttribute('title') || '',\n description: item.getAttribute('description') || undefined,\n }));\n }\n\n private getStatus(index: number): string {\n if (index < this.active) return 'finish';\n if (index === this.active) return this.processStatus;\n return 'wait';\n }\n\n private getIcon(index: number): string {\n const status = this.getStatus(index);\n if (status === 'finish') return '✓';\n if (status === 'error') return '✕';\n return String(index + 1);\n }\n\n render() {\n return (\n <div class={{ 'hb-steps': true, [`hb-steps--${this.direction}`]: true, 'hb-steps--align-center': this.alignCenter }}>\n {this.steps.map((step, i) => (\n <div class={{ 'hb-steps__item': true, [`hb-steps__item--${this.getStatus(i)}`]: true }}>\n <div class=\"hb-steps__head\">\n <span class=\"hb-steps__icon\">{this.getIcon(i)}</span>\n {i < this.steps.length - 1 && <div class=\"hb-steps__line\"></div>}\n </div>\n <div class=\"hb-steps__main\">\n <div class=\"hb-steps__title\">{step.title}</div>\n {step.description && <div class=\"hb-steps__description\">{step.description}</div>}\n </div>\n </div>\n ))}\n </div>\n );\n }\n}\n"],"mappings":"kDAAA,MAAMA,EAAW,gkOACjB,MAAAC,EAAeD,E,MCEFE,EAAK,M,iDAERC,OAAiB,EACjBC,cAAyD,UACzDC,YAAuB,MACvBC,UAAuC,aAEtCC,MAAmD,GAE5D,gBAAAC,GACE,MAAMC,EAAQC,KAAKC,GAAGC,iBAAiB,WACvCF,KAAKH,MAAQM,MAAMC,KAAKL,GAAOM,KAAKC,IAAI,CACtCC,MAAOD,EAAKE,aAAa,UAAY,GACrCC,YAAaH,EAAKE,aAAa,gBAAkBE,a,CAI7C,SAAAC,CAAUC,GAChB,GAAIA,EAAQZ,KAAKP,OAAQ,MAAO,SAChC,GAAImB,IAAUZ,KAAKP,OAAQ,OAAOO,KAAKN,cACvC,MAAO,M,CAGD,OAAAmB,CAAQD,GACd,MAAME,EAASd,KAAKW,UAAUC,GAC9B,GAAIE,IAAW,SAAU,MAAO,IAChC,GAAIA,IAAW,QAAS,MAAO,IAC/B,OAAOC,OAAOH,EAAQ,E,CAGxB,MAAAI,GACE,OACEC,EAAA,OAAAC,IAAA,2CAAKC,MAAO,CAAE,WAAY,KAAM,CAAC,aAAanB,KAAKJ,aAAc,KAAM,yBAA0BI,KAAKL,cACnGK,KAAKH,MAAMQ,KAAI,CAACe,EAAMC,IACrBJ,EAAA,OAAKE,MAAO,CAAE,iBAAkB,KAAM,CAAC,mBAAmBnB,KAAKW,UAAUU,MAAO,OAC9EJ,EAAA,OAAKE,MAAM,kBACTF,EAAA,QAAME,MAAM,kBAAkBnB,KAAKa,QAAQQ,IAC1CA,EAAIrB,KAAKH,MAAMyB,OAAS,GAAKL,EAAA,OAAKE,MAAM,oBAE3CF,EAAA,OAAKE,MAAM,kBACTF,EAAA,OAAKE,MAAM,mBAAmBC,EAAKb,OAClCa,EAAKX,aAAeQ,EAAA,OAAKE,MAAM,yBAAyBC,EAAKX,iB","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- function n(n,t){return n.getFullYear()===t.getFullYear()&&n.getMonth()===t.getMonth()&&n.getDate()===t.getDate()}function t(t,e,s=new Date){const o=[];const c=t.getFullYear();const r=t.getMonth();const a=new Date(c,r,1);const i=new Date(c,r+1,0);const u=a.getDay();const f=i.getDate();const d=new Date(c,r-1,0);for(let t=u-1;t>=0;t--){const a=new Date(c,r-1,d.getDate()-t);o.push({date:a,isCurrentMonth:false,isToday:n(a,s),isSelected:!!e&&n(a,e)})}for(let t=1;t<=f;t++){const a=new Date(c,r,t);o.push({date:a,isCurrentMonth:true,isToday:n(a,s),isSelected:!!e&&n(a,e)})}const D=42-o.length;for(let t=1;t<=D;t++){const a=new Date(c,r+1,t);o.push({date:a,isCurrentMonth:false,isToday:n(a,s),isSelected:!!e&&n(a,e)})}return o}function e(n,t){const e=n.getFullYear();const s=String(n.getMonth()+1).padStart(2,"0");const o=String(n.getDate()).padStart(2,"0");const c=String(n.getHours()).padStart(2,"0");const r=String(n.getMinutes()).padStart(2,"0");const a=String(n.getSeconds()).padStart(2,"0");return t.replace("YYYY",String(e)).replace("MM",s).replace("DD",o).replace("HH",c).replace("mm",r).replace("ss",a)}function s(n){if(!n)return undefined;const t=n instanceof Date?n:new Date(n);if(isNaN(t.getTime()))return undefined;return t}function o(n,t){const e=new Date(n);e.setMonth(e.getMonth()+t);return e}function c(n,t){const e=new Date(n);e.setFullYear(e.getFullYear()+t);return e}function r(n,t,e){const s=n.getFullYear();const o=e??s-s%12;const c=[];for(let n=0;n<12;n++){const e=o+n;c.push({year:e,isCurrentYearRange:e===s,isSelected:!!t&&t.getFullYear()===e})}return c}function a(n){const t=n.getFullYear();return t-t%12}const i=["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"];const u=["日","一","二","三","四","五","六"];export{i as M,u as W,o as a,c as b,a as c,r as d,e as f,t as g,n as i,s as p};
2
- //# sourceMappingURL=p-cf94cbf6.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["isSameDay","date1","date2","getFullYear","getMonth","getDate","getCalendarDays","viewDate","selectedDate","today","Date","days","year","month","firstDay","lastDay","firstDayWeek","getDay","daysInMonth","prevMonth","i","date","push","isCurrentMonth","isToday","isSelected","remainingDays","length","formatDate","format","String","padStart","day","hours","getHours","minutes","getMinutes","seconds","getSeconds","replace","parseDate","value","undefined","isNaN","getTime","addMonths","delta","result","setMonth","addYears","setFullYear","getCalendarYears","startYearBase","rangeStart","years","y","isCurrentYearRange","getYearRangeStart","MONTH_NAMES","WEEK_DAY_NAMES"],"sources":["src/utils/date-helpers.ts"],"sourcesContent":["/**\n * 日历和日期工具函数\n * 从 DatePicker / DateTimePicker / DatePickerPane 中提取的共享逻辑\n */\n\nexport interface CalendarDay {\n date: Date;\n isCurrentMonth: boolean;\n isToday: boolean;\n isSelected: boolean;\n}\n\n/** 判断两个日期是否为同一天 */\nexport function isSameDay(date1: Date, date2: Date): boolean {\n return (\n date1.getFullYear() === date2.getFullYear() &&\n date1.getMonth() === date2.getMonth() &&\n date1.getDate() === date2.getDate()\n );\n}\n\n/** 生成 42 天(6 周)的日历网格数据 */\nexport function getCalendarDays(\n viewDate: Date,\n selectedDate?: Date,\n today: Date = new Date()\n): CalendarDay[] {\n const days: CalendarDay[] = [];\n const year = viewDate.getFullYear();\n const month = viewDate.getMonth();\n\n const firstDay = new Date(year, month, 1);\n const lastDay = new Date(year, month + 1, 0);\n const firstDayWeek = firstDay.getDay();\n const daysInMonth = lastDay.getDate();\n\n // 上月填充\n const prevMonth = new Date(year, month - 1, 0);\n for (let i = firstDayWeek - 1; i >= 0; i--) {\n const date = new Date(year, month - 1, prevMonth.getDate() - i);\n days.push({\n date,\n isCurrentMonth: false,\n isToday: isSameDay(date, today),\n isSelected: !!selectedDate && isSameDay(date, selectedDate),\n });\n }\n\n // 当月日期\n for (let i = 1; i <= daysInMonth; i++) {\n const date = new Date(year, month, i);\n days.push({\n date,\n isCurrentMonth: true,\n isToday: isSameDay(date, today),\n isSelected: !!selectedDate && isSameDay(date, selectedDate),\n });\n }\n\n // 下月填充(补齐 42 天)\n const remainingDays = 42 - days.length;\n for (let i = 1; i <= remainingDays; i++) {\n const date = new Date(year, month + 1, i);\n days.push({\n date,\n isCurrentMonth: false,\n isToday: isSameDay(date, today),\n isSelected: !!selectedDate && isSameDay(date, selectedDate),\n });\n }\n\n return days;\n}\n\n/**\n * 格式化日期为指定格式字符串\n * 支持:YYYY, MM, DD, HH, mm, ss\n */\nexport function formatDate(date: Date, format: string): string {\n const year = date.getFullYear();\n const month = String(date.getMonth() + 1).padStart(2, '0');\n const day = String(date.getDate()).padStart(2, '0');\n const hours = String(date.getHours()).padStart(2, '0');\n const minutes = String(date.getMinutes()).padStart(2, '0');\n const seconds = String(date.getSeconds()).padStart(2, '0');\n\n return format\n .replace('YYYY', String(year))\n .replace('MM', month)\n .replace('DD', day)\n .replace('HH', hours)\n .replace('mm', minutes)\n .replace('ss', seconds);\n}\n\n/** 安全解析日期值 */\nexport function parseDate(value: string | Date | undefined): Date | undefined {\n if (!value) return undefined;\n const date = value instanceof Date ? value : new Date(value);\n if (isNaN(date.getTime())) return undefined;\n return date;\n}\n\n/** 月份偏移,返回新日期对象(不可变) */\nexport function addMonths(date: Date, delta: number): Date {\n const result = new Date(date);\n result.setMonth(result.getMonth() + delta);\n return result;\n}\n\n/** 年份偏移,返回新日期对象(不可变) */\nexport function addYears(date: Date, delta: number): Date {\n const result = new Date(date);\n result.setFullYear(result.getFullYear() + delta);\n return result;\n}\n\n/**\n * 生成 years 视图的 12 年档数据(每档 12 年)。\n * 以 viewDate 所在年份向下取整到 12 的倍数作为起点。\n */\nexport interface CalendarYear {\n year: number;\n isCurrentYearRange: boolean;\n isSelected: boolean;\n}\n\nexport function getCalendarYears(\n viewDate: Date,\n selectedDate?: Date,\n startYearBase?: number\n): CalendarYear[] {\n const year = viewDate.getFullYear();\n const rangeStart = startYearBase ?? year - (year % 12);\n const years: CalendarYear[] = [];\n for (let i = 0; i < 12; i++) {\n const y = rangeStart + i;\n years.push({\n year: y,\n isCurrentYearRange: y === year,\n isSelected: !!selectedDate && selectedDate.getFullYear() === y,\n });\n }\n return years;\n}\n\n/** 获取 years 视图标题所显示的年份档区间起点 */\nexport function getYearRangeStart(viewDate: Date): number {\n const year = viewDate.getFullYear();\n return year - (year % 12);\n}\n\n/** 中文月份名称 */\nexport const MONTH_NAMES = [\n '一月', '二月', '三月', '四月', '五月', '六月',\n '七月', '八月', '九月', '十月', '十一月', '十二月',\n];\n\n/** 中文星期名称 */\nexport const WEEK_DAY_NAMES = ['日', '一', '二', '三', '四', '五', '六'];\n"],"mappings":"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","ignoreList":[]}
@@ -1 +0,0 @@
1
- {"version":3,"names":["menuCss","HbMenuStyle0","Menu","mode","defaultActive","collapsed","backgroundColor","textColor","activeTextColor","activeItem","hbSelect","componentDidLoad","this","syncCollapsedToChildren","handleDefaultActiveChange","handleCollapsedChange","el","querySelectorAll","forEach","sub","setAttribute","handleSelect","event","key","detail","emit","item","getAttribute","render","style","h","class","role"],"sources":["src/components/Menu/menu.css?tag=hb-menu&encapsulation=shadow","src/components/Menu/Menu.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.hb-menu {\n list-style: none;\n margin: 0;\n padding: 4px 0;\n background-color: var(--hb-menu-bg, var(--hb-color-bg-container));\n color: var(--hb-menu-color, var(--hb-color-text));\n font-size: var(--hb-font-size-sm);\n border-right: 1px solid var(--hb-color-border-secondary);\n box-sizing: border-box;\n}\n\n/* ---- 水平模式 ---- */\n.hb-menu--horizontal {\n display: flex;\n border-right: none;\n border-bottom: 1px solid var(--hb-color-border-secondary);\n}\n\n/* ---- 折叠 ---- */\n.hb-menu--collapsed {\n width: 64px;\n}\n.hb-menu--collapsed .hb-menu-item__text,\n.hb-menu--collapsed .hb-sub-menu__label,\n.hb-menu--collapsed .hb-sub-menu__arrow {\n display: none;\n}\n\n/* 折叠态 SubMenu:图标条布局(仅显示 icon),不再就地展开 */\n.hb-sub-menu--collapsed {\n position: relative;\n}\n.hb-sub-menu--collapsed .hb-sub-menu__title {\n justify-content: center;\n padding: 0;\n}\n\n/* 折叠态浮层:绝对定位弹出在右侧 */\n.hb-sub-menu__children--popover {\n position: absolute;\n left: 100%;\n top: 0;\n margin-left: 4px;\n min-width: 160px;\n padding: 4px 0;\n background-color: var(--hb-menu-bg, var(--hb-color-bg-container));\n border: 1px solid var(--hb-color-border-secondary);\n border-radius: var(--hb-radius-sm, 4px);\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);\n z-index: 1000;\n white-space: nowrap;\n}\n\n/* 折叠态浮层内的 MenuItem 取消就地展开时的缩进 */\n.hb-sub-menu__children--popover .hb-menu-item {\n padding-left: var(--hb-spacing-md);\n}\n\n/* ---- MenuItem ---- */\n::slotted(hb-menu-item) {\n display: block;\n}\n\n.hb-menu-item {\n display: flex;\n align-items: center;\n gap: var(--hb-spacing-xs);\n padding: 0 var(--hb-spacing-md);\n height: var(--hb-size-default);\n line-height: var(--hb-size-default);\n cursor: pointer;\n transition: all var(--hb-transition-duration) var(--hb-transition-function);\n white-space: nowrap;\n list-style: none;\n box-sizing: border-box;\n}\n\n.hb-menu-item:hover:not(.hb-menu-item--disabled) {\n background-color: var(--hb-menu-item-hover-bg, var(--hb-color-fill-tertiary));\n}\n\n.hb-menu-item--active {\n color: var(--hb-menu-active-color, var(--hb-color-primary));\n background-color: var(--hb-menu-item-active-bg, var(--hb-color-primary-bg));\n}\n\n.hb-menu-item--disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.hb-menu-item__icon {\n display: inline-flex;\n width: 16px;\n}\n\n/* ---- SubMenu ---- */\n.hb-sub-menu {\n list-style: none;\n}\n\n.hb-sub-menu__title {\n display: flex;\n align-items: center;\n gap: var(--hb-spacing-xs);\n padding: 0 var(--hb-spacing-md);\n height: var(--hb-size-default);\n line-height: var(--hb-size-default);\n cursor: pointer;\n transition: all var(--hb-transition-duration);\n}\n\n.hb-sub-menu__title:hover {\n background-color: var(--hb-menu-item-hover-bg, var(--hb-color-fill-tertiary));\n}\n\n.hb-sub-menu__label {\n flex: 1;\n}\n\n.hb-sub-menu__arrow {\n font-size: 10px;\n transition: transform var(--hb-transition-duration);\n}\n\n.hb-sub-menu__arrow--open {\n transform: rotate(90deg);\n}\n\n.hb-sub-menu__children {\n list-style: none;\n margin: 0;\n padding: 0;\n background-color: var(--hb-menu-bg, var(--hb-color-bg-container));\n}\n\n.hb-sub-menu__children .hb-menu-item {\n padding-left: calc(var(--hb-spacing-md) + var(--hb-spacing-lg));\n}\n","import { Component, h, Prop, State, Element, Watch, Event, EventEmitter, Listen } from '@stencil/core';\n\n/**\n * Menu 导航菜单组件\n * 为页面和功能提供导航的菜单\n */\n@Component({\n tag: 'hb-menu',\n styleUrl: 'menu.css',\n shadow: true,\n})\nexport class Menu {\n @Element() el: HTMLElement;\n\n /** 模式 */\n @Prop() mode: 'horizontal' | 'vertical' = 'vertical';\n\n /** 当前激活菜单项 */\n @Prop({ mutable: true }) defaultActive: string = '';\n\n /** 是否折叠(仅垂直模式) */\n @Prop() collapsed: boolean = false;\n\n /** 背景色 */\n @Prop() backgroundColor?: string;\n\n /** 文字颜色 */\n @Prop() textColor?: string;\n\n /** 激活项文字颜色 */\n @Prop() activeTextColor?: string;\n\n @State() activeItem: string = '';\n\n /** 选中事件 */\n @Event() hbSelect: EventEmitter<string>;\n\n componentDidLoad() {\n this.activeItem = this.defaultActive;\n // 折叠态透传给子 hb-sub-menu(子组件无法继承 prop,需在 host 属性层面同步)\n this.syncCollapsedToChildren();\n }\n\n @Watch('defaultActive')\n handleDefaultActiveChange() {\n this.activeItem = this.defaultActive;\n }\n\n @Watch('collapsed')\n handleCollapsedChange() {\n this.syncCollapsedToChildren();\n }\n\n /**\n * 把 collapsed 状态同步到所有直连与嵌套的 hb-sub-menu 子节点。\n * querySelectorAll 递归匹配,因此 hb-sub-menu > hb-sub-menu(多级)也会被覆盖。\n */\n private syncCollapsedToChildren() {\n if (!this.el) return;\n this.el.querySelectorAll('hb-sub-menu').forEach((sub) => {\n sub.setAttribute('collapsed', this.collapsed ? 'true' : 'false');\n });\n }\n\n /** 监听子 hb-menu-item 派发的内部选中事件,更新激活态并向外发射公开的 hbSelect */\n @Listen('hbMenuItemSelect')\n handleSelect(event: CustomEvent<string>) {\n const key = event.detail;\n this.activeItem = key;\n this.defaultActive = key;\n this.hbSelect.emit(key);\n // 通知子组件(含嵌套在 hb-sub-menu 内的 hb-menu-item)\n this.el.querySelectorAll('hb-menu-item').forEach((item) => {\n item.setAttribute('active', item.getAttribute('key') === key ? 'true' : 'false');\n });\n }\n\n render() {\n const style: Record<string, string> = {};\n if (this.backgroundColor) style['--hb-menu-bg'] = this.backgroundColor;\n if (this.textColor) style['--hb-menu-color'] = this.textColor;\n if (this.activeTextColor) style['--hb-menu-active-color'] = this.activeTextColor;\n\n return (\n <ul\n class={{\n 'hb-menu': true,\n [`hb-menu--${this.mode}`]: true,\n 'hb-menu--collapsed': this.collapsed,\n }}\n style={style}\n role=\"menu\"\n >\n <slot />\n </ul>\n );\n }\n}\n"],"mappings":"yDAAA,MAAMA,EAAU,wkQAChB,MAAAC,EAAeD,E,MCUFE,EAAI,M,oFAIPC,KAAkC,WAGjBC,cAAwB,GAGzCC,UAAqB,MAGrBC,gBAGAC,UAGAC,gBAECC,WAAqB,GAGrBC,SAET,gBAAAC,GACEC,KAAKH,WAAaG,KAAKR,cAEvBQ,KAAKC,yB,CAIP,yBAAAC,GACEF,KAAKH,WAAaG,KAAKR,a,CAIzB,qBAAAW,GACEH,KAAKC,yB,CAOC,uBAAAA,GACN,IAAKD,KAAKI,GAAI,OACdJ,KAAKI,GAAGC,iBAAiB,eAAeC,SAASC,IAC/CA,EAAIC,aAAa,YAAaR,KAAKP,UAAY,OAAS,QAAQ,G,CAMpE,YAAAgB,CAAaC,GACX,MAAMC,EAAMD,EAAME,OAClBZ,KAAKH,WAAac,EAClBX,KAAKR,cAAgBmB,EACrBX,KAAKF,SAASe,KAAKF,GAEnBX,KAAKI,GAAGC,iBAAiB,gBAAgBC,SAASQ,IAChDA,EAAKN,aAAa,SAAUM,EAAKC,aAAa,SAAWJ,EAAM,OAAS,QAAQ,G,CAIpF,MAAAK,GACE,MAAMC,EAAgC,GACtC,GAAIjB,KAAKN,gBAAiBuB,EAAM,gBAAkBjB,KAAKN,gBACvD,GAAIM,KAAKL,UAAWsB,EAAM,mBAAqBjB,KAAKL,UACpD,GAAIK,KAAKJ,gBAAiBqB,EAAM,0BAA4BjB,KAAKJ,gBAEjE,OACEsB,EAAA,MAAAP,IAAA,2CACEQ,MAAO,CACL,UAAW,KACX,CAAC,YAAYnB,KAAKT,QAAS,KAC3B,qBAAsBS,KAAKP,WAE7BwB,MAAOA,EACPG,KAAK,QAELF,EAAA,QAAAP,IAAA,6C","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r as t,h as e}from"./p-e42dfa95.js";const i='/*! 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{.flex{display:flex}.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{display:block}.hb-col{box-sizing:border-box;position:relative;width:100%}.hb-col-1{width:4.16667%}.hb-col-2{width:8.33333%}.hb-col-3{width:12.5%}.hb-col-4{width:16.6667%}.hb-col-5{width:20.8333%}.hb-col-6{width:25%}.hb-col-7{width:29.1667%}.hb-col-8{width:33.3333%}.hb-col-9{width:37.5%}.hb-col-10{width:41.6667%}.hb-col-11{width:45.8333%}.hb-col-12{width:50%}.hb-col-13{width:54.1667%}.hb-col-14{width:58.3333%}.hb-col-15{width:62.5%}.hb-col-16{width:66.6667%}.hb-col-17{width:70.8333%}.hb-col-18{width:75%}.hb-col-19{width:79.1667%}.hb-col-20{width:83.3333%}.hb-col-21{width:87.5%}.hb-col-22{width:91.6667%}.hb-col-23{width:95.8333%}.hb-col-24{width:100%}.hb-col-offset-1{margin-left:4.16667%}.hb-col-offset-2{margin-left:8.33333%}.hb-col-offset-3{margin-left:12.5%}.hb-col-offset-4{margin-left:16.6667%}.hb-col-offset-5{margin-left:20.8333%}.hb-col-offset-6{margin-left:25%}.hb-col-offset-7{margin-left:29.1667%}.hb-col-offset-8{margin-left:33.3333%}.hb-col-offset-9{margin-left:37.5%}.hb-col-offset-10{margin-left:41.6667%}.hb-col-offset-11{margin-left:45.8333%}.hb-col-offset-12{margin-left:50%}.hb-col-offset-13{margin-left:54.1667%}.hb-col-offset-14{margin-left:58.3333%}.hb-col-offset-15{margin-left:62.5%}.hb-col-offset-16{margin-left:66.6667%}.hb-col-offset-17{margin-left:70.8333%}.hb-col-offset-18{margin-left:75%}.hb-col-offset-19{margin-left:79.1667%}.hb-col-offset-20{margin-left:83.3333%}.hb-col-offset-21{margin-left:87.5%}.hb-col-offset-22{margin-left:91.6667%}.hb-col-offset-23{margin-left:95.8333%}.hb-col-push-1{left:4.16667%}.hb-col-push-2{left:8.33333%}.hb-col-push-3{left:12.5%}.hb-col-push-4{left:16.6667%}.hb-col-push-5{left:20.8333%}.hb-col-push-6{left:25%}.hb-col-push-7{left:29.1667%}.hb-col-push-8{left:33.3333%}.hb-col-push-9{left:37.5%}.hb-col-push-10{left:41.6667%}.hb-col-push-11{left:45.8333%}.hb-col-push-12{left:50%}.hb-col-pull-1{right:4.16667%}.hb-col-pull-2{right:8.33333%}.hb-col-pull-3{right:12.5%}.hb-col-pull-4{right:16.6667%}.hb-col-pull-5{right:20.8333%}.hb-col-pull-6{right:25%}.hb-col-pull-7{right:29.1667%}.hb-col-pull-8{right:33.3333%}.hb-col-pull-9{right:37.5%}.hb-col-pull-10{right:41.6667%}.hb-col-pull-11{right:45.8333%}.hb-col-pull-12{right:50%}@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}';const o=i;const l=class{constructor(e){t(this,e)}span=24;offset=0;push=0;pull=0;xs;sm;md;lg;xl;getColClass(){const t=["hb-col"];if(this.span){t.push(`hb-col-${this.span}`)}if(this.offset){t.push(`hb-col-offset-${this.offset}`)}if(this.push){t.push(`hb-col-push-${this.push}`)}if(this.pull){t.push(`hb-col-pull-${this.pull}`)}return t.join(" ")}render(){return e("div",{key:"fc06cef5bbbcb0c108907a16b5c96fe8dc9f4f77",class:this.getColClass()},e("slot",{key:"9ca9f6e93df8c29dc901f84a39b3eed635b953bb"}))}};l.style=o;export{l as hb_layout};
2
- //# sourceMappingURL=p-e9490259.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["layoutCss","HbLayoutStyle0","Layout","span","offset","push","pull","xs","sm","md","lg","xl","getColClass","classes","this","join","render","h","key","class"],"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","import { Component, h, Prop } from '@stencil/core';\n\n/**\n * Layout 布局组件\n * 通过基础的 24 分栏,迅速简便地创建布局\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 * <768px 响应式栅格数或者栅格属性对象\n */\n @Prop() xs?: number | object;\n\n /**\n * ≥768px 响应式栅格数或者栅格属性对象\n */\n @Prop() sm?: number | object;\n\n /**\n * ≥992px 响应式栅格数或者栅格属性对象\n */\n @Prop() md?: number | object;\n\n /**\n * ≥1200px 响应式栅格数或者栅格属性对象\n */\n @Prop() lg?: number | object;\n\n /**\n * ≥1920px 响应式栅格数或者栅格属性对象\n */\n @Prop() xl?: number | object;\n\n private getColClass() {\n const classes: string[] = ['hb-col'];\n \n if (this.span) {\n classes.push(`hb-col-${this.span}`);\n }\n if (this.offset) {\n classes.push(`hb-col-offset-${this.offset}`);\n }\n if (this.push) {\n classes.push(`hb-col-push-${this.push}`);\n }\n if (this.pull) {\n classes.push(`hb-col-pull-${this.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"],"mappings":"2CAAA,MAAMA,EAAY,2uPAClB,MAAAC,EAAeD,E,MCUFE,EAAM,M,yBAKTC,KAAe,GAMfC,OAAiB,EAMjBC,KAAe,EAMfC,KAAe,EAKfC,GAKAC,GAKAC,GAKAC,GAKAC,GAEA,WAAAC,GACN,MAAMC,EAAoB,CAAC,UAE3B,GAAIC,KAAKX,KAAM,CACbU,EAAQR,KAAK,UAAUS,KAAKX,O,CAE9B,GAAIW,KAAKV,OAAQ,CACfS,EAAQR,KAAK,iBAAiBS,KAAKV,S,CAErC,GAAIU,KAAKT,KAAM,CACbQ,EAAQR,KAAK,eAAeS,KAAKT,O,CAEnC,GAAIS,KAAKR,KAAM,CACbO,EAAQR,KAAK,eAAeS,KAAKR,O,CAGnC,OAAOO,EAAQE,KAAK,I,CAGtB,MAAAC,GACE,OACEC,EAAA,OAAAC,IAAA,2CAAKC,MAAOL,KAAKF,eACfK,EAAA,QAAAC,IAAA,6C","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r as t,g as e,h as i}from"./p-e42dfa95.js";import{c as o,g as n}from"./p-ecce2b5e.js";const r='/*! 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{.visible{visibility:visible}.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{display:inline-block}.hb-popconfirm__trigger{cursor:pointer;display:inline-block}.hb-popconfirm__popup{animation:hb-popconfirm-fade .15s ease-out;background:var(--hb-color-bg-elevated);border-radius:var(--hb-border-radius-base);box-shadow:var(--hb-box-shadow);min-width:200px;padding:var(--hb-spacing-md);pointer-events:auto;position:fixed}.hb-popconfirm__main{align-items:flex-start;display:flex;gap:var(--hb-spacing-xs);margin-bottom:var(--hb-spacing-sm)}.hb-popconfirm__icon{color:var(--hb-color-warning);flex-shrink:0;font-size:16px}.hb-popconfirm__title{color:var(--hb-color-text);font-size:var(--hb-font-size-sm);line-height:1.5}.hb-popconfirm__action{display:flex;gap:var(--hb-spacing-xs);justify-content:flex-end}.hb-popconfirm__btn{background:var(--hb-color-bg);border:1px solid var(--hb-color-border);border-radius:var(--hb-border-radius-sm);cursor:pointer;font-size:var(--hb-font-size-xs);padding:4px 12px;transition:all var(--hb-transition-duration)}.hb-popconfirm__btn--cancel:hover{border-color:var(--hb-color-primary);color:var(--hb-color-primary)}.hb-popconfirm__btn--confirm{background:var(--hb-color-primary);border-color:var(--hb-color-primary);color:#fff}.hb-popconfirm__btn--confirm:hover{background:var(--hb-color-primary-hover)}@keyframes hb-popconfirm-fade{0%{opacity:0}to{opacity:1}}@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}';const a=r;const s=class{constructor(e){t(this,e)}get el(){return e(this)}title="确定执行此操作?";confirmButtonText="确定";cancelButtonText="取消";placement="top";disabled=false;icon="⚠";visible=false;popupStyle={};triggerRef;popupRef;show=()=>{if(!this.disabled){this.visible=true;requestAnimationFrame((()=>this.updatePosition()))}};hide=()=>{this.visible=false};updatePosition(){if(!this.triggerRef||!this.popupRef)return;const t=this.triggerRef.getBoundingClientRect();const{width:e,height:i}=this.popupRef.getBoundingClientRect();const r=o(t,e,i,this.placement,8);this.popupStyle={top:`${r.top}px`,left:`${r.left}px`,zIndex:String(n())}}handleConfirm=t=>{t.stopPropagation();this.hide();this.el.dispatchEvent(new CustomEvent("hbConfirm",{bubbles:true}))};handleCancel=t=>{t.stopPropagation();this.hide();this.el.dispatchEvent(new CustomEvent("hbCancel",{bubbles:true}))};render(){return i("div",{key:"d4817c4b90b135f3dc911259760ec6135c014882",class:"hb-popconfirm",onClick:this.show},i("div",{key:"bc992147604a6b601b9bfd1848fbd9fd425bcc65",ref:t=>{this.triggerRef=t},class:"hb-popconfirm__trigger"},i("slot",{key:"a5be9404aa726abc5c1c40292bfa3adef7793fa7"})),this.visible&&i("div",{key:"4d9794a39fe67cae8d61b6ddf421eb922e89ed4e",ref:t=>{this.popupRef=t},class:"hb-popconfirm__popup",style:this.popupStyle},i("div",{key:"15b32d88525e57064aa6c98ab5d409a86bce1a48",class:"hb-popconfirm__main"},i("span",{key:"a958b70e2ce984d8a87f278dcc13831778a37ddb",class:"hb-popconfirm__icon"},this.icon),i("span",{key:"d965d258313cf129d8d07a4085897b750cfe046b",class:"hb-popconfirm__title"},this.title)),i("div",{key:"184c808d11c9c987d7cc8d419133f5cdc5655466",class:"hb-popconfirm__action"},i("button",{key:"4c2f7eb3b996bd5231a1df845a6e6422a189293f",type:"button",class:"hb-popconfirm__btn hb-popconfirm__btn--cancel",onClick:this.handleCancel},this.cancelButtonText),i("button",{key:"de7a86643978c024e780061b775035488e879faf",type:"button",class:"hb-popconfirm__btn hb-popconfirm__btn--confirm",onClick:this.handleConfirm},this.confirmButtonText))))}};s.style=a;export{s as hb_popconfirm};
2
- //# sourceMappingURL=p-ed0ff857.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["popconfirmCss","HbPopconfirmStyle0","Popconfirm","title","confirmButtonText","cancelButtonText","placement","disabled","icon","visible","popupStyle","triggerRef","popupRef","show","this","requestAnimationFrame","updatePosition","hide","rect","getBoundingClientRect","width","pw","height","ph","pos","computePosition","top","left","zIndex","String","getNextZIndex","handleConfirm","e","stopPropagation","el","dispatchEvent","CustomEvent","bubbles","handleCancel","render","h","key","class","onClick","ref","style","type"],"sources":["src/components/Popconfirm/popconfirm.css?tag=hb-popconfirm&encapsulation=shadow","src/components/Popconfirm/Popconfirm.tsx"],"sourcesContent":[":host { display: inline-block; }\n.hb-popconfirm__trigger { display: inline-block; cursor: pointer; }\n.hb-popconfirm__popup {\n position: fixed; background: var(--hb-color-bg-elevated);\n border-radius: var(--hb-border-radius-base); box-shadow: var(--hb-box-shadow);\n padding: var(--hb-spacing-md); min-width: 200px; animation: hb-popconfirm-fade 0.15s ease-out; pointer-events: auto;\n}\n.hb-popconfirm__main { display: flex; align-items: flex-start; gap: var(--hb-spacing-xs); margin-bottom: var(--hb-spacing-sm); }\n.hb-popconfirm__icon { color: var(--hb-color-warning); font-size: 16px; flex-shrink: 0; }\n.hb-popconfirm__title { font-size: var(--hb-font-size-sm); color: var(--hb-color-text); line-height: 1.5; }\n.hb-popconfirm__action { display: flex; justify-content: flex-end; gap: var(--hb-spacing-xs); }\n.hb-popconfirm__btn {\n padding: 4px 12px; font-size: var(--hb-font-size-xs); border-radius: var(--hb-border-radius-sm);\n cursor: pointer; border: 1px solid var(--hb-color-border); background: var(--hb-color-bg);\n transition: all var(--hb-transition-duration);\n}\n.hb-popconfirm__btn--cancel:hover { color: var(--hb-color-primary); border-color: var(--hb-color-primary); }\n.hb-popconfirm__btn--confirm { background: var(--hb-color-primary); color: #fff; border-color: var(--hb-color-primary); }\n.hb-popconfirm__btn--confirm:hover { background: var(--hb-color-primary-hover); }\n@keyframes hb-popconfirm-fade { from { opacity: 0; } to { opacity: 1; } }\n","import { Component, h, Prop, State, Element } from '@stencil/core';\nimport { computePosition, getNextZIndex, Placement } from '../../utils/popup-manager';\n\n@Component({ tag: 'hb-popconfirm', styleUrl: 'popconfirm.css', shadow: true })\nexport class Popconfirm {\n @Element() el: HTMLElement;\n @Prop() title: string = '确定执行此操作?';\n @Prop() confirmButtonText: string = '确定';\n @Prop() cancelButtonText: string = '取消';\n @Prop() placement: Placement = 'top';\n @Prop() disabled: boolean = false;\n @Prop() icon: string = '⚠';\n @State() visible: boolean = false;\n @State() popupStyle: Record<string, string> = {};\n\n private triggerRef?: HTMLElement;\n private popupRef?: HTMLDivElement;\n\n private show = () => { if (!this.disabled) { this.visible = true; requestAnimationFrame(() => this.updatePosition()); } };\n private hide = () => { this.visible = false; };\n\n private updatePosition() {\n if (!this.triggerRef || !this.popupRef) return;\n const rect = this.triggerRef.getBoundingClientRect();\n const { width: pw, height: ph } = this.popupRef.getBoundingClientRect();\n const pos = computePosition(rect, pw, ph, this.placement, 8);\n this.popupStyle = { top: `${pos.top}px`, left: `${pos.left}px`, zIndex: String(getNextZIndex()) };\n }\n\n private handleConfirm = (e: Event) => { e.stopPropagation(); this.hide(); this.el.dispatchEvent(new CustomEvent('hbConfirm', { bubbles: true })); };\n private handleCancel = (e: Event) => { e.stopPropagation(); this.hide(); this.el.dispatchEvent(new CustomEvent('hbCancel', { bubbles: true })); };\n\n render() {\n return (\n <div class=\"hb-popconfirm\" onClick={this.show}>\n <div ref={(el: any) => { this.triggerRef = el; }} class=\"hb-popconfirm__trigger\"><slot /></div>\n {this.visible && (\n <div ref={(el: any) => { this.popupRef = el; }} class=\"hb-popconfirm__popup\" style={this.popupStyle}>\n <div class=\"hb-popconfirm__main\">\n <span class=\"hb-popconfirm__icon\">{this.icon}</span>\n <span class=\"hb-popconfirm__title\">{this.title}</span>\n </div>\n <div class=\"hb-popconfirm__action\">\n <button type=\"button\" class=\"hb-popconfirm__btn hb-popconfirm__btn--cancel\" onClick={this.handleCancel}>{this.cancelButtonText}</button>\n <button type=\"button\" class=\"hb-popconfirm__btn hb-popconfirm__btn--confirm\" onClick={this.handleConfirm}>{this.confirmButtonText}</button>\n </div>\n </div>\n )}\n </div>\n );\n }\n}\n"],"mappings":"6FAAA,MAAMA,EAAgB,w3NACtB,MAAAC,EAAeD,E,MCGFE,EAAU,M,iDAEbC,MAAgB,WAChBC,kBAA4B,KAC5BC,iBAA2B,KAC3BC,UAAuB,MACvBC,SAAoB,MACpBC,KAAe,IACdC,QAAmB,MACnBC,WAAqC,GAEtCC,WACAC,SAEAC,KAAO,KAAQ,IAAKC,KAAKP,SAAU,CAAEO,KAAKL,QAAU,KAAMM,uBAAsB,IAAMD,KAAKE,kB,GAC3FC,KAAO,KAAQH,KAAKL,QAAU,KAAK,EAEnC,cAAAO,GACN,IAAKF,KAAKH,aAAeG,KAAKF,SAAU,OACxC,MAAMM,EAAOJ,KAAKH,WAAWQ,wBAC7B,MAAQC,MAAOC,EAAIC,OAAQC,GAAOT,KAAKF,SAASO,wBAChD,MAAMK,EAAMC,EAAgBP,EAAMG,EAAIE,EAAIT,KAAKR,UAAW,GAC1DQ,KAAKJ,WAAa,CAAEgB,IAAK,GAAGF,EAAIE,QAASC,KAAM,GAAGH,EAAIG,SAAUC,OAAQC,OAAOC,K,CAGzEC,cAAiBC,IAAeA,EAAEC,kBAAmBnB,KAAKG,OAAQH,KAAKoB,GAAGC,cAAc,IAAIC,YAAY,YAAa,CAAEC,QAAS,OAAQ,EACxIC,aAAgBN,IAAeA,EAAEC,kBAAmBnB,KAAKG,OAAQH,KAAKoB,GAAGC,cAAc,IAAIC,YAAY,WAAY,CAAEC,QAAS,OAAQ,EAE9I,MAAAE,GACE,OACEC,EAAA,OAAAC,IAAA,2CAAKC,MAAM,gBAAgBC,QAAS7B,KAAKD,MACvC2B,EAAA,OAAAC,IAAA,2CAAKG,IAAMV,IAAcpB,KAAKH,WAAauB,CAAE,EAAKQ,MAAM,0BAAyBF,EAAA,QAAAC,IAAA,8CAChF3B,KAAKL,SACJ+B,EAAA,OAAAC,IAAA,2CAAKG,IAAMV,IAAcpB,KAAKF,SAAWsB,CAAE,EAAKQ,MAAM,uBAAuBG,MAAO/B,KAAKJ,YACvF8B,EAAA,OAAAC,IAAA,2CAAKC,MAAM,uBACTF,EAAA,QAAAC,IAAA,2CAAMC,MAAM,uBAAuB5B,KAAKN,MACxCgC,EAAA,QAAAC,IAAA,2CAAMC,MAAM,wBAAwB5B,KAAKX,QAE3CqC,EAAA,OAAAC,IAAA,2CAAKC,MAAM,yBACTF,EAAA,UAAAC,IAAA,2CAAQK,KAAK,SAASJ,MAAM,gDAAgDC,QAAS7B,KAAKwB,cAAexB,KAAKT,kBAC9GmC,EAAA,UAAAC,IAAA,2CAAQK,KAAK,SAASJ,MAAM,iDAAiDC,QAAS7B,KAAKiB,eAAgBjB,KAAKV,qB","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r as e,c as t,h as i}from"./p-e42dfa95.js";const o='/*! 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{.block{display:block}.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{display:block}.hb-segmented{background:var(--hb-color-fill);border-radius:var(--hb-border-radius-base);box-sizing:border-box;display:inline-flex;padding:2px}.hb-segmented--block{display:flex;width:100%}.hb-segmented__items{display:inline-flex;gap:2px;width:100%}.hb-segmented--large .hb-segmented__item{font-size:var(--hb-font-size-base);padding:6px 18px}.hb-segmented--default .hb-segmented__item{font-size:var(--hb-font-size-sm);padding:4px 14px}.hb-segmented--small .hb-segmented__item{font-size:var(--hb-font-size-xs);padding:2px 10px}.hb-segmented__item{align-items:center;background:0 0;border:none;border-radius:var(--hb-border-radius-sm);color:var(--hb-color-text);cursor:pointer;display:inline-flex;flex:1;font-family:inherit;justify-content:center;line-height:1.5;transition:background .2s,color .2s;white-space:nowrap}.hb-segmented__item:hover:not(.hb-segmented__item--active):not(.hb-segmented__item--disabled){background:var(--hb-color-fill-secondary)}.hb-segmented__item--active{background:var(--hb-color-bg-container);box-shadow:0 2px 8px #00000014;color:var(--hb-color-primary);font-weight:500}.hb-segmented__item--disabled{color:var(--hb-color-text-disabled);cursor:not-allowed}.hb-segmented__item-label{pointer-events:none}@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}';const n=o;const a=class{constructor(i){e(this,i);this.hbChange=t(this,"hbChange",7)}modelValue="";block=false;size="default";options=[];hbChange;handleSelect=e=>{if(e.disabled||e.value===this.modelValue)return;this.modelValue=e.value;this.hbChange.emit(e.value)};render(){return i("div",{key:"1e3f2004fd85fbce0d29721006dcf9f415827ec5",class:{"hb-segmented":true,[`hb-segmented--${this.size}`]:true,"hb-segmented--block":this.block}},i("div",{key:"81859de225297f531f53825d792a965356daf685",class:"hb-segmented__items"},this.options.map((e=>i("button",{type:"button",class:{"hb-segmented__item":true,"hb-segmented__item--active":e.value===this.modelValue,"hb-segmented__item--disabled":!!e.disabled},disabled:!!e.disabled,onClick:()=>this.handleSelect(e)},i("span",{class:"hb-segmented__item-label"},e.label))))))}};a.style=n;export{a as hb_segmented};
2
- //# sourceMappingURL=p-f0ac7db5.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["segmentedCss","HbSegmentedStyle0","Segmented","modelValue","block","size","options","hbChange","handleSelect","option","disabled","value","this","emit","render","h","key","class","map","type","onClick","label"],"sources":["src/components/Segmented/segmented.css?tag=hb-segmented&encapsulation=shadow","src/components/Segmented/Segmented.tsx"],"sourcesContent":[":host { display: block; }\n.hb-segmented {\n display: inline-flex;\n padding: 2px;\n background: var(--hb-color-fill);\n border-radius: var(--hb-border-radius-base);\n box-sizing: border-box;\n}\n.hb-segmented--block { display: flex; width: 100%; }\n.hb-segmented__items { display: inline-flex; gap: 2px; width: 100%; }\n\n/* 尺寸 */\n.hb-segmented--large .hb-segmented__item { padding: 6px 18px; font-size: var(--hb-font-size-base); }\n.hb-segmented--default .hb-segmented__item { padding: 4px 14px; font-size: var(--hb-font-size-sm); }\n.hb-segmented--small .hb-segmented__item { padding: 2px 10px; font-size: var(--hb-font-size-xs); }\n\n.hb-segmented__item {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border: none;\n background: transparent;\n color: var(--hb-color-text);\n cursor: pointer;\n border-radius: var(--hb-border-radius-sm);\n transition: background 0.2s, color 0.2s;\n white-space: nowrap;\n flex: 1;\n line-height: 1.5;\n font-family: inherit;\n}\n.hb-segmented__item:hover:not(.hb-segmented__item--active):not(.hb-segmented__item--disabled) {\n background: var(--hb-color-fill-secondary);\n}\n/* 高亮滑块背景 */\n.hb-segmented__item--active {\n background: var(--hb-color-bg-container);\n color: var(--hb-color-primary);\n font-weight: 500;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);\n}\n.hb-segmented__item--disabled {\n color: var(--hb-color-text-disabled);\n cursor: not-allowed;\n}\n.hb-segmented__item-label { pointer-events: none; }\n","import { Component, h, Prop, Event, EventEmitter } from '@stencil/core';\n\n/**\n * Segmented 分段控制器组件\n * 类似 iOS 分段控件,选中项有高亮滑块背景\n */\n@Component({ tag: 'hb-segmented', styleUrl: 'segmented.css', shadow: true })\nexport class Segmented {\n /** 当前选中值 */\n @Prop({ mutable: true }) modelValue: string = '';\n\n /** 是否撑满宽度 */\n @Prop() block: boolean = false;\n\n /** 尺寸 */\n @Prop() size: 'large' | 'default' | 'small' = 'default';\n\n /** 选项数组 */\n @Prop() options: SegmentedOption[] = [];\n\n /** 选中值变化事件 */\n @Event() hbChange: EventEmitter<string>;\n\n private handleSelect = (option: SegmentedOption) => {\n if (option.disabled || option.value === this.modelValue) return;\n this.modelValue = option.value;\n this.hbChange.emit(option.value);\n };\n\n render() {\n return (\n <div class={{ 'hb-segmented': true, [`hb-segmented--${this.size}`]: true, 'hb-segmented--block': this.block }}>\n <div class=\"hb-segmented__items\">\n {this.options.map((option) => (\n <button\n type=\"button\"\n class={{\n 'hb-segmented__item': true,\n 'hb-segmented__item--active': option.value === this.modelValue,\n 'hb-segmented__item--disabled': !!option.disabled,\n }}\n disabled={!!option.disabled}\n onClick={() => this.handleSelect(option)}\n >\n <span class=\"hb-segmented__item-label\">{option.label}</span>\n </button>\n ))}\n </div>\n </div>\n );\n }\n}\n\nexport interface SegmentedOption {\n value: string;\n label: string;\n disabled?: boolean;\n}\n"],"mappings":"kDAAA,MAAMA,EAAe,8yNACrB,MAAAC,EAAeD,E,MCMFE,EAAS,M,4DAEKC,WAAqB,GAGtCC,MAAiB,MAGjBC,KAAsC,UAGtCC,QAA6B,GAG5BC,SAEDC,aAAgBC,IACtB,GAAIA,EAAOC,UAAYD,EAAOE,QAAUC,KAAKT,WAAY,OACzDS,KAAKT,WAAaM,EAAOE,MACzBC,KAAKL,SAASM,KAAKJ,EAAOE,MAAM,EAGlC,MAAAG,GACE,OACEC,EAAA,OAAAC,IAAA,2CAAKC,MAAO,CAAE,eAAgB,KAAM,CAAC,iBAAiBL,KAAKP,QAAS,KAAM,sBAAuBO,KAAKR,QACpGW,EAAA,OAAAC,IAAA,2CAAKC,MAAM,uBACRL,KAAKN,QAAQY,KAAKT,GACjBM,EAAA,UACEI,KAAK,SACLF,MAAO,CACL,qBAAsB,KACtB,6BAA8BR,EAAOE,QAAUC,KAAKT,WACpD,iCAAkCM,EAAOC,UAE3CA,WAAYD,EAAOC,SACnBU,QAAS,IAAMR,KAAKJ,aAAaC,IAEjCM,EAAA,QAAME,MAAM,4BAA4BR,EAAOY,W","ignoreList":[]}