Skip to content

Releases: wxsub/element-plus-formkit

Some minor optimizations and new interactive features for treeSelect

29 Apr 13:15

Choose a tag to compare

  1. Add CLI installer and AI skill files

Introduce a small CLI to install an AI "skill" and include the skill content in the package. Adds scripts/cli.mjs (CLI entry) and scripts/install-skill.mjs (installer that copies SKILL.md into various agent skill dirs), and a new skills/element-plus-formkit-generator/SKILL.md skill definition. Update package.json to expose the CLI via bin, include skills and scripts in the published files, add a postinstall hint to run the skill installer, and add related keywords. Update .npmignore to allow publishing the skills and scripts. Update start-dev to copy the new scripts and skills into the development package. These changes enable easy installation of the AI coding skill into editor/agent skill folders (Trae, Cursor, Claude, GitHub Copilot).

  1. Add treeSelect module and update docs

Add a new treeSelect component (src/modules/treeSelect.vue) with v-model support, configurable labelKey/valueKey defaults, and scoped slot passthrough. Register the component in asyncModulesLoader (use local async component instead of element-plus proxy). Update English and Chinese docs (pages/docs/en/modules.md, pages/docs/modules.md) to replace inline data/props with an options array, introduce props-specific table (labelKey/valueKey), rename example dataset key to treeSelectValue, and add a requester/handler example for dynamic option loading.

Code Quality Optimization

25 Apr 10:49
a5ebfee

Choose a tag to compare

  1. Remove auto-alignment handling and update docs
    Remove legacy auto-alignment logic and related styles from FormKit component, simplifying the root class binding and always using configured label widths. Update English and Chinese docs to adjust labelWidth example (remove quotes) and remove the 'columns: auto' tip and example blocks. These changes clean up unused conditional behavior and sync documentation with the simplified implementation.
  2. Add config.col documentation for grid options
    Introduce the config.col field in both Chinese and English docs to document additional el-col attributes (offset, push, pull, xs, sm, md, lg, xl) supported from Element Plus. Notes that config.span should not be duplicated in col, and includes examples demonstrating offset usage and responsive layout with FormKit code samples.
  3. Bind col props to el-col
    Allow passing Element Plus row props via a new rows prop on FormKit and per-column props via conf.col bound to el-col. added v-bind on el-col, and updated types to include ColProps and a col?: Partial in ConfigInterface. This enables customizing el-row/el-col attributes (e.g., alignment, gutter overrides) from form configs.

Bump version and rename slot to append

21 Apr 01:05
0a6e155

Choose a tag to compare

Bump src/formkit.vue to use the 'append' slot instead of 'additional'. Change the v-if check to $slots.append and the slot name to 'append' so appended content renders correctly.

Add autocomplete to async Modules mapping

20 Apr 12:22
7f96771

Choose a tag to compare

Register the Element Plus Autocomplete component in the Modules map by adding autocomplete: asyncElementPlus('ElAutocomplete') to src/asyncModulesLoader.ts. This enables lazy-loading of the Autocomplete component and keeps input-related components consistent with the existing asyncElementPlus usage.

Add mention module and inputTag module

11 Apr 07:24

Choose a tag to compare

  1. Add a new mention module component (src/modules/mention.vue) and register it in the async modules loader (src/asyncModulesLoader.ts)
  2. Import the Popover component (modules/popover.vue) and add it to the named exports alongside Upload, Address, and Uploader so the Popover component is available in the library's public API.
  3. Manage popover visibility with a new visible ref bound via v-model:visible and add handleCascaderChange to auto-close the popover when cascader is single-select. Wire the cascader @change to that handler, update template class bindings to use CSS modules, and animate/rotate the dropdown icon when the popover is open. Also adjust the label separator from ' | ' to ' | ' and minor markup/style cleanups.
  4. Convert component styles to CSS Modules and update templates to use $style bindings (checkbox, select, upload, formkit). Add scoped class generation in vite config (generateScopedName: '[hash:5]'). Refactor upload component to use CSS variables for sizing and computed inline style, replace deep/global selectors with :global as needed, and move row-gap ha
  5. Enhance FileUploader.isValidFileType to more robustly parse and match typePatterns. Patterns are split by commas/whitespace, and an empty set of patterns allows any file. Matching now supports file extension checks ('.ext'), wildcard MIME types ('type/*'), exact MIME matches, and regex patterns (case-insensitive) with safe try/catch handling. File name/type are normalized to lowercase and missing properties are handled gracefully.

Urgent version updates and bug fixes

05 Apr 01:15

Choose a tag to compare

Performance adjustments to certain components

04 Apr 15:06

Choose a tag to compare

  1. refactor(formkit): Optimized slot suffix calculation logic and simplified property access
  • Refactored the getComponentSlotSuffixes function into a computed property, slotSuffixMap, to avoid redundant calculations
  • Replaced conf[‘disabled’] with conf.disabled to maintain consistent property access style
  • Pre-calculated the slot suffix mappings for all configuration options to improve rendering performance
  1. refactor(component): Standardize component property type definitions and optimize property access
  • Expanded the $attrs type for the radio, select, and checkbox components from a simple object to a subset corresponding to the Element Plus component properties
  • Replaced repeated calls to useAttrs() in the popover component with the predefined attrs
  • Pre-fetched globalConfig in the checkbox component to avoid repeated calls
  • Removed redundant valueKey property definitions in the select component
  1. refactor: Optimizing asynchronous loading for Element Plus components
  2. fix(formkit): Optimized error handling for asynchronous requests and replaced the enter event with the error event
  • Changed executeRequestStack from sequential to parallel execution to improve performance
  • Added an error-handling mechanism that returns an empty array as a fallback when a request fails and triggers the error event
  • Removed unused ElMessage imports
  • Replaced the enter event with the more generic error event for error reporting
  1. fix(formkit): Fixed an issue with two-way binding updates in dynamic components
  2. refactor(formkit): Remove logic for dynamic component update triggers

Replace Suspense with CSS skeleton loader and simplify loading behavior

17 Mar 08:35
39b6d2b

Choose a tag to compare

Resolve Uploader method type exports warning

17 Mar 01:03
0cb2190

Choose a tag to compare

Update types/element-plus-formkit.d.ts to import UploaderClass and export typings for Address and Uploader. Adds import from '@/utils/upload.class', exports Address as a Component, exposes Uploader as both a value (typeof UploaderClass) and a type alias, so consumers have proper TypeScript typings for the uploader utility and Address component.

Refactor request stack handling

15 Mar 04:49

Choose a tag to compare

  1. refactor how requester configs are processed in formkit.vue. Removed the reactive Stacks array and onMounted initialization; introduced a computed requesterConfigs (filters props.config for items with requester and non-standalone types) and a deep, immediate watch that calls executeRequestStack when items change. executeRequestStack now accepts an items array iterator, making request execution respond to dynamic config updates and improving reactivity handling.
  2. Replace the deprecated upload size prop with explicit width and height props (defaults 80). In the component, add autoCalcSize to compute icon/progress sizes, update template bindings and styles to use width/height, and adjust icon/progress sizing.