Skip to content
🌏 Translated with the assistance of DeepSeek and ChatGPT

Changelog

v0.2.1

  • New Features:
    • New data display component: Bubble.
  • Optimizations:
    • Optimize canvas rendering to reduce redundant triggers and improve performance.
  • Adjustment:
    • The pollSizeChange property is no longer needed (kept to handle unknown cases); components inside a Dialog and similar containers now render automatically from their layout size.
  • Fixes
    • Fixed an issue where components inside a Dialog failed to render their canvas without pollSizeChange.
    • Fixed the lag caused by the scrollbar component repeatedly reading CSS variables inside a watch.
    • Fixed the Mask component mutating the cached neutral-8 theme colour, which made the inactive Switch show darker dots on its rounded corners inside a Dialog.
    • Fixed the Slider thumb being placed at the wrong offset after a Dialog was closed and re-opened.
    • Fixed the weird style issues of the scrollbar caused by CSS specificity.

v0.2.0

  • New Features:
    • New data input components: ColorPicker, Rate.
    • New feedback components: Drawer, CircleProgress.
    • New navigation components: Tab, TabItem, TabPanel.
    • New data display components: Card, Calendar, Collapse, CollapseItem.
    • Date / Time selection components: DatePicker, TimePicker, DateTimePicker.
    • New visual components: Typewriter, Carousel.
    • AutoComplete and Select components now support dropdownProps to control props of the option dropdown.
    • Divider component adds soft and color properties.
    • ScrollBar component added exposes scrollHeight, scrollWidth, scrollTop, scrollLeft to retrieve the current scroll state, added property visible to control whether the scrollbar is shown, and edgeMask to control whether the edge mask is displayed.
  • Adjustment:
    • Consolidated focus-related logic for form input components, improving maintainability and readability, and added related test cases.
    • ⚠️ Note ⚠️ Removed tabindex from Slider component tick marks and labels; only the slider thumb can receive focus, and focus styles were added to the thumb.
    • ⚠️ Note ⚠️: Select and AutoComplete now emit dropdownOpen and dropdownClose events. Use dropdownOpen to listen for the dropdown being shown. Calling the focus or select methods will no longer trigger the dropdown. However, listening to the focus event for user-initiated interactions will still cause the dropdown to appear.
  • Fixes
    • Fixed an issue where language switching did not trigger reactive updates.
    • Fixed focus logic in the Slider component: now when pressing the mouse outside the thumb, it focuses on the nearest thumb.
    • When scrollbar and its hooks are imported on demand, the public styles are now also imported.
    • Fixed an issue where the mouse pointer style in the border area of the input-style component was incorrect when it was read-only.
    • Fix the issue where the old position property of Message does not take effect.
    • Fix the problem of the Slider component repeatedly re-rendering.
    • Fixed the rendering delay issue when dragging the Textarea component.
    • Fixed the issue where the Dialog used as a component had an abnormal mount position and the root property was ineffective.
    • Fixed the issue where VueRouter-related logic threw errors during measurement in the Menu component.
    • Fixed an issue where links in MenuItem and DropDown still showed the default focus outline on keyboard focus-visible.

v0.1.5

fix

  • New Features
    • Added animationDuration property to Popover, Tooltip, Popconfirm, and DropDown to control the enter/exit animation duration.
  • Fixes
    • Fixed an issue where Input, InputNumber, InputTag, Textarea, Select, and other input-containing components had black input text in dark mode.
    • Fixed an issue in DropDown where the option and group-label slots were not working.
    • Fixed an issue in DropDown, Select, AutoComplete, Menu, and other components with options where the fixed option height affected slot rendering.
  • Related issues: #116, #118

v0.1.4

fix

  • New Features:
    • Added enterSubmit property to the Form component to control whether the Enter key triggers submission. Defaults to false.
  • Fixes:
    • Fixed an issue where the Form component would trigger submission upon pressing Enter when a child component with type="submit" was present.
    • Fixed an issue where pressing Enter in InputTag to confirm a tag would trigger the browser's default form submission.
    • Fixed missing margins for Tags in the Select floating overlay in multi-select mode when individual imported.
    • Fixed the Select component’s value handling when switching to multiple mode, preventing empty values from being incorrectly converted to [null] / [undefined].

v0.1.3

fix

  • Fixes:
    • The virtual scrolling for Select and AutoComplete components was accidentally removed.
    • Added test coverage for the above fix.

v0.1.2

fix

  • Fixes:
    • Fixed the issue where Textarea could not wrap in a Form.
    • Fixed the issue where Button with shape="circle" and shape="square" got incorrect extra padding, causing abnormal width when size="small".
    • Fixed the issue where Button’s shape="circle" did not work when the Button was a child of ButtonGroup.
    • Fixed the issue where Button with shape="circle" and shape="square" displayed both icon and content together when icon slot was provided or in loading state.
    • Added test cases for the above fixes.

v0.1.1

hotfix

  • Fixes:
    • Fixed the MessageFunction TypeScript type missing static methods.
  • Adjustment:
    • Moved the mitt dependency to the "dependencies" configuration and marked it as an external dependency during bundling.

v0.1.0

  • New Features:
    • Added notice blue theme, corresponding to the 'notice' value of the 'theme' property and some feedback components' 'type' property.
    • Added feedback components: Dialog, Popconfirm, Badge, Alert, Progress.
    • Added navigation component: Menu, MenuItem, Submenu, MenuGroup, BackTop, DropDown, Breadcrumb, BreadcrumbItem, Pagination.
    • Added the cascade property to Tooltip and Popover to maintain the display of nested floating windows.
    • Added multi-language internationalization module; text language for dialogs and confirmation popups can be adjusted via the exported locale from the entry file.
    • Added a new variant property to Link with values 'normal' and 'underline' (default), controlling whether to display the 'underline'.
    • VirtualList adds a new slot 'scroll-container' for customizing the scroll container. It's recommended to use with the h function or JSX.
  • Adjustment:
    • ⚠️ Note ⚠️ Removed unused CSS variables in the form of --px-primary|success|warning|danger|sakura-light|dark-number, such as --px-warning-light-1. In fact, component colors directly derive from the --px-color-light|dark-number CSS variables, for example: --px-orange-light-1.
    • ⚠️ Note ⚠️ To facilitate the use of higher-order components and due to limitations in Vue's mechanism, paired components such as Row and Col, Container and Aside, Grid and GridItem, ButtonGroup and Button, InputGroup and various data input components, etc., when receiving corresponding provide data, will now no longer strictly require the type of the immediate parent component.
    • The shape property of ButtonGroup now accepts two additional optional values: square and circle, and its default value has been removed. When set to square or circle, the child Button components will visually have equal height and width. This change will not affect existing code, as child Button components will default to using rect when no shape value is provided for the ButtonGroup.
    • Add debouncing to the canvas rendering of the Switch component, change the slider position control to use transform, and enhance the smoothness of animations (especially during high-frequency switching).
  • Optimizations:
    • Provided more detailed type declarations for properties passed as props to internal components.
    • Optimized code & improved test coverage.
    • Added the pollSizeChange property to most components containing canvas for polling size changes to update rendering.
  • Fixes:
    • Incorrect setting of the lang attribute in Vue template <style> tags leads to style duplication.
    • Fix the issue of missing CSS for data font and font size in OptionList-based dropdown options.
    • Fixed abnormal canvas rendering when toggling the button loading state rapidly within micro tasks.
    • Fix the font size issue when button's size is 'small'.
    • Fixed the abnormal horizontal extension of input components within a FormItem.
    • Unique IDs have been added to the keys used by InputGroup and ButtonGroup to propagate updates to child components, preventing interference with child components in other groups. Additionally, the frequency of positional checks has been reduced.
    • Fix the issue where components such as Radio, Checkbox, Switch, Select, AutoComplete, Input, InputNumber, InputTag, Textarea, and Slider trigger focus and blur events when clicked internally.
    • Fixed an issue where a focus ring would appear when the icon inside an input control was focused.
    • Fixed an issue where icons inside the Textarea component were not displayed correctly.
    • Fixed the issue where Slider did not emit focus and blur events.

v0.0.5

hotfix

  • Fixes:
    • ⚠️ Note ⚠️ Fix the issue where the setPixelSize function incorrectly set CSS custom properties, and add a dynamicComponentSize parameter to control how pixel size affects size calculations for most components, preventing size differences before and after the fix.
    • Fixed an issue where the Tag component's line-height was not set correctly, causing Tags with size="small" to be taller than intended.
    • Fix the issue where the height is not correctly set when using Select size="small".
    • Fix the problem where the CSS related to the height of the InputTag component is not properly configured (even though it appears visually correct).

v0.0.4

hotfix

  • Fixes:
    • Optimized the issue where input controls incorrectly triggered keyboard operation hint borders. Related styles have been improved. A more reasonable mechanism will be used to handle this logic in the future.

v0.0.3

  • New features:
    • Support switching pixel widths, supporting 2px and 4px.
    • Improve form components: Form, FormItem, Switch, Slider, Radio, RadioGroup, Checkbox, CheckboxGroup.
    • Add image display component Image and avatar component Avatar.
    • Add virtual list component VirtualList.
    • Add a utility function pixelate for image pixelation.
    • Added visual component TextOutline for text stroke effect.
    • Added importable modern-normalize preset styles
  • Adjustment:
    • ⚠️ Note ⚠️ The shape property 'default' is renamed to 'rect', 'default' in existing components remains valid.
    • ⚠️ Note ⚠️ ButtonGroup now has a theme property, and both ButtonGroup and Button treat readonly property injected from ancestor components (e.g., Form) as disabled.
    • ⚠️ Note ⚠️ Default value implementation for size, variant, theme, shape in some components changed from withDefaults to computed to support nested component property priority.
    • ⚠️ Note ⚠️ When importing icons on demand, component library common styles will no longer be automatically imported.
  • Optimizations:
    • Add label slot to the Select component.
    • Add readonly property to InputGroup.
    • Add the soft property to the Main component to set a soft background.
    • Optimize the arc drawing algorithm.
    • Add indentation to sub-options of option groups.
    • Optimize the triggering of focus and blur events for the Select component.
    • Add a prop to dropdown and popup components to control whether content is destroyed when hidden.
    • Optimize code & improve test cases.
  • Fixes:
    • Fix the rendering of Button components with variant="text" in ButtonGroup and InputGroup.
    • Fix the bug where the focus and blur events of form controls are not being emitted.
    • Set tabindex for dropdown options.

v0.0.2

  • New components added: Input, InputNumber, Textarea, InputGroup, Input, GroupLabel, Tag, InputTag, Tooltip, Popover, Empty, AutoComplete, Mask, Spin, Select.
  • Integrated the pixelarticons icon library.
  • Code optimization.