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.
- package/dist/cjs/{date-helpers-904747ff.js → date-helpers-1ffddc59.js} +7 -3
- package/dist/cjs/date-helpers-1ffddc59.js.map +1 -0
- package/dist/cjs/hb-affix.cjs.entry.js +1 -1
- package/dist/cjs/hb-aside.cjs.entry.js +1 -1
- package/dist/cjs/hb-avatar.cjs.entry.js +1 -1
- package/dist/cjs/hb-backtop.cjs.entry.js +2 -2
- package/dist/cjs/hb-badge.cjs.entry.js +1 -1
- package/dist/cjs/hb-breadcrumb-item.cjs.entry.js +1 -1
- package/dist/cjs/hb-breadcrumb.cjs.entry.js +1 -1
- package/dist/cjs/hb-button.cjs.entry.js +2 -2
- package/dist/cjs/hb-calendar.cjs.entry.js +78 -10
- package/dist/cjs/hb-calendar.cjs.entry.js.map +1 -1
- package/dist/cjs/hb-card.cjs.entry.js +1 -1
- package/dist/cjs/hb-cascader.cjs.entry.js +270 -146
- package/dist/cjs/hb-cascader.cjs.entry.js.map +1 -1
- package/dist/cjs/hb-checkbox-group.cjs.entry.js +2 -2
- package/dist/cjs/hb-checkbox.cjs.entry.js +3 -3
- package/dist/cjs/hb-collapse-item.cjs.entry.js +1 -1
- package/dist/cjs/hb-collapse.cjs.entry.js +1 -1
- package/dist/cjs/hb-color-picker-panel.cjs.entry.js +2 -2
- package/dist/cjs/hb-color-picker.cjs.entry.js +91 -14
- package/dist/cjs/hb-color-picker.cjs.entry.js.map +1 -1
- package/dist/cjs/hb-config-provider.cjs.entry.js +1 -1
- package/dist/cjs/hb-container.cjs.entry.js +2 -2
- package/dist/cjs/hb-date-picker-pane.cjs.entry.js +2 -2
- package/dist/cjs/hb-date-picker.cjs.entry.js +85 -7
- package/dist/cjs/hb-date-picker.cjs.entry.js.map +1 -1
- package/dist/cjs/hb-date-range-picker.cjs.entry.js +3 -3
- package/dist/cjs/hb-date-time-picker.cjs.entry.js +3 -3
- package/dist/cjs/hb-descriptions.cjs.entry.js +2 -2
- package/dist/cjs/hb-descriptions.cjs.entry.js.map +1 -1
- package/dist/cjs/hb-divider.cjs.entry.js +2 -2
- package/dist/cjs/hb-drawer.cjs.entry.js +1 -1
- package/dist/cjs/hb-dropdown.cjs.entry.js +74 -6
- package/dist/cjs/hb-dropdown.cjs.entry.js.map +1 -1
- package/dist/cjs/hb-empty.cjs.entry.js +1 -1
- package/dist/cjs/hb-float-button.cjs.entry.js +2 -2
- package/dist/cjs/hb-footer.cjs.entry.js +1 -1
- package/dist/cjs/hb-form-item.cjs.entry.js +59 -8
- package/dist/cjs/hb-form-item.cjs.entry.js.map +1 -1
- package/dist/cjs/hb-form.cjs.entry.js +3 -3
- package/dist/cjs/hb-form.cjs.entry.js.map +1 -1
- package/dist/cjs/hb-header.cjs.entry.js +1 -1
- package/dist/cjs/hb-image-preview.cjs.entry.js +12 -8
- package/dist/cjs/hb-image-preview.cjs.entry.js.map +1 -1
- package/dist/cjs/hb-image.cjs.entry.js +1 -1
- package/dist/cjs/hb-input-number.cjs.entry.js +5 -5
- package/dist/cjs/hb-input-tag.cjs.entry.js +2 -2
- package/dist/cjs/hb-input.cjs.entry.js +39 -3
- package/dist/cjs/hb-input.cjs.entry.js.map +1 -1
- package/dist/cjs/hb-layout.cjs.entry.js +36 -14
- package/dist/cjs/hb-layout.cjs.entry.js.map +1 -1
- package/dist/cjs/hb-link.cjs.entry.js +2 -2
- package/dist/cjs/hb-loading.cjs.entry.js +2 -2
- package/dist/cjs/hb-main.cjs.entry.js +1 -1
- package/dist/cjs/hb-menu-item.cjs.entry.js +2 -2
- package/dist/cjs/hb-menu.cjs.entry.js +3 -3
- package/dist/cjs/hb-menu.cjs.entry.js.map +1 -1
- package/dist/cjs/hb-message.cjs.entry.js +2 -2
- package/dist/cjs/hb-notification.cjs.entry.js +2 -2
- package/dist/cjs/hb-page-header.cjs.entry.js +1 -1
- package/dist/cjs/hb-pagination.cjs.entry.js +21 -8
- package/dist/cjs/hb-pagination.cjs.entry.js.map +1 -1
- package/dist/cjs/hb-popconfirm.cjs.entry.js +37 -7
- package/dist/cjs/hb-popconfirm.cjs.entry.js.map +1 -1
- package/dist/cjs/hb-popover.cjs.entry.js +22 -2
- package/dist/cjs/hb-popover.cjs.entry.js.map +1 -1
- package/dist/cjs/hb-progress.cjs.entry.js +1 -1
- package/dist/cjs/hb-radio.cjs.entry.js +2 -2
- package/dist/cjs/hb-rate.cjs.entry.js +45 -3
- package/dist/cjs/hb-rate.cjs.entry.js.map +1 -1
- package/dist/cjs/hb-result.cjs.entry.js +1 -1
- package/dist/cjs/hb-row.cjs.entry.js +2 -2
- package/dist/cjs/hb-segmented.cjs.entry.js +39 -5
- package/dist/cjs/hb-segmented.cjs.entry.js.map +1 -1
- package/dist/cjs/hb-select.cjs.entry.js +47 -8
- package/dist/cjs/hb-select.cjs.entry.js.map +1 -1
- package/dist/cjs/hb-slider.cjs.entry.js +189 -20
- package/dist/cjs/hb-slider.cjs.entry.js.map +1 -1
- package/dist/cjs/hb-space.cjs.entry.js +2 -2
- package/dist/cjs/hb-statistic.cjs.entry.js +1 -1
- package/dist/cjs/hb-step.cjs.entry.js +1 -1
- package/dist/cjs/hb-steps.cjs.entry.js +30 -9
- package/dist/cjs/hb-steps.cjs.entry.js.map +1 -1
- package/dist/cjs/hb-sub-menu.cjs.entry.js +4 -4
- package/dist/cjs/hb-switch.cjs.entry.js +9 -4
- package/dist/cjs/hb-switch.cjs.entry.js.map +1 -1
- package/dist/cjs/hb-tab-pane.cjs.entry.js +1 -1
- package/dist/cjs/hb-table.cjs.entry.js +1 -1
- package/dist/cjs/hb-table.cjs.entry.js.map +1 -1
- package/dist/cjs/hb-tabs.cjs.entry.js +2 -2
- package/dist/cjs/hb-tag.cjs.entry.js +2 -2
- package/dist/cjs/hb-text.cjs.entry.js +2 -2
- package/dist/cjs/hb-time-picker.cjs.entry.js +4 -4
- package/dist/cjs/hb-time-select.cjs.entry.js +2 -2
- package/dist/cjs/hb-timeline.cjs.entry.js +1 -1
- package/dist/cjs/hb-tooltip.cjs.entry.js +18 -1
- package/dist/cjs/hb-tooltip.cjs.entry.js.map +1 -1
- package/dist/cjs/hb-transfer.cjs.entry.js +2 -2
- package/dist/cjs/hb-tree-select.cjs.entry.js +95 -18
- package/dist/cjs/hb-tree-select.cjs.entry.js.map +1 -1
- package/dist/cjs/hb-tree.cjs.entry.js +1 -1
- package/dist/cjs/hb-upload.cjs.entry.js +3 -3
- package/dist/cjs/hb-watermark.cjs.entry.js +1 -1
- package/dist/cjs/huibo-ui.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +3 -3
- package/dist/collection/components/Affix/Affix.js +1 -1
- package/dist/collection/components/Avatar/Avatar.js +1 -1
- package/dist/collection/components/Backtop/Backtop.js +2 -2
- package/dist/collection/components/Badge/Badge.js +1 -1
- package/dist/collection/components/Breadcrumb/Breadcrumb.js +1 -1
- package/dist/collection/components/Breadcrumb/BreadcrumbItem.js +1 -1
- package/dist/collection/components/Button/Button.js +2 -2
- package/dist/collection/components/Calendar/Calendar.js +84 -10
- package/dist/collection/components/Calendar/Calendar.js.map +1 -1
- package/dist/collection/components/Calendar/calendar.css +16 -0
- package/dist/collection/components/Card/Card.js +1 -1
- package/dist/collection/components/Cascader/Cascader.js +374 -194
- package/dist/collection/components/Cascader/Cascader.js.map +1 -1
- package/dist/collection/components/Cascader/cascader.css +170 -16
- package/dist/collection/components/Checkbox/Checkbox.js +3 -3
- package/dist/collection/components/Checkbox/CheckboxGroup.js +2 -2
- package/dist/collection/components/Collapse/Collapse.js +1 -1
- package/dist/collection/components/Collapse/CollapseItem.js +1 -1
- package/dist/collection/components/ColorPicker/ColorPicker.js +92 -14
- package/dist/collection/components/ColorPicker/ColorPicker.js.map +1 -1
- package/dist/collection/components/ColorPicker/color-picker.css +13 -0
- package/dist/collection/components/ColorPickerPanel/ColorPickerPanel.js +2 -2
- package/dist/collection/components/ConfigProvider/ConfigProvider.js +1 -1
- package/dist/collection/components/Container/Aside.js +1 -1
- package/dist/collection/components/Container/Container.js +2 -2
- package/dist/collection/components/Container/Footer.js +1 -1
- package/dist/collection/components/Container/Header.js +1 -1
- package/dist/collection/components/Container/Main.js +1 -1
- package/dist/collection/components/DatePicker/DatePicker.js +89 -10
- package/dist/collection/components/DatePicker/DatePicker.js.map +1 -1
- package/dist/collection/components/DatePicker/date-picker.css +62 -2
- package/dist/collection/components/DatePickerPane/DatePickerPane.js +1 -1
- package/dist/collection/components/DateRangePicker/DateRangePicker.js +2 -2
- package/dist/collection/components/DateTimePicker/DateTimePicker.js +2 -2
- package/dist/collection/components/Descriptions/Descriptions.js +1 -1
- package/dist/collection/components/Descriptions/descriptions.css +22 -0
- package/dist/collection/components/Divider/Divider.js +2 -2
- package/dist/collection/components/Drawer/Drawer.js +1 -1
- package/dist/collection/components/Dropdown/Dropdown.js +83 -7
- package/dist/collection/components/Dropdown/Dropdown.js.map +1 -1
- package/dist/collection/components/Dropdown/dropdown.css +2 -1
- package/dist/collection/components/Empty/Empty.js +1 -1
- package/dist/collection/components/FloatButton/FloatButton.js +2 -2
- package/dist/collection/components/Form/Form.js +2 -2
- package/dist/collection/components/Form/FormItem.js +60 -9
- package/dist/collection/components/Form/FormItem.js.map +1 -1
- package/dist/collection/components/Form/form-item.css +49 -4
- package/dist/collection/components/Form/form.css +1 -0
- package/dist/collection/components/Image/Image.js +1 -1
- package/dist/collection/components/ImagePreview/ImagePreview.js +12 -8
- package/dist/collection/components/ImagePreview/ImagePreview.js.map +1 -1
- package/dist/collection/components/Input/Input.js +38 -2
- package/dist/collection/components/Input/Input.js.map +1 -1
- package/dist/collection/components/Input/input.css +21 -2
- package/dist/collection/components/InputNumber/InputNumber.js +5 -5
- package/dist/collection/components/InputTag/InputTag.js +2 -2
- package/dist/collection/components/Layout/Layout.js +87 -34
- package/dist/collection/components/Layout/Layout.js.map +1 -1
- package/dist/collection/components/Layout/Row.js +2 -2
- package/dist/collection/components/Layout/layout.css +524 -0
- package/dist/collection/components/Link/Link.js +2 -2
- package/dist/collection/components/Loading/Loading.js +2 -2
- package/dist/collection/components/Menu/Menu.js +2 -2
- package/dist/collection/components/Menu/MenuItem.js +2 -2
- package/dist/collection/components/Menu/SubMenu.js +4 -4
- package/dist/collection/components/Menu/menu.css +25 -0
- package/dist/collection/components/Message/Message.js +2 -2
- package/dist/collection/components/Notification/Notification.js +2 -2
- package/dist/collection/components/PageHeader/PageHeader.js +1 -1
- package/dist/collection/components/Pagination/Pagination.js +23 -7
- package/dist/collection/components/Pagination/Pagination.js.map +1 -1
- package/dist/collection/components/Pagination/pagination.css +23 -0
- package/dist/collection/components/Popconfirm/Popconfirm.js +44 -7
- package/dist/collection/components/Popconfirm/Popconfirm.js.map +1 -1
- package/dist/collection/components/Popover/Popover.js +29 -2
- package/dist/collection/components/Popover/Popover.js.map +1 -1
- package/dist/collection/components/Progress/Progress.js +1 -1
- package/dist/collection/components/Radio/Radio.js +2 -2
- package/dist/collection/components/Rate/Rate.js +45 -3
- package/dist/collection/components/Rate/Rate.js.map +1 -1
- package/dist/collection/components/Result/Result.js +1 -1
- package/dist/collection/components/Segmented/Segmented.js +51 -6
- package/dist/collection/components/Segmented/Segmented.js.map +1 -1
- package/dist/collection/components/Select/Select.js +46 -7
- package/dist/collection/components/Select/Select.js.map +1 -1
- package/dist/collection/components/Select/select.css +50 -4
- package/dist/collection/components/Slider/Slider.js +221 -21
- package/dist/collection/components/Slider/Slider.js.map +1 -1
- package/dist/collection/components/Slider/slider.css +58 -7
- package/dist/collection/components/Space/Space.js +2 -2
- package/dist/collection/components/Statistic/Statistic.js +1 -1
- package/dist/collection/components/Steps/Step.js +1 -1
- package/dist/collection/components/Steps/Steps.js +35 -8
- package/dist/collection/components/Steps/Steps.js.map +1 -1
- package/dist/collection/components/Switch/Switch.js +8 -3
- package/dist/collection/components/Switch/Switch.js.map +1 -1
- package/dist/collection/components/Switch/switch.css +45 -0
- package/dist/collection/components/Table/table.css +20 -0
- package/dist/collection/components/Tabs/TabPane.js +1 -1
- package/dist/collection/components/Tabs/Tabs.js +2 -2
- package/dist/collection/components/Tag/Tag.js +2 -2
- package/dist/collection/components/Text/Text.js +2 -2
- package/dist/collection/components/TimePicker/TimePicker.js +4 -4
- package/dist/collection/components/TimeSelect/TimeSelect.js +2 -2
- package/dist/collection/components/Timeline/Timeline.js +1 -1
- package/dist/collection/components/Tooltip/Tooltip.js +25 -2
- package/dist/collection/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/collection/components/Transfer/Transfer.js +2 -2
- package/dist/collection/components/Tree/Tree.js +1 -1
- package/dist/collection/components/TreeSelect/TreeSelect.js +94 -17
- package/dist/collection/components/TreeSelect/TreeSelect.js.map +1 -1
- package/dist/collection/components/TreeSelect/tree-select.css +41 -7
- package/dist/collection/components/Upload/Upload.js +3 -3
- package/dist/collection/components/Watermark/Watermark.js +1 -1
- package/dist/collection/utils/date-helpers.js +6 -2
- package/dist/collection/utils/date-helpers.js.map +1 -1
- package/dist/components/hb-affix.js +1 -1
- package/dist/components/hb-aside.js +1 -1
- package/dist/components/hb-avatar.js +1 -1
- package/dist/components/hb-backtop.js +2 -2
- package/dist/components/hb-badge.js +1 -1
- package/dist/components/hb-breadcrumb-item.js +1 -1
- package/dist/components/hb-breadcrumb.js +1 -1
- package/dist/components/hb-button.js +2 -2
- package/dist/components/hb-calendar.js +80 -11
- package/dist/components/hb-calendar.js.map +1 -1
- package/dist/components/hb-card.js +1 -1
- package/dist/components/hb-cascader.js +273 -146
- package/dist/components/hb-cascader.js.map +1 -1
- package/dist/components/hb-checkbox-group.js +2 -2
- package/dist/components/hb-checkbox.js +3 -3
- package/dist/components/hb-collapse-item.js +1 -1
- package/dist/components/hb-collapse.js +1 -1
- package/dist/components/hb-color-picker-panel.js +2 -2
- package/dist/components/hb-color-picker.js +93 -15
- package/dist/components/hb-color-picker.js.map +1 -1
- package/dist/components/hb-config-provider.js +1 -1
- package/dist/components/hb-container.js +2 -2
- package/dist/components/hb-date-picker-pane.js +2 -2
- package/dist/components/hb-date-picker.js +87 -8
- package/dist/components/hb-date-picker.js.map +1 -1
- package/dist/components/hb-date-range-picker.js +3 -3
- package/dist/components/hb-date-time-picker.js +3 -3
- package/dist/components/hb-descriptions.js +2 -2
- package/dist/components/hb-descriptions.js.map +1 -1
- package/dist/components/hb-divider.js +2 -2
- package/dist/components/hb-drawer.js +1 -1
- package/dist/components/hb-dropdown.js +76 -7
- package/dist/components/hb-dropdown.js.map +1 -1
- package/dist/components/hb-empty.js +1 -1
- package/dist/components/hb-float-button.js +2 -2
- package/dist/components/hb-footer.js +1 -1
- package/dist/components/hb-form-item.js +59 -8
- package/dist/components/hb-form-item.js.map +1 -1
- package/dist/components/hb-form.js +3 -3
- package/dist/components/hb-form.js.map +1 -1
- package/dist/components/hb-header.js +1 -1
- package/dist/components/hb-icon.js +1 -89
- package/dist/components/hb-icon.js.map +1 -1
- package/dist/components/hb-image-preview.js +12 -8
- package/dist/components/hb-image-preview.js.map +1 -1
- package/dist/components/hb-image.js +1 -1
- package/dist/components/hb-input-number.js +5 -5
- package/dist/components/hb-input-tag.js +2 -2
- package/dist/components/hb-input.js +39 -3
- package/dist/components/hb-input.js.map +1 -1
- package/dist/components/hb-layout.js +36 -14
- package/dist/components/hb-layout.js.map +1 -1
- package/dist/components/hb-link.js +2 -2
- package/dist/components/hb-loading.js +2 -2
- package/dist/components/hb-main.js +1 -1
- package/dist/components/hb-menu-item.js +2 -2
- package/dist/components/hb-menu.js +3 -3
- package/dist/components/hb-menu.js.map +1 -1
- package/dist/components/hb-message.js +2 -2
- package/dist/components/hb-notification.js +2 -2
- package/dist/components/hb-page-header.js +1 -1
- package/dist/components/hb-pagination.js +25 -10
- package/dist/components/hb-pagination.js.map +1 -1
- package/dist/components/hb-popconfirm.js +37 -7
- package/dist/components/hb-popconfirm.js.map +1 -1
- package/dist/components/hb-popover.js +22 -2
- package/dist/components/hb-popover.js.map +1 -1
- package/dist/components/hb-progress.js +1 -1
- package/dist/components/hb-radio.js +2 -2
- package/dist/components/hb-rate.js +45 -3
- package/dist/components/hb-rate.js.map +1 -1
- package/dist/components/hb-result.js +1 -1
- package/dist/components/hb-row.js +2 -2
- package/dist/components/hb-segmented.js +41 -6
- package/dist/components/hb-segmented.js.map +1 -1
- package/dist/components/hb-select.js +47 -8
- package/dist/components/hb-select.js.map +1 -1
- package/dist/components/hb-slider.js +194 -21
- package/dist/components/hb-slider.js.map +1 -1
- package/dist/components/hb-space.js +2 -2
- package/dist/components/hb-statistic.js +1 -1
- package/dist/components/hb-step.js +1 -1
- package/dist/components/hb-steps.js +35 -8
- package/dist/components/hb-steps.js.map +1 -1
- package/dist/components/hb-sub-menu.js +4 -4
- package/dist/components/hb-switch.js +9 -4
- package/dist/components/hb-switch.js.map +1 -1
- package/dist/components/hb-tab-pane.js +1 -1
- package/dist/components/hb-table.js +1 -1
- package/dist/components/hb-table.js.map +1 -1
- package/dist/components/hb-tabs.js +2 -2
- package/dist/components/hb-tag.js +2 -2
- package/dist/components/hb-text.js +2 -2
- package/dist/components/hb-time-picker.js +4 -4
- package/dist/components/hb-time-select.js +2 -2
- package/dist/components/hb-timeline.js +1 -1
- package/dist/components/hb-tooltip.js +18 -1
- package/dist/components/hb-tooltip.js.map +1 -1
- package/dist/components/hb-transfer.js +2 -2
- package/dist/components/hb-tree-select.js +95 -18
- package/dist/components/hb-tree-select.js.map +1 -1
- package/dist/components/hb-tree.js +1 -1
- package/dist/components/hb-upload.js +3 -3
- package/dist/components/hb-watermark.js +1 -1
- package/dist/components/{p-cf94cbf6.js → p-08b4005c.js} +7 -3
- package/dist/components/p-08b4005c.js.map +1 -0
- package/dist/components/p-86d92faf.js +93 -0
- package/dist/components/p-86d92faf.js.map +1 -0
- package/dist/esm/{date-helpers-e4d85a67.js → date-helpers-44507189.js} +7 -3
- package/dist/esm/date-helpers-44507189.js.map +1 -0
- package/dist/esm/hb-affix.entry.js +1 -1
- package/dist/esm/hb-aside.entry.js +1 -1
- package/dist/esm/hb-avatar.entry.js +1 -1
- package/dist/esm/hb-backtop.entry.js +2 -2
- package/dist/esm/hb-badge.entry.js +1 -1
- package/dist/esm/hb-breadcrumb-item.entry.js +1 -1
- package/dist/esm/hb-breadcrumb.entry.js +1 -1
- package/dist/esm/hb-button.entry.js +2 -2
- package/dist/esm/hb-calendar.entry.js +78 -10
- package/dist/esm/hb-calendar.entry.js.map +1 -1
- package/dist/esm/hb-card.entry.js +1 -1
- package/dist/esm/hb-cascader.entry.js +270 -146
- package/dist/esm/hb-cascader.entry.js.map +1 -1
- package/dist/esm/hb-checkbox-group.entry.js +2 -2
- package/dist/esm/hb-checkbox.entry.js +3 -3
- package/dist/esm/hb-collapse-item.entry.js +1 -1
- package/dist/esm/hb-collapse.entry.js +1 -1
- package/dist/esm/hb-color-picker-panel.entry.js +2 -2
- package/dist/esm/hb-color-picker.entry.js +91 -14
- package/dist/esm/hb-color-picker.entry.js.map +1 -1
- package/dist/esm/hb-config-provider.entry.js +1 -1
- package/dist/esm/hb-container.entry.js +2 -2
- package/dist/esm/hb-date-picker-pane.entry.js +2 -2
- package/dist/esm/hb-date-picker.entry.js +85 -7
- package/dist/esm/hb-date-picker.entry.js.map +1 -1
- package/dist/esm/hb-date-range-picker.entry.js +3 -3
- package/dist/esm/hb-date-time-picker.entry.js +3 -3
- package/dist/esm/hb-descriptions.entry.js +2 -2
- package/dist/esm/hb-descriptions.entry.js.map +1 -1
- package/dist/esm/hb-divider.entry.js +2 -2
- package/dist/esm/hb-drawer.entry.js +1 -1
- package/dist/esm/hb-dropdown.entry.js +74 -6
- package/dist/esm/hb-dropdown.entry.js.map +1 -1
- package/dist/esm/hb-empty.entry.js +1 -1
- package/dist/esm/hb-float-button.entry.js +2 -2
- package/dist/esm/hb-footer.entry.js +1 -1
- package/dist/esm/hb-form-item.entry.js +59 -8
- package/dist/esm/hb-form-item.entry.js.map +1 -1
- package/dist/esm/hb-form.entry.js +3 -3
- package/dist/esm/hb-form.entry.js.map +1 -1
- package/dist/esm/hb-header.entry.js +1 -1
- package/dist/esm/hb-image-preview.entry.js +12 -8
- package/dist/esm/hb-image-preview.entry.js.map +1 -1
- package/dist/esm/hb-image.entry.js +1 -1
- package/dist/esm/hb-input-number.entry.js +5 -5
- package/dist/esm/hb-input-tag.entry.js +2 -2
- package/dist/esm/hb-input.entry.js +39 -3
- package/dist/esm/hb-input.entry.js.map +1 -1
- package/dist/esm/hb-layout.entry.js +36 -14
- package/dist/esm/hb-layout.entry.js.map +1 -1
- package/dist/esm/hb-link.entry.js +2 -2
- package/dist/esm/hb-loading.entry.js +2 -2
- package/dist/esm/hb-main.entry.js +1 -1
- package/dist/esm/hb-menu-item.entry.js +2 -2
- package/dist/esm/hb-menu.entry.js +3 -3
- package/dist/esm/hb-menu.entry.js.map +1 -1
- package/dist/esm/hb-message.entry.js +2 -2
- package/dist/esm/hb-notification.entry.js +2 -2
- package/dist/esm/hb-page-header.entry.js +1 -1
- package/dist/esm/hb-pagination.entry.js +21 -8
- package/dist/esm/hb-pagination.entry.js.map +1 -1
- package/dist/esm/hb-popconfirm.entry.js +37 -7
- package/dist/esm/hb-popconfirm.entry.js.map +1 -1
- package/dist/esm/hb-popover.entry.js +22 -2
- package/dist/esm/hb-popover.entry.js.map +1 -1
- package/dist/esm/hb-progress.entry.js +1 -1
- package/dist/esm/hb-radio.entry.js +2 -2
- package/dist/esm/hb-rate.entry.js +45 -3
- package/dist/esm/hb-rate.entry.js.map +1 -1
- package/dist/esm/hb-result.entry.js +1 -1
- package/dist/esm/hb-row.entry.js +2 -2
- package/dist/esm/hb-segmented.entry.js +40 -6
- package/dist/esm/hb-segmented.entry.js.map +1 -1
- package/dist/esm/hb-select.entry.js +47 -8
- package/dist/esm/hb-select.entry.js.map +1 -1
- package/dist/esm/hb-slider.entry.js +189 -20
- package/dist/esm/hb-slider.entry.js.map +1 -1
- package/dist/esm/hb-space.entry.js +2 -2
- package/dist/esm/hb-statistic.entry.js +1 -1
- package/dist/esm/hb-step.entry.js +1 -1
- package/dist/esm/hb-steps.entry.js +28 -7
- package/dist/esm/hb-steps.entry.js.map +1 -1
- package/dist/esm/hb-sub-menu.entry.js +4 -4
- package/dist/esm/hb-switch.entry.js +9 -4
- package/dist/esm/hb-switch.entry.js.map +1 -1
- package/dist/esm/hb-tab-pane.entry.js +1 -1
- package/dist/esm/hb-table.entry.js +1 -1
- package/dist/esm/hb-table.entry.js.map +1 -1
- package/dist/esm/hb-tabs.entry.js +2 -2
- package/dist/esm/hb-tag.entry.js +2 -2
- package/dist/esm/hb-text.entry.js +2 -2
- package/dist/esm/hb-time-picker.entry.js +4 -4
- package/dist/esm/hb-time-select.entry.js +2 -2
- package/dist/esm/hb-timeline.entry.js +1 -1
- package/dist/esm/hb-tooltip.entry.js +18 -1
- package/dist/esm/hb-tooltip.entry.js.map +1 -1
- package/dist/esm/hb-transfer.entry.js +2 -2
- package/dist/esm/hb-tree-select.entry.js +95 -18
- package/dist/esm/hb-tree-select.entry.js.map +1 -1
- package/dist/esm/hb-tree.entry.js +1 -1
- package/dist/esm/hb-upload.entry.js +3 -3
- package/dist/esm/hb-watermark.entry.js +1 -1
- package/dist/esm/huibo-ui.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/huibo-ui/huibo-ui.css +1 -1
- package/dist/huibo-ui/huibo-ui.esm.js +1 -1
- package/dist/huibo-ui/huibo-ui.esm.js.map +1 -1
- package/dist/huibo-ui/p-02f15843.entry.js +2 -0
- package/dist/huibo-ui/p-08b4005c.js +2 -0
- package/dist/huibo-ui/p-08b4005c.js.map +1 -0
- package/dist/huibo-ui/{p-fd19813c.entry.js → p-0d4b2997.entry.js} +2 -2
- package/dist/huibo-ui/{p-672076c3.entry.js → p-10f6c184.entry.js} +2 -2
- package/dist/huibo-ui/p-10f6c184.entry.js.map +1 -0
- package/dist/huibo-ui/{p-d7815b4f.entry.js → p-13010da2.entry.js} +2 -2
- package/dist/huibo-ui/{p-8c80a765.entry.js → p-15db24e9.entry.js} +2 -2
- package/dist/huibo-ui/{p-8d925e3d.entry.js → p-1b0fbe69.entry.js} +2 -2
- package/dist/huibo-ui/p-1f8db37a.entry.js +2 -0
- package/dist/huibo-ui/p-1f8db37a.entry.js.map +1 -0
- package/dist/huibo-ui/{p-f374d5a3.entry.js → p-20632186.entry.js} +2 -2
- package/dist/huibo-ui/{p-e6f2d71d.entry.js → p-20fc554b.entry.js} +2 -2
- package/dist/huibo-ui/{p-315feadf.entry.js → p-213b9de7.entry.js} +2 -2
- package/dist/huibo-ui/p-25fd7d5c.entry.js +2 -0
- package/dist/huibo-ui/p-25fd7d5c.entry.js.map +1 -0
- package/dist/huibo-ui/p-2811e603.entry.js +2 -0
- package/dist/huibo-ui/p-2811e603.entry.js.map +1 -0
- package/dist/huibo-ui/{p-64ca0980.entry.js → p-2943f5d0.entry.js} +2 -2
- package/dist/huibo-ui/p-2943f5d0.entry.js.map +1 -0
- package/dist/huibo-ui/{p-710f38de.entry.js → p-2b4556ff.entry.js} +2 -2
- package/dist/huibo-ui/{p-e0ab9010.entry.js → p-33de6878.entry.js} +2 -2
- package/dist/huibo-ui/{p-ebd04656.entry.js → p-3807da71.entry.js} +2 -2
- package/dist/huibo-ui/{p-6a1ec3ff.entry.js → p-3deff48c.entry.js} +2 -2
- package/dist/huibo-ui/{p-e2a8a396.entry.js → p-41d9c846.entry.js} +2 -2
- package/dist/huibo-ui/{p-0a033738.entry.js → p-47ef7a86.entry.js} +2 -2
- package/dist/huibo-ui/p-4d34e43e.entry.js +2 -0
- package/dist/huibo-ui/p-4d34e43e.entry.js.map +1 -0
- package/dist/huibo-ui/p-54aa2fd8.entry.js +2 -0
- package/dist/huibo-ui/p-54aa2fd8.entry.js.map +1 -0
- package/dist/huibo-ui/{p-88127de1.entry.js → p-55cd13eb.entry.js} +2 -2
- package/dist/huibo-ui/{p-58ebb9b3.entry.js → p-5c839288.entry.js} +2 -2
- package/dist/huibo-ui/{p-c1b4eacb.entry.js → p-60532a1f.entry.js} +2 -2
- package/dist/huibo-ui/{p-59b2e61c.entry.js → p-626b48f1.entry.js} +2 -2
- package/dist/huibo-ui/p-626b48f1.entry.js.map +1 -0
- package/dist/huibo-ui/p-639f167d.entry.js +2 -0
- package/dist/huibo-ui/p-639f167d.entry.js.map +1 -0
- package/dist/huibo-ui/{p-f1c084c5.entry.js → p-678b4212.entry.js} +2 -2
- package/dist/huibo-ui/p-6beb5b81.entry.js +2 -0
- package/dist/huibo-ui/p-6beb5b81.entry.js.map +1 -0
- package/dist/huibo-ui/{p-a0015341.entry.js → p-6bfeab80.entry.js} +2 -2
- package/dist/huibo-ui/p-6c8cf248.entry.js +2 -0
- package/dist/huibo-ui/p-6c8cf248.entry.js.map +1 -0
- package/dist/huibo-ui/{p-85f68526.entry.js → p-735bceef.entry.js} +2 -2
- package/dist/huibo-ui/{p-8b1ae77e.entry.js → p-746a11a3.entry.js} +2 -2
- package/dist/huibo-ui/p-76519752.entry.js +2 -0
- package/dist/huibo-ui/{p-d3939d44.entry.js → p-79af2efa.entry.js} +2 -2
- package/dist/huibo-ui/{p-e0768565.entry.js → p-7da14d7c.entry.js} +2 -2
- package/dist/huibo-ui/{p-8c987d57.entry.js → p-7f65dc36.entry.js} +2 -2
- package/dist/huibo-ui/{p-0e65e1bd.entry.js → p-86bdc48a.entry.js} +2 -2
- package/dist/huibo-ui/p-86bdc48a.entry.js.map +1 -0
- package/dist/huibo-ui/{p-d87fc21a.entry.js → p-88a6c905.entry.js} +2 -2
- package/dist/huibo-ui/{p-d64b91ef.entry.js → p-89ea1141.entry.js} +2 -2
- package/dist/huibo-ui/p-89ea1141.entry.js.map +1 -0
- package/dist/huibo-ui/p-8a202bc5.entry.js +2 -0
- package/dist/huibo-ui/p-8a202bc5.entry.js.map +1 -0
- package/dist/huibo-ui/p-8a8443b8.entry.js +2 -0
- package/dist/huibo-ui/p-8a8443b8.entry.js.map +1 -0
- package/dist/huibo-ui/p-8fd788c9.entry.js +2 -0
- package/dist/huibo-ui/p-8fd788c9.entry.js.map +1 -0
- package/dist/huibo-ui/{p-9319c650.entry.js → p-8fdbd17c.entry.js} +2 -2
- package/dist/huibo-ui/p-92521c31.entry.js +2 -0
- package/dist/huibo-ui/p-92521c31.entry.js.map +1 -0
- package/dist/huibo-ui/{p-c3e665f6.entry.js → p-9a5406f0.entry.js} +2 -2
- package/dist/huibo-ui/p-9a5406f0.entry.js.map +1 -0
- package/dist/huibo-ui/{p-c321c4aa.entry.js → p-a084b8e5.entry.js} +2 -2
- package/dist/huibo-ui/{p-5df47135.entry.js → p-a190ca89.entry.js} +2 -2
- package/dist/huibo-ui/{p-463de26d.entry.js → p-a8996d22.entry.js} +2 -2
- package/dist/huibo-ui/p-aa5e5e02.entry.js +2 -0
- package/dist/huibo-ui/p-aa5e5e02.entry.js.map +1 -0
- package/dist/huibo-ui/{p-6b381d0e.entry.js → p-ab9cf0e4.entry.js} +2 -2
- package/dist/huibo-ui/{p-477d8568.entry.js → p-aeae83af.entry.js} +2 -2
- package/dist/huibo-ui/{p-77017274.entry.js → p-af74667d.entry.js} +2 -2
- package/dist/huibo-ui/{p-b489a526.entry.js → p-b06c8020.entry.js} +2 -2
- package/dist/huibo-ui/{p-2e6584ea.entry.js → p-b468858e.entry.js} +2 -2
- package/dist/huibo-ui/{p-2b286698.entry.js → p-b7885d4a.entry.js} +2 -2
- package/dist/huibo-ui/{p-231a7335.entry.js → p-b8d87f7e.entry.js} +2 -2
- package/dist/huibo-ui/{p-8b027491.entry.js → p-c50ad398.entry.js} +2 -2
- package/dist/huibo-ui/p-c6c91664.entry.js +2 -0
- package/dist/huibo-ui/{p-c3e8893d.entry.js → p-c80f8ace.entry.js} +2 -2
- package/dist/huibo-ui/p-c80f8ace.entry.js.map +1 -0
- package/dist/huibo-ui/{p-476527c1.entry.js → p-c8e917db.entry.js} +2 -2
- package/dist/huibo-ui/p-c8e917db.entry.js.map +1 -0
- package/dist/huibo-ui/{p-c922d672.entry.js → p-cad57c2d.entry.js} +2 -2
- package/dist/huibo-ui/{p-a042e3d0.entry.js → p-ccd09d5a.entry.js} +2 -2
- package/dist/huibo-ui/p-d79a15b1.entry.js +2 -0
- package/dist/huibo-ui/p-d79a15b1.entry.js.map +1 -0
- package/dist/huibo-ui/{p-10c088f3.entry.js → p-d9c7c378.entry.js} +2 -2
- package/dist/huibo-ui/{p-80aca641.entry.js → p-dfccc7aa.entry.js} +2 -2
- package/dist/huibo-ui/{p-21682e92.entry.js → p-dfd144d8.entry.js} +2 -2
- package/dist/huibo-ui/{p-be48d2aa.entry.js → p-e039155d.entry.js} +2 -2
- package/dist/huibo-ui/{p-dfaf7e37.entry.js → p-e10fcfbe.entry.js} +2 -2
- package/dist/huibo-ui/{p-079a4130.entry.js → p-e3155cd7.entry.js} +2 -2
- package/dist/huibo-ui/{p-4001c08d.entry.js → p-e5cbfa9e.entry.js} +2 -2
- package/dist/huibo-ui/p-e5cbfa9e.entry.js.map +1 -0
- package/dist/huibo-ui/p-edbda423.entry.js +2 -0
- package/dist/huibo-ui/p-edbda423.entry.js.map +1 -0
- package/dist/huibo-ui/{p-465dcb4c.entry.js → p-f2c78699.entry.js} +2 -2
- package/dist/huibo-ui/{p-6ac242fe.entry.js → p-f4336be9.entry.js} +2 -2
- package/dist/huibo-ui/{p-332c8877.entry.js → p-f5969181.entry.js} +2 -2
- package/dist/huibo-ui/{p-f81ec512.entry.js → p-f6889710.entry.js} +2 -2
- package/dist/huibo-ui/{p-24ad7eec.entry.js → p-f9bb5217.entry.js} +2 -2
- package/dist/huibo-ui/{p-4d8b1404.entry.js → p-fd8301c6.entry.js} +2 -2
- package/dist/huibo-ui/{p-dd05cb2c.entry.js → p-fea20295.entry.js} +2 -2
- package/dist/types/components/Calendar/Calendar.d.ts +13 -1
- package/dist/types/components/Cascader/Cascader.d.ts +68 -90
- package/dist/types/components/ColorPicker/ColorPicker.d.ts +11 -0
- package/dist/types/components/DatePicker/DatePicker.d.ts +14 -3
- package/dist/types/components/Dropdown/Dropdown.d.ts +14 -1
- package/dist/types/components/Form/FormItem.d.ts +10 -0
- package/dist/types/components/ImagePreview/ImagePreview.d.ts +5 -1
- package/dist/types/components/Input/Input.d.ts +9 -0
- package/dist/types/components/Layout/Layout.d.ts +20 -10
- package/dist/types/components/Pagination/Pagination.d.ts +3 -0
- package/dist/types/components/Popconfirm/Popconfirm.d.ts +12 -0
- package/dist/types/components/Popover/Popover.d.ts +9 -0
- package/dist/types/components/Rate/Rate.d.ts +7 -0
- package/dist/types/components/Segmented/Segmented.d.ts +12 -1
- package/dist/types/components/Select/Select.d.ts +6 -0
- package/dist/types/components/Slider/Slider.d.ts +27 -1
- package/dist/types/components/Steps/Steps.d.ts +14 -6
- package/dist/types/components/Tooltip/Tooltip.d.ts +9 -1
- package/dist/types/components/TreeSelect/TreeSelect.d.ts +9 -0
- package/dist/types/components.d.ts +250 -94
- package/dist/types/utils/date-helpers.d.ts +1 -1
- package/package.json +8 -2
- package/readme.md +88 -73
- package/dist/cjs/date-helpers-904747ff.js.map +0 -1
- package/dist/components/p-cf94cbf6.js.map +0 -1
- package/dist/esm/date-helpers-e4d85a67.js.map +0 -1
- package/dist/huibo-ui/p-003cee87.entry.js +0 -2
- package/dist/huibo-ui/p-003cee87.entry.js.map +0 -1
- package/dist/huibo-ui/p-0bef78ac.entry.js +0 -2
- package/dist/huibo-ui/p-0bef78ac.entry.js.map +0 -1
- package/dist/huibo-ui/p-0e65e1bd.entry.js.map +0 -1
- package/dist/huibo-ui/p-0f189251.entry.js +0 -2
- package/dist/huibo-ui/p-0f189251.entry.js.map +0 -1
- package/dist/huibo-ui/p-1b5acd6d.entry.js +0 -2
- package/dist/huibo-ui/p-1b5acd6d.entry.js.map +0 -1
- package/dist/huibo-ui/p-3c7f73c8.entry.js +0 -2
- package/dist/huibo-ui/p-3c7f73c8.entry.js.map +0 -1
- package/dist/huibo-ui/p-4001c08d.entry.js.map +0 -1
- package/dist/huibo-ui/p-44c48246.entry.js +0 -2
- package/dist/huibo-ui/p-44c48246.entry.js.map +0 -1
- package/dist/huibo-ui/p-476527c1.entry.js.map +0 -1
- package/dist/huibo-ui/p-4d0dff15.entry.js +0 -2
- package/dist/huibo-ui/p-58d20809.entry.js +0 -2
- package/dist/huibo-ui/p-58d20809.entry.js.map +0 -1
- package/dist/huibo-ui/p-59b2e61c.entry.js.map +0 -1
- package/dist/huibo-ui/p-64ca0980.entry.js.map +0 -1
- package/dist/huibo-ui/p-672076c3.entry.js.map +0 -1
- package/dist/huibo-ui/p-756acbdb.entry.js +0 -2
- package/dist/huibo-ui/p-756acbdb.entry.js.map +0 -1
- package/dist/huibo-ui/p-75a93de3.entry.js +0 -2
- package/dist/huibo-ui/p-75a93de3.entry.js.map +0 -1
- package/dist/huibo-ui/p-769960f4.entry.js +0 -2
- package/dist/huibo-ui/p-8d615521.entry.js +0 -2
- package/dist/huibo-ui/p-8d615521.entry.js.map +0 -1
- package/dist/huibo-ui/p-953b9514.entry.js +0 -2
- package/dist/huibo-ui/p-ad6b0c6e.entry.js +0 -2
- package/dist/huibo-ui/p-ad6b0c6e.entry.js.map +0 -1
- package/dist/huibo-ui/p-c1a059d9.entry.js +0 -2
- package/dist/huibo-ui/p-c1a059d9.entry.js.map +0 -1
- package/dist/huibo-ui/p-c3e665f6.entry.js.map +0 -1
- package/dist/huibo-ui/p-c3e8893d.entry.js.map +0 -1
- package/dist/huibo-ui/p-cf94cbf6.js +0 -2
- package/dist/huibo-ui/p-cf94cbf6.js.map +0 -1
- package/dist/huibo-ui/p-d64b91ef.entry.js.map +0 -1
- package/dist/huibo-ui/p-e9490259.entry.js +0 -2
- package/dist/huibo-ui/p-e9490259.entry.js.map +0 -1
- package/dist/huibo-ui/p-ed0ff857.entry.js +0 -2
- package/dist/huibo-ui/p-ed0ff857.entry.js.map +0 -1
- package/dist/huibo-ui/p-f0ac7db5.entry.js +0 -2
- package/dist/huibo-ui/p-f0ac7db5.entry.js.map +0 -1
- /package/dist/huibo-ui/{p-4d0dff15.entry.js.map → p-02f15843.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-fd19813c.entry.js.map → p-0d4b2997.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-d7815b4f.entry.js.map → p-13010da2.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-8c80a765.entry.js.map → p-15db24e9.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-8d925e3d.entry.js.map → p-1b0fbe69.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-f374d5a3.entry.js.map → p-20632186.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-e6f2d71d.entry.js.map → p-20fc554b.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-315feadf.entry.js.map → p-213b9de7.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-710f38de.entry.js.map → p-2b4556ff.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-e0ab9010.entry.js.map → p-33de6878.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-ebd04656.entry.js.map → p-3807da71.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-6a1ec3ff.entry.js.map → p-3deff48c.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-e2a8a396.entry.js.map → p-41d9c846.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-0a033738.entry.js.map → p-47ef7a86.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-88127de1.entry.js.map → p-55cd13eb.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-58ebb9b3.entry.js.map → p-5c839288.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-c1b4eacb.entry.js.map → p-60532a1f.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-f1c084c5.entry.js.map → p-678b4212.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-a0015341.entry.js.map → p-6bfeab80.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-85f68526.entry.js.map → p-735bceef.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-8b1ae77e.entry.js.map → p-746a11a3.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-953b9514.entry.js.map → p-76519752.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-d3939d44.entry.js.map → p-79af2efa.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-e0768565.entry.js.map → p-7da14d7c.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-8c987d57.entry.js.map → p-7f65dc36.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-d87fc21a.entry.js.map → p-88a6c905.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-9319c650.entry.js.map → p-8fdbd17c.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-c321c4aa.entry.js.map → p-a084b8e5.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-5df47135.entry.js.map → p-a190ca89.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-463de26d.entry.js.map → p-a8996d22.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-6b381d0e.entry.js.map → p-ab9cf0e4.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-477d8568.entry.js.map → p-aeae83af.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-77017274.entry.js.map → p-af74667d.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-b489a526.entry.js.map → p-b06c8020.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-2e6584ea.entry.js.map → p-b468858e.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-2b286698.entry.js.map → p-b7885d4a.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-231a7335.entry.js.map → p-b8d87f7e.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-8b027491.entry.js.map → p-c50ad398.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-769960f4.entry.js.map → p-c6c91664.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-c922d672.entry.js.map → p-cad57c2d.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-a042e3d0.entry.js.map → p-ccd09d5a.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-10c088f3.entry.js.map → p-d9c7c378.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-80aca641.entry.js.map → p-dfccc7aa.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-21682e92.entry.js.map → p-dfd144d8.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-be48d2aa.entry.js.map → p-e039155d.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-dfaf7e37.entry.js.map → p-e10fcfbe.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-079a4130.entry.js.map → p-e3155cd7.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-465dcb4c.entry.js.map → p-f2c78699.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-6ac242fe.entry.js.map → p-f4336be9.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-332c8877.entry.js.map → p-f5969181.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-f81ec512.entry.js.map → p-f6889710.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-24ad7eec.entry.js.map → p-f9bb5217.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-4d8b1404.entry.js.map → p-fd8301c6.entry.js.map} +0 -0
- /package/dist/huibo-ui/{p-dd05cb2c.entry.js.map → p-fea20295.entry.js.map} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { p as proxyCustomElement, H, c as createEvent, h } from './p-1407a5e8.js';
|
|
2
2
|
|
|
3
|
-
const sliderCss = "/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}@layer theme{:host,:root{--font-sans:ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,::backdrop,:after,:before{border:0 solid;box-sizing:border-box;margin:0;padding:0}::file-selector-button{appearance:button;background-color:#0000;border:0 solid;border-radius:0;box-sizing:border-box;color:inherit;font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;margin:0;margin-inline-end:4px;opacity:1;padding:0}:host,html{-webkit-text-size-adjust:100%;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);line-height:1.5;tab-size:4;-webkit-tap-highlight-color:transparent}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-size:1em;font-variation-settings:var(--default-mono-font-variation-settings,normal)}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}button,input,optgroup,select,textarea{background-color:#0000;border-radius:0;color:inherit;font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;opacity:1}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex;padding-block:0}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field,::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}} /*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer components;:host{--hb-slider-main-bg-color:var(--hb-color-primary);--hb-slider-runway-bg-color:var(--hb-fill-color-light,#e4e7ed);--hb-slider-stop-bg-color:var(--hb-color-white,#fff);--hb-slider-button-size:20px;display:inline-block}.hb-slider{align-items:center;display:flex;height:40px;position:relative;width:100%}.hb-slider--vertical{flex-direction:column;height:100%;width:40px}.hb-slider__runway{background-color:var(--hb-slider-runway-bg-color);border-radius:3px;cursor:pointer;height:6px;margin:16px 0;position:relative;vertical-align:middle;width:100%}.hb-slider--vertical .hb-slider__runway{height:100%;margin:0 16px;width:6px}.hb-slider__bar{background-color:var(--hb-slider-main-bg-color);border-bottom-left-radius:3px;border-top-left-radius:3px;height:6px;
|
|
3
|
+
const sliderCss = "/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}@layer theme{:host,:root{--font-sans:ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,::backdrop,:after,:before{border:0 solid;box-sizing:border-box;margin:0;padding:0}::file-selector-button{appearance:button;background-color:#0000;border:0 solid;border-radius:0;box-sizing:border-box;color:inherit;font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;margin:0;margin-inline-end:4px;opacity:1;padding:0}:host,html{-webkit-text-size-adjust:100%;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);line-height:1.5;tab-size:4;-webkit-tap-highlight-color:transparent}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-size:1em;font-variation-settings:var(--default-mono-font-variation-settings,normal)}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}button,input,optgroup,select,textarea{background-color:#0000;border-radius:0;color:inherit;font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;opacity:1}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex;padding-block:0}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field,::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}} /*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer components;:host{--hb-slider-main-bg-color:var(--hb-color-primary);--hb-slider-runway-bg-color:var(--hb-fill-color-light,#e4e7ed);--hb-slider-stop-bg-color:var(--hb-color-white,#fff);--hb-slider-button-size:20px;display:inline-block}.hb-slider{align-items:center;display:flex;height:40px;position:relative;width:100%}.hb-slider--vertical{flex-direction:column;height:100%;width:40px}.hb-slider__runway{background-color:var(--hb-slider-runway-bg-color);border-radius:3px;cursor:pointer;height:6px;margin:16px 0;position:relative;vertical-align:middle;width:100%}.hb-slider--vertical .hb-slider__runway{height:100%;margin:0 16px;width:6px}.hb-slider__bar{background-color:var(--hb-slider-main-bg-color);border-bottom-left-radius:3px;border-top-left-radius:3px;height:6px;position:absolute;top:0}.hb-slider--vertical .hb-slider__bar{border-bottom-left-radius:0;border-top-left-radius:3px;border-top-right-radius:3px;bottom:0;height:auto;top:auto;width:6px}.hb-slider__button-wrapper{align-items:center;background-color:#0000;cursor:pointer;display:inline-flex;justify-content:center;outline:none;position:absolute;text-align:center;top:50%;transform:translate(-50%,-50%);-webkit-user-select:none;user-select:none;z-index:1001}.hb-slider--vertical .hb-slider__button-wrapper{left:50%;top:auto;transform:translate(-50%,50%)}.hb-slider__button{background-color:var(--hb-color-white,#fff);border:2px solid var(--hb-slider-main-bg-color);border-radius:50%;cursor:grab;height:var(--hb-slider-button-size);transition:all .2s;-webkit-user-select:none;user-select:none;width:var(--hb-slider-button-size)}.hb-slider__button:active{cursor:grabbing}.hb-slider__button-wrapper--hover .hb-slider__button,.hb-slider__button-wrapper:hover .hb-slider__button{transform:scale(1.2)}.hb-slider__tooltip{background-color:#000000bf;border-radius:4px;bottom:calc(100% + 12px);color:var(--hb-color-white,#fff);font-size:12px;padding:6px 8px;white-space:nowrap}.hb-slider__tooltip,.hb-slider__tooltip:after{left:50%;position:absolute;transform:translate(-50%)}.hb-slider__tooltip:after{border:4px solid #0000;border-top-color:#000000bf;content:\"\";top:100%}.hb-slider--disabled{cursor:not-allowed}.hb-slider--disabled .hb-slider__runway{background-color:var(--hb-fill-color-light,#e4e7ed);cursor:not-allowed}.hb-slider--disabled .hb-slider__bar{background-color:var(--hb-color-text-disabled,#c0c4cc)}.hb-slider--disabled .hb-slider__button{border-color:var(--hb-color-text-disabled,#c0c4cc);cursor:not-allowed}.hb-slider__mark{background-color:var(--hb-color-border,#dcdfe6);height:6px;pointer-events:none;top:0;width:2px}.hb-slider__mark,.hb-slider__mark-label{position:absolute;transform:translate(-50%)}.hb-slider__mark-label{color:var(--hb-color-text-secondary,#606266);font-size:var(--hb-font-size-xs,12px);left:50%;margin-top:var(--hb-spacing-xs,4px);top:100%;white-space:nowrap}.hb-slider--with-marks{padding-bottom:var(--hb-spacing-lg,16px)}.hb-slider--vertical .hb-slider__mark{height:2px;left:50%;top:auto;transform:translate(-50%,-50%);width:6px}.hb-slider--vertical .hb-slider__mark-label{left:100%;margin-left:var(--hb-spacing-xs,4px);margin-top:0;top:50%;transform:translateY(-50%)}.hb-slider__button-wrapper:focus{outline:none}.hb-slider__button-wrapper:focus-visible .hb-slider__button{box-shadow:0 0 0 4px var(--hb-color-primary-bg,#1677ff1f)}@property --tw-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:\"*\";inherits:false}@property --tw-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:\"*\";inherits:false}@property --tw-inset-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:\"*\";inherits:false}@property --tw-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:\"*\";inherits:false}@property --tw-inset-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:\"*\";inherits:false}@property --tw-ring-offset-width{syntax:\"<length>\";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:\"*\";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}";
|
|
4
4
|
const HbSliderStyle0 = sliderCss;
|
|
5
5
|
|
|
6
6
|
const Slider = /*@__PURE__*/ proxyCustomElement(class Slider extends H {
|
|
@@ -59,12 +59,20 @@ const Slider = /*@__PURE__*/ proxyCustomElement(class Slider extends H {
|
|
|
59
59
|
* 高度,竖向模式时必填
|
|
60
60
|
*/
|
|
61
61
|
height;
|
|
62
|
+
/**
|
|
63
|
+
* 刻度标记(对齐 antd marks)
|
|
64
|
+
*/
|
|
65
|
+
marks;
|
|
62
66
|
dragging = false;
|
|
63
67
|
currentValue = 0;
|
|
64
68
|
tooltipVisible = false;
|
|
65
69
|
tooltipValue = 0;
|
|
70
|
+
/** range 模式下当前拖动的是哪个手柄(0/1),用于 tooltip 定位与渲染 */
|
|
71
|
+
activeHandle = 0;
|
|
66
72
|
sliderRef;
|
|
67
73
|
isDragging = false;
|
|
74
|
+
/** 拖动期间锁定的手柄索引(鼠标按下时确定) */
|
|
75
|
+
dragHandle = null;
|
|
68
76
|
/**
|
|
69
77
|
* 值改变事件
|
|
70
78
|
*/
|
|
@@ -74,12 +82,28 @@ const Slider = /*@__PURE__*/ proxyCustomElement(class Slider extends H {
|
|
|
74
82
|
*/
|
|
75
83
|
hbInput;
|
|
76
84
|
componentDidLoad() {
|
|
77
|
-
this.currentValue = this.modelValue;
|
|
85
|
+
this.currentValue = this.normalizeInitial(this.modelValue);
|
|
78
86
|
this.addEventListeners();
|
|
79
87
|
}
|
|
80
88
|
disconnectedCallback() {
|
|
81
89
|
this.removeEventListeners();
|
|
82
90
|
}
|
|
91
|
+
/** 外部更新 modelValue 时同步内部 currentValue(对齐 antd 受控语义) */
|
|
92
|
+
handleModelChange() {
|
|
93
|
+
if (!this.isDragging) {
|
|
94
|
+
this.currentValue = this.normalizeInitial(this.modelValue);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
/** range 模式下确保 currentValue 为 [min, max] 形状的有序数组 */
|
|
98
|
+
normalizeInitial(v) {
|
|
99
|
+
if (this.range) {
|
|
100
|
+
if (Array.isArray(v) && v.length === 2) {
|
|
101
|
+
return v[0] <= v[1] ? [v[0], v[1]] : [v[1], v[0]];
|
|
102
|
+
}
|
|
103
|
+
return [this.min, this.max];
|
|
104
|
+
}
|
|
105
|
+
return typeof v === 'number' ? v : (Array.isArray(v) ? v[0] ?? this.min : this.min);
|
|
106
|
+
}
|
|
83
107
|
addEventListeners() {
|
|
84
108
|
document.addEventListener('mousemove', this.handleMouseMove);
|
|
85
109
|
document.addEventListener('mouseup', this.handleMouseUp);
|
|
@@ -89,18 +113,31 @@ const Slider = /*@__PURE__*/ proxyCustomElement(class Slider extends H {
|
|
|
89
113
|
document.removeEventListener('mouseup', this.handleMouseUp);
|
|
90
114
|
}
|
|
91
115
|
getPercentage(value) {
|
|
116
|
+
if (this.max === this.min)
|
|
117
|
+
return 0;
|
|
92
118
|
return ((value - this.min) / (this.max - this.min)) * 100;
|
|
93
119
|
}
|
|
94
120
|
getValueFromPercentage(percentage) {
|
|
95
121
|
const value = this.min + (percentage / 100) * (this.max - this.min);
|
|
96
|
-
|
|
122
|
+
const snapped = Math.round(value / this.step) * this.step;
|
|
123
|
+
return Math.max(this.min, Math.min(this.max, snapped));
|
|
124
|
+
}
|
|
125
|
+
/** 鼠标按下时根据落点决定拖哪个手柄(range:更近的那个) */
|
|
126
|
+
resolveHandle(percentage) {
|
|
127
|
+
if (!this.range)
|
|
128
|
+
return 0;
|
|
129
|
+
const vals = this.currentValue;
|
|
130
|
+
const leftPct = this.getPercentage(vals[0]);
|
|
131
|
+
const rightPct = this.getPercentage(vals[1]);
|
|
132
|
+
return Math.abs(percentage - leftPct) <= Math.abs(percentage - rightPct) ? 0 : 1;
|
|
97
133
|
}
|
|
98
|
-
handleMouseDown = (e) => {
|
|
134
|
+
handleMouseDown = (e, handle = null) => {
|
|
99
135
|
if (this.disabled)
|
|
100
136
|
return;
|
|
101
137
|
e.preventDefault();
|
|
102
138
|
this.isDragging = true;
|
|
103
139
|
this.dragging = true;
|
|
140
|
+
this.dragHandle = handle;
|
|
104
141
|
this.handleDrag(e);
|
|
105
142
|
};
|
|
106
143
|
handleMouseMove = (e) => {
|
|
@@ -114,6 +151,7 @@ const Slider = /*@__PURE__*/ proxyCustomElement(class Slider extends H {
|
|
|
114
151
|
this.isDragging = false;
|
|
115
152
|
this.dragging = false;
|
|
116
153
|
this.tooltipVisible = false;
|
|
154
|
+
this.dragHandle = null;
|
|
117
155
|
this.hbChange.emit(this.currentValue);
|
|
118
156
|
};
|
|
119
157
|
handleDrag(e) {
|
|
@@ -126,11 +164,23 @@ const Slider = /*@__PURE__*/ proxyCustomElement(class Slider extends H {
|
|
|
126
164
|
const clampedPercentage = Math.max(0, Math.min(100, percentage * 100));
|
|
127
165
|
const value = this.getValueFromPercentage(clampedPercentage);
|
|
128
166
|
if (this.range) {
|
|
129
|
-
const
|
|
130
|
-
//
|
|
131
|
-
this.
|
|
167
|
+
const vals = this.currentValue;
|
|
168
|
+
// 优先用 mousedown 时锁定的手柄;未锁定(点击 runway)则按落点就近
|
|
169
|
+
const handle = this.dragHandle !== null ? this.dragHandle : this.resolveHandle(clampedPercentage);
|
|
170
|
+
this.activeHandle = handle;
|
|
171
|
+
let [lo, hi] = [vals[0], vals[1]];
|
|
172
|
+
if (handle === 0) {
|
|
173
|
+
lo = Math.min(value, hi);
|
|
174
|
+
}
|
|
175
|
+
else {
|
|
176
|
+
hi = Math.max(value, lo);
|
|
177
|
+
}
|
|
178
|
+
this.currentValue = [lo, hi];
|
|
179
|
+
this.tooltipValue = handle === 0 ? lo : hi;
|
|
180
|
+
this.tooltipVisible = true;
|
|
132
181
|
}
|
|
133
182
|
else {
|
|
183
|
+
this.activeHandle = 0;
|
|
134
184
|
this.currentValue = value;
|
|
135
185
|
this.tooltipValue = value;
|
|
136
186
|
this.tooltipVisible = true;
|
|
@@ -138,30 +188,149 @@ const Slider = /*@__PURE__*/ proxyCustomElement(class Slider extends H {
|
|
|
138
188
|
this.modelValue = this.currentValue;
|
|
139
189
|
this.hbInput.emit(this.currentValue);
|
|
140
190
|
}
|
|
191
|
+
/** 键盘可访问:方向键调整当前手柄,对齐 WAI-ARIA slider pattern */
|
|
192
|
+
handleKeyDown = (e) => {
|
|
193
|
+
if (this.disabled)
|
|
194
|
+
return;
|
|
195
|
+
const { key } = e;
|
|
196
|
+
const isDecrease = key === 'ArrowLeft' || key === 'ArrowDown';
|
|
197
|
+
const isIncrease = key === 'ArrowRight' || key === 'ArrowUp';
|
|
198
|
+
const isBigDecrease = key === 'PageDown' || key === 'Home';
|
|
199
|
+
const isBigIncrease = key === 'PageUp' || key === 'End';
|
|
200
|
+
if (!isDecrease && !isIncrease && !isBigDecrease && !isBigIncrease)
|
|
201
|
+
return;
|
|
202
|
+
e.preventDefault();
|
|
203
|
+
const delta = isBigDecrease ? -this.max :
|
|
204
|
+
isBigIncrease ? this.max :
|
|
205
|
+
(isDecrease ? -1 : 1) * this.step;
|
|
206
|
+
if (this.range) {
|
|
207
|
+
const vals = this.currentValue;
|
|
208
|
+
let [lo, hi] = [vals[0], vals[1]];
|
|
209
|
+
if (this.activeHandle === 0) {
|
|
210
|
+
lo = Math.max(this.min, Math.min(lo + delta, hi));
|
|
211
|
+
}
|
|
212
|
+
else {
|
|
213
|
+
hi = Math.min(this.max, Math.max(hi + delta, lo));
|
|
214
|
+
}
|
|
215
|
+
this.currentValue = [lo, hi];
|
|
216
|
+
this.tooltipValue = this.activeHandle === 0 ? lo : hi;
|
|
217
|
+
this.tooltipVisible = true;
|
|
218
|
+
}
|
|
219
|
+
else {
|
|
220
|
+
const next = Math.max(this.min, Math.min(this.currentValue + delta, this.max));
|
|
221
|
+
this.currentValue = next;
|
|
222
|
+
this.tooltipValue = next;
|
|
223
|
+
this.tooltipVisible = true;
|
|
224
|
+
}
|
|
225
|
+
this.modelValue = this.currentValue;
|
|
226
|
+
this.hbChange.emit(this.currentValue);
|
|
227
|
+
this.hbInput.emit(this.currentValue);
|
|
228
|
+
};
|
|
141
229
|
formatValue(value) {
|
|
142
230
|
if (this.formatTooltip) {
|
|
143
231
|
return this.formatTooltip(value);
|
|
144
232
|
}
|
|
145
233
|
return String(value);
|
|
146
234
|
}
|
|
235
|
+
/** 规范化 marks 为 [{value,label}] 数组 */
|
|
236
|
+
get markList() {
|
|
237
|
+
if (!this.marks)
|
|
238
|
+
return [];
|
|
239
|
+
if (Array.isArray(this.marks))
|
|
240
|
+
return this.marks;
|
|
241
|
+
return Object.entries(this.marks).map(([k, v]) => ({ value: Number(k), label: v }));
|
|
242
|
+
}
|
|
147
243
|
render() {
|
|
148
|
-
const
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
244
|
+
const range = this.range;
|
|
245
|
+
const singlePct = this.getPercentage(this.currentValue);
|
|
246
|
+
const rangeVals = range ? this.currentValue : [0, 0];
|
|
247
|
+
const leftPct = range ? this.getPercentage(rangeVals[0]) : 0;
|
|
248
|
+
const rightPct = range ? this.getPercentage(rangeVals[1]) : singlePct;
|
|
249
|
+
// bar:单滑块从 min 到 value;range 从 lo 到 hi
|
|
250
|
+
const barStart = range ? leftPct : 0;
|
|
251
|
+
const barSize = range ? rightPct - leftPct : singlePct;
|
|
252
|
+
const posProp = this.vertical ? 'bottom' : 'left';
|
|
253
|
+
const sizeProp = this.vertical ? 'height' : 'width';
|
|
254
|
+
const renderHandle = (handle, pct) => {
|
|
255
|
+
const tooltipVal = range ? rangeVals[handle] : this.currentValue;
|
|
256
|
+
const isActive = this.tooltipVisible && (range ? this.activeHandle === handle : true);
|
|
257
|
+
return (h("div", { class: {
|
|
258
|
+
'hb-slider__button-wrapper': true,
|
|
259
|
+
'hb-slider__button-wrapper--hover': isActive,
|
|
260
|
+
}, style: { [posProp]: `${pct}%` }, onMouseDown: (e) => this.handleMouseDown(e, handle), onTouchStart: (e) => this.handleTouchStart(e, handle), role: "slider", tabindex: this.disabled ? -1 : 0, "aria-valuemin": this.min, "aria-valuemax": this.max, "aria-valuenow": tooltipVal, "aria-valuetext": this.formatValue(tooltipVal), "aria-orientation": this.vertical ? 'vertical' : 'horizontal', "aria-disabled": this.disabled ? 'true' : 'false', onKeyDown: this.handleKeyDown }, this.showTooltip && isActive && (h("div", { class: "hb-slider__tooltip" }, this.formatValue(this.tooltipValue))), h("div", { class: "hb-slider__button" })));
|
|
261
|
+
};
|
|
262
|
+
return (h("div", { class: {
|
|
152
263
|
'hb-slider': true,
|
|
153
264
|
'hb-slider--vertical': this.vertical,
|
|
154
265
|
'hb-slider--disabled': this.disabled,
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
[
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
266
|
+
'hb-slider--with-marks': this.markList.length > 0,
|
|
267
|
+
}, style: this.vertical && this.height ? { height: this.height } : undefined }, h("div", { class: "hb-slider__runway", ref: (el) => (this.sliderRef = el), onMouseDown: (e) => this.handleMouseDown(e, null), onTouchStart: (e) => this.handleTouchStart(e, null) }, h("div", { class: "hb-slider__bar", style: {
|
|
268
|
+
[sizeProp]: `${Math.max(0, barSize)}%`,
|
|
269
|
+
[posProp]: `${barStart}%`,
|
|
270
|
+
} }), this.markList.map(m => {
|
|
271
|
+
const pct = this.getPercentage(m.value);
|
|
272
|
+
return (h("div", { class: "hb-slider__mark", style: { [posProp]: `${pct}%` }, "aria-hidden": "true" }, m.label && h("span", { class: "hb-slider__mark-label" }, m.label)));
|
|
273
|
+
}), range ? renderHandle(0, leftPct) : null, renderHandle(range ? 1 : 0, range ? rightPct : singlePct))));
|
|
274
|
+
}
|
|
275
|
+
/** 触屏支持:把 touch 事件映射到 mouse 同等逻辑(移动端可用) */
|
|
276
|
+
handleTouchStart = (e, handle) => {
|
|
277
|
+
if (this.disabled)
|
|
278
|
+
return;
|
|
279
|
+
e.preventDefault();
|
|
280
|
+
const touch = e.touches[0];
|
|
281
|
+
this.isDragging = true;
|
|
282
|
+
this.dragging = true;
|
|
283
|
+
this.dragHandle = handle;
|
|
284
|
+
this.dragFromTouch(touch.clientX, touch.clientY);
|
|
285
|
+
const move = (ev) => {
|
|
286
|
+
const t = ev.touches[0];
|
|
287
|
+
this.dragFromTouch(t.clientX, t.clientY);
|
|
288
|
+
};
|
|
289
|
+
const end = () => {
|
|
290
|
+
this.isDragging = false;
|
|
291
|
+
this.dragging = false;
|
|
292
|
+
this.tooltipVisible = false;
|
|
293
|
+
this.dragHandle = null;
|
|
294
|
+
this.hbChange.emit(this.currentValue);
|
|
295
|
+
document.removeEventListener('touchmove', move);
|
|
296
|
+
document.removeEventListener('touchend', end);
|
|
297
|
+
};
|
|
298
|
+
document.addEventListener('touchmove', move, { passive: false });
|
|
299
|
+
document.addEventListener('touchend', end);
|
|
300
|
+
};
|
|
301
|
+
dragFromTouch(clientX, clientY) {
|
|
302
|
+
if (!this.sliderRef)
|
|
303
|
+
return;
|
|
304
|
+
const rect = this.sliderRef.getBoundingClientRect();
|
|
305
|
+
const percentage = this.vertical
|
|
306
|
+
? 1 - (clientY - rect.top) / rect.height
|
|
307
|
+
: (clientX - rect.left) / rect.width;
|
|
308
|
+
const clamped = Math.max(0, Math.min(100, percentage * 100));
|
|
309
|
+
const value = this.getValueFromPercentage(clamped);
|
|
310
|
+
if (this.range) {
|
|
311
|
+
const vals = this.currentValue;
|
|
312
|
+
const handle = this.dragHandle !== null ? this.dragHandle : this.resolveHandle(clamped);
|
|
313
|
+
this.activeHandle = handle;
|
|
314
|
+
let [lo, hi] = [vals[0], vals[1]];
|
|
315
|
+
if (handle === 0)
|
|
316
|
+
lo = Math.min(value, hi);
|
|
317
|
+
else
|
|
318
|
+
hi = Math.max(value, lo);
|
|
319
|
+
this.currentValue = [lo, hi];
|
|
320
|
+
this.tooltipValue = handle === 0 ? lo : hi;
|
|
321
|
+
this.tooltipVisible = true;
|
|
322
|
+
}
|
|
323
|
+
else {
|
|
324
|
+
this.currentValue = value;
|
|
325
|
+
this.tooltipValue = value;
|
|
326
|
+
this.tooltipVisible = true;
|
|
327
|
+
}
|
|
328
|
+
this.modelValue = this.currentValue;
|
|
329
|
+
this.hbInput.emit(this.currentValue);
|
|
164
330
|
}
|
|
331
|
+
static get watchers() { return {
|
|
332
|
+
"modelValue": ["handleModelChange"]
|
|
333
|
+
}; }
|
|
165
334
|
static get style() { return HbSliderStyle0; }
|
|
166
335
|
}, [1, "hb-slider", {
|
|
167
336
|
"modelValue": [1026, "model-value"],
|
|
@@ -174,10 +343,14 @@ const Slider = /*@__PURE__*/ proxyCustomElement(class Slider extends H {
|
|
|
174
343
|
"range": [4],
|
|
175
344
|
"vertical": [4],
|
|
176
345
|
"height": [1],
|
|
346
|
+
"marks": [16],
|
|
177
347
|
"dragging": [32],
|
|
178
348
|
"currentValue": [32],
|
|
179
349
|
"tooltipVisible": [32],
|
|
180
|
-
"tooltipValue": [32]
|
|
350
|
+
"tooltipValue": [32],
|
|
351
|
+
"activeHandle": [32]
|
|
352
|
+
}, undefined, {
|
|
353
|
+
"modelValue": ["handleModelChange"]
|
|
181
354
|
}]);
|
|
182
355
|
function defineCustomElement$1() {
|
|
183
356
|
if (typeof customElements === "undefined") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"hb-slider.js","mappings":"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","names":[],"sources":["src/components/Slider/slider.css?tag=hb-slider&encapsulation=shadow","src/components/Slider/Slider.tsx"],"sourcesContent":[":host {\n display: inline-block;\n --hb-slider-main-bg-color: var(--hb-color-primary);\n --hb-slider-runway-bg-color: var(--hb-fill-color-light, #e4e7ed);\n --hb-slider-stop-bg-color: var(--hb-color-white, #ffffff);\n --hb-slider-button-size: 20px;\n}\n\n.hb-slider {\n width: 100%;\n height: 40px;\n display: flex;\n align-items: center;\n position: relative;\n}\n\n.hb-slider--vertical {\n width: 40px;\n height: 100%;\n flex-direction: column;\n}\n\n.hb-slider__runway {\n width: 100%;\n height: 6px;\n margin: 16px 0;\n background-color: var(--hb-slider-runway-bg-color);\n border-radius: 3px;\n position: relative;\n cursor: pointer;\n vertical-align: middle;\n}\n\n.hb-slider--vertical .hb-slider__runway {\n width: 6px;\n height: 100%;\n margin: 0 16px;\n}\n\n.hb-slider__bar {\n height: 6px;\n background-color: var(--hb-slider-main-bg-color);\n border-top-left-radius: 3px;\n border-bottom-left-radius: 3px;\n position: absolute;\n top: 0;\n left: 0;\n}\n\n.hb-slider--vertical .hb-slider__bar {\n width: 6px;\n height: auto;\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n border-bottom-left-radius: 0;\n bottom: 0;\n top: auto;\n}\n\n.hb-slider__button-wrapper {\n position: absolute;\n z-index: 1001;\n top: 50%;\n transform: translateY(-50%);\n background-color: transparent;\n text-align: center;\n user-select: none;\n outline: none;\n margin-left: calc(var(--hb-slider-button-size) / -2);\n}\n\n.hb-slider--vertical .hb-slider__button-wrapper {\n left: 50%;\n top: auto;\n bottom: 0;\n transform: translateX(-50%);\n margin-left: 0;\n margin-bottom: calc(var(--hb-slider-button-size) / -2);\n}\n\n.hb-slider__button {\n width: var(--hb-slider-button-size);\n height: var(--hb-slider-button-size);\n background-color: var(--hb-color-white, #ffffff);\n border: 2px solid var(--hb-slider-main-bg-color);\n border-radius: 50%;\n transition: 0.2s;\n user-select: none;\n cursor: grab;\n}\n\n.hb-slider__button:active {\n cursor: grabbing;\n}\n\n.hb-slider__button-wrapper:hover .hb-slider__button,\n.hb-slider__button-wrapper--hover .hb-slider__button {\n transform: scale(1.2);\n}\n\n.hb-slider__tooltip {\n position: absolute;\n bottom: calc(100% + 12px);\n left: 50%;\n transform: translateX(-50%);\n padding: 6px 8px;\n background-color: rgba(0, 0, 0, 0.75);\n color: var(--hb-color-white, #ffffff);\n border-radius: 4px;\n font-size: 12px;\n white-space: nowrap;\n}\n\n.hb-slider__tooltip::after {\n content: '';\n position: absolute;\n top: 100%;\n left: 50%;\n transform: translateX(-50%);\n border: 4px solid transparent;\n border-top-color: rgba(0, 0, 0, 0.75);\n}\n\n.hb-slider--disabled {\n cursor: not-allowed;\n}\n\n.hb-slider--disabled .hb-slider__runway {\n cursor: not-allowed;\n background-color: var(--hb-fill-color-light, #e4e7ed);\n}\n\n.hb-slider--disabled .hb-slider__bar {\n background-color: var(--hb-color-text-disabled, #c0c4cc);\n}\n\n.hb-slider--disabled .hb-slider__button {\n border-color: var(--hb-color-text-disabled, #c0c4cc);\n cursor: not-allowed;\n}\n\n","import { Component, h, Prop, Event, EventEmitter, State, Element } from '@stencil/core';\n\n/**\n * Slider 滑块组件\n * 通过拖动滑块在一个固定区间内进行选择\n */\n@Component({\n tag: 'hb-slider',\n styleUrl: 'slider.css',\n shadow: true,\n})\nexport class Slider {\n @Element() el: HTMLElement;\n\n /**\n * 绑定值\n */\n @Prop({ mutable: true }) modelValue: number | number[] = 0;\n\n /**\n * 最小值\n * @default 0\n */\n @Prop() min: number = 0;\n\n /**\n * 最大值\n * @default 100\n */\n @Prop() max: number = 100;\n\n /**\n * 步长\n * @default 1\n */\n @Prop() step: number = 1;\n\n /**\n * 是否显示工具提示\n * @default true\n */\n @Prop() showTooltip: boolean = true;\n\n /**\n * 格式化 tooltip message\n */\n @Prop() formatTooltip?: (value: number) => string;\n\n /**\n * 是否禁用\n * @default false\n */\n @Prop() disabled: boolean = false;\n\n /**\n * 是否为范围选择\n * @default false\n */\n @Prop() range: boolean = false;\n\n /**\n * 是否竖向模式\n * @default false\n */\n @Prop() vertical: boolean = false;\n\n /**\n * 高度,竖向模式时必填\n */\n @Prop() height?: string;\n\n @State() dragging: boolean = false;\n @State() currentValue: number | number[] = 0;\n @State() tooltipVisible: boolean = false;\n @State() tooltipValue: number = 0;\n\n private sliderRef?: HTMLDivElement;\n private isDragging: boolean = false;\n\n /**\n * 值改变事件\n */\n @Event() hbChange: EventEmitter<number | number[]>;\n\n /**\n * 值改变事件(拖拽时实时触发)\n */\n @Event() hbInput: EventEmitter<number | number[]>;\n\n componentDidLoad() {\n this.currentValue = this.modelValue;\n this.addEventListeners();\n }\n\n disconnectedCallback() {\n this.removeEventListeners();\n }\n\n private addEventListeners() {\n document.addEventListener('mousemove', this.handleMouseMove);\n document.addEventListener('mouseup', this.handleMouseUp);\n }\n\n private removeEventListeners() {\n document.removeEventListener('mousemove', this.handleMouseMove);\n document.removeEventListener('mouseup', this.handleMouseUp);\n }\n\n private getPercentage(value: number): number {\n return ((value - this.min) / (this.max - this.min)) * 100;\n }\n\n private getValueFromPercentage(percentage: number): number {\n const value = this.min + (percentage / 100) * (this.max - this.min);\n return Math.round(value / this.step) * this.step;\n }\n\n private handleMouseDown = (e: MouseEvent) => {\n if (this.disabled) return;\n e.preventDefault();\n this.isDragging = true;\n this.dragging = true;\n this.handleDrag(e);\n };\n\n private handleMouseMove = (e: MouseEvent) => {\n if (!this.isDragging) return;\n this.handleDrag(e);\n };\n\n private handleMouseUp = () => {\n if (!this.isDragging) return;\n this.isDragging = false;\n this.dragging = false;\n this.tooltipVisible = false;\n this.hbChange.emit(this.currentValue);\n };\n\n private handleDrag(e: MouseEvent) {\n if (!this.sliderRef) return;\n\n const rect = this.sliderRef.getBoundingClientRect();\n const percentage = this.vertical\n ? 1 - (e.clientY - rect.top) / rect.height\n : (e.clientX - rect.left) / rect.width;\n \n const clampedPercentage = Math.max(0, Math.min(100, percentage * 100));\n const value = this.getValueFromPercentage(clampedPercentage);\n\n if (this.range) {\n const values = this.currentValue as number[];\n // 简化处理:更新第一个值\n this.currentValue = [value, values[1] || this.max];\n } else {\n this.currentValue = value;\n this.tooltipValue = value;\n this.tooltipVisible = true;\n }\n\n this.modelValue = this.currentValue;\n this.hbInput.emit(this.currentValue);\n }\n\n private formatValue(value: number): string {\n if (this.formatTooltip) {\n return this.formatTooltip(value);\n }\n return String(value);\n }\n\n render() {\n const percentage = this.range\n ? this.getPercentage((this.currentValue as number[])[0])\n : this.getPercentage(this.currentValue as number);\n\n return (\n <div\n class={{\n 'hb-slider': true,\n 'hb-slider--vertical': this.vertical,\n 'hb-slider--disabled': this.disabled,\n }}\n style={this.vertical && this.height ? { height: this.height } : undefined}\n >\n <div\n class=\"hb-slider__runway\"\n ref={(el) => (this.sliderRef = el)}\n onMouseDown={this.handleMouseDown}\n >\n <div\n class=\"hb-slider__bar\"\n style={{\n [this.vertical ? 'height' : 'width']: `${percentage}%`,\n [this.vertical ? 'bottom' : 'left']: '0',\n }}\n ></div>\n <div\n class={{\n 'hb-slider__button-wrapper': true,\n 'hb-slider__button-wrapper--hover': this.tooltipVisible,\n }}\n style={{\n [this.vertical ? 'bottom' : 'left']: `${percentage}%`,\n }}\n >\n {this.showTooltip && this.tooltipVisible && (\n <div class=\"hb-slider__tooltip\">\n {this.formatValue(this.tooltipValue)}\n </div>\n )}\n <div class=\"hb-slider__button\"></div>\n </div>\n </div>\n </div>\n );\n }\n}\n\n"],"version":3}
|
|
1
|
+
{"file":"hb-slider.js","mappings":"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","names":[],"sources":["src/components/Slider/slider.css?tag=hb-slider&encapsulation=shadow","src/components/Slider/Slider.tsx"],"sourcesContent":[":host {\n display: inline-block;\n --hb-slider-main-bg-color: var(--hb-color-primary);\n --hb-slider-runway-bg-color: var(--hb-fill-color-light, #e4e7ed);\n --hb-slider-stop-bg-color: var(--hb-color-white, #ffffff);\n --hb-slider-button-size: 20px;\n}\n\n.hb-slider {\n width: 100%;\n height: 40px;\n display: flex;\n align-items: center;\n position: relative;\n}\n\n.hb-slider--vertical {\n width: 40px;\n height: 100%;\n flex-direction: column;\n}\n\n.hb-slider__runway {\n width: 100%;\n height: 6px;\n margin: 16px 0;\n background-color: var(--hb-slider-runway-bg-color);\n border-radius: 3px;\n position: relative;\n cursor: pointer;\n vertical-align: middle;\n}\n\n.hb-slider--vertical .hb-slider__runway {\n width: 6px;\n height: 100%;\n margin: 0 16px;\n}\n\n.hb-slider__bar {\n height: 6px;\n background-color: var(--hb-slider-main-bg-color);\n border-top-left-radius: 3px;\n border-bottom-left-radius: 3px;\n position: absolute;\n top: 0;\n}\n\n.hb-slider--vertical .hb-slider__bar {\n width: 6px;\n height: auto;\n border-top-left-radius: 3px;\n border-top-right-radius: 3px;\n border-bottom-left-radius: 0;\n bottom: 0;\n top: auto;\n}\n\n.hb-slider__button-wrapper {\n position: absolute;\n z-index: 1001;\n top: 50%;\n transform: translate(-50%, -50%);\n background-color: transparent;\n text-align: center;\n user-select: none;\n outline: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n}\n\n.hb-slider--vertical .hb-slider__button-wrapper {\n left: 50%;\n top: auto;\n transform: translate(-50%, 50%);\n}\n\n.hb-slider__button {\n width: var(--hb-slider-button-size);\n height: var(--hb-slider-button-size);\n background-color: var(--hb-color-white, #ffffff);\n border: 2px solid var(--hb-slider-main-bg-color);\n border-radius: 50%;\n transition: 0.2s;\n user-select: none;\n cursor: grab;\n}\n\n.hb-slider__button:active {\n cursor: grabbing;\n}\n\n.hb-slider__button-wrapper:hover .hb-slider__button,\n.hb-slider__button-wrapper--hover .hb-slider__button {\n transform: scale(1.2);\n}\n\n.hb-slider__tooltip {\n position: absolute;\n bottom: calc(100% + 12px);\n left: 50%;\n transform: translateX(-50%);\n padding: 6px 8px;\n background-color: rgba(0, 0, 0, 0.75);\n color: var(--hb-color-white, #ffffff);\n border-radius: 4px;\n font-size: 12px;\n white-space: nowrap;\n}\n\n.hb-slider__tooltip::after {\n content: '';\n position: absolute;\n top: 100%;\n left: 50%;\n transform: translateX(-50%);\n border: 4px solid transparent;\n border-top-color: rgba(0, 0, 0, 0.75);\n}\n\n.hb-slider--disabled {\n cursor: not-allowed;\n}\n\n.hb-slider--disabled .hb-slider__runway {\n cursor: not-allowed;\n background-color: var(--hb-fill-color-light, #e4e7ed);\n}\n\n.hb-slider--disabled .hb-slider__bar {\n background-color: var(--hb-color-text-disabled, #c0c4cc);\n}\n\n.hb-slider--disabled .hb-slider__button {\n border-color: var(--hb-color-text-disabled, #c0c4cc);\n cursor: not-allowed;\n}\n\n/* ---- 刻度标记(marks)---- */\n.hb-slider__mark {\n position: absolute;\n top: 0;\n width: 2px;\n height: 6px;\n transform: translateX(-50%);\n background-color: var(--hb-color-border, #dcdfe6);\n pointer-events: none;\n}\n\n.hb-slider__mark-label {\n position: absolute;\n top: 100%;\n left: 50%;\n transform: translateX(-50%);\n margin-top: var(--hb-spacing-xs, 4px);\n font-size: var(--hb-font-size-xs, 12px);\n color: var(--hb-color-text-secondary, #606266);\n white-space: nowrap;\n}\n\n/* 有刻度时给底部留出标签空间 */\n.hb-slider--with-marks {\n padding-bottom: var(--hb-spacing-lg, 16px);\n}\n\n.hb-slider--vertical .hb-slider__mark {\n top: auto;\n left: 50%;\n width: 6px;\n height: 2px;\n transform: translate(-50%, -50%);\n}\n\n.hb-slider--vertical .hb-slider__mark-label {\n top: 50%;\n left: 100%;\n transform: translateY(-50%);\n margin-top: 0;\n margin-left: var(--hb-spacing-xs, 4px);\n}\n\n/* 聚焦态:对齐 antd 的蓝色外圈 */\n.hb-slider__button-wrapper:focus {\n outline: none;\n}\n\n.hb-slider__button-wrapper:focus-visible .hb-slider__button {\n box-shadow: 0 0 0 4px var(--hb-color-primary-bg, rgba(22, 119, 255, 0.12));\n}\n\n","import { Component, h, Prop, Event, EventEmitter, State, Element, Watch } from '@stencil/core';\n\n/** 刻度定义:值 →(可选)标签 */\nexport interface SliderMark {\n value: number;\n label?: string;\n}\n\n/**\n * Slider 滑块组件\n * 通过拖动滑块在一个固定区间内进行选择,支持单滑块/双滑块(range)/竖向/刻度。\n */\n@Component({\n tag: 'hb-slider',\n styleUrl: 'slider.css',\n shadow: true,\n})\nexport class Slider {\n @Element() el: HTMLElement;\n\n /**\n * 绑定值\n */\n @Prop({ mutable: true }) modelValue: number | number[] = 0;\n\n /**\n * 最小值\n * @default 0\n */\n @Prop() min: number = 0;\n\n /**\n * 最大值\n * @default 100\n */\n @Prop() max: number = 100;\n\n /**\n * 步长\n * @default 1\n */\n @Prop() step: number = 1;\n\n /**\n * 是否显示工具提示\n * @default true\n */\n @Prop() showTooltip: boolean = true;\n\n /**\n * 格式化 tooltip message\n */\n @Prop() formatTooltip?: (value: number) => string;\n\n /**\n * 是否禁用\n * @default false\n */\n @Prop() disabled: boolean = false;\n\n /**\n * 是否为范围选择\n * @default false\n */\n @Prop() range: boolean = false;\n\n /**\n * 是否竖向模式\n * @default false\n */\n @Prop() vertical: boolean = false;\n\n /**\n * 高度,竖向模式时必填\n */\n @Prop() height?: string;\n\n /**\n * 刻度标记(对齐 antd marks)\n */\n @Prop() marks?: SliderMark[] | Record<number, string>;\n\n @State() dragging: boolean = false;\n @State() currentValue: number | number[] = 0;\n @State() tooltipVisible: boolean = false;\n @State() tooltipValue: number = 0;\n /** range 模式下当前拖动的是哪个手柄(0/1),用于 tooltip 定位与渲染 */\n @State() activeHandle: 0 | 1 = 0;\n\n private sliderRef?: HTMLDivElement;\n private isDragging: boolean = false;\n /** 拖动期间锁定的手柄索引(鼠标按下时确定) */\n private dragHandle: 0 | 1 | null = null;\n\n /**\n * 值改变事件\n */\n @Event() hbChange: EventEmitter<number | number[]>;\n\n /**\n * 值改变事件(拖拽时实时触发)\n */\n @Event() hbInput: EventEmitter<number | number[]>;\n\n componentDidLoad() {\n this.currentValue = this.normalizeInitial(this.modelValue);\n this.addEventListeners();\n }\n\n disconnectedCallback() {\n this.removeEventListeners();\n }\n\n /** 外部更新 modelValue 时同步内部 currentValue(对齐 antd 受控语义) */\n @Watch('modelValue')\n handleModelChange() {\n if (!this.isDragging) {\n this.currentValue = this.normalizeInitial(this.modelValue);\n }\n }\n\n /** range 模式下确保 currentValue 为 [min, max] 形状的有序数组 */\n private normalizeInitial(v: number | number[]): number | number[] {\n if (this.range) {\n if (Array.isArray(v) && v.length === 2) {\n return v[0] <= v[1] ? [v[0], v[1]] : [v[1], v[0]];\n }\n return [this.min, this.max];\n }\n return typeof v === 'number' ? v : (Array.isArray(v) ? v[0] ?? this.min : this.min);\n }\n\n private addEventListeners() {\n document.addEventListener('mousemove', this.handleMouseMove);\n document.addEventListener('mouseup', this.handleMouseUp);\n }\n\n private removeEventListeners() {\n document.removeEventListener('mousemove', this.handleMouseMove);\n document.removeEventListener('mouseup', this.handleMouseUp);\n }\n\n private getPercentage(value: number): number {\n if (this.max === this.min) return 0;\n return ((value - this.min) / (this.max - this.min)) * 100;\n }\n\n private getValueFromPercentage(percentage: number): number {\n const value = this.min + (percentage / 100) * (this.max - this.min);\n const snapped = Math.round(value / this.step) * this.step;\n return Math.max(this.min, Math.min(this.max, snapped));\n }\n\n /** 鼠标按下时根据落点决定拖哪个手柄(range:更近的那个) */\n private resolveHandle(percentage: number): 0 | 1 {\n if (!this.range) return 0;\n const vals = this.currentValue as number[];\n const leftPct = this.getPercentage(vals[0]);\n const rightPct = this.getPercentage(vals[1]);\n return Math.abs(percentage - leftPct) <= Math.abs(percentage - rightPct) ? 0 : 1;\n }\n\n private handleMouseDown = (e: MouseEvent, handle: 0 | 1 | null = null) => {\n if (this.disabled) return;\n e.preventDefault();\n this.isDragging = true;\n this.dragging = true;\n this.dragHandle = handle;\n this.handleDrag(e);\n };\n\n private handleMouseMove = (e: MouseEvent) => {\n if (!this.isDragging) return;\n this.handleDrag(e);\n };\n\n private handleMouseUp = () => {\n if (!this.isDragging) return;\n this.isDragging = false;\n this.dragging = false;\n this.tooltipVisible = false;\n this.dragHandle = null;\n this.hbChange.emit(this.currentValue);\n };\n\n private handleDrag(e: MouseEvent) {\n if (!this.sliderRef) return;\n\n const rect = this.sliderRef.getBoundingClientRect();\n const percentage = this.vertical\n ? 1 - (e.clientY - rect.top) / rect.height\n : (e.clientX - rect.left) / rect.width;\n\n const clampedPercentage = Math.max(0, Math.min(100, percentage * 100));\n const value = this.getValueFromPercentage(clampedPercentage);\n\n if (this.range) {\n const vals = this.currentValue as number[];\n // 优先用 mousedown 时锁定的手柄;未锁定(点击 runway)则按落点就近\n const handle = this.dragHandle !== null ? this.dragHandle : this.resolveHandle(clampedPercentage);\n this.activeHandle = handle;\n let [lo, hi] = [vals[0], vals[1]];\n if (handle === 0) {\n lo = Math.min(value, hi);\n } else {\n hi = Math.max(value, lo);\n }\n this.currentValue = [lo, hi];\n this.tooltipValue = handle === 0 ? lo : hi;\n this.tooltipVisible = true;\n } else {\n this.activeHandle = 0;\n this.currentValue = value;\n this.tooltipValue = value;\n this.tooltipVisible = true;\n }\n\n this.modelValue = this.currentValue;\n this.hbInput.emit(this.currentValue);\n }\n\n /** 键盘可访问:方向键调整当前手柄,对齐 WAI-ARIA slider pattern */\n private handleKeyDown = (e: KeyboardEvent) => {\n if (this.disabled) return;\n const { key } = e;\n const isDecrease = key === 'ArrowLeft' || key === 'ArrowDown';\n const isIncrease = key === 'ArrowRight' || key === 'ArrowUp';\n const isBigDecrease = key === 'PageDown' || key === 'Home';\n const isBigIncrease = key === 'PageUp' || key === 'End';\n if (!isDecrease && !isIncrease && !isBigDecrease && !isBigIncrease) return;\n\n e.preventDefault();\n const delta =\n isBigDecrease ? -this.max :\n isBigIncrease ? this.max :\n (isDecrease ? -1 : 1) * this.step;\n\n if (this.range) {\n const vals = this.currentValue as number[];\n let [lo, hi] = [vals[0], vals[1]];\n if (this.activeHandle === 0) {\n lo = Math.max(this.min, Math.min(lo + delta, hi));\n } else {\n hi = Math.min(this.max, Math.max(hi + delta, lo));\n }\n this.currentValue = [lo, hi];\n this.tooltipValue = this.activeHandle === 0 ? lo : hi;\n this.tooltipVisible = true;\n } else {\n const next = Math.max(this.min, Math.min((this.currentValue as number) + delta, this.max));\n this.currentValue = next;\n this.tooltipValue = next;\n this.tooltipVisible = true;\n }\n this.modelValue = this.currentValue;\n this.hbChange.emit(this.currentValue);\n this.hbInput.emit(this.currentValue);\n };\n\n private formatValue(value: number): string {\n if (this.formatTooltip) {\n return this.formatTooltip(value);\n }\n return String(value);\n }\n\n /** 规范化 marks 为 [{value,label}] 数组 */\n private get markList(): { value: number; label?: string }[] {\n if (!this.marks) return [];\n if (Array.isArray(this.marks)) return this.marks;\n return Object.entries(this.marks).map(([k, v]) => ({ value: Number(k), label: v as string }));\n }\n\n render() {\n const range = this.range;\n const singlePct = this.getPercentage(this.currentValue as number);\n const rangeVals = range ? (this.currentValue as number[]) : [0, 0];\n const leftPct = range ? this.getPercentage(rangeVals[0]) : 0;\n const rightPct = range ? this.getPercentage(rangeVals[1]) : singlePct;\n // bar:单滑块从 min 到 value;range 从 lo 到 hi\n const barStart = range ? leftPct : 0;\n const barSize = range ? rightPct - leftPct : singlePct;\n const posProp = this.vertical ? 'bottom' : 'left';\n const sizeProp = this.vertical ? 'height' : 'width';\n\n const renderHandle = (handle: 0 | 1, pct: number) => {\n const tooltipVal = range ? rangeVals[handle] : (this.currentValue as number);\n const isActive = this.tooltipVisible && (range ? this.activeHandle === handle : true);\n return (\n <div\n class={{\n 'hb-slider__button-wrapper': true,\n 'hb-slider__button-wrapper--hover': isActive,\n }}\n style={{ [posProp]: `${pct}%` }}\n onMouseDown={(e: MouseEvent) => this.handleMouseDown(e, handle)}\n onTouchStart={(e: TouchEvent) => this.handleTouchStart(e, handle)}\n role=\"slider\"\n tabindex={this.disabled ? -1 : 0}\n aria-valuemin={this.min}\n aria-valuemax={this.max}\n aria-valuenow={tooltipVal}\n aria-valuetext={this.formatValue(tooltipVal)}\n aria-orientation={this.vertical ? 'vertical' : 'horizontal'}\n aria-disabled={this.disabled ? 'true' : 'false'}\n onKeyDown={this.handleKeyDown}\n >\n {this.showTooltip && isActive && (\n <div class=\"hb-slider__tooltip\">{this.formatValue(this.tooltipValue)}</div>\n )}\n <div class=\"hb-slider__button\"></div>\n </div>\n );\n };\n\n return (\n <div\n class={{\n 'hb-slider': true,\n 'hb-slider--vertical': this.vertical,\n 'hb-slider--disabled': this.disabled,\n 'hb-slider--with-marks': this.markList.length > 0,\n }}\n style={this.vertical && this.height ? { height: this.height } : undefined}\n >\n <div\n class=\"hb-slider__runway\"\n ref={(el) => (this.sliderRef = el as HTMLDivElement)}\n onMouseDown={(e: MouseEvent) => this.handleMouseDown(e, null)}\n onTouchStart={(e: TouchEvent) => this.handleTouchStart(e, null)}\n >\n <div\n class=\"hb-slider__bar\"\n style={{\n [sizeProp]: `${Math.max(0, barSize)}%`,\n [posProp]: `${barStart}%`,\n }}\n ></div>\n {this.markList.map(m => {\n const pct = this.getPercentage(m.value);\n return (\n <div\n class=\"hb-slider__mark\"\n style={{ [posProp]: `${pct}%` }}\n aria-hidden=\"true\"\n >\n {m.label && <span class=\"hb-slider__mark-label\">{m.label}</span>}\n </div>\n );\n })}\n {range ? renderHandle(0, leftPct) : null}\n {renderHandle(range ? 1 : 0, range ? rightPct : singlePct)}\n </div>\n </div>\n );\n }\n\n /** 触屏支持:把 touch 事件映射到 mouse 同等逻辑(移动端可用) */\n private handleTouchStart = (e: TouchEvent, handle: 0 | 1 | null) => {\n if (this.disabled) return;\n e.preventDefault();\n const touch = e.touches[0];\n this.isDragging = true;\n this.dragging = true;\n this.dragHandle = handle;\n this.dragFromTouch(touch.clientX, touch.clientY);\n const move = (ev: TouchEvent) => {\n const t = ev.touches[0];\n this.dragFromTouch(t.clientX, t.clientY);\n };\n const end = () => {\n this.isDragging = false;\n this.dragging = false;\n this.tooltipVisible = false;\n this.dragHandle = null;\n this.hbChange.emit(this.currentValue);\n document.removeEventListener('touchmove', move);\n document.removeEventListener('touchend', end);\n };\n document.addEventListener('touchmove', move, { passive: false });\n document.addEventListener('touchend', end);\n };\n\n private dragFromTouch(clientX: number, clientY: number) {\n if (!this.sliderRef) return;\n const rect = this.sliderRef.getBoundingClientRect();\n const percentage = this.vertical\n ? 1 - (clientY - rect.top) / rect.height\n : (clientX - rect.left) / rect.width;\n const clamped = Math.max(0, Math.min(100, percentage * 100));\n const value = this.getValueFromPercentage(clamped);\n if (this.range) {\n const vals = this.currentValue as number[];\n const handle = this.dragHandle !== null ? this.dragHandle : this.resolveHandle(clamped);\n this.activeHandle = handle;\n let [lo, hi] = [vals[0], vals[1]];\n if (handle === 0) lo = Math.min(value, hi);\n else hi = Math.max(value, lo);\n this.currentValue = [lo, hi];\n this.tooltipValue = handle === 0 ? lo : hi;\n this.tooltipVisible = true;\n } else {\n this.currentValue = value;\n this.tooltipValue = value;\n this.tooltipVisible = true;\n }\n this.modelValue = this.currentValue;\n this.hbInput.emit(this.currentValue);\n }\n}\n\n"],"version":3}
|
|
@@ -51,7 +51,7 @@ const Space = /*@__PURE__*/ proxyCustomElement(class Space extends H {
|
|
|
51
51
|
}
|
|
52
52
|
render() {
|
|
53
53
|
const sizeValue = this.getSizeValue();
|
|
54
|
-
return (h("div", { key: '
|
|
54
|
+
return (h("div", { key: '23205a0d926148969e1dc0c98dee9b81f52e921e', class: {
|
|
55
55
|
'hb-space': true,
|
|
56
56
|
[`hb-space--${this.direction}`]: true,
|
|
57
57
|
'hb-space--wrap': this.wrap && this.direction === 'horizontal',
|
|
@@ -60,7 +60,7 @@ const Space = /*@__PURE__*/ proxyCustomElement(class Space extends H {
|
|
|
60
60
|
'--hb-space-size': sizeValue,
|
|
61
61
|
'--hb-space-alignment': this.alignment,
|
|
62
62
|
'--hb-space-fill-ratio': `${this.fillRatio}%`,
|
|
63
|
-
} }, h("slot", { key: '
|
|
63
|
+
} }, h("slot", { key: 'b313162f92bf63bc8926b15af1a7f0bbe3d0295d' })));
|
|
64
64
|
}
|
|
65
65
|
static get style() { return HbSpaceStyle0; }
|
|
66
66
|
}, [1, "hb-space", {
|
|
@@ -54,7 +54,7 @@ const Statistic = /*@__PURE__*/ proxyCustomElement(class Statistic extends H {
|
|
|
54
54
|
return decPart !== undefined ? `${grouped}.${decPart}` : grouped;
|
|
55
55
|
}
|
|
56
56
|
render() {
|
|
57
|
-
return (h("div", { key: '
|
|
57
|
+
return (h("div", { key: 'e695e8811255eace58725623ad9ac4fc32fe9815', class: "hb-statistic" }, this.title && h("div", { key: '0ca9e8bae28815d841fd04f0ec0aeb6d3147cfb7', class: "hb-statistic__title" }, this.title), h("div", { key: 'f4b4dce8ceded1700b7bd2f50b97d886452571d9', class: "hb-statistic__content", style: this.valueStyle ? { cssText: this.valueStyle } : undefined }, this.valuePrefix && h("span", { key: '7b6f19358ee7ab45b18fab4230cc0cae56161398', class: "hb-statistic__prefix" }, this.valuePrefix), h("span", { key: 'ba7c49912cd4d0d4a81349d8584801291075966f', class: "hb-statistic__value" }, this.getFormattedValue()), this.suffix !== undefined && h("span", { key: '87619124453f9e49eba5e22ccc6c6123b059c61b', class: "hb-statistic__suffix" }, this.suffix))));
|
|
58
58
|
}
|
|
59
59
|
static get style() { return HbStatisticStyle0; }
|
|
60
60
|
}, [1, "hb-statistic", {
|
|
@@ -11,7 +11,7 @@ const Step = /*@__PURE__*/ proxyCustomElement(class Step extends H {
|
|
|
11
11
|
icon;
|
|
12
12
|
status = 'wait';
|
|
13
13
|
render() {
|
|
14
|
-
return h("div", { key: '
|
|
14
|
+
return h("div", { key: '63f299b0fda78da0625d0d33af185af098512986', class: "hb-step" }, h("slot", { key: '7d8193df46de7452dee4df28246552fd9bae9cee' }));
|
|
15
15
|
}
|
|
16
16
|
}, [1, "hb-step", {
|
|
17
17
|
"title": [1],
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { p as proxyCustomElement, H, h } from './p-1407a5e8.js';
|
|
2
|
+
import { d as defineCustomElement$2 } from './p-86d92faf.js';
|
|
2
3
|
|
|
3
|
-
const stepsCss = "/*! 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-steps{display:flex}.hb-steps--vertical,.hb-steps__item{flex-direction:column}.hb-steps__item{align-items:center;display:flex;flex:1;position:relative}.hb-steps--vertical .hb-steps__item{align-items:flex-start;flex-direction:row;gap:var(--hb-spacing-sm);padding-bottom:var(--hb-spacing-md)}.hb-steps__head{align-items:center;display:flex;width:100%}.hb-steps__icon{align-items:center;background:var(--hb-color-fill);border-radius:50%;color:var(--hb-color-text-secondary);display:flex;flex-shrink:0;font-size:var(--hb-font-size-sm);font-weight:600;height:28px;justify-content:center;transition:all .3s;width:28px}.hb-steps__item--finish .hb-steps__icon,.hb-steps__item--process .hb-steps__icon{background:var(--hb-color-primary);color:#fff}.hb-steps__item--error .hb-steps__icon{background:var(--hb-color-danger);color:#fff}.hb-steps__line{background:var(--hb-color-border-secondary);flex:1;height:2px;margin:0 var(--hb-spacing-xs)}.hb-steps__item--finish .hb-steps__line{background:var(--hb-color-primary)}.hb-steps__main{margin-top:var(--hb-spacing-xs);text-align:center}.hb-steps--vertical .hb-steps__main{text-align:left}.hb-steps:not(.hb-steps--align-center) .hb-steps__item{align-items:flex-start}.hb-steps:not(.hb-steps--align-center) .hb-steps__main{text-align:left}.hb-steps__title{font-size:var(--hb-font-size-sm);font-weight:600}.hb-steps__item--process .hb-steps__title{color:var(--hb-color-primary)}.hb-steps__description{color:var(--hb-color-text-secondary);font-size:var(--hb-font-size-xs);margin-top:2px}@property --tw-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:\"*\";inherits:false}@property --tw-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:\"*\";inherits:false}@property --tw-inset-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:\"*\";inherits:false}@property --tw-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:\"*\";inherits:false}@property --tw-inset-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:\"*\";inherits:false}@property --tw-ring-offset-width{syntax:\"<length>\";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:\"*\";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}";
|
|
4
|
+
const stepsCss = "/*! 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; /*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer components;:host{display:block}.hb-steps{display:flex}.hb-steps--vertical,.hb-steps__item{flex-direction:column}.hb-steps__item{align-items:center;display:flex;flex:1;position:relative}.hb-steps--vertical .hb-steps__item{align-items:flex-start;flex-direction:row;gap:var(--hb-spacing-sm);padding-bottom:var(--hb-spacing-md)}.hb-steps__head{align-items:center;display:flex;width:100%}.hb-steps__icon{align-items:center;background:var(--hb-color-fill);border-radius:50%;color:var(--hb-color-text-secondary);display:flex;flex-shrink:0;font-size:var(--hb-font-size-sm);font-weight:600;height:28px;justify-content:center;transition:all .3s;width:28px}.hb-steps__item--finish .hb-steps__icon,.hb-steps__item--process .hb-steps__icon{background:var(--hb-color-primary);color:#fff}.hb-steps__item--error .hb-steps__icon{background:var(--hb-color-danger);color:#fff}.hb-steps__line{background:var(--hb-color-border-secondary);flex:1;height:2px;margin:0 var(--hb-spacing-xs)}.hb-steps__item--finish .hb-steps__line{background:var(--hb-color-primary)}.hb-steps__main{margin-top:var(--hb-spacing-xs);text-align:center}.hb-steps--vertical .hb-steps__main{text-align:left}.hb-steps:not(.hb-steps--align-center) .hb-steps__item{align-items:flex-start}.hb-steps:not(.hb-steps--align-center) .hb-steps__main{text-align:left}.hb-steps__title{font-size:var(--hb-font-size-sm);font-weight:600}.hb-steps__item--process .hb-steps__title{color:var(--hb-color-primary)}.hb-steps__description{color:var(--hb-color-text-secondary);font-size:var(--hb-font-size-xs);margin-top:2px}@property --tw-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:\"*\";inherits:false}@property --tw-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:\"*\";inherits:false}@property --tw-inset-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:\"*\";inherits:false}@property --tw-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:\"*\";inherits:false}@property --tw-inset-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:\"*\";inherits:false}@property --tw-ring-offset-width{syntax:\"<length>\";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:\"*\";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}";
|
|
4
5
|
const HbStepsStyle0 = stepsCss;
|
|
5
6
|
|
|
6
7
|
const Steps = /*@__PURE__*/ proxyCustomElement(class Steps extends H {
|
|
@@ -17,19 +18,37 @@ const Steps = /*@__PURE__*/ proxyCustomElement(class Steps extends H {
|
|
|
17
18
|
steps = [];
|
|
18
19
|
componentDidLoad() {
|
|
19
20
|
const items = this.el.querySelectorAll('hb-step');
|
|
20
|
-
this.steps = Array.from(items).map((item) =>
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
this.steps = Array.from(items).map((item) => {
|
|
22
|
+
const node = item;
|
|
23
|
+
// 仅用 getAttribute:hb-step 的 @Prop() status 默认值为 'wait',
|
|
24
|
+
// 若读 (node as any).status 会拿到默认值,从而错误地覆盖 active 推导。
|
|
25
|
+
// 用户显式在 HTML 上写 status="xxx" 时 getAttribute 才有值。
|
|
26
|
+
return {
|
|
27
|
+
title: node.getAttribute('title') || '',
|
|
28
|
+
description: node.getAttribute('description') || undefined,
|
|
29
|
+
icon: node.getAttribute('icon') || undefined,
|
|
30
|
+
status: (node.getAttribute('status') || undefined),
|
|
31
|
+
};
|
|
32
|
+
});
|
|
24
33
|
}
|
|
25
34
|
getStatus(index) {
|
|
35
|
+
const meta = this.steps[index];
|
|
36
|
+
// 子项显式 status 优先(仅当用户在 HTML 上写了 status 属性)
|
|
37
|
+
if (meta && meta.status)
|
|
38
|
+
return meta.status;
|
|
26
39
|
if (index < this.active)
|
|
27
40
|
return 'finish';
|
|
28
41
|
if (index === this.active)
|
|
29
42
|
return this.processStatus;
|
|
30
43
|
return 'wait';
|
|
31
44
|
}
|
|
32
|
-
|
|
45
|
+
/** 渲染图标:子项自定义 icon 优先;否则按状态(finish=✓、error=✕、其余=序号) */
|
|
46
|
+
renderIcon(index) {
|
|
47
|
+
const meta = this.steps[index];
|
|
48
|
+
if (meta && meta.icon) {
|
|
49
|
+
// 自定义图标名:若与 hb-icon 内置图标同名则渲染 hb-icon,否则按文本渲染
|
|
50
|
+
return h("hb-icon", { name: meta.icon, size: 16, "aria-hidden": "true" });
|
|
51
|
+
}
|
|
33
52
|
const status = this.getStatus(index);
|
|
34
53
|
if (status === 'finish')
|
|
35
54
|
return '✓';
|
|
@@ -38,7 +57,10 @@ const Steps = /*@__PURE__*/ proxyCustomElement(class Steps extends H {
|
|
|
38
57
|
return String(index + 1);
|
|
39
58
|
}
|
|
40
59
|
render() {
|
|
41
|
-
return (h("
|
|
60
|
+
return (h("ol", { key: 'f69b42d787de6ee114ed9ebef2e8d1a8fae60363', class: { 'hb-steps': true, [`hb-steps--${this.direction}`]: true, 'hb-steps--align-center': this.alignCenter }, role: "list" }, this.steps.map((step, i) => {
|
|
61
|
+
const status = this.getStatus(i);
|
|
62
|
+
return (h("li", { class: { 'hb-steps__item': true, [`hb-steps__item--${status}`]: true }, role: "listitem", "aria-current": status === 'process' ? 'step' : undefined, "aria-disabled": step.status === 'wait' && i > this.active ? 'true' : undefined }, h("div", { class: "hb-steps__head" }, h("span", { class: "hb-steps__icon", "aria-hidden": "true" }, this.renderIcon(i)), i < this.steps.length - 1 && h("div", { class: "hb-steps__line" })), h("div", { class: "hb-steps__main" }, h("div", { class: "hb-steps__title" }, step.title), step.description && h("div", { class: "hb-steps__description" }, step.description))));
|
|
63
|
+
})));
|
|
42
64
|
}
|
|
43
65
|
static get style() { return HbStepsStyle0; }
|
|
44
66
|
}, [1, "hb-steps", {
|
|
@@ -52,13 +74,18 @@ function defineCustomElement$1() {
|
|
|
52
74
|
if (typeof customElements === "undefined") {
|
|
53
75
|
return;
|
|
54
76
|
}
|
|
55
|
-
const components = ["hb-steps"];
|
|
77
|
+
const components = ["hb-steps", "hb-icon"];
|
|
56
78
|
components.forEach(tagName => { switch (tagName) {
|
|
57
79
|
case "hb-steps":
|
|
58
80
|
if (!customElements.get(tagName)) {
|
|
59
81
|
customElements.define(tagName, Steps);
|
|
60
82
|
}
|
|
61
83
|
break;
|
|
84
|
+
case "hb-icon":
|
|
85
|
+
if (!customElements.get(tagName)) {
|
|
86
|
+
defineCustomElement$2();
|
|
87
|
+
}
|
|
88
|
+
break;
|
|
62
89
|
} });
|
|
63
90
|
}
|
|
64
91
|
defineCustomElement$1();
|