wavemaker-dev-mcp 0.1.1 → 1.0.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.
Files changed (115) hide show
  1. package/README.md +75 -51
  2. package/dist/index.js +131 -180
  3. package/dist/index.js.map +1 -1
  4. package/dist/layout-tools.d.ts +27 -3
  5. package/dist/layout-tools.d.ts.map +1 -1
  6. package/dist/layout-tools.js +85 -32
  7. package/dist/layout-tools.js.map +1 -1
  8. package/dist/skills/loader.d.ts +36 -0
  9. package/dist/skills/loader.d.ts.map +1 -0
  10. package/dist/skills/loader.js +107 -0
  11. package/dist/skills/loader.js.map +1 -0
  12. package/package.json +8 -4
  13. package/skills/components/wm-accordion-pane.md +44 -0
  14. package/skills/components/wm-accordion.md +43 -0
  15. package/skills/components/wm-alert-dialog.md +42 -0
  16. package/skills/components/wm-anchor.md +51 -0
  17. package/skills/components/wm-audio.md +41 -0
  18. package/skills/components/wm-button-group.md +36 -0
  19. package/skills/components/wm-button.md +114 -0
  20. package/skills/components/wm-calendar.md +54 -0
  21. package/skills/components/wm-card.md +60 -0
  22. package/skills/components/wm-carousel.md +43 -0
  23. package/skills/components/wm-chart.md +104 -0
  24. package/skills/components/wm-checkbox.md +52 -0
  25. package/skills/components/wm-checkboxset.md +75 -0
  26. package/skills/components/wm-chips.md +78 -0
  27. package/skills/components/wm-composite.md +30 -0
  28. package/skills/components/wm-confirm-dialog.md +43 -0
  29. package/skills/components/wm-container.md +100 -0
  30. package/skills/components/wm-currency.md +69 -0
  31. package/skills/components/wm-datatable.md +146 -0
  32. package/skills/components/wm-date-time.md +80 -0
  33. package/skills/components/wm-date.md +78 -0
  34. package/skills/components/wm-dialog-body.md +28 -0
  35. package/skills/components/wm-dialog-container.md +48 -0
  36. package/skills/components/wm-dialog-content.md +31 -0
  37. package/skills/components/wm-dialog-footer.md +28 -0
  38. package/skills/components/wm-dialog-header.md +43 -0
  39. package/skills/components/wm-dialog.md +40 -0
  40. package/skills/components/wm-file-upload.md +58 -0
  41. package/skills/components/wm-footer.md +31 -0
  42. package/skills/components/wm-form-field.md +81 -0
  43. package/skills/components/wm-form.md +58 -0
  44. package/skills/components/wm-grid-column.md +30 -0
  45. package/skills/components/wm-header.md +31 -0
  46. package/skills/components/wm-html.md +31 -0
  47. package/skills/components/wm-icon.md +40 -0
  48. package/skills/components/wm-iframe-dialog.md +52 -0
  49. package/skills/components/wm-iframe.md +35 -0
  50. package/skills/components/wm-label.md +45 -0
  51. package/skills/components/wm-left-nav.md +35 -0
  52. package/skills/components/wm-linear-layout-item.md +28 -0
  53. package/skills/components/wm-linear-layout.md +92 -0
  54. package/skills/components/wm-list.md +92 -0
  55. package/skills/components/wm-live-filter.md +50 -0
  56. package/skills/components/wm-live-form.md +35 -0
  57. package/skills/components/wm-login-dialog.md +50 -0
  58. package/skills/components/wm-login.md +39 -0
  59. package/skills/components/wm-marquee.md +31 -0
  60. package/skills/components/wm-menu.md +71 -0
  61. package/skills/components/wm-message.md +41 -0
  62. package/skills/components/wm-nav-item.md +28 -0
  63. package/skills/components/wm-nav.md +61 -0
  64. package/skills/components/wm-number.md +62 -0
  65. package/skills/components/wm-page-content.md +34 -0
  66. package/skills/components/wm-page-dialog.md +45 -0
  67. package/skills/components/wm-page-toast.md +34 -0
  68. package/skills/components/wm-page.md +34 -0
  69. package/skills/components/wm-pagination.md +62 -0
  70. package/skills/components/wm-panel.md +69 -0
  71. package/skills/components/wm-partial-container.md +32 -0
  72. package/skills/components/wm-picture.md +46 -0
  73. package/skills/components/wm-popover.md +51 -0
  74. package/skills/components/wm-prefab-container.md +29 -0
  75. package/skills/components/wm-prefab.md +35 -0
  76. package/skills/components/wm-progress-bar.md +42 -0
  77. package/skills/components/wm-progress-circle.md +45 -0
  78. package/skills/components/wm-radioset.md +66 -0
  79. package/skills/components/wm-rating.md +76 -0
  80. package/skills/components/wm-rich-text-editor.md +36 -0
  81. package/skills/components/wm-right-nav.md +32 -0
  82. package/skills/components/wm-search.md +66 -0
  83. package/skills/components/wm-select.md +129 -0
  84. package/skills/components/wm-slider.md +53 -0
  85. package/skills/components/wm-spinner.md +43 -0
  86. package/skills/components/wm-tab-pane.md +45 -0
  87. package/skills/components/wm-table.md +113 -0
  88. package/skills/components/wm-tabs.md +48 -0
  89. package/skills/components/wm-text.md +65 -0
  90. package/skills/components/wm-textarea.md +47 -0
  91. package/skills/components/wm-tile.md +34 -0
  92. package/skills/components/wm-time.md +63 -0
  93. package/skills/components/wm-top-nav.md +31 -0
  94. package/skills/components/wm-tree.md +41 -0
  95. package/skills/components/wm-upload.md +42 -0
  96. package/skills/components/wm-video.md +48 -0
  97. package/skills/components/wm-wizard.md +59 -0
  98. package/skills/index.json +1151 -0
  99. package/skills/tokens/border.md +85 -0
  100. package/skills/tokens/colors.md +97 -0
  101. package/skills/tokens/elevation.md +73 -0
  102. package/skills/tokens/spacing.md +89 -0
  103. package/skills/tokens/typography.md +88 -0
  104. package/dist/components.d.ts +0 -17
  105. package/dist/components.d.ts.map +0 -1
  106. package/dist/components.js +0 -67
  107. package/dist/components.js.map +0 -1
  108. package/dist/paths.d.ts +0 -43
  109. package/dist/paths.d.ts.map +0 -1
  110. package/dist/paths.js +0 -103
  111. package/dist/paths.js.map +0 -1
  112. package/dist/search.d.ts +0 -15
  113. package/dist/search.d.ts.map +0 -1
  114. package/dist/search.js +0 -130
  115. package/dist/search.js.map +0 -1
@@ -0,0 +1,30 @@
1
+ ---
2
+ component: WmComposite
3
+ category: input
4
+ import: components/input/composite
5
+ tags: [input, composite, form-field]
6
+ summary: Composite input field.
7
+ generated: true
8
+ ---
9
+
10
+ # WmComposite
11
+
12
+ Composite input field.
13
+
14
+ ## Usage
15
+
16
+ ```jsx
17
+ <WmComposite
18
+ name="composite"
19
+ />
20
+ ```
21
+
22
+ ## Props
23
+
24
+ | Prop | Type | Req | Default | Description |
25
+ |------|------|-----|---------|-------------|
26
+ | captionposition | `"left" \| "right" \| "top" \| "floating"` | No | `"left"` | Position of the label relative to the input. |
27
+ | required | `boolean` | No | — | Whether the contained input is required. |
28
+ | id | `string` | No | — | The unique ID for the widget. |
29
+
30
+ *Inherits BaseProps: `name`, `show`, `className`, `width`, `height`, `padding`, `margin`, `onClick`, and more.*
@@ -0,0 +1,43 @@
1
+ ---
2
+ component: WmConfirmDialog
3
+ category: dialogs
4
+ import: components/dialogs/confirm-dialog
5
+ tags: [dialogs, confirm, dialog, icon]
6
+ summary: Confirm Dialog — modal dialog.
7
+ generated: true
8
+ ---
9
+
10
+ # WmConfirmDialog
11
+
12
+ Confirm Dialog — modal dialog.
13
+
14
+ ## Usage
15
+
16
+ ```jsx
17
+ <WmConfirmDialog
18
+ name="confirmDialog"
19
+ title="My Panel"
20
+ />
21
+ ```
22
+
23
+ ## Props
24
+
25
+ | Prop | Type | Req | Default | Description |
26
+ |------|------|-----|---------|-------------|
27
+ | oktext | `string` | No | — | Text for the OK button. |
28
+ | canceltext | `string` | No | — | Text for the Cancel button. |
29
+ | title | `string` | No | — | Title text for the confirm dialog. |
30
+ | message | `string \| ReactNode` | No | — | Message content for the confirm dialog. |
31
+ | text | `string \| ReactNode` | No | — | Text content for the confirm dialog. |
32
+ | iconclass | `string` | No | — | CSS class for the icon. |
33
+ | onOk | `(event?: SyntheticEvent) => void` | No | — | Callback fired when the OK button is clicked. |
34
+ | onCancel | `(event?: SyntheticEvent) => void` | No | — | Callback fired when the Cancel button is clicked. |
35
+ | onClose | `(event?: SyntheticEvent) => void` | No | — | Callback fired when the dialog requests to be closed. |
36
+
37
+ *Inherits BaseProps: `name`, `show`, `className`, `width`, `height`, `padding`, `margin`, `onClick`, and more.*
38
+
39
+ ## CSS Tokens
40
+
41
+ Component-specific CSS variables: `--wm-confirm-dialog-*`
42
+
43
+ See foundation-css: `src/tokens/web/components/modal-dialog/modal-dialog.json`
@@ -0,0 +1,100 @@
1
+ ---
2
+ component: WmContainer
3
+ category: container
4
+ import: components/container
5
+ tags: [container, flex, wrapper, section, panel, alignment, gap]
6
+ summary: General-purpose flex container with alignment, gap, wrap, overflow, and z-index control.
7
+ related: [WmLinearLayout, WmLayoutGrid, WmPanel]
8
+ ---
9
+
10
+ # WmContainer
11
+
12
+ General-purpose flex container. Use for sections, cards, and any area needing alignment control, overflow clipping, or z-index stacking. Unlike `WmLinearLayout`, it does not require `WmLinearLayoutItem` wrappers — children are placed directly.
13
+
14
+ ## Usage
15
+
16
+ ```jsx
17
+ <WmContainer
18
+ name="profileCard"
19
+ direction="row"
20
+ alignment="middle-left"
21
+ gap={16}
22
+ width="100%"
23
+ padding="16px"
24
+ >
25
+ <WmPicture name="avatar" />
26
+ <WmLabel name="userName" caption="Jane Doe" />
27
+ </WmContainer>
28
+ ```
29
+
30
+ ## Key Props
31
+
32
+ | Prop | Type | Default | Description |
33
+ |------|------|---------|-------------|
34
+ | direction | `"row" \| "column"` | `"column"` | Flex direction |
35
+ | alignment | `ContainerAlignment` | `"top-left"` | Combined horizontal + vertical alignment (see table below) |
36
+ | gap | `string \| number` | — | Gap between children in px |
37
+ | columngap | `string \| number` | — | Column gap when `wrap` is true |
38
+ | wrap | `boolean` | `false` | Allow children to wrap to next line |
39
+ | clipcontent | `string \| boolean` | — | Clip overflowing content |
40
+ | position | `string` | — | CSS position (`"relative"`, `"absolute"`, `"fixed"`) |
41
+ | overflow | `string` | — | CSS overflow (`"auto"`, `"hidden"`, `"scroll"`) |
42
+ | zindex | `string \| number` | — | CSS z-index |
43
+ | content | `string` | — | Named partial for deferred rendering |
44
+ | name | `string` | — | Required. Widget identifier |
45
+ | width | `string` | — | CSS width |
46
+ | height | `string` | — | CSS height |
47
+ | padding | `string` | — | CSS padding shorthand |
48
+ | className | `string` | — | Additional CSS class names |
49
+
50
+ ## Alignment Values
51
+
52
+ | Value | Flex equivalent |
53
+ |-------|----------------|
54
+ | `"top-left"` | justify: start, align: start |
55
+ | `"top-center"` | justify: center, align: start |
56
+ | `"top-right"` | justify: end, align: start |
57
+ | `"middle-left"` | justify: start, align: center |
58
+ | `"middle-center"` | justify: center, align: center |
59
+ | `"middle-right"` | justify: end, align: center |
60
+ | `"bottom-left"` | justify: start, align: end |
61
+ | `"bottom-center"` | justify: center, align: end |
62
+ | `"bottom-right"` | justify: end, align: end |
63
+ | `"center"` | both centered |
64
+
65
+ ## Patterns
66
+
67
+ **Card with header and body:**
68
+ ```jsx
69
+ <WmContainer name="card" direction="column" gap={0} padding="16px" className="app-card">
70
+ <WmLabel name="cardTitle" caption="Summary" />
71
+ <WmContainer name="cardBody" direction="column" gap={12}>
72
+ <WmLabel name="stat1" caption="42 users" />
73
+ <WmLabel name="stat2" caption="7 active" />
74
+ </WmContainer>
75
+ </WmContainer>
76
+ ```
77
+
78
+ **Sticky overlay (absolute positioned):**
79
+ ```jsx
80
+ <WmContainer name="overlay" position="absolute" zindex={100} alignment="middle-center" width="100%" height="100%">
81
+ <WmLabel name="loadingMsg" caption="Loading..." />
82
+ </WmContainer>
83
+ ```
84
+
85
+ **Scrollable content area:**
86
+ ```jsx
87
+ <WmContainer name="scrollArea" direction="column" overflow="auto" height="400px">
88
+ {/* long content */}
89
+ </WmContainer>
90
+ ```
91
+
92
+ ## WmContainer vs WmLinearLayout
93
+
94
+ | | WmContainer | WmLinearLayout |
95
+ |---|---|---|
96
+ | Child wrappers needed | No | Yes (`WmLinearLayoutItem`) |
97
+ | Spacing control | `gap` prop (px) | `spacing` prop (token-based) |
98
+ | Alignment | Single `alignment` prop | Separate `horizontalalign` / `verticalalign` |
99
+ | Wrap support | Yes | No |
100
+ | Use for | Sections, cards, panels | Item lists, toolbars, stacks |
@@ -0,0 +1,69 @@
1
+ ---
2
+ component: WmCurrency
3
+ category: input
4
+ import: components/input/currency
5
+ tags: [input, currency, form-field]
6
+ summary: Currency input field.
7
+ generated: true
8
+ ---
9
+
10
+ # WmCurrency
11
+
12
+ Currency input field.
13
+
14
+ ## Usage
15
+
16
+ ```jsx
17
+ <WmCurrency
18
+ name="currency"
19
+ datavalue={value}
20
+ />
21
+ ```
22
+
23
+ ## Props
24
+
25
+ | Prop | Type | Req | Default | Description |
26
+ |------|------|-----|---------|-------------|
27
+ | currency | `string` | No | `"USD"` | ISO 4217 currency code. |
28
+ | currencySymbol | `string` | No | — | The symbol to display for the currency. |
29
+ | currencySymbolPosition | `"left" \| "right"` | No | `"left"` | Position of the currency symbol relative to the input. |
30
+ | currencySymbolWidth | `string` | No | — | Width of the currency symbol area. |
31
+ | disabled | `boolean` | No | — | Whether the input is disabled. |
32
+ | name | `string` | Yes | — | The unique name of the currency widget (required). |
33
+ | shortcutkey | `string` | No | — | Keyboard shortcut key to focus the input. |
34
+ | autofocus | `boolean` | No | — | Whether the input should be focused on mount. |
35
+ | inputProps | `Record<string, unknown>` | No | — | Props passed to the inner number input element. |
36
+ | displayValue | `string` | No | — | Formatted display value for the currency. |
37
+ | class | `string` | No | — | CSS class name override. |
38
+ | readonly | `boolean` | No | — | Whether the currency input is read-only. |
39
+ | required | `boolean` | No | — | Whether a value is required. |
40
+ | placeholder | `string` | No | `"Enter value"` | Placeholder text shown when the input is empty. |
41
+ | maxvalue | `number` | No | — | Maximum value allowed. |
42
+ | minvalue | `number` | No | — | Minimum value allowed. |
43
+ | step | `number` | No | `1` | Step increment for arrow key changes. |
44
+ | textAlign | `string` | No | — | Text alignment within the input. |
45
+ | trailingzero | `boolean` | No | — | Whether to display trailing zeros. |
46
+ | inputmode | `"natural" \| "financial"` | No | `"natural"` | Input mode for the currency widget.
47
+ - `"natural"`: Standard number input.
48
+ - `"financial"`: Financial format. |
49
+ | decimalplaces | `number` | No | `0` | Number of decimal places to display. |
50
+ | updateon | `"blur" \| "keypress"` | No | `"blur"` | When the data value should be updated. |
51
+ | updatedelay | `string` | No | `"0"` | Delay in milliseconds before updating the data value. |
52
+ | datavalue | `number \| null` | No | — | The bound data value of the currency input. |
53
+ | onChange | `( event: ChangeEvent<HTMLInputElement>, widget: Record<string, unknown>, newV...` | No | — | Callback invoked when the currency value changes. |
54
+ | onBlur | `(event: FocusEvent<HTMLInputElement>, widget?: Record<string, unknown>) => void` | No | — | Callback invoked when the input loses focus. |
55
+ | onFocus | `(event: FocusEvent<HTMLInputElement>) => void` | No | — | Callback invoked when the input receives focus. |
56
+ | onClick | `(event: MouseEvent<HTMLInputElement>, widget?: Record<string, unknown>) => void` | No | — | Callback invoked when the input is clicked. |
57
+ | onMouseEnter | `( event: MouseEvent<HTMLInputElement>, widget?: Record<string, unknown> ) => ...` | No | — | Callback invoked when the mouse enters the input. |
58
+ | onMouseLeave | `( event: MouseEvent<HTMLInputElement>, widget?: Record<string, unknown> ) => ...` | No | — | Callback invoked when the mouse leaves the input. |
59
+ | onKeyDown | `(event: KeyboardEvent<HTMLInputElement>) => void` | No | — | Callback invoked on key down. |
60
+ | onEnter | `(event: KeyboardEvent<HTMLInputElement>) => void` | No | — | Callback invoked when the Enter key is pressed. |
61
+ | fieldName | `string` | No | — | Field name used by the form controller. |
62
+
63
+ *Inherits BaseProps: `name`, `show`, `className`, `width`, `height`, `padding`, `margin`, `onClick`, and more.*
64
+
65
+ ## CSS Tokens
66
+
67
+ Component-specific CSS variables: `--wm-currency-*`
68
+
69
+ See foundation-css: `src/tokens/web/components/currency/currency.json`
@@ -0,0 +1,146 @@
1
+ ---
2
+ component: WmDataTable
3
+ category: data
4
+ import: components/data/table
5
+ tags: [table, grid, data, list, pagination, sort, filter, inline-edit, export, rows, columns]
6
+ summary: Full-featured data table with sorting, filtering, pagination, inline/dialog editing, row selection, and export.
7
+ related: [WmList, WmDataGrid, WmPagination]
8
+ ---
9
+
10
+ # WmDataTable
11
+
12
+ Full-featured data table. Handles pagination, sorting, multi-column filtering, inline/dialog row editing, multi-select, row expansion, export, and summary rows. Composed of `WmTableColumn`, `WmTableAction`, and `WmTableRowAction` children.
13
+
14
+ ## Minimal Usage
15
+
16
+ ```jsx
17
+ <WmDataTable
18
+ name="usersTable"
19
+ dataset={users}
20
+ shownavigation="Basic"
21
+ pagesize={10}
22
+ >
23
+ <WmTableColumn field="name" caption="Name" sortable={true} />
24
+ <WmTableColumn field="email" caption="Email" />
25
+ <WmTableColumn field="role" caption="Role" />
26
+ </WmDataTable>
27
+ ```
28
+
29
+ ## Key Props — WmDataTable
30
+
31
+ | Prop | Type | Default | Description |
32
+ |------|------|---------|-------------|
33
+ | name | `string` | — | Required. Widget identifier |
34
+ | dataset | `array \| string` | — | Data array or variable binding |
35
+ | editmode | `"inline" \| "dialog" \| "form" \| "quickedit" \| "none"` | `"none"` | Row edit mode |
36
+ | shownavigation | `"Basic" \| "Classic" \| "Advanced" \| "Pager" \| false` | — | Pagination style |
37
+ | pagesize | `number` | — | Rows per page |
38
+ | pagesizeoptions | `number[]` | — | Options for rows-per-page selector |
39
+ | showheader | `boolean` | `true` | Show column header row |
40
+ | showrowindex | `boolean` | `false` | Show row number column |
41
+ | filtermode | `"multicolumn" \| "search"` | — | Filter UI type |
42
+ | filteronkeypress | `boolean` | `false` | Filter as user types |
43
+ | multiselect | `boolean` | `false` | Enable checkbox multi-select |
44
+ | radioselect | `boolean` | `false` | Enable radio single-select |
45
+ | gridfirstrowselect | `boolean` | `false` | Auto-select first row on load |
46
+ | exportformat | `"EXCEL" \| "CSV"` | — | Enable export and set format |
47
+ | exportdatasize | `number` | — | Max rows to export |
48
+ | nodatamessage | `string` | — | Text shown when dataset is empty |
49
+ | loadingdatamsg | `string` | — | Text shown while data loads |
50
+ | onRowclick | `function` | — | `(event, widget, row) => void` |
51
+ | onRowselect | `function` | — | `(event, widget, row) => void` |
52
+ | onRowdeselect | `function` | — | `(event, widget, row) => void` |
53
+ | onBeforedatarender | `function` | — | Fires before rows are rendered |
54
+ | onDatarender | `function` | — | Fires after rows are rendered |
55
+ | onSort | `function` | — | `(event, widget, sortInfo) => void` |
56
+ | onRowDelete | `function` | — | `(event, widget, row) => void` |
57
+ | onRowUpdate | `function` | — | `(event, widget, row) => void` |
58
+ | onSuccess | `function` | — | CRUD success callback |
59
+ | onError | `function` | — | CRUD error callback |
60
+
61
+ ## WmTableColumn Props
62
+
63
+ | Prop | Type | Default | Description |
64
+ |------|------|---------|-------------|
65
+ | field | `string` | — | Data field name |
66
+ | caption | `string` | — | Column header label |
67
+ | sortable | `boolean` | `false` | Enable column sort |
68
+ | searchable | `boolean` | `false` | Include in filter |
69
+ | show | `boolean` | `true` | Column visibility |
70
+ | width | `string` | — | Column width (e.g. `"150px"`, `"20%"`) |
71
+ | textalignment | `string` | — | Text alignment (`"left"`, `"center"`, `"right"`) |
72
+ | widgetType | `string` | — | Display widget type for read view |
73
+ | editWidgetType | `string` | — | Widget type for inline edit cell |
74
+ | required | `boolean` | `false` | Validation in edit mode |
75
+ | readonly | `boolean` | `false` | Non-editable in edit mode |
76
+ | renderCellContent | `function` | — | Custom cell renderer `(row, col) => ReactNode` |
77
+
78
+ ## WmTableAction Props (header/footer toolbar buttons)
79
+
80
+ | Prop | Type | Description |
81
+ |------|------|-------------|
82
+ | displayName | `string` | Button label |
83
+ | iconclass | `string` | Icon class |
84
+ | action | `function` | Click handler |
85
+ | position | `"header" \| "footer"` | Where to show the button |
86
+ | variant | `string` | Button variant class |
87
+ | disabled | `boolean \| function` | Disable condition |
88
+
89
+ ## Patterns
90
+
91
+ **Read-only table with pagination and sorting:**
92
+ ```jsx
93
+ <WmDataTable name="ordersTable" dataset={orders} shownavigation="Basic" pagesize={20}>
94
+ <WmTableColumn field="orderId" caption="Order #" sortable={true} width="100px" />
95
+ <WmTableColumn field="customer" caption="Customer" sortable={true} />
96
+ <WmTableColumn field="total" caption="Total" textalignment="right" />
97
+ <WmTableColumn field="status" caption="Status" />
98
+ </WmDataTable>
99
+ ```
100
+
101
+ **Inline edit with delete row action:**
102
+ ```jsx
103
+ <WmDataTable name="usersTable" dataset={users} editmode="inline" onRowUpdate={handleUpdate} onRowDelete={handleDelete}>
104
+ <WmTableColumn field="name" caption="Name" editWidgetType="text" required={true} />
105
+ <WmTableColumn field="email" caption="Email" editWidgetType="text" />
106
+ <WmTableRowAction displayName="Delete" iconclass="wm-sl-l sl-trash" action={(row) => handleDelete(row)} />
107
+ </WmDataTable>
108
+ ```
109
+
110
+ **Multi-select with header action:**
111
+ ```jsx
112
+ <WmDataTable name="itemsTable" dataset={items} multiselect={true} onRowselect={handleSelect}>
113
+ <WmTableColumn field="name" caption="Name" />
114
+ <WmTableAction displayName="Delete Selected" iconclass="wm-sl-l sl-trash" position="header" action={handleBulkDelete} />
115
+ </WmDataTable>
116
+ ```
117
+
118
+ **Searchable/filterable table:**
119
+ ```jsx
120
+ <WmDataTable name="productsTable" dataset={products} filtermode="multicolumn" filteronkeypress={true}>
121
+ <WmTableColumn field="name" caption="Name" searchable={true} sortable={true} />
122
+ <WmTableColumn field="category" caption="Category" searchable={true} />
123
+ <WmTableColumn field="price" caption="Price" textalignment="right" />
124
+ </WmDataTable>
125
+ ```
126
+
127
+ **Custom cell renderer:**
128
+ ```jsx
129
+ <WmDataTable name="statusTable" dataset={tasks}>
130
+ <WmTableColumn field="status" caption="Status"
131
+ renderCellContent={(row) => (
132
+ <span className={`badge badge-${row.status === 'done' ? 'success' : 'warning'}`}>
133
+ {row.status}
134
+ </span>
135
+ )}
136
+ />
137
+ </WmDataTable>
138
+ ```
139
+
140
+ ## Notes
141
+
142
+ - `dataset` can be a WaveMaker variable binding string (e.g. `"Variables.getUserList.dataSet"`) or a JavaScript array.
143
+ - `editmode="inline"` shows edit/save/cancel controls per row; `"dialog"` opens a modal form.
144
+ - Export requires `exportformat` to be set; `exportdatasize` defaults to all rows if unset.
145
+ - Use `nodatamessage` to show a meaningful empty-state message instead of a blank table.
146
+ - `onBeforedatarender` is the right place to transform or sort data before it renders.
@@ -0,0 +1,80 @@
1
+ ---
2
+ component: WmDateTime
3
+ category: input
4
+ import: components/input/epoch/datetime
5
+ tags: [input, date, time, form-field]
6
+ summary: Date Time input field.
7
+ generated: true
8
+ ---
9
+
10
+ # WmDateTime
11
+
12
+ Date Time input field.
13
+
14
+ ## Usage
15
+
16
+ ```jsx
17
+ <WmDateTime
18
+ name="dateTime"
19
+ datavalue={value}
20
+ />
21
+ ```
22
+
23
+ ## Props
24
+
25
+ | Prop | Type | Req | Default | Description |
26
+ |------|------|-----|---------|-------------|
27
+ | placeholder | `string` | No | — | Placeholder text shown when no datetime is selected. |
28
+ | showampmbuttons | `boolean` | No | — | Whether to show AM/PM toggle buttons. |
29
+ | shortcutkey | `string` | No | — | Keyboard shortcut key to focus the datetime picker. |
30
+ | datavalue | `string \| Date \| null` | No | — | The bound data value of the datetime input. |
31
+ | datepattern | `string` | No | — | Date pattern for display formatting. |
32
+ | hourstep | `number` | No | `1` | Step increment for hours. |
33
+ | minutestep | `number` | No | `1` | Step increment for minutes. |
34
+ | outputformat | `string` | No | — | Output format for the datetime value. |
35
+ | required | `boolean` | No | — | Whether a datetime selection is required. |
36
+ | mindate | `string \| Date` | No | — | The earliest selectable date. |
37
+ | maxdate | `string \| Date` | No | — | The latest selectable date. |
38
+ | excludedays | `string` | No | — | Comma-separated day indices to exclude (0=Sunday). |
39
+ | excludedates | `string \| string[] \| Date[]` | No | — | Dates to exclude from selection. |
40
+ | showweeks | `boolean` | No | — | Whether to show week numbers. |
41
+ | showbuttonbar | `boolean` | No | — | Whether to show the button bar (today/clear buttons). |
42
+ | autofocus | `boolean` | No | — | Whether the input should be focused on mount. |
43
+ | readonly | `boolean` | No | — | Whether the datetime picker is read-only. |
44
+ | disabled | `boolean` | No | — | Whether the datetime picker is disabled. |
45
+ | selectfromothermonth | `boolean` | No | — | Whether dates from other months can be selected. |
46
+ | todaybutton | `boolean` | No | — | Whether to show a "Today" button. |
47
+ | clearbutton | `boolean` | No | — | Whether to show a "Clear" button. |
48
+ | todaybuttonlabel | `string` | No | — | Label for the "Today" button. |
49
+ | clearbuttonlabel | `string` | No | — | Label for the "Clear" button. |
50
+ | showcustompicker | `boolean` | No | — | Whether to show a custom picker UI. |
51
+ | adaptiveposition | `boolean` | No | — | Whether to adaptively position the popover. |
52
+ | showdropdownon | `string` | No | — | When to show the dropdown picker. |
53
+ | dataentrymode | `string` | No | — | Data entry mode for the datetime input. |
54
+ | onDateChange | `(date: Date \| null) => void` | No | — | Callback invoked when the date changes. |
55
+ | isValidDate | `(date: Date) => boolean` | No | — | Checks whether a given value is a valid date. |
56
+ | getDateObj | `(value: string \| Date \| null) => Date` | No | — | Converts a value to a Date object. |
57
+ | minDateMaxDateValidationOnInput | `(date: Date) => boolean` | No | — | Validates a date against min/max constraints. |
58
+ | formatValidation | `(date: Date, dateString: string) => boolean` | No | — | Validates the format of the input value. |
59
+ | updatePrevDatavalue | `(date: Date \| null) => void` | No | — | Updates the previously bound data value. |
60
+ | updateBoundVariable | `(date: Date \| null) => void` | No | — | Updates the bound variable with a new value. |
61
+ | handleKeyDown | `(event: KeyboardEvent) => void` | No | — | Handles key down events on the datetime input. |
62
+ | onChange | `( event: SyntheticEvent, widget: Record<string, unknown>, newValue: Date \| st...` | No | — | Callback invoked when the datetime value changes. |
63
+ | onClick | `(event: MouseEvent, widget: Record<string, unknown>) => void` | No | — | Callback invoked when the datetime picker is clicked. |
64
+ | onFocus | `(event: FocusEvent, widget: Record<string, unknown>) => void` | No | — | Callback invoked when the datetime picker receives focus. |
65
+ | onBlur | `(event: FocusEvent, widget: Record<string, unknown>) => void` | No | — | Callback invoked when the datetime picker loses focus. |
66
+ | onMouseEnter | `(event: MouseEvent, widget: Record<string, unknown>) => void` | No | — | Callback invoked when the mouse enters the datetime picker. |
67
+ | onMouseLeave | `(event: MouseEvent, widget: Record<string, unknown>) => void` | No | — | Callback invoked when the mouse leaves the datetime picker. |
68
+ | onBeforeload | `(event: SyntheticEvent, widget: Record<string, unknown>) => void` | No | — | Callback invoked before the datetime widget loads. |
69
+ | floatinglabel | `string` | No | — | Whether to show a floating label. |
70
+ | validators | `ValidatorConfig[]` | No | — | Array of validator functions or configurations. |
71
+ | validationmessage | `string` | No | — | Custom validation error message. |
72
+ | fieldName | `string` | No | — | Field name used by the form controller. |
73
+
74
+ *Inherits BaseProps: `name`, `show`, `className`, `width`, `height`, `padding`, `margin`, `onClick`, and more.*
75
+
76
+ ## CSS Tokens
77
+
78
+ Component-specific CSS variables: `--wm-date-time-*`
79
+
80
+ See foundation-css: `src/tokens/web/components/date/date.json`
@@ -0,0 +1,78 @@
1
+ ---
2
+ component: WmDate
3
+ category: input
4
+ import: components/input/epoch/date
5
+ tags: [input, date, form-field]
6
+ summary: Date input field.
7
+ generated: true
8
+ ---
9
+
10
+ # WmDate
11
+
12
+ Date input field.
13
+
14
+ ## Usage
15
+
16
+ ```jsx
17
+ <WmDate
18
+ name="date"
19
+ datavalue={value}
20
+ />
21
+ ```
22
+
23
+ ## Props
24
+
25
+ | Prop | Type | Req | Default | Description |
26
+ |------|------|-----|---------|-------------|
27
+ | placeholder | `string` | No | — | Placeholder text shown when no date is selected. |
28
+ | shortcutkey | `string` | No | — | Keyboard shortcut key to focus the date picker. |
29
+ | datavalue | `string \| Date` | No | — | The bound data value of the date input. |
30
+ | datepattern | `string` | No | — | Date pattern for display formatting. |
31
+ | outputformat | `string` | No | — | Output format for the date value. |
32
+ | required | `boolean` | No | — | Whether a date selection is required. |
33
+ | mindate | `string \| Date` | No | — | The earliest selectable date. |
34
+ | maxdate | `string \| Date` | No | — | The latest selectable date. |
35
+ | excludedays | `string` | No | — | Comma-separated day indices to exclude (0=Sunday). |
36
+ | excludedates | `string` | No | — | Comma-separated dates to exclude from selection. |
37
+ | showweeks | `boolean` | No | — | Whether to show week numbers. |
38
+ | showbuttonbar | `boolean` | No | — | Whether to show the button bar (today/clear buttons). |
39
+ | autofocus | `boolean` | No | — | Whether the input should be focused on mount. |
40
+ | readonly | `boolean` | No | — | Whether the date picker is read-only. |
41
+ | disabled | `boolean` | No | — | Whether the date picker is disabled. |
42
+ | showdropdownon | `string` | No | — | When to show the dropdown picker. |
43
+ | showindevices | `string` | No | — | Devices to show the widget on. |
44
+ | adaptiveposition | `boolean` | No | — | Whether to adaptively position the popover. |
45
+ | selectfromothermonth | `boolean` | No | — | Whether dates from other months can be selected. |
46
+ | todaybutton | `boolean` | No | — | Whether to show a "Today" button. |
47
+ | clearbutton | `boolean` | No | — | Whether to show a "Clear" button. |
48
+ | todaybuttonlabel | `string` | No | `"Today"` | Label for the "Today" button. |
49
+ | clearbuttonlabel | `string` | No | `"Clear"` | Label for the "Clear" button. |
50
+ | showcustompicker | `boolean` | No | — | Whether to show a custom date picker UI. |
51
+ | showdateformatasplaceholder | `boolean` | No | — | Whether to show the date format as placeholder. |
52
+ | viewmode | `string` | No | — | Initial calendar view mode. |
53
+ | dataentrymode | `string` | No | — | Data entry mode for the date input. |
54
+ | onDateChange | `(date: Date \| null) => void` | No | — | Callback invoked when the date changes. |
55
+ | getFormattedDate | `(date: Date \| null, pattern?: string) => string` | No | — | Formats a date to a display string. |
56
+ | invokeOnChange | `(value: Date \| string \| null, event?: SyntheticEvent) => void` | No | — | Invokes the onChange callback (from form controller). |
57
+ | datepickerRef | `RefObject<HTMLElement \| null>` | No | — | Ref to the date picker DOM element. |
58
+ | customValidator | `(value: Date \| null) => boolean` | No | — | Custom validator function. |
59
+ | updatePrevDatavalue | `(value: Date \| string \| null) => void` | No | — | Updates the previously bound data value. |
60
+ | updateBoundVariable | `(value: Date \| string \| null) => void` | No | — | Updates the bound variable with a new value. |
61
+ | handleKeyDown | `(event: KeyboardEvent) => void` | No | — | Handles key down events on the date input. |
62
+ | getDateObj | `(date: string \| Date \| null) => Date \| null` | No | — | Converts a value to a Date object. |
63
+ | isValidDate | `(date: string \| Date \| null) => boolean` | No | — | Checks whether a given value is a valid date. |
64
+ | minDateMaxDateValidationOnInput | `(date: Date, displayValue?: string) => boolean` | No | — | Validates a date against min/max constraints. |
65
+ | formatValidation | `(newVal: Date, inputVal: string) => boolean` | No | — | Validates the format of the input value. |
66
+ | onChange | `( event: SyntheticEvent, widget: Record<string, unknown>, newValue: Date \| st...` | No | — | Callback invoked when the date value changes. |
67
+ | onBeforeload | `(event: SyntheticEvent, widget: Record<string, unknown>) => void` | No | — | Callback invoked before the date widget loads. |
68
+ | validationmessage | `string` | No | — | Custom validation error message. |
69
+ | validators | `ValidatorConfig[]` | No | — | Array of validator functions or configurations. |
70
+ | fieldName | `string` | No | — | Field name used by the form controller. |
71
+
72
+ *Inherits BaseProps: `name`, `show`, `className`, `width`, `height`, `padding`, `margin`, `onClick`, and more.*
73
+
74
+ ## CSS Tokens
75
+
76
+ Component-specific CSS variables: `--wm-date-*`
77
+
78
+ See foundation-css: `src/tokens/web/components/date/date.json`
@@ -0,0 +1,28 @@
1
+ ---
2
+ component: WmDialogBody
3
+ category: dialogs
4
+ import: components/dialogs/dialog-body
5
+ tags: [dialogs, dialog, body]
6
+ summary: Dialog Body — modal dialog.
7
+ generated: true
8
+ ---
9
+
10
+ # WmDialogBody
11
+
12
+ Dialog Body — modal dialog.
13
+
14
+ ## Usage
15
+
16
+ ```jsx
17
+ <WmDialogBody
18
+ name="dialogBody"
19
+ />
20
+ ```
21
+
22
+ ## Props
23
+
24
+ | Prop | Type | Req | Default | Description |
25
+ |------|------|-----|---------|-------------|
26
+ | children | `ReactNode` | No | — | Content to render inside the dialog body. |
27
+
28
+ *Inherits BaseProps: `name`, `show`, `className`, `width`, `height`, `padding`, `margin`, `onClick`, and more.*
@@ -0,0 +1,48 @@
1
+ ---
2
+ component: WmDialogContainer
3
+ category: dialogs
4
+ import: components/dialogs/dialog
5
+ tags: [dialogs, dialog, container, icon]
6
+ summary: Dialog Container — modal dialog.
7
+ generated: true
8
+ ---
9
+
10
+ # WmDialogContainer
11
+
12
+ Dialog Container — modal dialog.
13
+
14
+ ## Usage
15
+
16
+ ```jsx
17
+ <WmDialogContainer
18
+ name="dialogContainer"
19
+ title="My Panel"
20
+ />
21
+ ```
22
+
23
+ ## Props
24
+
25
+ | Prop | Type | Req | Default | Description |
26
+ |------|------|-----|---------|-------------|
27
+ | modal | `boolean` | No | — | Whether the dialog is modal (blocks background). |
28
+ | dialogtype | `"design-dialog" \| "login-dialog" \| "page-dialog" \| "iframe-dialog"` | No | — | The type of dialog being rendered. |
29
+ | showheader | `boolean` | No | — | Whether to show the dialog header. |
30
+ | title | `string` | No | — | Title text for the dialog. |
31
+ | iconclass | `string` | No | — | CSS class for the header icon. |
32
+ | iconurl | `string` | No | — | URL for the header icon. |
33
+ | iconwidth | `string` | No | — | Width of the header icon. |
34
+ | iconheight | `string` | No | — | Height of the header icon. |
35
+ | iconmargin | `string` | No | — | Margin for the header icon. |
36
+ | iconstyle | `string` | No | — | Inline style for the header icon. |
37
+ | closable | `boolean` | No | — | Whether the dialog is closable by the user. |
38
+ | sheetposition | `"top" \| "bottom" \| "left" \| "right"` | No | — | Position of the sheet (if sheet is true). |
39
+ | sheet | `boolean` | No | — | Whether the dialog is a sheet. |
40
+ | onClose | `(event?: any) => void` | No | — | Callback fired when the dialog requests to be closed. |
41
+
42
+ *Inherits BaseProps: `name`, `show`, `className`, `width`, `height`, `padding`, `margin`, `onClick`, and more.*
43
+
44
+ ## CSS Tokens
45
+
46
+ Component-specific CSS variables: `--wm-dialog-container-*`
47
+
48
+ See foundation-css: `src/tokens/web/components/modal-dialog/modal-dialog.json`
@@ -0,0 +1,31 @@
1
+ ---
2
+ component: WmDialogContent
3
+ category: dialogs
4
+ import: components/dialogs/dialog-content
5
+ tags: [dialogs, dialog, content]
6
+ summary: Dialog Content — modal dialog.
7
+ generated: true
8
+ ---
9
+
10
+ # WmDialogContent
11
+
12
+ Dialog Content — modal dialog.
13
+
14
+ ## Usage
15
+
16
+ ```jsx
17
+ <WmDialogContent
18
+ name="dialogContent"
19
+ />
20
+ ```
21
+
22
+ ## Props
23
+
24
+ | Prop | Type | Req | Default | Description |
25
+ |------|------|-----|---------|-------------|
26
+ | children | `ReactNode` | No | — | Content to render inside the dialog content area. |
27
+ | sheet | `boolean` | No | — | Whether the parent dialog is a sheet. |
28
+ | sheetposition | `"top" \| "bottom" \| "left" \| "right"` | No | — | Position of the sheet. |
29
+ | isDialog | `boolean` | No | — | Whether the component is part of a dialog. |
30
+
31
+ *Inherits BaseProps: `name`, `show`, `className`, `width`, `height`, `padding`, `margin`, `onClick`, and more.*