cxtms 1.9.13

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 (215) hide show
  1. package/README.md +384 -0
  2. package/dist/cli.d.ts +6 -0
  3. package/dist/cli.d.ts.map +1 -0
  4. package/dist/cli.js +4784 -0
  5. package/dist/cli.js.map +1 -0
  6. package/dist/extractUtils.d.ts +11 -0
  7. package/dist/extractUtils.d.ts.map +1 -0
  8. package/dist/extractUtils.js +19 -0
  9. package/dist/extractUtils.js.map +1 -0
  10. package/dist/index.d.ts +7 -0
  11. package/dist/index.d.ts.map +1 -0
  12. package/dist/index.js +11 -0
  13. package/dist/index.js.map +1 -0
  14. package/dist/types.d.ts +129 -0
  15. package/dist/types.d.ts.map +1 -0
  16. package/dist/types.js +6 -0
  17. package/dist/types.js.map +1 -0
  18. package/dist/utils/schemaLoader.d.ts +17 -0
  19. package/dist/utils/schemaLoader.d.ts.map +1 -0
  20. package/dist/utils/schemaLoader.js +134 -0
  21. package/dist/utils/schemaLoader.js.map +1 -0
  22. package/dist/validator.d.ts +72 -0
  23. package/dist/validator.d.ts.map +1 -0
  24. package/dist/validator.js +432 -0
  25. package/dist/validator.js.map +1 -0
  26. package/dist/workflowValidator.d.ts +103 -0
  27. package/dist/workflowValidator.d.ts.map +1 -0
  28. package/dist/workflowValidator.js +753 -0
  29. package/dist/workflowValidator.js.map +1 -0
  30. package/package.json +51 -0
  31. package/schemas/actions/all.json +27 -0
  32. package/schemas/actions/clipboard.json +46 -0
  33. package/schemas/actions/confirm.json +21 -0
  34. package/schemas/actions/consoleLog.json +16 -0
  35. package/schemas/actions/dialog.json +25 -0
  36. package/schemas/actions/fileDownload.json +16 -0
  37. package/schemas/actions/forEach.json +31 -0
  38. package/schemas/actions/if.json +12 -0
  39. package/schemas/actions/mutation.json +25 -0
  40. package/schemas/actions/navigate.json +18 -0
  41. package/schemas/actions/navigateBack.json +22 -0
  42. package/schemas/actions/navigateBackOrClose.json +21 -0
  43. package/schemas/actions/notification.json +19 -0
  44. package/schemas/actions/openBarcodeScanner.json +104 -0
  45. package/schemas/actions/query.json +32 -0
  46. package/schemas/actions/refresh.json +13 -0
  47. package/schemas/actions/resetDirtyState.json +22 -0
  48. package/schemas/actions/setFields.json +21 -0
  49. package/schemas/actions/setStore.json +13 -0
  50. package/schemas/actions/validateForm.json +15 -0
  51. package/schemas/actions/workflow.json +24 -0
  52. package/schemas/components/README.md +147 -0
  53. package/schemas/components/appComponent.json +58 -0
  54. package/schemas/components/barcodeScanner.json +69 -0
  55. package/schemas/components/button.json +123 -0
  56. package/schemas/components/calendar.json +489 -0
  57. package/schemas/components/card.json +176 -0
  58. package/schemas/components/collection.json +54 -0
  59. package/schemas/components/dataGrid.json +119 -0
  60. package/schemas/components/datasource.json +151 -0
  61. package/schemas/components/dropdown.json +57 -0
  62. package/schemas/components/field-collection.json +618 -0
  63. package/schemas/components/field.json +265 -0
  64. package/schemas/components/form.json +234 -0
  65. package/schemas/components/index.json +71 -0
  66. package/schemas/components/layout.json +69 -0
  67. package/schemas/components/module.json +167 -0
  68. package/schemas/components/navDropdown.json +36 -0
  69. package/schemas/components/navbar.json +78 -0
  70. package/schemas/components/navbarItem.json +28 -0
  71. package/schemas/components/navbarLink.json +36 -0
  72. package/schemas/components/row.json +31 -0
  73. package/schemas/components/slot.json +30 -0
  74. package/schemas/components/tab.json +34 -0
  75. package/schemas/components/tabs.json +35 -0
  76. package/schemas/components/timeline.json +172 -0
  77. package/schemas/components/timelineGrid.json +328 -0
  78. package/schemas/fields/README.md +66 -0
  79. package/schemas/fields/attachment.json +156 -0
  80. package/schemas/fields/autocomplete-googleplaces.json +130 -0
  81. package/schemas/fields/checkbox.json +82 -0
  82. package/schemas/fields/date.json +88 -0
  83. package/schemas/fields/datetime.json +75 -0
  84. package/schemas/fields/email.json +75 -0
  85. package/schemas/fields/index.json +53 -0
  86. package/schemas/fields/number.json +91 -0
  87. package/schemas/fields/password.json +70 -0
  88. package/schemas/fields/radio.json +94 -0
  89. package/schemas/fields/rangedatetime.json +56 -0
  90. package/schemas/fields/select-async.json +334 -0
  91. package/schemas/fields/select.json +115 -0
  92. package/schemas/fields/tel.json +79 -0
  93. package/schemas/fields/text.json +86 -0
  94. package/schemas/fields/textarea.json +95 -0
  95. package/schemas/fields/time.json +91 -0
  96. package/schemas/fields/url.json +74 -0
  97. package/schemas/schema.graphql +12248 -0
  98. package/schemas/schemas.json +610 -0
  99. package/schemas/workflows/activity.json +96 -0
  100. package/schemas/workflows/common/condition.json +48 -0
  101. package/schemas/workflows/common/expression.json +76 -0
  102. package/schemas/workflows/common/mapping.json +173 -0
  103. package/schemas/workflows/common/step.json +38 -0
  104. package/schemas/workflows/flow/aggregation.json +44 -0
  105. package/schemas/workflows/flow/entity.json +129 -0
  106. package/schemas/workflows/flow/state.json +105 -0
  107. package/schemas/workflows/flow/transition.json +143 -0
  108. package/schemas/workflows/input.json +122 -0
  109. package/schemas/workflows/output.json +61 -0
  110. package/schemas/workflows/schedule.json +26 -0
  111. package/schemas/workflows/tasks/accounting-transaction.json +95 -0
  112. package/schemas/workflows/tasks/action-event.json +65 -0
  113. package/schemas/workflows/tasks/all.json +152 -0
  114. package/schemas/workflows/tasks/appmodule.json +56 -0
  115. package/schemas/workflows/tasks/attachment.json +97 -0
  116. package/schemas/workflows/tasks/authentication.json +86 -0
  117. package/schemas/workflows/tasks/caching.json +68 -0
  118. package/schemas/workflows/tasks/charge.json +92 -0
  119. package/schemas/workflows/tasks/commodity.json +92 -0
  120. package/schemas/workflows/tasks/contact-address.json +72 -0
  121. package/schemas/workflows/tasks/contact-payment-method.json +72 -0
  122. package/schemas/workflows/tasks/contact.json +82 -0
  123. package/schemas/workflows/tasks/csv.json +81 -0
  124. package/schemas/workflows/tasks/document-render.json +105 -0
  125. package/schemas/workflows/tasks/document-send.json +84 -0
  126. package/schemas/workflows/tasks/edi.json +157 -0
  127. package/schemas/workflows/tasks/email-send.json +110 -0
  128. package/schemas/workflows/tasks/error.json +72 -0
  129. package/schemas/workflows/tasks/export.json +90 -0
  130. package/schemas/workflows/tasks/filetransfer.json +102 -0
  131. package/schemas/workflows/tasks/flow-transition.json +68 -0
  132. package/schemas/workflows/tasks/foreach.json +69 -0
  133. package/schemas/workflows/tasks/generic.json +47 -0
  134. package/schemas/workflows/tasks/graphql.json +78 -0
  135. package/schemas/workflows/tasks/httpRequest.json +161 -0
  136. package/schemas/workflows/tasks/import.json +64 -0
  137. package/schemas/workflows/tasks/inventory.json +67 -0
  138. package/schemas/workflows/tasks/job.json +88 -0
  139. package/schemas/workflows/tasks/log.json +73 -0
  140. package/schemas/workflows/tasks/map.json +58 -0
  141. package/schemas/workflows/tasks/movement.json +54 -0
  142. package/schemas/workflows/tasks/note.json +59 -0
  143. package/schemas/workflows/tasks/number.json +65 -0
  144. package/schemas/workflows/tasks/order-tracking-event.json +109 -0
  145. package/schemas/workflows/tasks/order.json +139 -0
  146. package/schemas/workflows/tasks/payment.json +85 -0
  147. package/schemas/workflows/tasks/pdf-document.json +60 -0
  148. package/schemas/workflows/tasks/postal-codes.json +92 -0
  149. package/schemas/workflows/tasks/resolve-timezone.json +65 -0
  150. package/schemas/workflows/tasks/setVariable.json +76 -0
  151. package/schemas/workflows/tasks/switch.json +75 -0
  152. package/schemas/workflows/tasks/template.json +73 -0
  153. package/schemas/workflows/tasks/tracking-event.json +137 -0
  154. package/schemas/workflows/tasks/transmission.json +185 -0
  155. package/schemas/workflows/tasks/unzip-file.json +68 -0
  156. package/schemas/workflows/tasks/user.json +70 -0
  157. package/schemas/workflows/tasks/validation.json +99 -0
  158. package/schemas/workflows/tasks/while.json +53 -0
  159. package/schemas/workflows/tasks/workflow-execute.json +82 -0
  160. package/schemas/workflows/trigger.json +90 -0
  161. package/schemas/workflows/variable.json +46 -0
  162. package/schemas/workflows/workflow.json +335 -0
  163. package/scripts/postinstall.js +291 -0
  164. package/scripts/setup-vscode.js +80 -0
  165. package/skills/cxtms-developer/SKILL.md +118 -0
  166. package/skills/cxtms-developer/ref-cli-auth.md +120 -0
  167. package/skills/cxtms-developer/ref-entity-accounting.md +180 -0
  168. package/skills/cxtms-developer/ref-entity-commodity.md +239 -0
  169. package/skills/cxtms-developer/ref-entity-contact.md +163 -0
  170. package/skills/cxtms-developer/ref-entity-geography.md +154 -0
  171. package/skills/cxtms-developer/ref-entity-job.md +77 -0
  172. package/skills/cxtms-developer/ref-entity-notification.md +85 -0
  173. package/skills/cxtms-developer/ref-entity-order-sub.md +160 -0
  174. package/skills/cxtms-developer/ref-entity-order.md +183 -0
  175. package/skills/cxtms-developer/ref-entity-organization.md +41 -0
  176. package/skills/cxtms-developer/ref-entity-rate.md +182 -0
  177. package/skills/cxtms-developer/ref-entity-shared.md +176 -0
  178. package/skills/cxtms-developer/ref-entity-warehouse.md +115 -0
  179. package/skills/cxtms-developer/ref-graphql-query.md +309 -0
  180. package/skills/cxtms-module-builder/SKILL.md +477 -0
  181. package/skills/cxtms-module-builder/ref-components-data.md +293 -0
  182. package/skills/cxtms-module-builder/ref-components-display.md +411 -0
  183. package/skills/cxtms-module-builder/ref-components-forms.md +369 -0
  184. package/skills/cxtms-module-builder/ref-components-interactive.md +317 -0
  185. package/skills/cxtms-module-builder/ref-components-layout.md +390 -0
  186. package/skills/cxtms-module-builder/ref-components-specialized.md +477 -0
  187. package/skills/cxtms-workflow-builder/SKILL.md +438 -0
  188. package/skills/cxtms-workflow-builder/ref-accounting.md +66 -0
  189. package/skills/cxtms-workflow-builder/ref-communication.md +169 -0
  190. package/skills/cxtms-workflow-builder/ref-entity.md +342 -0
  191. package/skills/cxtms-workflow-builder/ref-expressions-ncalc.md +128 -0
  192. package/skills/cxtms-workflow-builder/ref-expressions-template.md +161 -0
  193. package/skills/cxtms-workflow-builder/ref-filetransfer.md +80 -0
  194. package/skills/cxtms-workflow-builder/ref-flow.md +210 -0
  195. package/skills/cxtms-workflow-builder/ref-other.md +157 -0
  196. package/skills/cxtms-workflow-builder/ref-query.md +105 -0
  197. package/skills/cxtms-workflow-builder/ref-utilities.md +417 -0
  198. package/templates/module-configuration.yaml +44 -0
  199. package/templates/module-form.yaml +152 -0
  200. package/templates/module-grid.yaml +229 -0
  201. package/templates/module-select.yaml +139 -0
  202. package/templates/module.yaml +84 -0
  203. package/templates/workflow-api-tracking.yaml +189 -0
  204. package/templates/workflow-basic.yaml +76 -0
  205. package/templates/workflow-document.yaml +155 -0
  206. package/templates/workflow-entity-trigger.yaml +90 -0
  207. package/templates/workflow-ftp-edi.yaml +158 -0
  208. package/templates/workflow-ftp-tracking.yaml +161 -0
  209. package/templates/workflow-mcp-tool.yaml +112 -0
  210. package/templates/workflow-public-api.yaml +135 -0
  211. package/templates/workflow-scheduled-execute.yaml +75 -0
  212. package/templates/workflow-scheduled.yaml +125 -0
  213. package/templates/workflow-utility.yaml +96 -0
  214. package/templates/workflow-webhook.yaml +128 -0
  215. package/templates/workflow.yaml +140 -0
@@ -0,0 +1,24 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "title": "workflow Action",
4
+ "type": "object",
5
+ "properties": {
6
+ "workflow": {
7
+ "type": "object",
8
+ "properties": {
9
+ "workflowId": { "type": "string", "description": "Workflow identifier" },
10
+ "inputs": { "type": "object", "description": "Workflow inputs" },
11
+ "onSuccess": { "$ref": "../schemas.json#/definitions/actionsList" },
12
+ "onError": { "$ref": "../schemas.json#/definitions/actionsList" }
13
+ },
14
+ "x-examples": [
15
+ {
16
+ "workflowId": "b7c4ffa9-bf7e-4e2c-8e57-8f24f4a2b8a8",
17
+ "inputs": { "request": { "message": "Hello, World!" } },
18
+ "onSuccess": [{ "notification": { "message": "Echo executed successfully. {{ response.echo.message }}" } }]
19
+ }
20
+ ]
21
+ }
22
+ },
23
+ "additionalProperties": false
24
+ }
@@ -0,0 +1,147 @@
1
+ # Component Schemas
2
+
3
+ This directory contains individual JSON schema files for each CargoXplorer component type. Breaking down component schemas into separate files improves maintainability, organization, and reusability.
4
+
5
+ ## Directory Structure
6
+
7
+ ```
8
+ schema/
9
+ ├── components/
10
+ │ ├── appComponent.json # Base app component schema
11
+ │ ├── navbar.json # Navigation bar component
12
+ │ ├── navbarItem.json # Navigation item component
13
+ │ ├── navDropdown.json # Navigation dropdown component
14
+ │ ├── navbarLink.json # Navigation link component
15
+ │ ├── collection.json # Collection/iteration component
16
+ │ ├── row.json # Row layout component
17
+ │ ├── dataGrid.json # Data grid component
18
+ │ ├── button.json # Button component
19
+ │ ├── form.json # Form component
20
+ │ ├── layout.json # Layout container component
21
+ │ ├── tabs.json # Tabs container component
22
+ │ ├── tab.json # Individual tab component
23
+ │ ├── field.json # Form field component
24
+ │ ├── dropdown.json # Dropdown menu component
25
+ │ ├── datasource.json # Data source component
26
+ │ ├── calendar.json # Calendar component
27
+ │ ├── module.json # Module component
28
+ │ ├── index.json # Component schema index
29
+ │ └── README.md # This documentation file
30
+ ├── fields/ # Field type schemas
31
+ │ ├── text.json
32
+ │ ├── select-async.json
33
+ │ └── ...
34
+ └── schemas.json # Main schema file with references
35
+ ```
36
+
37
+ ## Benefits of Separate Component Schemas
38
+
39
+ ### 1. **Maintainability**
40
+
41
+ - Each component schema is in its own file
42
+ - Easier to find and update specific component definitions
43
+ - Reduces the size of the main schemas.json file
44
+
45
+ ### 2. **Reusability**
46
+
47
+ - Component schemas can be referenced from multiple locations
48
+ - Enables better modular schema design
49
+ - Facilitates schema composition and inheritance
50
+
51
+ ### 3. **Organization**
52
+
53
+ - Clear separation between different component types
54
+ - Logical file structure mirrors component hierarchy
55
+ - Better developer experience when working with schemas
56
+
57
+ ### 4. **Collaboration**
58
+
59
+ - Multiple developers can work on different component schemas simultaneously
60
+ - Reduces merge conflicts in the main schema file
61
+ - Easier code reviews for component-specific changes
62
+
63
+ ## Usage
64
+
65
+ The main `schemas.json` file now references these separate component files:
66
+
67
+ ```json
68
+ {
69
+ "components": {
70
+ "schemas": {
71
+ "button": {
72
+ "$ref": "components/button.json"
73
+ },
74
+ "dataGrid": {
75
+ "$ref": "components/dataGrid.json"
76
+ },
77
+ "form": {
78
+ "$ref": "components/form.json"
79
+ }
80
+ // ... other components
81
+ }
82
+ }
83
+ }
84
+ ```
85
+
86
+ ## Schema References
87
+
88
+ Each component schema file uses relative references to the main schemas.json file for shared definitions:
89
+
90
+ ```json
91
+ {
92
+ "properties": {
93
+ "onClick": {
94
+ "$ref": "../schemas.json#/definitions/actionsList"
95
+ },
96
+ "isHidden": {
97
+ "$ref": "../schemas.json#/definitions/templateExpression"
98
+ }
99
+ }
100
+ }
101
+ ```
102
+
103
+ ## Adding New Components
104
+
105
+ To add a new component schema:
106
+
107
+ 1. Create a new JSON file in this directory (e.g., `myComponent.json`)
108
+ 2. Define the component schema following the existing patterns
109
+ 3. Add a reference to the component in the main `schemas.json` file
110
+ 4. Update the `index.json` file if needed
111
+ 5. Update this README.md file
112
+
113
+ ## Component Schema Structure
114
+
115
+ Each component schema should follow this general structure:
116
+
117
+ ```json
118
+ {
119
+ "$schema": "http://json-schema.org/draft-07/schema#",
120
+ "title": "Component Name",
121
+ "type": "object",
122
+ "properties": {
123
+ "component": {
124
+ "type": "string",
125
+ "const": "componentName"
126
+ },
127
+ "name": {
128
+ "type": "string",
129
+ "description": "Component name identifier"
130
+ },
131
+ "props": {
132
+ "type": "object",
133
+ "properties": {
134
+ // Component-specific properties
135
+ }
136
+ },
137
+ "children": {
138
+ "$ref": "../schemas.json#/definitions/componentChildren"
139
+ }
140
+ },
141
+ "required": ["component"]
142
+ }
143
+ ```
144
+
145
+ ## Validation
146
+
147
+ All component schemas are validated against JSON Schema Draft 07 specification. Ensure your schemas are valid JSON and follow the established patterns for consistency.
@@ -0,0 +1,58 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "title": "Generic CargoXplorer App Component",
4
+ "type": "object",
5
+ "description": "Base schema for any CargoXplorer component that can be used within the application",
6
+ "properties": {
7
+ "name": {
8
+ "type": "string",
9
+ "description": "Component name in format 'ModuleName/ComponentName'",
10
+ "pattern": "^[A-Za-z0-9]+/[A-Za-z0-9]+$"
11
+ },
12
+ "permissions": {
13
+ "$ref": "../schemas.json#/definitions/permissions"
14
+ },
15
+ "priority": {
16
+ "type": "integer",
17
+ "default": 0,
18
+ "description": "Component priority (higher number = higher priority)"
19
+ },
20
+ "displayName": {
21
+ "$ref": "../schemas.json#/definitions/localized"
22
+ },
23
+ "props": {
24
+ "oneOf": [
25
+ {
26
+ "type": "object",
27
+ "description": "Properties passed to the component when targeting a slot",
28
+ "properties": {
29
+ "targetSlot": {
30
+ "type": "string",
31
+ "description": "Name of the slot this component targets"
32
+ },
33
+ "order": {
34
+ "type": "integer",
35
+ "description": "Order of the component in the target slot"
36
+ }
37
+ },
38
+ "additionalProperties": true
39
+ },
40
+ {
41
+ "type": "null"
42
+ }
43
+ ]
44
+ },
45
+ "platforms": {
46
+ "type": "array",
47
+ "description": "Target platforms for this component",
48
+ "items": {
49
+ "type": "string",
50
+ "enum": ["web", "mobile"]
51
+ }
52
+ },
53
+ "layout": {
54
+ "$ref": "../schemas.json#/definitions/component"
55
+ }
56
+ },
57
+ "required": ["name", "layout"]
58
+ }
@@ -0,0 +1,69 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "title": "Barcode Scanner Component",
4
+ "type": "object",
5
+ "properties": {
6
+ "component": {
7
+ "type": "string",
8
+ "const": "barcodeScanner"
9
+ },
10
+ "name": {
11
+ "type": "string",
12
+ "description": "Component name identifier"
13
+ },
14
+ "props": {
15
+ "type": "object",
16
+ "properties": {
17
+ "minBarcodeLength": {
18
+ "type": "integer",
19
+ "description": "Minimum length for recognized barcodes"
20
+ },
21
+ "onScan": {
22
+ "$ref": "../schemas.json#/definitions/actionsList",
23
+ "description": "Actions to execute when a barcode is successfully scanned"
24
+ },
25
+ "isHidden": {
26
+ "$ref": "../schemas.json#/definitions/templateExpression",
27
+ "description": "Boolean expression for conditional rendering"
28
+ }
29
+ }
30
+ }
31
+ },
32
+ "required": ["component"],
33
+ "x-examples": [
34
+ {
35
+ "component": "barcodeScanner",
36
+ "props": {
37
+ "minBarcodeLength": 8,
38
+ "onScan": [
39
+ { "setStore": { "scannedBarcode": "{{ result.data }}" } },
40
+ { "notification": { "message": "Barcode scanned: {{ result.data }}" } }
41
+ ]
42
+ }
43
+ },
44
+ {
45
+ "component": "barcodeScanner",
46
+ "props": {
47
+ "minBarcodeLength": 10,
48
+ "onScan": [
49
+ {
50
+ "if": "{{ eval result.format === 'QR_CODE' }}",
51
+ "then": [{ "setStore": { "qrCodeData": "{{ result.data }}" } }, { "navigate": "/qr-details" }],
52
+ "else": [
53
+ {
54
+ "mutation": {
55
+ "command": "logBarcodeScan",
56
+ "variables": {
57
+ "barcodeData": "{{ result.data }}",
58
+ "format": "{{ result.format }}"
59
+ }
60
+ }
61
+ },
62
+ { "notification": { "message": "Barcode logged: {{ result.data }}" } }
63
+ ]
64
+ }
65
+ ]
66
+ }
67
+ }
68
+ ]
69
+ }
@@ -0,0 +1,123 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "title": "Button Component",
4
+ "type": "object",
5
+ "properties": {
6
+ "component": {
7
+ "type": "string",
8
+ "const": "button"
9
+ },
10
+ "name": {
11
+ "type": "string",
12
+ "description": "Button name identifier"
13
+ },
14
+ "props": {
15
+ "type": "object",
16
+ "properties": {
17
+ "label": {
18
+ "oneOf": [{ "type": "string" }, { "$ref": "../schemas.json#/definitions/localized" }]
19
+ },
20
+ "icon": {
21
+ "type": "string",
22
+ "description": "Icon class name"
23
+ },
24
+ "size": {
25
+ "type": "object",
26
+ "description": "Responsive size configuration",
27
+ "additionalProperties": true
28
+ },
29
+ "options": {
30
+ "type": "object",
31
+ "description": "Button options. these are the same as the button component attributes ",
32
+ "properties": {
33
+ "type": {
34
+ "type": "string",
35
+ "enum": ["submit", "reset", "button"]
36
+ },
37
+ "variant": {
38
+ "type": "string",
39
+ "enum": [
40
+ "primary",
41
+ "secondary",
42
+ "outline-primary",
43
+ "outline-secondary",
44
+ "danger",
45
+ "success",
46
+ "warning",
47
+ "info"
48
+ ],
49
+ "description": "Button variant style"
50
+ },
51
+ "disabled": {
52
+ "type": "boolean",
53
+ "description": "Disable the button"
54
+ }
55
+ },
56
+ "additionalProperties": true
57
+ },
58
+ "onClick": {
59
+ "$ref": "../schemas.json#/definitions/actionsList"
60
+ },
61
+ "isHidden": {
62
+ "$ref": "../schemas.json#/definitions/templateExpression"
63
+ }
64
+ }
65
+ }
66
+ },
67
+ "required": ["component"],
68
+ "x-examples": [
69
+ {
70
+ "component": "button",
71
+ "name": "openDialog",
72
+ "props": {
73
+ "label": { "en-US": "New Order" },
74
+ "icon": "plus",
75
+ "options": { "variant": "primary", "type": "button" },
76
+ "onClick": [
77
+ {
78
+ "dialog": {
79
+ "name": "createOrder",
80
+ "props": { "title": { "en-US": "Create Order" } },
81
+ "component": { "component": "layout", "children": [{ "component": "Orders/CreateOrder" }] }
82
+ }
83
+ }
84
+ ]
85
+ }
86
+ },
87
+ {
88
+ "component": "button",
89
+ "name": "submitFormBtn",
90
+ "props": {
91
+ "label": "Save",
92
+ "options": { "type": "submit", "variant": "success", "disabled": false }
93
+ }
94
+ },
95
+ {
96
+ "component": "button",
97
+ "name": "export",
98
+ "props": {
99
+ "label": { "en-US": "Export" },
100
+ "icon": "download",
101
+ "options": { "variant": "outline-primary" },
102
+ "onClick": [
103
+ {
104
+ "workflow": {
105
+ "workflowId": "24f504ad-2ca3-4432-b2a4-c540c48fee31",
106
+ "inputs": { "exportName": "orders" }
107
+ }
108
+ }
109
+ ]
110
+ }
111
+ },
112
+ {
113
+ "component": "button",
114
+ "name": "back",
115
+ "props": {
116
+ "label": "Back",
117
+ "options": { "type": "button", "variant": "secondary" },
118
+ "onClick": [{ "navigateBack": { "fallback": "/home" } }],
119
+ "isHidden": "{{ eval !canGoBack }}"
120
+ }
121
+ }
122
+ ]
123
+ }