@fewangsit/wangsvue-gsts 2.0.0-alpha.3 → 2.0.0-alpha.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/assets/scanner.worker-DQsz7oT_.js.map +1 -0
  2. package/badge/Badge.fm.md +32 -0
  3. package/basetree/index.d.ts +31 -0
  4. package/breadcrumb/Breadcrumb.fm.md +23 -0
  5. package/button/Button.fm.md +53 -0
  6. package/buttonbulkaction/ButtonBulkAction-MenuItem.fm.md +18 -0
  7. package/buttonbulkaction/ButtonBulkAction.fm.md +25 -0
  8. package/buttondownload/ButtonDownload.fm.md +22 -0
  9. package/buttonfilter/ButtonFilter.fm.md +19 -0
  10. package/buttonscan/index.d.ts +6 -0
  11. package/buttonsearch/ButtonSearch.fm.md +19 -0
  12. package/buttonsearchbyscan/ButtonSearchByScan.fm.md +25 -0
  13. package/buttonselecttree/ButtonSelectTree.fm.md +40 -0
  14. package/buttonselecttree/index.d.ts +18 -0
  15. package/calendar/Calendar.fm.md +34 -0
  16. package/calendar/index.d.ts +41 -0
  17. package/changelogpage/index.d.ts +1 -1
  18. package/components.fm.md +56 -0
  19. package/customcolumn/index.d.ts +5 -5
  20. package/datatable/DataTable-MenuItem.fm.md +22 -0
  21. package/datatable/DataTable-TableColumn.fm.md +52 -0
  22. package/datatable/DataTable.fm.md +40 -0
  23. package/datatable/index.d.ts +10 -2
  24. package/dialog/index.d.ts +5 -0
  25. package/dialogconfirm/DialogConfirm.fm.md +29 -0
  26. package/dialogconfirm/index.d.ts +1 -0
  27. package/dialogform/DialogForm.fm.md +57 -0
  28. package/dialogform/index.d.ts +1 -1
  29. package/dialogselecttree/DialogSelectTree.fm.md +42 -0
  30. package/dialogselecttree/index.d.ts +25 -1
  31. package/dropdown/Dropdown.fm.md +34 -0
  32. package/fieldwrapper/index.d.ts +5 -0
  33. package/fileupload/FileUpload.fm.md +31 -0
  34. package/fileupload/index.d.ts +7 -1
  35. package/icon/index.d.ts +80 -67
  36. package/imagecompressor/ImageCompressor.fm.md +44 -0
  37. package/imagecompressor/index.d.ts +1 -1
  38. package/inputbadge/InputBadge.fm.md +34 -0
  39. package/inputbadge/index.d.ts +4 -0
  40. package/inputcurrency/index.d.ts +14 -0
  41. package/inputnumber/InputNumber.fm.md +39 -0
  42. package/inputpassword/InputPassword.fm.md +28 -0
  43. package/inputpassword/index.d.ts +4 -0
  44. package/inputphonenumber/InputPhoneNumber.fm.md +34 -0
  45. package/inputrangenumber/InputRangeNumber.fm.md +31 -0
  46. package/inputtext/InputText.fm.md +34 -0
  47. package/mcp/components.json +44 -35
  48. package/mcp/components.summary.txt +7 -4
  49. package/mcp/main.js +1276 -1152
  50. package/mcp/package.json +6 -6
  51. package/mcp/skills/api-service-generator/SKILL.md +93 -93
  52. package/mcp/skills/committing-changes/SKILL.md +38 -38
  53. package/mcp/skills/figma-datatable-generator/SKILL.md +93 -93
  54. package/mcp/skills/figma-to-code/SKILL.md +118 -117
  55. package/mcp/skills/import-validator/SKILL.md +54 -54
  56. package/mcp/skills/wangsvue-code-review/SKILL.md +72 -70
  57. package/mcp/skills/wangsvue-workflow/SKILL.md +92 -91
  58. package/menu/index.d.ts +4 -0
  59. package/multiselect/MultiSelect.fm.md +34 -0
  60. package/overlaypanel/index.d.ts +4 -0
  61. package/package.json +1 -1
  62. package/plugins/WangsVue.d.ts +4 -1
  63. package/stats.html +1 -1
  64. package/style.css +2 -2
  65. package/tabmenu/TabMenu.fm.md +28 -0
  66. package/tagtype/index.d.ts +1 -1
  67. package/textarea/TextArea.fm.md +34 -0
  68. package/toast/index.d.ts +13 -0
  69. package/tree/index.d.ts +34 -0
  70. package/utils/baseToast.util.d.ts +1 -24
  71. package/utils/toast.util.d.ts +1 -3
  72. package/wangsvue-gsts.es.js +21496 -21174
  73. package/wangsvue-gsts.es.js.map +1 -1
  74. package/wangsvue-gsts.system.js +62 -62
  75. package/wangsvue-gsts.system.js.map +1 -1
  76. package/assets/scanner.worker-CqQNqzoU.js.map +0 -1
@@ -1,91 +1,92 @@
1
- ---
2
- name: 'wangsvue-workflow'
3
- description: 'Enforces the 5-step mandatory workflow for Wangsvue development, including component discovery protocols. Invoke when starting a new task, feature, or component implementation.'
4
- ---
5
-
6
- # Wangsvue Mandatory Workflow
7
-
8
- This skill guides you through the 5 mandatory steps for any Wangsvue development task. You MUST follow these steps in order.
9
-
10
- ## The 5-Step Workflow
11
-
12
- ### Step 1: Standard Synchronization
13
-
14
- **Action:** Read relevant MD files before starting.
15
-
16
- - **Files to Check:** Vue Code Structure, Project Structure, Code Consistency Guidelines.
17
- - **Goal:** Ensure you are aligned with the latest architectural standards.
18
-
19
- ### Step 2: Technical Discovery (MCP First)
20
-
21
- **Action:** Use MCP tools to find components and types.
22
-
23
- - **Command:** `mcp_wangsvue_mcp_list_all_components()`
24
- - **Command:** `mcp_wangsvue_mcp_analyze_component(componentId, format: "toon")`
25
- - **Command:** `mcp_wangsvue_mcp_resolve_type_definition(types: [...])`
26
- - **Goal:** Get the correct component ID, import paths, and TypeScript contracts.
27
- - **Rule:** NEVER write import statements without MCP verification.
28
-
29
- #### 🔍 Discovery Protocol (Detailed)
30
-
31
- **Always ask:** "Does Wangsvue have a specialized component for this?"
32
-
33
- **Keyword Search Guide:**
34
-
35
- - **Functional Components:**
36
-
37
- - Filter? → Search "filter"
38
- - Download? → Search "download" (e.g., `ButtonDownload`)
39
- - Bulk actions? → Search "bulk" (e.g., `ButtonBulkAction`)
40
- - Search? → Search "search" (e.g., `ButtonSearch`)
41
- - Upload? → Search "upload" (e.g., `FileUpload`)
42
- - Copy? → Search "copy" (e.g., `ButtonCopy`)
43
-
44
- - **Structural Components:**
45
- - Card/Container? → Search "card" (for background, padding, border)
46
- - Form wrapper? → Search "form"
47
- - Modal/Popup? → Search "dialog", "dialogconfirm"
48
- - Loading? → Search "loading"
49
-
50
- **Mental Shift Required:**
51
-
52
- - **❌ OLD:** "I need a container with background" → `<div class="bg-white p-4">`
53
- - **✅ NEW:** "I need a container" → Search components → Find `Card`
54
- - **❌ OLD:** "I need a button for download" → `<Button>`
55
- - **✅ NEW:** "I need download functionality" → Search components → Find `ButtonDownload`
56
-
57
- ### Step 3: Pattern Extraction (Documentation)
58
-
59
- **Action:** Use MCP tools to see real usage patterns.
60
-
61
- 1. **Mandatory Discovery:** Call `mcp_wangsvue_docs_get_sections(component)` FIRST to see available section IDs.
62
- 2. **Extraction:** Call `mcp_wangsvue_docs_get_example(component, section)` using the exact ID found in step 1.
63
-
64
- - **Goal:** Understand intended usage, built-in features, and architecture.
65
- - **Rule:** NEVER guess a section name. NEVER assume an example exists without checking sections.
66
- - **Rule:** Follow examples EXACTLY. Do not create custom interpretations.
67
-
68
- **Questions to Ask:**
69
-
70
- - "Does this component handle its own state?" (e.g., `DataTable` handles pagination)
71
- - "Does it integrate with Router?" (e.g., `TabMenu`)
72
- - "Does it use a store?" (e.g., `Breadcrumb` uses `useBreadcrumbStore`)
73
-
74
- ### Step 4: Synthesis (Strict Implementation)
75
-
76
- **Action:** Implement the code following strict structure rules.
77
-
78
- - **Structure:** Script → Template → Style.
79
- - **Organization:** Imports → Props/Emits → Lifecycle → Variables → Methods.
80
- - **Logic:** Business logic in `components/modules/`, NOT in views.
81
- - **Views:** Lightweight, only import and compose from modules.
82
- - **Attributes:** Ensure `data-wv-name` and `data-wv-section` are present.
83
-
84
- ### Step 5: Validation (The "Black Box" Linter Rule)
85
-
86
- Launch skill `wangsvue-code-review`.
87
-
88
- ## Repetition Protocol
89
-
90
- Before starting, affirm:
91
- "I WILL DISCOVER SPECIALIZED COMPONENTS FIRST. I WILL CALL GET_SECTIONS BEFORE GET_EXAMPLE. I WILL NOT GUESS SECTION NAMES OR IMPORTS. I WILL FOLLOW DOCUMENTED PATTERNS EXACTLY. I WILL RUN PNPM LINT."
1
+ ---
2
+ name: 'wangsvue-workflow'
3
+ description: 'Enforces the 5-step mandatory workflow for Wangsvue development, including component discovery protocols. Invoke when starting a new task, feature, or component implementation.'
4
+ ---
5
+
6
+ # Wangsvue Mandatory Workflow
7
+
8
+ This skill guides you through the 5 mandatory steps for any Wangsvue development task. You MUST follow these steps in order.
9
+
10
+ ## The 5-Step Workflow
11
+
12
+ ### Step 1: Standard Synchronization
13
+
14
+ **Action:** Read relevant MD files before starting.
15
+
16
+ - **Files to Check:** Vue Code Structure, Project Structure, Code Consistency Guidelines.
17
+ - **Goal:** Ensure you are aligned with the latest architectural standards.
18
+
19
+ ### Step 2: Technical Discovery (MCP First)
20
+
21
+ **Action:** Use MCP tools to find components and types.
22
+
23
+ - **Command:** `mcp_wangsvue_mcp_list_all_components()`
24
+ - **Command:** `mcp_wangsvue_mcp_analyze_component(componentId, format: "toon")`
25
+ - **Command:** `mcp_wangsvue_mcp_resolve_type_definition(types: [...])`
26
+ - **Goal:** Get the correct component ID, import paths, and TypeScript contracts.
27
+ - **Rule:** NEVER write import statements without MCP verification.
28
+
29
+ #### 🔍 Discovery Protocol (Detailed)
30
+
31
+ **Always ask:** "Does Wangsvue have a specialized component for this?"
32
+
33
+ **Keyword Search Guide:**
34
+
35
+ - **Functional Components:**
36
+
37
+ - Filter? → Search "filter"
38
+ - Download? → Search "download" (e.g., `ButtonDownload`)
39
+ - Bulk actions? → Search "bulk" (e.g., `ButtonBulkAction`)
40
+ - Search? → Search "search" (e.g., `ButtonSearch`)
41
+ - Upload? → Search "upload" (e.g., `FileUpload`)
42
+ - Copy? → Search "copy" (e.g., `ButtonCopy`)
43
+
44
+ - **Structural Components:**
45
+ - Card/Container? → Search "card" (for background, padding, border)
46
+ - Form wrapper? → Search "form"
47
+ - Modal/Popup? → Search "dialog", "dialogconfirm"
48
+ - Loading? → Search "loading"
49
+
50
+ **Mental Shift Required:**
51
+
52
+ - **❌ OLD:** "I need a container with background" → `<div class="bg-white p-4">`
53
+ - **✅ NEW:** "I need a container" → Search components → Find `Card`
54
+ - **❌ OLD:** "I need a button for download" → `<Button>`
55
+ - **✅ NEW:** "I need download functionality" → Search components → Find `ButtonDownload`
56
+
57
+ ### Step 3: Pattern Extraction (Documentation)
58
+
59
+ **Action:** Use MCP tools to see real usage patterns.
60
+
61
+ 1. **Mandatory Discovery:** Call `mcp_wangsvue_docs_get_sections(component)` FIRST to see available section IDs.
62
+ 2. **Extraction:** Call `mcp_wangsvue_docs_get_example(component, section)` using the exact ID found in step 1.
63
+
64
+ - **Goal:** Understand intended usage, built-in features, and architecture.
65
+ - **Rule:** NEVER guess a section name. NEVER assume an example exists without checking sections.
66
+ - **Rule:** Follow examples EXACTLY. Do not create custom interpretations.
67
+
68
+ **Questions to Ask:**
69
+
70
+ - "Does this component handle its own state?" (e.g., `DataTable` handles pagination)
71
+ - "Does it integrate with Router?" (e.g., `TabMenu`)
72
+ - "Does it use a store?" (e.g., `Breadcrumb` uses `useBreadcrumbStore`)
73
+
74
+ ### Step 4: Synthesis (Strict Implementation)
75
+
76
+ **Action:** Implement the code following strict structure rules.
77
+
78
+ - **Structure:** Script → Template → Style.
79
+ - **Organization:** Imports → Props/Emits → Lifecycle → Variables → Methods.
80
+ - **Logic:** Business logic in `components/modules/`, NOT in views.
81
+ - **Views:** Lightweight, only import and compose from modules.
82
+ - **Attributes:** Ensure `data-wv-name` and `data-wv-section` are present.
83
+ - **Accessibility:** Interactive elements must have `aria-label`, `aria-labelledby`, or `aria-describedby`.
84
+
85
+ ### Step 5: Validation (The "Black Box" Linter Rule)
86
+
87
+ Launch skill `wangsvue-code-review`.
88
+
89
+ ## Repetition Protocol
90
+
91
+ Before starting, affirm:
92
+ "I WILL DISCOVER SPECIALIZED COMPONENTS FIRST. I WILL CALL GET_SECTIONS BEFORE GET_EXAMPLE. I WILL NOT GUESS SECTION NAMES OR IMPORTS. I WILL FOLLOW DOCUMENTED PATTERNS EXACTLY. I WILL RUN PNPM LINT."
package/menu/index.d.ts CHANGED
@@ -304,6 +304,10 @@ export interface MenuSlots {
304
304
  * Binding properties of the menuitem
305
305
  */
306
306
  props: MenuRouterBindProps;
307
+ /**
308
+ * Index of the menuitem
309
+ */
310
+ index: number;
307
311
  }): VNode[];
308
312
  /**
309
313
  * Custom item icon template.
@@ -0,0 +1,34 @@
1
+ # MultiSelect
2
+ type reference: ./index.d.ts
3
+
4
+ Append a `MultiSelect` component when the figma context contains:
5
+
6
+ - A figma component or instance named "Multi Select" or similar, consisting of a multi-select input field optionally paired with a label, required asterisk, info icon, and a dropdown arrow icon. When values are selected, they appear as badge chips inside the input area.
7
+
8
+ ## Metadata Shape (Component)
9
+
10
+ Append this component to the `components` array of the returned JSON.
11
+
12
+ ## Metadata Shape (Properties)
13
+
14
+ Append these properties to the `props` object of this component.
15
+
16
+ ### Properties definitions
17
+
18
+ - `label` (string)
19
+ The text of the label displayed above the multi-select.
20
+
21
+ - `placeholder` (string | undefined)
22
+ The placeholder text inside the multi-select (e.g. "Select"). When value(s) are selected, the placeholder is replaced with badge chips. Omit if no placeholder text is visible.
23
+
24
+ - `mandatory` (boolean | undefined)
25
+ Whether a red asterisk `*` is present next to the label, indicating the field is required. Omit if absent.
26
+
27
+ - `fieldInfo` (string | undefined)
28
+ Whether an info icon (`information-line`) is present next to the label. Omit if absent.
29
+
30
+ - `invalid` (boolean | undefined)
31
+ Whether the multi-select shows an error state (red border, red caption text). Omit if the field is not in error state.
32
+
33
+ - `disabled` (boolean | undefined)
34
+ Whether the multi-select shows a disabled state (gray background, gray text). Omit if the field is not disabled.
@@ -129,6 +129,10 @@ export interface OverlayPanelBreakpoints {
129
129
  * Defines valid properties in OverlayPanel component.
130
130
  */
131
131
  export interface OverlayPanelProps {
132
+ /**
133
+ * Defines the aria-label attribute for the overlay panel.
134
+ */
135
+ ariaLabel?: string;
132
136
  /**
133
137
  * Enables to hide the overlay when outside is clicked.
134
138
  * @defaultValue true
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fewangsit/wangsvue-gsts",
3
- "version": "2.0.0-alpha.3",
3
+ "version": "2.0.0-alpha.30",
4
4
  "author": "Wangsit FE Developer",
5
5
  "description": "Global Settings Tagsamurai VueJS Component Library",
6
6
  "type": "module",
@@ -15,6 +15,7 @@ import { ButtonSearchLocaleConfig } from '../buttonsearch';
15
15
  import { CalendarLocaleConfig, CalendarPresetOptions } from '../calendar';
16
16
  import { CustomColumnLocaleConfig } from '../customcolumn';
17
17
  import {
18
+ Data,
18
19
  DataTableLocaleConfig,
19
20
  DataTableProps,
20
21
  TreeTableProps,
@@ -39,6 +40,7 @@ import { MultiSelectLocaleConfig } from '../multiselect';
39
40
  import { OverlayPanelPassThroughOptions } from '../overlaypanel';
40
41
  import { TagTypeProps } from '../tagtype';
41
42
  import { TextareaLocaleConfig } from '../textarea';
43
+ import { ToastLocaleConfig } from '../toast';
42
44
  import { TreeProps } from '../tree';
43
45
  import {
44
46
  UserNameComponentConfigs,
@@ -58,7 +60,7 @@ export interface ComponentDefaultPropsConfig {
58
60
  Image?: ImageProps;
59
61
  ButtonBulkAction?: Omit<ButtonBulkActionProps, 'selectedData' | 'options'>;
60
62
  Animation?: AnimationDefaultConfig;
61
- DataTable?: Partial<DataTableProps | TreeTableProps>;
63
+ DataTable?: Partial<DataTableProps<Data> | TreeTableProps<Data>>;
62
64
  Badge?: Partial<BadgeComponentConfigs>;
63
65
  UserName?: UserNameComponentConfigs;
64
66
  Dropdown?: DropdownProps;
@@ -87,6 +89,7 @@ interface ComponentLocaleConfig {
87
89
  DataTable?: DataTableLocaleConfig;
88
90
  ImageCompressor?: ImageCompressorLocaleConfig;
89
91
  ButtonDownload?: ButtonDownloadLocaleConfig;
92
+ Toast?: ToastLocaleConfig;
90
93
  }
91
94
  export interface LocaleConfig {
92
95
  global: Partial<typeof DEFAULT_GLOBAL_LOCALE_CONFIG>;