@cxtms/cx-schema 1.9.247 → 1.9.249

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cxtms/cx-schema",
3
- "version": "1.9.247",
3
+ "version": "1.9.249",
4
4
  "description": "Schema validation package for CXTMS YAML modules",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -23,6 +23,12 @@
23
23
  "description": "Name of the refresh handler",
24
24
  "x-example": "states"
25
25
  },
26
+ "toolbarSx": {
27
+ "type": "object",
28
+ "description": "MUI sx overrides merged onto the toolbar CardContent, useful for reducing padding in narrow hosts",
29
+ "additionalProperties": true,
30
+ "x-example": { "px": 2, "py": 1 }
31
+ },
26
32
  "enableStore": {
27
33
  "type": "boolean",
28
34
  "description": "Enable store for the datagrid, row data will be placed in the store"
@@ -200,6 +200,15 @@
200
200
  "type": "string",
201
201
  "description": "Default search term seeded once when the grid first loads this view. Supports template expressions; URL search parameters and user input take precedence."
202
202
  },
203
+ "collection": {
204
+ "type": "object",
205
+ "properties": {
206
+ "itemName": { "type": "string" },
207
+ "children": { "$ref": "#/definitions/componentChildren" },
208
+ "dragSource": { "type": "object", "required": ["type"], "properties": { "type": { "type": "string" }, "data": {}, "canDrag": {} }, "additionalProperties": false }
209
+ },
210
+ "additionalProperties": true
211
+ },
203
212
  "childViews": {
204
213
  "type": "array",
205
214
  "description": "Nested child views",
@@ -4,6 +4,9 @@
4
4
  "description": "Aggregator schema for all workflow task types. Uses anyOf to allow matching any known task type or falling back to generic task structure.",
5
5
  "type": "object",
6
6
  "anyOf": [
7
+ {
8
+ "$ref": "browser-run.json"
9
+ },
7
10
  {
8
11
  "$ref": "accounting-transaction.json"
9
12
  },
@@ -0,0 +1,17 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "title": "Browser/Run Workflow Task",
4
+ "type": "object",
5
+ "required": ["task", "inputs"],
6
+ "properties": {
7
+ "task": { "type": "string", "pattern": "^Browser/Run(?:@1)?$" }, "name": { "type": "string" }, "description": { "type": "string" }, "continueOnError": { "type": "boolean" },
8
+ "inputs": { "type": "object", "required": ["actions"], "properties": {
9
+ "allowedDomains": { "type": "array", "items": { "type": "string" } }, "provider": { "type": "string" }, "session": { "enum": ["reuse", "new"] }, "timeout": { "type": "number", "exclusiveMinimum": 0 },
10
+ "actions": { "type": "array", "minItems": 1, "items": { "type": "object", "required": ["do"], "properties": {
11
+ "do": { "enum": ["goto", "click", "check", "uncheck", "hover", "waitFor", "fill", "press", "selectOption", "waitForNavigation", "extractText", "extractAttribute", "extractTable", "extractUrl", "screenshot", "uploadFile", "download", "llm/act"] },
12
+ "target": { "type": "string" }, "value": {}, "url": { "type": "string" }, "query": { "type": "object" }, "file": { "type": "object" }, "attribute": { "type": "string" }, "as": { "type": "string" }, "all": { "type": "boolean" }, "if": { "type": "string" }, "sensitive": { "type": "boolean" }, "timeout": { "type": "number", "exclusiveMinimum": 0 }, "instructions": { "type": "string" }, "model": { "type": "string" }, "maxTurns": { "type": "integer", "minimum": 1, "maximum": 20 }
13
+ }, "additionalProperties": false } }
14
+ }, "additionalProperties": false },
15
+ "outputs": { "type": "array", "items": { "type": "object", "additionalProperties": true } }
16
+ }, "additionalProperties": true
17
+ }
@@ -36,6 +36,8 @@ Available root queries: `orders`, `contacts`, `commodities`, `accountingTransact
36
36
 
37
37
  Order quick search (`orders.search` and `orderGroupBy.search`) matches order number, bill-to, carriers, tracking numbers, order entities, commodity text/tracking numbers, and InventoryItem values linked through order commodities or child/container commodities. Inventory item matches include `sku`, `productName`, `description`, `modelNumber`, and JSON `customValues` such as color or size.
38
38
 
39
+ Order-move quick search (`orderMoves.search`) matches the move name plus its owning order's tracking number and JSON custom values (for example, a container number). Matching is case-insensitive and accepts partial text.
40
+
39
41
  ## App Module Metadata Visibility
40
42
 
41
43
  GraphQL metadata queries hide rows attached to soft-deleted app modules:
@@ -49,6 +49,19 @@ props:
49
49
 
50
50
  Use `options.items` for already-loaded arrays; use `options.query` for server-side search/sort/pagination.
51
51
 
52
+ ## dataGrid collection drag sources
53
+
54
+ Collection views can publish cards to planner drop targets. Configure `collection.dragSource.type`, with optional per-row `data` and `canDrag` templates. Omitted `data` sends the whole row; prefer a small JSON-safe payload. Native drag is desktop-only.
55
+
56
+ ```yaml
57
+ collection:
58
+ itemName: item
59
+ dragSource:
60
+ type: orderMove
61
+ canDrag: "{{ eval !item.assignedDriverContactId }}"
62
+ data: { orderMoveId: "{{ item.orderMoveId }}" }
63
+ ```
64
+
52
65
  ---
53
66
 
54
67
  ## dataGrid conditional filter columns
@@ -26,6 +26,7 @@ Full-featured data table with views, filtering, sorting, pagination, and row act
26
26
  | Prop | Type | Description |
27
27
  |------|------|-------------|
28
28
  | `toolbar` | `component[]` | Header toolbar components |
29
+ | `toolbarSx` | `object` | MUI `sx` overrides merged onto the toolbar `CardContent`; use this to reduce padding in narrow hosts without hiding toolbar controls |
29
30
  | `dotsMenu` | `{items[]}` | Three-dot menu per row |
30
31
  | `dotsMenu.items[]` | `{label, icon, onClick, permission, isHidden, disabled}` | Menu item |
31
32
 
@@ -623,3 +623,6 @@ props:
623
623
  variables: { token: "{{ token }}" }
624
624
  - notification: { message: { en-US: "Connected!" }, type: success }
625
625
  ```
626
+ # Planner drop targets
627
+
628
+ Planner `props.drop` accepts DataGrid collection drag sources. Configure `accept`, `onlyEmptyCells` (default true), `canDrop`, and `autoScroll` (default true), then handle `events.onItemDrop`. The action receives `dragItem`, `dragType`, `row`, `column`, `rowIndex`, and `columnIndex`. Keep `onCellClick` as the touch and keyboard alternative.
@@ -327,6 +327,7 @@ Implicit variable: `iteration` (zero-based).
327
327
  | File Transfer | Connect, Disconnect, ListFiles, Download, Upload, Move, Delete | `!cat skills/cxtms-workflow-builder/ref-filetransfer.md` |
328
328
  | Accounting | AccountingTransaction, Payment, Number/Generate, SequenceNumber | `!cat skills/cxtms-workflow-builder/ref-accounting.md` |
329
329
  | Other | User, Auth, Caching, X12/Parse, EDIFACT, Flow/Transition, Notes, AppModule, ActionEvent | `!cat skills/cxtms-workflow-builder/ref-other.md` |
330
+ | Browser Automation | Browser/Run | `!cat skills/cxtms-workflow-builder/ref-browser.md` |
330
331
 
331
332
  ## Entity Field Reference (cxtms-developer)
332
333
 
@@ -0,0 +1,17 @@
1
+ # Browser Automation
2
+
3
+ ## Browser/Run@1
4
+
5
+ Automates a web portal through a configured remote Chromium provider. Always restrict navigation with `allowedDomains`; use `$` inputs or `fromConfig` variables for credentials and mark credential fills `sensitive: true`.
6
+
7
+ ```yaml
8
+ - task: Browser/Run@1
9
+ name: Portal
10
+ inputs:
11
+ allowedDomains: [portal.example.com]
12
+ actions:
13
+ - { do: goto, url: "https://portal.example.com" }
14
+ - { do: extractText, target: "css=.status", as: status }
15
+ ```
16
+
17
+ Inputs: required `actions`; optional `allowedDomains`, `provider`, `session` (`reuse` or `new`), and `timeout`. Actions support deterministic navigation/input/extraction, screenshots, upload/download, plus `llm/act`. Locator targets require a `css=`, `xpath=`, `text=`, `label=`, `placeholder=`, or `role=` prefix. Captures use `as`; the task also returns final `url` and an action audit list.