@hinen/pro-element-plus 1.7.16 → 1.8.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/components/DataTable/DataTable.vue.d.ts +24 -6
- package/dist/components/DataTable/DataTable.vue.d.ts.map +1 -1
- package/dist/components/DataTable/props.d.ts +11 -2
- package/dist/components/DataTable/props.d.ts.map +1 -1
- package/dist/components/DataTable/types.d.ts +13 -1
- package/dist/components/DataTable/types.d.ts.map +1 -1
- package/dist/components/DataTable/useDataTable.d.ts.map +1 -1
- package/dist/components/DataTable/useFixedScrollbar.d.ts.map +1 -1
- package/dist/components/FormFields/FormCascadeSelect/FormCascadeSelect.vue.d.ts +136 -146
- package/dist/components/FormFields/FormCascadeSelect/FormCascadeSelect.vue.d.ts.map +1 -1
- package/dist/components/FormFields/FormCascadeSelect/props.d.ts +112 -114
- package/dist/components/FormFields/FormCascadeSelect/props.d.ts.map +1 -1
- package/dist/components/FormFields/FormCascadeSelect/types.d.ts +24 -1
- package/dist/components/FormFields/FormCascadeSelect/types.d.ts.map +1 -1
- package/dist/components/FormFields/FormTagInput/FormTagInput.vue.d.ts.map +1 -1
- package/dist/components/FormFields/FormTreeSelect/props.d.ts +3 -1
- package/dist/components/FormFields/FormTreeSelect/props.d.ts.map +1 -1
- package/dist/index.cjs +32 -32
- package/dist/index.js +2950 -2565
- package/dist/skills/building-form-workflows/SKILL.md +77 -0
- package/dist/skills/building-form-workflows/references/examples.md +47 -0
- package/dist/skills/building-form-workflows/references/field-selection.md +16 -0
- package/dist/skills/building-form-workflows/references/gotchas.md +10 -0
- package/dist/skills/building-form-workflows/references/workflow.md +21 -0
- package/dist/skills/building-modal-workflows/SKILL.md +79 -0
- package/dist/skills/building-modal-workflows/references/examples.md +104 -0
- package/dist/skills/building-modal-workflows/references/gotchas.md +19 -0
- package/dist/skills/building-modal-workflows/references/workflow.md +17 -0
- package/dist/skills/building-query-pages/SKILL.md +81 -0
- package/dist/skills/building-query-pages/references/examples.md +64 -0
- package/dist/skills/building-query-pages/references/field-selection.md +24 -0
- package/dist/skills/building-query-pages/references/gotchas.md +10 -0
- package/dist/skills/building-query-pages/references/workflow.md +22 -0
- package/dist/skills/building-selection-inputs/SKILL.md +85 -0
- package/dist/skills/building-selection-inputs/references/examples.md +87 -0
- package/dist/skills/building-selection-inputs/references/gotchas.md +19 -0
- package/dist/skills/building-selection-inputs/references/selection-guide.md +47 -0
- package/dist/skills/choosing-components/SKILL.md +78 -0
- package/dist/skills/choosing-components/references/component-groups.md +37 -0
- package/dist/skills/choosing-components/references/examples.md +91 -0
- package/dist/skills/choosing-components/references/gotchas.md +10 -0
- package/dist/skills/choosing-components/references/selection-guide.md +40 -0
- package/dist/skills/optimizing-component-skills/REVIEW.md +775 -0
- package/dist/skills/using-checkbox-group/SKILL.md +91 -0
- package/dist/skills/using-checkbox-group/references/examples.md +55 -0
- package/dist/skills/using-checkbox-group/references/gotchas.md +13 -0
- package/dist/skills/using-checkbox-group/references/props.md +83 -0
- package/dist/skills/using-config-provider/SKILL.md +96 -0
- package/dist/skills/using-config-provider/references/examples.md +38 -0
- package/dist/skills/using-config-provider/references/gotchas.md +13 -0
- package/dist/skills/using-config-provider/references/props.md +38 -0
- package/dist/skills/using-data-select/SKILL.md +127 -0
- package/dist/skills/using-data-select/references/examples.md +67 -0
- package/dist/skills/using-data-select/references/gotchas.md +19 -0
- package/dist/skills/using-data-select/references/props.md +126 -0
- package/dist/skills/using-data-table/SKILL.md +289 -0
- package/dist/skills/using-data-table/references/examples.md +347 -0
- package/dist/skills/using-data-table/references/gotchas.md +114 -0
- package/dist/skills/using-data-table/references/props.md +375 -0
- package/dist/skills/using-drawer/SKILL.md +104 -0
- package/dist/skills/using-drawer/references/examples.md +109 -0
- package/dist/skills/using-drawer/references/gotchas.md +16 -0
- package/dist/skills/using-drawer/references/props.md +105 -0
- package/dist/skills/using-ellipsis-text/SKILL.md +105 -0
- package/dist/skills/using-ellipsis-text/references/examples.md +71 -0
- package/dist/skills/using-ellipsis-text/references/gotchas.md +19 -0
- package/dist/skills/using-ellipsis-text/references/props.md +97 -0
- package/dist/skills/using-form-autocomplete/SKILL.md +87 -0
- package/dist/skills/using-form-autocomplete/references/examples.md +62 -0
- package/dist/skills/using-form-autocomplete/references/gotchas.md +13 -0
- package/dist/skills/using-form-autocomplete/references/props.md +100 -0
- package/dist/skills/using-form-cascade-select/SKILL.md +82 -0
- package/dist/skills/using-form-cascade-select/references/examples.md +59 -0
- package/dist/skills/using-form-cascade-select/references/gotchas.md +13 -0
- package/dist/skills/using-form-cascade-select/references/props.md +138 -0
- package/dist/skills/using-form-checkbox-group/SKILL.md +83 -0
- package/dist/skills/using-form-checkbox-group/references/examples.md +61 -0
- package/dist/skills/using-form-checkbox-group/references/gotchas.md +13 -0
- package/dist/skills/using-form-checkbox-group/references/props.md +85 -0
- package/dist/skills/using-form-date-picker/SKILL.md +79 -0
- package/dist/skills/using-form-date-picker/references/examples.md +54 -0
- package/dist/skills/using-form-date-picker/references/gotchas.md +10 -0
- package/dist/skills/using-form-date-picker/references/props.md +99 -0
- package/dist/skills/using-form-fields/SKILL.md +101 -0
- package/dist/skills/using-form-fields/references/examples.md +45 -0
- package/dist/skills/using-form-fields/references/gotchas.md +6 -0
- package/dist/skills/using-form-fields/references/props.md +57 -0
- package/dist/skills/using-form-item/SKILL.md +92 -0
- package/dist/skills/using-form-item/references/examples.md +59 -0
- package/dist/skills/using-form-item/references/gotchas.md +13 -0
- package/dist/skills/using-form-item/references/props.md +85 -0
- package/dist/skills/using-form-number/SKILL.md +82 -0
- package/dist/skills/using-form-number/references/examples.md +66 -0
- package/dist/skills/using-form-number/references/gotchas.md +13 -0
- package/dist/skills/using-form-number/references/props.md +82 -0
- package/dist/skills/using-form-radio-group/SKILL.md +83 -0
- package/dist/skills/using-form-radio-group/references/examples.md +53 -0
- package/dist/skills/using-form-radio-group/references/gotchas.md +13 -0
- package/dist/skills/using-form-radio-group/references/props.md +81 -0
- package/dist/skills/using-form-rate/SKILL.md +86 -0
- package/dist/skills/using-form-rate/references/examples.md +60 -0
- package/dist/skills/using-form-rate/references/gotchas.md +16 -0
- package/dist/skills/using-form-rate/references/props.md +88 -0
- package/dist/skills/using-form-select/SKILL.md +94 -0
- package/dist/skills/using-form-select/references/examples.md +67 -0
- package/dist/skills/using-form-select/references/gotchas.md +13 -0
- package/dist/skills/using-form-select/references/props.md +87 -0
- package/dist/skills/using-form-switch/SKILL.md +81 -0
- package/dist/skills/using-form-switch/references/examples.md +54 -0
- package/dist/skills/using-form-switch/references/gotchas.md +10 -0
- package/dist/skills/using-form-switch/references/props.md +83 -0
- package/dist/skills/using-form-tag-input/SKILL.md +83 -0
- package/dist/skills/using-form-tag-input/references/examples.md +53 -0
- package/dist/skills/using-form-tag-input/references/gotchas.md +13 -0
- package/dist/skills/using-form-tag-input/references/props.md +80 -0
- package/dist/skills/using-form-text/SKILL.md +82 -0
- package/dist/skills/using-form-text/references/examples.md +66 -0
- package/dist/skills/using-form-text/references/gotchas.md +13 -0
- package/dist/skills/using-form-text/references/props.md +98 -0
- package/dist/skills/using-form-time-picker/SKILL.md +78 -0
- package/dist/skills/using-form-time-picker/references/examples.md +53 -0
- package/dist/skills/using-form-time-picker/references/gotchas.md +10 -0
- package/dist/skills/using-form-time-picker/references/props.md +89 -0
- package/dist/skills/using-form-tree-select/SKILL.md +82 -0
- package/dist/skills/using-form-tree-select/references/examples.md +55 -0
- package/dist/skills/using-form-tree-select/references/gotchas.md +13 -0
- package/dist/skills/using-form-tree-select/references/props.md +86 -0
- package/dist/skills/using-image/SKILL.md +88 -0
- package/dist/skills/using-image/references/examples.md +31 -0
- package/dist/skills/using-image/references/gotchas.md +13 -0
- package/dist/skills/using-image/references/props.md +91 -0
- package/dist/skills/using-modal/SKILL.md +113 -0
- package/dist/skills/using-modal/references/examples.md +122 -0
- package/dist/skills/using-modal/references/gotchas.md +16 -0
- package/dist/skills/using-modal/references/props.md +100 -0
- package/dist/skills/using-query-form/SKILL.md +134 -0
- package/dist/skills/using-query-form/references/examples.md +103 -0
- package/dist/skills/using-query-form/references/gotchas.md +19 -0
- package/dist/skills/using-query-form/references/props.md +146 -0
- package/dist/skills/using-radio-group/SKILL.md +91 -0
- package/dist/skills/using-radio-group/references/examples.md +55 -0
- package/dist/skills/using-radio-group/references/gotchas.md +13 -0
- package/dist/skills/using-radio-group/references/props.md +83 -0
- package/dist/skills/using-select/SKILL.md +93 -0
- package/dist/skills/using-select/references/examples.md +50 -0
- package/dist/skills/using-select/references/gotchas.md +13 -0
- package/dist/skills/using-select/references/props.md +90 -0
- package/dist/style.css +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: building-selection-inputs
|
|
3
|
+
description: Use when you need to route selection UX into the right direct component or form-wrapper skill across dropdown, checkbox, radio, and request-driven choice patterns.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Building selection inputs
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
Use this skill as the **selection-control router** for the package.
|
|
11
|
+
|
|
12
|
+
Its job is to decide between visible choice sets, dropdowns, remote option loading, and form-wrapper variants, then hand off to the right normalized `using-*` skill.
|
|
13
|
+
|
|
14
|
+
## Use it when
|
|
15
|
+
|
|
16
|
+
Use this skill when several of these are true:
|
|
17
|
+
|
|
18
|
+
- you need to choose between dropdown, checkbox, radio, or remote-select patterns
|
|
19
|
+
- you need to know when to use a base selection component versus a `Form*` wrapper
|
|
20
|
+
- you want one quick routing layer before opening a component skill
|
|
21
|
+
- option visibility, option source, or wrapper context are still undecided
|
|
22
|
+
|
|
23
|
+
Strong signals this skill applies:
|
|
24
|
+
|
|
25
|
+
- “should users see all options or open a dropdown?”
|
|
26
|
+
- “is this local data or request-driven data?”
|
|
27
|
+
- “does this belong in a form wrapper?”
|
|
28
|
+
|
|
29
|
+
## Prefer something else when
|
|
30
|
+
|
|
31
|
+
- you already know the exact selection component you need
|
|
32
|
+
→ open `../using-select/SKILL.md`, `../using-data-select/SKILL.md`, `../using-radio-group/SKILL.md`, or `../using-checkbox-group/SKILL.md` directly
|
|
33
|
+
- the broader workflow is still undecided and the main question is page shape or form shape
|
|
34
|
+
→ use `../choosing-components/SKILL.md`, `../building-form-workflows/SKILL.md`, or `../building-query-pages/SKILL.md`
|
|
35
|
+
|
|
36
|
+
## Decision guide
|
|
37
|
+
|
|
38
|
+
Use `building-selection-inputs` if the answer is yes for **two or more** of these:
|
|
39
|
+
|
|
40
|
+
- Are several selection modalities still plausible?
|
|
41
|
+
- Does option visibility versus dropdown behavior matter to the UX?
|
|
42
|
+
- Is the source of options still undecided between local and request-driven?
|
|
43
|
+
- Do you need to choose between direct controls and form-wrapper versions?
|
|
44
|
+
|
|
45
|
+
If not, go straight to the narrowest known selection skill.
|
|
46
|
+
|
|
47
|
+
## Recommended path
|
|
48
|
+
|
|
49
|
+
1. Decide whether users should see all options at once or open a dropdown.
|
|
50
|
+
2. Decide whether the option list is local or request-driven.
|
|
51
|
+
3. If choices stay visible:
|
|
52
|
+
- one visible choice → `../using-radio-group/SKILL.md`
|
|
53
|
+
- many visible choices → `../using-checkbox-group/SKILL.md`
|
|
54
|
+
4. If choices live in a dropdown:
|
|
55
|
+
- local options → `../using-select/SKILL.md`
|
|
56
|
+
- request-driven or filter-aware options → `../using-data-select/SKILL.md`
|
|
57
|
+
5. If the control lives inside a schema-driven form or wrapper flow, swap to the matching `using-form-*` skill instead of the direct control.
|
|
58
|
+
- wrapped local dropdown → `../using-form-select/SKILL.md`
|
|
59
|
+
- wrapped visible single choice → `../using-form-radio-group/SKILL.md`
|
|
60
|
+
- wrapped visible multi choice → `../using-form-checkbox-group/SKILL.md`
|
|
61
|
+
- if request behavior is the dominant concern, compare `../using-data-select/SKILL.md` and `../using-form-select/SKILL.md` intentionally because there is no dedicated wrapped `DataSelect` router here
|
|
62
|
+
|
|
63
|
+
## Common mistakes
|
|
64
|
+
|
|
65
|
+
- choosing a dropdown when the UX needs visible comparison of a short set
|
|
66
|
+
- using visible radio or checkbox groups for long lists that should be selects
|
|
67
|
+
- skipping the local-versus-request-driven decision and forcing `Select` or `DataSelect` too early
|
|
68
|
+
- choosing direct controls when the field really belongs in a wrapped form flow
|
|
69
|
+
|
|
70
|
+
## Related skills
|
|
71
|
+
|
|
72
|
+
- Top-level router: `../choosing-components/SKILL.md`
|
|
73
|
+
- Local dropdown: `../using-select/SKILL.md`
|
|
74
|
+
- Request-aware dropdown: `../using-data-select/SKILL.md`
|
|
75
|
+
- Visible single-choice control: `../using-radio-group/SKILL.md`
|
|
76
|
+
- Visible multi-choice control: `../using-checkbox-group/SKILL.md`
|
|
77
|
+
- Wrapped local dropdown: `../using-form-select/SKILL.md`
|
|
78
|
+
- Wrapped visible single-choice control: `../using-form-radio-group/SKILL.md`
|
|
79
|
+
- Wrapped visible multi-choice control: `../using-form-checkbox-group/SKILL.md`
|
|
80
|
+
|
|
81
|
+
## References
|
|
82
|
+
|
|
83
|
+
- Selection guide: `./references/selection-guide.md`
|
|
84
|
+
- Examples: `./references/examples.md`
|
|
85
|
+
- Gotchas: `./references/gotchas.md`
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# Selection-input examples
|
|
2
|
+
|
|
3
|
+
## 1. Short status picker
|
|
4
|
+
|
|
5
|
+
Use `../../using-radio-group/SKILL.md` when a single visible choice is clearer than a dropdown.
|
|
6
|
+
|
|
7
|
+
Minimal pattern:
|
|
8
|
+
|
|
9
|
+
```vue
|
|
10
|
+
<RadioGroup :options="statusOptions" v-model="status" />
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Why this fits:
|
|
14
|
+
|
|
15
|
+
- only one value can be chosen
|
|
16
|
+
- the option set is short enough to stay visible
|
|
17
|
+
- comparison is easier than opening a dropdown
|
|
18
|
+
|
|
19
|
+
## 2. Multi-tag preferences
|
|
20
|
+
|
|
21
|
+
Use `../../using-checkbox-group/SKILL.md` when users need to see and combine several fixed options.
|
|
22
|
+
|
|
23
|
+
Minimal pattern:
|
|
24
|
+
|
|
25
|
+
```vue
|
|
26
|
+
<CheckboxGroup :options="featureOptions" v-model="enabledFeatures" />
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Why this fits:
|
|
30
|
+
|
|
31
|
+
- multiple values may be selected
|
|
32
|
+
- the option set is local and comparison-friendly
|
|
33
|
+
- visibility matters more than saving space
|
|
34
|
+
|
|
35
|
+
## 3. Large or remote option list
|
|
36
|
+
|
|
37
|
+
Use `../../using-data-select/SKILL.md` when options depend on a request, params, or typed filtering.
|
|
38
|
+
|
|
39
|
+
Minimal pattern:
|
|
40
|
+
|
|
41
|
+
```vue
|
|
42
|
+
<DataSelect v-model="userId" :request="requestUsers" filterable="remote" />
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Why this fits:
|
|
46
|
+
|
|
47
|
+
- options come from a request instead of a fixed local array
|
|
48
|
+
- loading behavior is part of the component decision
|
|
49
|
+
- a dropdown is more scalable than visible choices
|
|
50
|
+
|
|
51
|
+
## 4. Local dropdown for known options
|
|
52
|
+
|
|
53
|
+
Use `../../using-select/SKILL.md` when the options are known locally but still clearer in a dropdown than as visible radios or checkboxes.
|
|
54
|
+
|
|
55
|
+
Minimal pattern:
|
|
56
|
+
|
|
57
|
+
```vue
|
|
58
|
+
<Select :options="statusOptions" v-model="status" />
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Why this fits:
|
|
62
|
+
|
|
63
|
+
- the option list is local
|
|
64
|
+
- space matters more than visible comparison
|
|
65
|
+
- request behavior is not part of the component choice
|
|
66
|
+
|
|
67
|
+
## 5. Same semantics inside a form wrapper
|
|
68
|
+
|
|
69
|
+
Use the matching `../../using-form-*.md` skill when the same choice semantics belong inside a schema-driven form flow.
|
|
70
|
+
|
|
71
|
+
Minimal pattern:
|
|
72
|
+
|
|
73
|
+
```vue
|
|
74
|
+
<FormRadioGroup label="Status" prop="status" :options="statusOptions" />
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Common routes:
|
|
78
|
+
|
|
79
|
+
- wrapped visible single choice → `../../using-form-radio-group/SKILL.md`
|
|
80
|
+
- wrapped visible multi choice → `../../using-form-checkbox-group/SKILL.md`
|
|
81
|
+
- wrapped local dropdown → `../../using-form-select/SKILL.md`
|
|
82
|
+
|
|
83
|
+
Special note:
|
|
84
|
+
|
|
85
|
+
- if request behavior is the dominant concern inside a form-like surface, compare `../../using-data-select/SKILL.md` and `../../using-form-select/SKILL.md` intentionally, because there is no dedicated wrapped `DataSelect` router here
|
|
86
|
+
|
|
87
|
+
Use this route when the wrapper boundary matters as much as the selection modality.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Selection-input gotchas
|
|
2
|
+
|
|
3
|
+
- “Visible choices” and “dropdown choices” are different UX decisions
|
|
4
|
+
Do not choose by implementation habit before deciding which interaction users should see.
|
|
5
|
+
|
|
6
|
+
- The routing order matters
|
|
7
|
+
Decide visible-versus-dropdown first, local-versus-request-driven second, and direct-versus-wrapper third. Reversing that order usually creates the wrong component choice.
|
|
8
|
+
|
|
9
|
+
- Short option sets often should stay visible
|
|
10
|
+
Do not jump to a dropdown when a short set benefits from direct comparison as radios or checkboxes.
|
|
11
|
+
|
|
12
|
+
- Long visible choice sets become noise fast
|
|
13
|
+
If users must scan too many always-visible options, move back toward `Select` or `DataSelect` instead of forcing radio or checkbox groups.
|
|
14
|
+
|
|
15
|
+
- Local and request-driven options are different component families
|
|
16
|
+
If loading behavior matters, make that decision before picking between `Select` and `DataSelect`.
|
|
17
|
+
|
|
18
|
+
- Direct controls and form-wrapper controls are different abstraction levels
|
|
19
|
+
Use the wrapper variants when the field belongs inside schema-driven form flow.
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Selection guide
|
|
2
|
+
|
|
3
|
+
Use this guide when the control is already known to be a **selection input** and the remaining decision is about modality, option source, or wrapper depth.
|
|
4
|
+
|
|
5
|
+
## 1. Decide whether options stay visible or live in a dropdown
|
|
6
|
+
|
|
7
|
+
- visible single choice → `../../using-radio-group/SKILL.md`
|
|
8
|
+
- visible multi choice → `../../using-checkbox-group/SKILL.md`
|
|
9
|
+
- dropdown choice → continue to the source decision below
|
|
10
|
+
|
|
11
|
+
## 2. If it is a dropdown, decide whether options are local or request-driven
|
|
12
|
+
|
|
13
|
+
- local dropdown, grouped options, custom slots → `../../using-select/SKILL.md`
|
|
14
|
+
- request-driven options, filter-aware loading, debounce → `../../using-data-select/SKILL.md`
|
|
15
|
+
|
|
16
|
+
Prefer `DataSelect` only when option-loading behavior is part of the component decision, not just a future possibility.
|
|
17
|
+
|
|
18
|
+
## 3. Decide whether the control should be direct or wrapped
|
|
19
|
+
|
|
20
|
+
Use the direct component when:
|
|
21
|
+
|
|
22
|
+
- the control stands on its own
|
|
23
|
+
- wrapper-level label and validation behavior are not the main abstraction
|
|
24
|
+
- the main choice is purely about UX modality
|
|
25
|
+
|
|
26
|
+
Use form wrappers when:
|
|
27
|
+
|
|
28
|
+
- the control lives inside a schema-driven form
|
|
29
|
+
- the field should inherit `FormItem` label, validation, and wrapper behavior
|
|
30
|
+
- the choice semantics stay the same, but the abstraction level changes
|
|
31
|
+
|
|
32
|
+
Wrapper destinations:
|
|
33
|
+
|
|
34
|
+
- `../../using-form-select/SKILL.md`
|
|
35
|
+
- `../../using-form-checkbox-group/SKILL.md`
|
|
36
|
+
- `../../using-form-radio-group/SKILL.md`
|
|
37
|
+
- `../../using-form-cascade-select/SKILL.md`
|
|
38
|
+
- `../../using-form-tree-select/SKILL.md`
|
|
39
|
+
- `../../using-form-autocomplete/SKILL.md`
|
|
40
|
+
|
|
41
|
+
## 4. Keep these routing rules straight
|
|
42
|
+
|
|
43
|
+
- visible vs dropdown is a UX decision first
|
|
44
|
+
- local vs request-driven is a data-source decision second
|
|
45
|
+
- direct vs wrapper is an abstraction-level decision third
|
|
46
|
+
|
|
47
|
+
If the broader page or workflow family is still unclear, hand back up to `../../choosing-components/SKILL.md` instead of forcing a selection-control decision too early.
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: choosing-components
|
|
3
|
+
description: Use when you know the workflow or page shape you need, but not yet which @hinen/pro-element-plus using-* skill should lead the implementation.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Choosing components
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
Use this skill as the **top-level router** for the package skill system.
|
|
11
|
+
|
|
12
|
+
It is not a component API guide. Its job is to move from product intent — query page, form flow, overlay, selection control, or display primitive — into the smallest correct `using-*` or `building-*` skill.
|
|
13
|
+
|
|
14
|
+
## Use it when
|
|
15
|
+
|
|
16
|
+
Use this skill when several of these are true:
|
|
17
|
+
|
|
18
|
+
- you know the workflow you need, but not the component name
|
|
19
|
+
- you need to decide between a direct component and a `Form*` wrapper
|
|
20
|
+
- you need to narrow down selection, overlay, query, or display building blocks quickly
|
|
21
|
+
- you want one routing layer before opening a deeper component skill
|
|
22
|
+
|
|
23
|
+
Strong signals this skill applies:
|
|
24
|
+
|
|
25
|
+
- “which component should I use here?”
|
|
26
|
+
- “is this a QueryForm page or a DataTable page?”
|
|
27
|
+
- “should this be a select, radios, or checkboxes?”
|
|
28
|
+
- “does this belong in a form wrapper?”
|
|
29
|
+
|
|
30
|
+
## Prefer something else when
|
|
31
|
+
|
|
32
|
+
- you already know the exact component and only need its usage rules
|
|
33
|
+
→ open the matching `using-*` skill directly
|
|
34
|
+
- you are already narrowed to one workflow family such as selection, forms, overlays, or query pages
|
|
35
|
+
→ use `../building-selection-inputs/SKILL.md`, `../building-form-workflows/SKILL.md`, `../building-modal-workflows/SKILL.md`, or `../building-query-pages/SKILL.md`
|
|
36
|
+
|
|
37
|
+
## Decision guide
|
|
38
|
+
|
|
39
|
+
Use `choosing-components` if the answer is yes for **two or more** of these:
|
|
40
|
+
|
|
41
|
+
- Do you only know the user task, not the component?
|
|
42
|
+
- Are several component families still plausible?
|
|
43
|
+
- Do you need help choosing between direct components and wrapper variants?
|
|
44
|
+
- Would opening one routing skill first reduce the chance of picking the wrong implementation path?
|
|
45
|
+
|
|
46
|
+
If not, go straight to the narrowest known `using-*` skill.
|
|
47
|
+
|
|
48
|
+
## Recommended path
|
|
49
|
+
|
|
50
|
+
1. Start from the user task: query page, schema form, overlay flow, selection input, or display-only primitive.
|
|
51
|
+
2. Pick the relevant workflow router:
|
|
52
|
+
- query and result pages → `../building-query-pages/SKILL.md`
|
|
53
|
+
- schema-driven forms → `../building-form-workflows/SKILL.md`
|
|
54
|
+
- modal and drawer flows → `../building-modal-workflows/SKILL.md`
|
|
55
|
+
- choice controls → `../building-selection-inputs/SKILL.md`
|
|
56
|
+
3. If none of those fit cleanly, use the component-group map to jump directly into the smallest `using-*` skill.
|
|
57
|
+
4. Once narrowed, leave this skill and finish in the destination skill instead of staying at the top level.
|
|
58
|
+
|
|
59
|
+
## Common mistakes
|
|
60
|
+
|
|
61
|
+
- staying in the top-level router when the correct destination skill is already obvious
|
|
62
|
+
- jumping directly to a low-level component before deciding whether the workflow wants a wrapper or page-level shell
|
|
63
|
+
- treating `choosing-components` like a props guide instead of a handoff layer
|
|
64
|
+
- using one component family to force-fit a workflow that clearly belongs to another family
|
|
65
|
+
|
|
66
|
+
## Related skills
|
|
67
|
+
|
|
68
|
+
- Selection-control router: `../building-selection-inputs/SKILL.md`
|
|
69
|
+
- Form-workflow router: `../building-form-workflows/SKILL.md`
|
|
70
|
+
- Overlay router: `../building-modal-workflows/SKILL.md`
|
|
71
|
+
- Query-page router: `../building-query-pages/SKILL.md`
|
|
72
|
+
|
|
73
|
+
## References
|
|
74
|
+
|
|
75
|
+
- Component map: `./references/component-groups.md`
|
|
76
|
+
- Selection decision guide: `./references/selection-guide.md`
|
|
77
|
+
- Examples: `./references/examples.md`
|
|
78
|
+
- Gotchas: `./references/gotchas.md`
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Component groups
|
|
2
|
+
|
|
3
|
+
## Page-building flows
|
|
4
|
+
|
|
5
|
+
- `../building-query-pages/SKILL.md` for search + results pages
|
|
6
|
+
- `../building-form-workflows/SKILL.md` for schema-driven forms
|
|
7
|
+
- `../building-modal-workflows/SKILL.md` for modal or drawer flows
|
|
8
|
+
- `../building-selection-inputs/SKILL.md` for option picking controls
|
|
9
|
+
|
|
10
|
+
## Data and display
|
|
11
|
+
|
|
12
|
+
- `../../using-data-table/SKILL.md` for paginated query + table pages
|
|
13
|
+
- `../../using-query-form/SKILL.md` for standalone filter/search forms
|
|
14
|
+
- `../../using-image/SKILL.md` for image loading, preview, and failure states
|
|
15
|
+
- `../../using-ellipsis-text/SKILL.md` for truncation with tooltip support
|
|
16
|
+
|
|
17
|
+
## Selection controls
|
|
18
|
+
|
|
19
|
+
- `../../using-select/SKILL.md` for local select inputs with slots and grouping
|
|
20
|
+
- `../../using-data-select/SKILL.md` for remote or request-driven options
|
|
21
|
+
- `../../using-checkbox-group/SKILL.md` for multi-select sets rendered as checkboxes
|
|
22
|
+
- `../../using-radio-group/SKILL.md` for single-choice sets rendered as radios
|
|
23
|
+
|
|
24
|
+
## Overlays
|
|
25
|
+
|
|
26
|
+
- `../../using-modal/SKILL.md` for centered confirm or edit dialogs
|
|
27
|
+
- `../../using-drawer/SKILL.md` for side-panel flows with confirm and cancel actions
|
|
28
|
+
|
|
29
|
+
## Form wrappers
|
|
30
|
+
|
|
31
|
+
- `../../using-form-fields/SKILL.md` for the `FormFields` family overview
|
|
32
|
+
- `../../using-form-item/SKILL.md` for label, validation, and tooltip wrapper behavior
|
|
33
|
+
- `../../using-form-text/SKILL.md`, `../../using-form-number/SKILL.md`, `../../using-form-select/SKILL.md` and the other `using-form-*` skills for field-specific details
|
|
34
|
+
|
|
35
|
+
## Shared configuration
|
|
36
|
+
|
|
37
|
+
- `../../using-config-provider/SKILL.md` for shared DataTable empty and error rendering
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# Choosing-components examples
|
|
2
|
+
|
|
3
|
+
## 1. “I need a search page”
|
|
4
|
+
|
|
5
|
+
Start with `../building-query-pages/SKILL.md` when the page shape is filter plus results, not just one isolated component.
|
|
6
|
+
|
|
7
|
+
Typical fit:
|
|
8
|
+
|
|
9
|
+
- admin list page with filters and rows
|
|
10
|
+
- report page with a standard search shell
|
|
11
|
+
- table page that may later need shared empty or error treatment
|
|
12
|
+
|
|
13
|
+
## 2. “I need a field in a business form”
|
|
14
|
+
|
|
15
|
+
Start with `../building-form-workflows/SKILL.md` when the main decision is wrapper-family field choice rather than one raw input control.
|
|
16
|
+
|
|
17
|
+
Typical fit:
|
|
18
|
+
|
|
19
|
+
- settings form
|
|
20
|
+
- record create or edit form
|
|
21
|
+
- schema-driven form with mixed text, number, and wrapped choice fields
|
|
22
|
+
|
|
23
|
+
## 3. “I need users to pick from several options”
|
|
24
|
+
|
|
25
|
+
Start with `../building-selection-inputs/SKILL.md` when the choice is between dropdown, checkbox, radio, wrapper, or request-driven selection.
|
|
26
|
+
|
|
27
|
+
Typical fit:
|
|
28
|
+
|
|
29
|
+
- local dropdown versus visible radio decision
|
|
30
|
+
- API-backed selector with remote options
|
|
31
|
+
- selection control that may need a `Form*` wrapper instead of a direct component
|
|
32
|
+
|
|
33
|
+
## 4. “I need an overlay flow”
|
|
34
|
+
|
|
35
|
+
Start with `../building-modal-workflows/SKILL.md` when the main decision is centered modal versus side drawer.
|
|
36
|
+
|
|
37
|
+
Typical fit:
|
|
38
|
+
|
|
39
|
+
- confirm dialog
|
|
40
|
+
- compact modal editor
|
|
41
|
+
- side-panel review or edit flow
|
|
42
|
+
|
|
43
|
+
## 5. “I need a selection control inside a form”
|
|
44
|
+
|
|
45
|
+
Start with `../building-selection-inputs/SKILL.md` to choose the selection modality first, then move into `../building-form-workflows/SKILL.md` or the matching `using-form-*` skill when wrapper semantics become the real decision.
|
|
46
|
+
|
|
47
|
+
Typical fit:
|
|
48
|
+
|
|
49
|
+
- status selector inside a schema form
|
|
50
|
+
- wrapped checkbox or radio field in settings forms
|
|
51
|
+
- remote choice input that still belongs to a `FormItem` flow
|
|
52
|
+
|
|
53
|
+
## 6. “I need an overlay that contains a form”
|
|
54
|
+
|
|
55
|
+
Start with `../building-modal-workflows/SKILL.md` for the shell decision, then hand off to `../building-form-workflows/SKILL.md` for the body workflow.
|
|
56
|
+
|
|
57
|
+
Typical fit:
|
|
58
|
+
|
|
59
|
+
- edit-user modal
|
|
60
|
+
- create-project drawer
|
|
61
|
+
- approval overlay with wrapped fields and validation
|
|
62
|
+
|
|
63
|
+
## 7. “I need an overlay that contains a searchable list”
|
|
64
|
+
|
|
65
|
+
Start with `../building-modal-workflows/SKILL.md` for the shell decision, then hand off to `../building-query-pages/SKILL.md` when the body is really filter plus results.
|
|
66
|
+
|
|
67
|
+
Typical fit:
|
|
68
|
+
|
|
69
|
+
- select-from-list drawer
|
|
70
|
+
- search-and-pick modal
|
|
71
|
+
- review-history overlay with filters and rows
|
|
72
|
+
|
|
73
|
+
## 8. “I need the same field semantics in both forms and search pages”
|
|
74
|
+
|
|
75
|
+
Start with the workflow that owns the current surface, but expect a handoff between `../building-form-workflows/SKILL.md` and `../building-query-pages/SKILL.md` when the field meaning must stay consistent across both contexts.
|
|
76
|
+
|
|
77
|
+
Typical fit:
|
|
78
|
+
|
|
79
|
+
- status and date fields that appear in both edit forms and list filters
|
|
80
|
+
- business entities edited in one screen and searched in another
|
|
81
|
+
|
|
82
|
+
## 9. “I’m not sure whether this is a page shell, a field choice, or an overlay problem”
|
|
83
|
+
|
|
84
|
+
Stay in `choosing-components` long enough to classify the user task first:
|
|
85
|
+
|
|
86
|
+
- page with filters and results → `../building-query-pages/SKILL.md`
|
|
87
|
+
- business-form flow → `../building-form-workflows/SKILL.md`
|
|
88
|
+
- overlay shell decision → `../building-modal-workflows/SKILL.md`
|
|
89
|
+
- selection modality decision → `../building-selection-inputs/SKILL.md`
|
|
90
|
+
|
|
91
|
+
If the destination is already obvious after that classification, leave the top-level router immediately.
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Choosing-components gotchas
|
|
2
|
+
|
|
3
|
+
- This skill is a router, not a destination
|
|
4
|
+
Once the correct workflow family is clear, move into that skill instead of staying here.
|
|
5
|
+
|
|
6
|
+
- Workflow shape matters more than component names
|
|
7
|
+
Choosing by familiar component names too early often leads to the wrong abstraction level.
|
|
8
|
+
|
|
9
|
+
- Direct components and `Form*` wrappers are different decisions
|
|
10
|
+
If the control belongs in schema-driven form flow, use the form router before picking a direct component.
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Selection guide
|
|
2
|
+
|
|
3
|
+
Use this guide only when you are still at the **top-level routing** stage and selection controls are merely one candidate family among several.
|
|
4
|
+
|
|
5
|
+
## Start here
|
|
6
|
+
|
|
7
|
+
- If the product question is really “which kind of selection control is this?” → go to `../../building-selection-inputs/SKILL.md`
|
|
8
|
+
- If the broader page or workflow family is still unclear → stay in `../SKILL.md` and finish the top-level routing first
|
|
9
|
+
|
|
10
|
+
## Use direct selection components when
|
|
11
|
+
|
|
12
|
+
- the control stands on its own outside a schema-driven wrapper flow
|
|
13
|
+
- the main question is direct component choice rather than form-shell semantics
|
|
14
|
+
|
|
15
|
+
Typical direct destinations:
|
|
16
|
+
|
|
17
|
+
- local dropdown → `../../using-select/SKILL.md`
|
|
18
|
+
- request-driven dropdown → `../../using-data-select/SKILL.md`
|
|
19
|
+
- visible single choice → `../../using-radio-group/SKILL.md`
|
|
20
|
+
- visible multi choice → `../../using-checkbox-group/SKILL.md`
|
|
21
|
+
|
|
22
|
+
## Use form wrappers when
|
|
23
|
+
|
|
24
|
+
- the control lives inside a schema-driven form or `QueryForm.items`
|
|
25
|
+
- `FormItem` label, validation, and wrapper behavior should come along with the field
|
|
26
|
+
- the choice semantics stay the same, but the abstraction level changes
|
|
27
|
+
|
|
28
|
+
Typical wrapper destinations:
|
|
29
|
+
|
|
30
|
+
- `../../using-form-select/SKILL.md`
|
|
31
|
+
- `../../using-form-checkbox-group/SKILL.md`
|
|
32
|
+
- `../../using-form-radio-group/SKILL.md`
|
|
33
|
+
- `../../using-form-cascade-select/SKILL.md`
|
|
34
|
+
- `../../using-form-tree-select/SKILL.md`
|
|
35
|
+
- `../../using-form-autocomplete/SKILL.md`
|
|
36
|
+
|
|
37
|
+
## When to leave this guide
|
|
38
|
+
|
|
39
|
+
- If selection controls are definitely the right family, continue in `../../building-selection-inputs/SKILL.md` or its references instead of staying in the top-level router.
|
|
40
|
+
- If the workflow is already known to be query-page, form-workflow, or overlay work, use that router directly.
|