@fluentcommerce/ai-skills 0.1.0 → 0.3.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.
Potentially problematic release.
This version of @fluentcommerce/ai-skills might be problematic. Click here for more details.
- package/README.md +866 -622
- package/bin/cli.mjs +2112 -1973
- package/content/cli/agents/fluent-cli/agent.json +149 -149
- package/content/cli/agents/fluent-cli.md +132 -132
- package/content/cli/skills/fluent-bootstrap/SKILL.md +214 -181
- package/content/cli/skills/fluent-cli-index/SKILL.md +1 -1
- package/content/cli/skills/fluent-cli-mcp-cicd/SKILL.md +117 -1
- package/content/cli/skills/fluent-cli-reference/SKILL.md +1040 -1031
- package/content/cli/skills/fluent-cli-retailer/SKILL.md +27 -2
- package/content/cli/skills/fluent-cli-settings/SKILL.md +21 -1
- package/content/cli/skills/fluent-connect/SKILL.md +937 -886
- package/content/cli/skills/fluent-module-deploy/SKILL.md +63 -5
- package/content/cli/skills/fluent-profile/SKILL.md +73 -0
- package/content/cli/skills/fluent-workflow/SKILL.md +360 -310
- package/content/dev/agents/fluent-backend-dev/AGENT.md +58 -0
- package/content/dev/agents/fluent-backend-dev/agent.json +69 -0
- package/content/dev/agents/fluent-backend-dev.md +287 -0
- package/content/dev/agents/fluent-dev/AGENT.md +98 -0
- package/content/dev/agents/fluent-dev/agent.json +14 -2
- package/content/dev/agents/fluent-dev.md +194 -525
- package/content/dev/agents/fluent-frontend-dev/AGENT.md +63 -0
- package/content/dev/agents/fluent-frontend-dev/agent.json +52 -0
- package/content/dev/agents/fluent-frontend-dev.md +323 -0
- package/content/dev/skills/fluent-archive/SKILL.md +234 -0
- package/content/dev/skills/fluent-build/SKILL.md +312 -192
- package/content/dev/skills/fluent-connection-analysis/SKILL.md +422 -386
- package/content/dev/skills/fluent-custom-code/SKILL.md +15 -9
- package/content/dev/skills/fluent-data-module-scaffold/SKILL.md +19 -2
- package/content/dev/skills/fluent-e2e-test/SKILL.md +501 -394
- package/content/dev/skills/fluent-event-api/SKILL.md +962 -945
- package/content/dev/skills/fluent-feature-explain/SKILL.md +680 -603
- package/content/dev/skills/fluent-feature-plan/PLAN_TEMPLATE.md +27 -2
- package/content/dev/skills/fluent-feature-plan/SKILL.md +478 -227
- package/content/dev/skills/fluent-feature-status/SKILL.md +335 -0
- package/content/dev/skills/fluent-feedback/SKILL.md +221 -0
- package/content/dev/skills/fluent-implementation-map/SKILL.md +644 -0
- package/content/dev/skills/fluent-job-batch/SKILL.md +10 -0
- package/content/dev/skills/fluent-module-scaffold/SKILL.md +64 -2
- package/content/dev/skills/fluent-module-validate/SKILL.md +778 -775
- package/content/dev/skills/fluent-mystique-analyze/SKILL.md +817 -0
- package/content/dev/skills/fluent-mystique-builder/COMPONENT_TEMPLATE.md +81 -0
- package/content/dev/skills/fluent-mystique-builder/README.md +63 -0
- package/content/dev/skills/fluent-mystique-builder/SKILL.md +1294 -0
- package/content/dev/skills/fluent-mystique-builder/components/INDEX.md +92 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.accordion.md +48 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.action.field.fulfilmentpack.md +20 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.action.field.multiparcel.md +21 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.action.field.returnitems.md +21 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.action.field.wavepick.md +21 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.action.inline.md +24 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.activity.entity.md +25 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.analytics.viz.md +20 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.attribute.column.md +111 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.attribute.json.md +20 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.attribute.jsoneditor.md +54 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.attribute.locationId.md +51 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.attribute.retailerId.md +52 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.button.bar.md +57 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.button.print.download.md +53 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.button.print.inline.compatibility.md +60 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.button.print.inline.md +53 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.button.print.md +24 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.button.print.pick.md +61 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.buttons.add.reject.md +20 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.card.attribute.md +73 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.card.attributes.grid.md +40 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.card.image.md +37 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.card.map.point.md +24 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.card.multi.md +79 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.card.product.md +27 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.chart.area.md +34 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.chart.area.wrapper.feed.md +98 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.chart.bar.md +52 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.chart.bar.wrapper.source.md +104 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.chart.gauge.md +28 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.chart.gauge.wrapper.threshold.md +118 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.chart.line.md +32 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.conditional.md +62 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.dashboard.threshold.md +65 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.daterange.wrapper.forwarder.md +56 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.drawer.button.md +21 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.event.detail.md +20 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.events.search.md +21 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.field.daterange.md +83 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.field.filterComplex.md +106 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.field.intrange.md +82 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.field.multistring.md +50 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.filterPanel.md +53 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.json.editor.md +22 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.json.viewer.md +21 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.list.customAction.md +79 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.list.md +116 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.list.wrapper.bppmetrics.md +69 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.list.wrapper.feed.md +65 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.list.wrapper.source.md +64 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.modal.button.addItem.md +60 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.modal.button.md +21 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.mutation.inline.md +88 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.mystique.collapsible.attributes.md +83 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.mystique.collapsible.text.md +33 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.mystique.link.md +30 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.order.itemDetails.md +20 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.order.shipmentDetails.md +20 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.page.filter.select.md +87 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.page.md +64 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.page.refresh.md +48 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.page.section.column.md +71 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.page.section.header.md +61 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.page.section.md +59 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.page.wizard.md +45 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.page.wizard.summary.md +56 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.progress.circular.md +20 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.provider.graphql.md +71 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.quantity.list.md +87 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.repeater.md +56 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.reports.ipuipc.md +54 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.return.rowExpansion.md +19 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.scanner.barcode.md +21 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.scanner.barcodeFilter.md +72 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.scanner.camera.md +20 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.settingForm.md +64 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.sourcing.profile.drawer.button.md +19 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.sourcing.profile.modal.button.md +64 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.sourcing.strategy.modal.button.md +20 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.stepper.md +20 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.tab.content.md +56 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.tabs.card.md +64 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.tabs.md +69 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.tile.metric.md +73 -0
- package/content/dev/skills/fluent-mystique-builder/components/fc.workflow.provider.md +77 -0
- package/content/dev/skills/fluent-mystique-builder/validate-docs.ps1 +260 -0
- package/content/dev/skills/fluent-mystique-scaffold/SKILL.md +1830 -0
- package/content/dev/skills/fluent-mystique-validate/SKILL.md +646 -0
- package/content/dev/skills/fluent-pre-deploy-check/SKILL.md +1144 -1108
- package/content/dev/skills/fluent-retailer-config/SKILL.md +1162 -1111
- package/content/dev/skills/fluent-rollback/SKILL.md +387 -0
- package/content/dev/skills/fluent-rule-scaffold/SKILL.md +515 -385
- package/content/dev/skills/fluent-scope-decompose/SKILL.md +1123 -1021
- package/content/dev/skills/fluent-session-audit-export/SKILL.md +880 -632
- package/content/dev/skills/fluent-session-summary/SKILL.md +320 -195
- package/content/dev/skills/fluent-settings/SKILL.md +160 -1
- package/content/dev/skills/fluent-source-onboard/SKILL.md +31 -3
- package/content/dev/skills/fluent-sourcing/SKILL.md +1185 -0
- package/content/dev/skills/fluent-system-monitoring/SKILL.md +771 -767
- package/content/dev/skills/fluent-test-data/SKILL.md +514 -513
- package/content/dev/skills/fluent-trace/SKILL.md +1169 -1143
- package/content/dev/skills/fluent-transition-api/SKILL.md +364 -346
- package/content/dev/skills/fluent-use-case-discover/SKILL.md +593 -0
- package/content/dev/skills/fluent-use-case-discover/SPEC_TEMPLATE.md +281 -0
- package/content/dev/skills/fluent-version-manage/SKILL.md +53 -2
- package/content/dev/skills/fluent-workflow-analyzer/SKILL.md +995 -959
- package/content/dev/skills/fluent-workflow-builder/SKILL.md +668 -319
- package/content/dev/skills/fluent-workflow-deploy/SKILL.md +480 -267
- package/content/dev/skills/fluent-workspace-tree/SKILL.md +281 -0
- package/content/mcp-extn/agents/fluent-mcp.md +133 -69
- package/content/mcp-extn/skills/fluent-mcp-tools/SKILL.md +812 -461
- package/content/mcp-official/agents/fluent-mcp-core.md +91 -91
- package/content/mcp-official/skills/fluent-mcp-core/SKILL.md +94 -94
- package/content/rfl/skills/fluent-rfl-assess/SKILL.md +172 -172
- package/docs/CAPABILITY_MAP.md +106 -77
- package/docs/DEPLOYMENT_PROMOTION_RUNBOOK.md +218 -0
- package/docs/DESIGN-implementation-map.md +698 -0
- package/docs/DEV_WORKFLOW.md +814 -802
- package/docs/FLOW_RUN.md +142 -142
- package/docs/GETTING_STARTED.md +427 -0
- package/docs/USE_CASES.md +909 -52
- package/metadata.json +184 -156
- package/package.json +3 -2
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
---
|
|
2
|
+
alias: "fc.chart.area.wrapper.feed"
|
|
3
|
+
aliases:
|
|
4
|
+
- fc.chart.area.wrapper.feed
|
|
5
|
+
category: wrapper
|
|
6
|
+
module: Core
|
|
7
|
+
---
|
|
8
|
+
# fc.chart.area.wrapper.feed
|
|
9
|
+
|
|
10
|
+
Area chart wrapper that converts Metrics API feed data into a Recharts-readable format, used for Feeds Dashboard visualizations.
|
|
11
|
+
|
|
12
|
+
> **Note:** `fc.chart.area.md` lists this as an alias. This file documents the wrapper-specific behavior and Metrics API integration. For general area chart usage with standard GraphQL data, see `fc.chart.area`.
|
|
13
|
+
|
|
14
|
+
## When to Use
|
|
15
|
+
- Visualizing inventory feed metrics as area charts (cumulative trends)
|
|
16
|
+
- Feeds Dashboard area chart displays
|
|
17
|
+
- Any Metrics API feed data that needs area chart visualization
|
|
18
|
+
|
|
19
|
+
## Key Props
|
|
20
|
+
| Prop | Type | Required | What it controls |
|
|
21
|
+
|------|------|----------|------------------|
|
|
22
|
+
| `dataSource` | string | **Yes** | Path to Metrics API GraphQL feed data |
|
|
23
|
+
| `path` | string | No | Sub-path to chart data within the data source |
|
|
24
|
+
| `XAxis` | Axis | **Yes** | X-axis configuration (tick lines, axis lines) |
|
|
25
|
+
| `YAxis` | Axis | No | Y-axis configuration |
|
|
26
|
+
| `chartContainerConfig` | ChartContainerConfig | No | Responsive container sizing |
|
|
27
|
+
| `tooltip` | boolean | No | Show hover tooltips |
|
|
28
|
+
| `legend` | boolean | No | Show chart legend |
|
|
29
|
+
| `cartesianGrid` | CartesianGrid | No | Grid line configuration |
|
|
30
|
+
| `title` | string | No | Chart card title |
|
|
31
|
+
| `width` | CardWidth | No | Card width: `"quarter"`, `"third"`, `"half"`, `"two-thirds"`, `"full"`, or 1-12 (default: `"full"`) |
|
|
32
|
+
| `noCard` | boolean | No | Render without card background when `true` |
|
|
33
|
+
|
|
34
|
+
### Axis
|
|
35
|
+
| Prop | Type | Required | What it controls |
|
|
36
|
+
|------|------|----------|------------------|
|
|
37
|
+
| `tickLine` | boolean | No | Show axis tick lines (default: `true`) |
|
|
38
|
+
| `axisline` | boolean | No | Show axis line (default: `true`) |
|
|
39
|
+
|
|
40
|
+
### CartesianGrid
|
|
41
|
+
| Prop | Type | Required | What it controls |
|
|
42
|
+
|------|------|----------|------------------|
|
|
43
|
+
| `strokeDasharray` | string | **Yes** | Pattern of dashes and gaps for grid lines, e.g., `"3 3"` |
|
|
44
|
+
|
|
45
|
+
### ChartContainerConfig
|
|
46
|
+
| Prop | Type | Required | What it controls |
|
|
47
|
+
|------|------|----------|------------------|
|
|
48
|
+
| `width` | string/number | No | Container width (default: `"100%"`) |
|
|
49
|
+
| `aspect` | number | No | Width/height ratio (default: `1`) |
|
|
50
|
+
| `maxHeight` | number | No | Maximum container height (default: `200`) |
|
|
51
|
+
| `height` | string/number | No | Fixed or percentage height |
|
|
52
|
+
| `minWidth` | string/number | No | Minimum container width |
|
|
53
|
+
| `minHeight` | string/number | No | Minimum container height |
|
|
54
|
+
| `debounce` | number | No | Resize event debounce in ms (default: `1`) |
|
|
55
|
+
|
|
56
|
+
## Data Binding
|
|
57
|
+
Transforms Metrics API feed response data into the array-of-objects format expected by Recharts. The `dataSource` prop points to the Metrics API result path. The optional `path` prop drills into a sub-path of the data.
|
|
58
|
+
|
|
59
|
+
## Descendants
|
|
60
|
+
No -- self-contained chart component.
|
|
61
|
+
|
|
62
|
+
## Composition Patterns
|
|
63
|
+
- `fc.page` > `fc.chart.area.wrapper.feed` alongside `fc.list.wrapper.feed` for full Feeds Dashboard
|
|
64
|
+
- Use `noCard: true` when embedding inside an `fc.card.multi`
|
|
65
|
+
- Pair with `fc.daterange.wrapper.forwarder` for time-filtered feed charts
|
|
66
|
+
|
|
67
|
+
## Gotchas
|
|
68
|
+
- Only works with Metrics API feed data -- use `fc.chart.area` for standard GraphQL data
|
|
69
|
+
- `dataSource` and `XAxis` are required
|
|
70
|
+
- `cartesianGrid.strokeDasharray` is required when `cartesianGrid` is specified
|
|
71
|
+
- Default `maxHeight` is `200` (different from bar chart wrapper's `300`)
|
|
72
|
+
|
|
73
|
+
## Manifest Example
|
|
74
|
+
```json
|
|
75
|
+
{
|
|
76
|
+
"component": "fc.chart.area.wrapper.feed",
|
|
77
|
+
"props": {
|
|
78
|
+
"title": "Feed Activity",
|
|
79
|
+
"dataSource": "feedMetrics",
|
|
80
|
+
"width": "half",
|
|
81
|
+
"XAxis": { "tickLine": false },
|
|
82
|
+
"YAxis": { "axisline": false },
|
|
83
|
+
"cartesianGrid": { "strokeDasharray": "3 3" },
|
|
84
|
+
"tooltip": true,
|
|
85
|
+
"legend": true,
|
|
86
|
+
"chartContainerConfig": {
|
|
87
|
+
"maxHeight": 250,
|
|
88
|
+
"aspect": 2
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## AI Parse Notes
|
|
95
|
+
- **Primary intent:** Declarative Mystique component definition for manifests.
|
|
96
|
+
- **Selection signals:** Match by `alias`, category, and required `Key Props`.
|
|
97
|
+
- **Assembly hints:** Combine with compatible parent/child components listed in `Composition Patterns`.
|
|
98
|
+
- **Safety checks:** Validate required props and data bindings before manifest generation.
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
---
|
|
2
|
+
alias: "fc.chart.bar"
|
|
3
|
+
aliases:
|
|
4
|
+
- fc.chart.bar
|
|
5
|
+
- fc.chart.bar.wrapper.source
|
|
6
|
+
- fc.chart.line
|
|
7
|
+
- fc.chart.area
|
|
8
|
+
- fc.chart.area.wrapper.feed
|
|
9
|
+
- fc.chart.gauge
|
|
10
|
+
- fc.chart.gauge.wrapper.threshold
|
|
11
|
+
category: content
|
|
12
|
+
module: Core
|
|
13
|
+
---
|
|
14
|
+
# fc.chart.bar
|
|
15
|
+
|
|
16
|
+
Recharts-based data visualization. Covers: bar charts (comparisons), line charts (trends), area charts (cumulative), gauge charts (thresholds).
|
|
17
|
+
|
|
18
|
+
## When to Use
|
|
19
|
+
- Analytics dashboards
|
|
20
|
+
- Data trend visualization
|
|
21
|
+
- KPI gauge displays
|
|
22
|
+
|
|
23
|
+
## Key Props
|
|
24
|
+
| Prop | Type | Required | What it controls |
|
|
25
|
+
|------|------|----------|------------------|
|
|
26
|
+
| `dataSource` | string | **Yes** | Path to chart data |
|
|
27
|
+
| `xAxis` | AxisConfig | No | X-axis data key, ticks, labels |
|
|
28
|
+
| `yAxis` | AxisConfig | No | Y-axis configuration |
|
|
29
|
+
| `bars` / `lines` / `areas` | ChartSeries[] | No | Series definitions with dataKey, color |
|
|
30
|
+
| `legend` | boolean | No | Show legend |
|
|
31
|
+
| `tooltip` | boolean | No | Show hover tooltips |
|
|
32
|
+
| `title` | string | No | Chart title |
|
|
33
|
+
| `width` | CardWidth | No | Chart container width |
|
|
34
|
+
|
|
35
|
+
## Manifest Example
|
|
36
|
+
```json
|
|
37
|
+
{
|
|
38
|
+
"component": "fc.chart.bar",
|
|
39
|
+
"props": {
|
|
40
|
+
"dataSource": "orderMetrics",
|
|
41
|
+
"title": "Orders by Status",
|
|
42
|
+
"bars": [{ "dataKey": "count", "color": "#1976d2" }],
|
|
43
|
+
"xAxis": { "dataKey": "status" }
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## AI Parse Notes
|
|
49
|
+
- **Primary intent:** Declarative Mystique component definition for manifests.
|
|
50
|
+
- **Selection signals:** Match by `alias`, category, and required `Key Props`.
|
|
51
|
+
- **Assembly hints:** Combine with compatible parent/child components listed in `Composition Patterns`.
|
|
52
|
+
- **Safety checks:** Validate required props and data bindings before manifest generation.
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
---
|
|
2
|
+
alias: "fc.chart.bar.wrapper.source"
|
|
3
|
+
aliases:
|
|
4
|
+
- fc.chart.bar.wrapper.source
|
|
5
|
+
category: wrapper
|
|
6
|
+
module: Core
|
|
7
|
+
---
|
|
8
|
+
# fc.chart.bar.wrapper.source
|
|
9
|
+
|
|
10
|
+
Bar chart wrapper that converts Metrics API source data into a Recharts-readable format, used for Sources Dashboard visualizations.
|
|
11
|
+
|
|
12
|
+
> **Note:** `fc.chart.bar.md` lists this as an alias. This file documents the wrapper-specific behavior and Metrics API integration. For general bar chart usage with standard GraphQL data, see `fc.chart.bar`.
|
|
13
|
+
|
|
14
|
+
## When to Use
|
|
15
|
+
- Visualizing inventory source metrics as bar charts
|
|
16
|
+
- Sources Dashboard bar chart displays
|
|
17
|
+
- Any Metrics API data that needs bar chart visualization
|
|
18
|
+
|
|
19
|
+
## Key Props
|
|
20
|
+
| Prop | Type | Required | What it controls |
|
|
21
|
+
|------|------|----------|------------------|
|
|
22
|
+
| `dataSource` | string | **Yes** | Path to Metrics API GraphQL data |
|
|
23
|
+
| `XAxis` | Axis | **Yes** | X-axis configuration (data key, ticks, labels) |
|
|
24
|
+
| `YAxis` | Axis | No | Y-axis configuration |
|
|
25
|
+
| `bars` | Bar[] | **Yes** | Bar series definitions (data keys, colors, stacking) |
|
|
26
|
+
| `chartContainerConfig` | ResponsiveContainerConfig | No | Responsive container sizing |
|
|
27
|
+
| `legend` | boolean | No | Show chart legend (generated from Bar `name` or `dataKey`) |
|
|
28
|
+
| `tooltip` | boolean | No | Show hover tooltips on bars |
|
|
29
|
+
| `title` | string | No | Chart card title |
|
|
30
|
+
| `width` | CardWidth | No | Card width: `"quarter"`, `"third"`, `"half"`, `"two-thirds"`, `"full"`, or 1-12 (default: `"full"`) |
|
|
31
|
+
| `noCard` | boolean | No | Render without card background when `true` |
|
|
32
|
+
|
|
33
|
+
### Axis
|
|
34
|
+
| Prop | Type | Required | What it controls |
|
|
35
|
+
|------|------|----------|------------------|
|
|
36
|
+
| `dataKey` | string | No | Key in the data for axis values |
|
|
37
|
+
| `tick` | boolean | No | Show axis ticks (default: `true`) |
|
|
38
|
+
| `tickLine` | boolean | No | Show axis tick lines (default: `true`) |
|
|
39
|
+
| `axisline` | boolean | No | Show axis line (default: `true`) |
|
|
40
|
+
| `label` | string | No | Axis label text |
|
|
41
|
+
| `offset` | number | No | Label offset from axis (y-axis default: `-20`) |
|
|
42
|
+
| `angle` | number | No | Label rotation angle (y-axis default: `-90`) |
|
|
43
|
+
| `position` | string | No | Label position: `"insideBottom"`, `"insideLeft"`, `"top"`, `"right"`, etc. |
|
|
44
|
+
|
|
45
|
+
### Bar
|
|
46
|
+
| Prop | Type | Required | What it controls |
|
|
47
|
+
|------|------|----------|------------------|
|
|
48
|
+
| `dataKey` | string | **Yes** | Data key for bar values (must be unique per bar) |
|
|
49
|
+
| `stackId` | string | No | Stack ID -- bars with same `stackId` are stacked |
|
|
50
|
+
| `fill` | string | No | Bar color in HEX format, e.g., `"#8B45E4"` |
|
|
51
|
+
|
|
52
|
+
### ResponsiveContainerConfig
|
|
53
|
+
| Prop | Type | Required | What it controls |
|
|
54
|
+
|------|------|----------|------------------|
|
|
55
|
+
| `width` | string/number | No | Container width (default: `"100%"`) |
|
|
56
|
+
| `aspect` | number | No | Width/height ratio (default: `1`) |
|
|
57
|
+
| `maxHeight` | number | No | Maximum container height (default: `300`) |
|
|
58
|
+
| `height` | string/number | No | Fixed or percentage height |
|
|
59
|
+
| `minWidth` | string/number | No | Minimum container width |
|
|
60
|
+
| `minHeight` | string/number | No | Minimum container height |
|
|
61
|
+
|
|
62
|
+
## Data Binding
|
|
63
|
+
Transforms Metrics API source response data into the array-of-objects format expected by Recharts. The `dataSource` prop points to the Metrics API result path. The wrapper handles the data shape conversion.
|
|
64
|
+
|
|
65
|
+
## Descendants
|
|
66
|
+
No -- self-contained chart component.
|
|
67
|
+
|
|
68
|
+
## Composition Patterns
|
|
69
|
+
- `fc.page` > `fc.chart.bar.wrapper.source` alongside `fc.list.wrapper.source` for full Sources Dashboard
|
|
70
|
+
- Use `noCard: true` when embedding inside an `fc.card.multi`
|
|
71
|
+
- Pair with `fc.daterange.wrapper.forwarder` for time-filtered source charts
|
|
72
|
+
|
|
73
|
+
## Gotchas
|
|
74
|
+
- Only works with Metrics API data -- use `fc.chart.bar` for standard GraphQL data
|
|
75
|
+
- `XAxis` and `bars` are required -- chart will not render without them
|
|
76
|
+
- On mobile, card width auto-collapses to full width regardless of `width` setting
|
|
77
|
+
- Stacked bars require matching `stackId` values on two or more Bar entries
|
|
78
|
+
|
|
79
|
+
## Manifest Example
|
|
80
|
+
```json
|
|
81
|
+
{
|
|
82
|
+
"component": "fc.chart.bar.wrapper.source",
|
|
83
|
+
"props": {
|
|
84
|
+
"title": "Source Throughput",
|
|
85
|
+
"dataSource": "sourceMetrics",
|
|
86
|
+
"width": "half",
|
|
87
|
+
"XAxis": { "dataKey": "date" },
|
|
88
|
+
"YAxis": { "label": "Count" },
|
|
89
|
+
"bars": [
|
|
90
|
+
{ "dataKey": "success", "fill": "#4CAF50" },
|
|
91
|
+
{ "dataKey": "failed", "fill": "#D23B3B", "stackId": "total" },
|
|
92
|
+
{ "dataKey": "pending", "fill": "#EF8F00", "stackId": "total" }
|
|
93
|
+
],
|
|
94
|
+
"legend": true,
|
|
95
|
+
"tooltip": true
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
## AI Parse Notes
|
|
101
|
+
- **Primary intent:** Declarative Mystique component definition for manifests.
|
|
102
|
+
- **Selection signals:** Match by `alias`, category, and required `Key Props`.
|
|
103
|
+
- **Assembly hints:** Combine with compatible parent/child components listed in `Composition Patterns`.
|
|
104
|
+
- **Safety checks:** Validate required props and data bindings before manifest generation.
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
---
|
|
2
|
+
alias: fc.chart.gauge
|
|
3
|
+
aliases:
|
|
4
|
+
- fc.chart.gauge
|
|
5
|
+
- fc.chart.gauge.wrapper.threshold
|
|
6
|
+
category: content
|
|
7
|
+
module: Core
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# fc.chart.gauge
|
|
11
|
+
|
|
12
|
+
Recharts-based gauge chart for threshold/target visualizations.
|
|
13
|
+
|
|
14
|
+
## When to Use
|
|
15
|
+
- Performance metrics against targets, capacity utilization
|
|
16
|
+
|
|
17
|
+
## Key Props
|
|
18
|
+
| Prop | Type | Required | What it controls |
|
|
19
|
+
|------|------|----------|------------------|
|
|
20
|
+
| dataSource | string | Yes | Path to chart data |
|
|
21
|
+
| title | string | No | Chart title |
|
|
22
|
+
| width | CardWidth | No | Card width |
|
|
23
|
+
|
|
24
|
+
## AI Parse Notes
|
|
25
|
+
- **Primary intent:** Declarative Mystique component definition for manifests.
|
|
26
|
+
- **Selection signals:** Match by `alias`, category, and required `Key Props`.
|
|
27
|
+
- **Assembly hints:** Combine with compatible parent/child components listed in `Composition Patterns`.
|
|
28
|
+
- **Safety checks:** Validate required props and data bindings before manifest generation.
|
package/content/dev/skills/fluent-mystique-builder/components/fc.chart.gauge.wrapper.threshold.md
ADDED
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
---
|
|
2
|
+
alias: "fc.chart.gauge.wrapper.threshold"
|
|
3
|
+
aliases:
|
|
4
|
+
- fc.chart.gauge.wrapper.threshold
|
|
5
|
+
category: wrapper
|
|
6
|
+
module: Core
|
|
7
|
+
---
|
|
8
|
+
# fc.chart.gauge.wrapper.threshold
|
|
9
|
+
|
|
10
|
+
Gauge chart wrapper that converts Metrics API data into a gauge visualization with configurable color thresholds driven by Fluent Settings.
|
|
11
|
+
|
|
12
|
+
> **Note:** `fc.chart.gauge.md` lists this as an alias. This file documents the wrapper-specific behavior including threshold settings integration. For general gauge chart usage, see `fc.chart.gauge`.
|
|
13
|
+
|
|
14
|
+
## When to Use
|
|
15
|
+
- KPI gauges showing throughput against configurable thresholds
|
|
16
|
+
- Sources and Feeds Dashboard performance indicators
|
|
17
|
+
- Any Metrics API data that needs gauge visualization with color-coded thresholds
|
|
18
|
+
|
|
19
|
+
## Key Props
|
|
20
|
+
| Prop | Type | Required | What it controls |
|
|
21
|
+
|------|------|----------|------------------|
|
|
22
|
+
| `dataSource` | string | **Yes** | Path to Metrics API GraphQL data |
|
|
23
|
+
| `settingName` | string | **Yes** | Fluent Setting name used to load threshold/color configuration |
|
|
24
|
+
| `timeFilterKey` | string | **Yes** | URL parameter name for the current time period filter (scales thresholds) |
|
|
25
|
+
| `value` | number/string | No | Template-calculated value or number compared against thresholds |
|
|
26
|
+
| `primaryText` | string | No | Large bold text in the center of the gauge |
|
|
27
|
+
| `secondaryText` | string | No | Small text displayed below the primary text |
|
|
28
|
+
| `colorConfig` | ColorConfig | No | Override default gauge colors |
|
|
29
|
+
| `arc` | Arc | No | Gauge arc geometry configuration |
|
|
30
|
+
| `chartContainerConfig` | ChartContainerConfig | No | Responsive container sizing |
|
|
31
|
+
| `title` | string | No | Chart card title |
|
|
32
|
+
| `width` | CardWidth | No | Card width: `"quarter"`, `"third"`, `"half"`, `"two-thirds"`, `"full"`, or 1-12 (default: `"full"`) |
|
|
33
|
+
| `noCard` | boolean | No | Render without card background when `true` |
|
|
34
|
+
|
|
35
|
+
### Arc
|
|
36
|
+
| Prop | Type | Required | What it controls |
|
|
37
|
+
|------|------|----------|------------------|
|
|
38
|
+
| `startAngle` | number | No | Start angle of the first sector (default: `210`) |
|
|
39
|
+
| `endAngle` | number | No | End angle of the last sector (default: `-30`) |
|
|
40
|
+
| `innerRadius` | number/string | No | Inner radius (default: `"82%"`) |
|
|
41
|
+
| `outerRadius` | number/string | No | Outer radius (default: `"93%"`) |
|
|
42
|
+
| `cx` | number/string | No | X coordinate of center (default: `"50%"`) |
|
|
43
|
+
| `cy` | number/string | No | Y coordinate of center (default: `"50%"`) |
|
|
44
|
+
|
|
45
|
+
### ColorConfig
|
|
46
|
+
| Prop | Type | Required | What it controls |
|
|
47
|
+
|------|------|----------|------------------|
|
|
48
|
+
| `active` | string / ColorMap | No | Color for the filled (active) sector. HEX string or `[[threshold, color]]` array |
|
|
49
|
+
| `inactive` | string / ColorMap | No | Color for the unfilled (inactive) sector. HEX string or `[[threshold, color]]` array |
|
|
50
|
+
| `primaryText` | string | No | Color for center primary text (HEX) |
|
|
51
|
+
| `secondaryText` | string | No | Color for center secondary text (HEX) |
|
|
52
|
+
|
|
53
|
+
### ChartContainerConfig
|
|
54
|
+
| Prop | Type | Required | What it controls |
|
|
55
|
+
|------|------|----------|------------------|
|
|
56
|
+
| `width` | string/number | No | Container width (default: `"100%"`) |
|
|
57
|
+
| `aspect` | number | No | Width/height ratio (default: `1`) |
|
|
58
|
+
| `maxHeight` | number | No | Maximum container height (default: `200`) |
|
|
59
|
+
| `height` | string/number | No | Fixed or percentage height |
|
|
60
|
+
| `minWidth` | string/number | No | Minimum container width |
|
|
61
|
+
| `minHeight` | string/number | No | Minimum container height |
|
|
62
|
+
|
|
63
|
+
## Data Binding
|
|
64
|
+
Transforms Metrics API response data into gauge percentage and color values. The `settingName` prop loads a Fluent Setting containing threshold configuration (an array of `{ percentage, color, threshold }` objects). The `timeFilterKey` reads a URL parameter to scale the per-hour thresholds to the selected time window.
|
|
65
|
+
|
|
66
|
+
### Setting Format
|
|
67
|
+
The Setting referenced by `settingName` must contain a JSON array:
|
|
68
|
+
```json
|
|
69
|
+
[
|
|
70
|
+
{ "percentage": 25, "color": "#D23B3B", "threshold": 0 },
|
|
71
|
+
{ "percentage": 75, "color": "#EF8F00", "threshold": 3000 },
|
|
72
|
+
{ "percentage": 100, "color": "#4CAF50", "threshold": 4000 }
|
|
73
|
+
]
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## Descendants
|
|
77
|
+
No -- self-contained chart component.
|
|
78
|
+
|
|
79
|
+
## Composition Patterns
|
|
80
|
+
- `fc.page` > multiple `fc.chart.gauge.wrapper.threshold` in a row for KPI dashboard
|
|
81
|
+
- Place inside `fc.column(width: "quarter")` for compact gauge tiles
|
|
82
|
+
- Combine with `fc.daterange.wrapper.forwarder` for time-filtered gauge displays
|
|
83
|
+
- Pair with `fc.list.wrapper.source` or `fc.list.wrapper.feed` on the same dashboard
|
|
84
|
+
|
|
85
|
+
## Gotchas
|
|
86
|
+
- `dataSource`, `settingName`, and `timeFilterKey` are all required
|
|
87
|
+
- Thresholds in the Setting are per-hour counts -- the component scales them based on the time filter
|
|
88
|
+
- `colorConfig.active` can be a simple HEX string or a ColorMap array `[[percentThreshold, color]]` for gradient-like behavior
|
|
89
|
+
- Arc angles are in degrees: default spans from 210 to -30 (a standard semi-circular gauge)
|
|
90
|
+
- The Setting must exist in the Fluent environment -- missing settings cause the gauge to render with default colors
|
|
91
|
+
|
|
92
|
+
## Manifest Example
|
|
93
|
+
```json
|
|
94
|
+
{
|
|
95
|
+
"component": "fc.chart.gauge.wrapper.threshold",
|
|
96
|
+
"props": {
|
|
97
|
+
"title": "Source Throughput",
|
|
98
|
+
"dataSource": "sourceMetrics.totalCount",
|
|
99
|
+
"settingName": "SOURCE_THROUGHPUT_THRESHOLDS",
|
|
100
|
+
"timeFilterKey": "period",
|
|
101
|
+
"primaryText": "{{sourceMetrics.totalCount}}",
|
|
102
|
+
"secondaryText": "items/hr",
|
|
103
|
+
"width": "quarter",
|
|
104
|
+
"arc": {
|
|
105
|
+
"startAngle": 210,
|
|
106
|
+
"endAngle": -30,
|
|
107
|
+
"innerRadius": "82%",
|
|
108
|
+
"outerRadius": "93%"
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
## AI Parse Notes
|
|
115
|
+
- **Primary intent:** Declarative Mystique component definition for manifests.
|
|
116
|
+
- **Selection signals:** Match by `alias`, category, and required `Key Props`.
|
|
117
|
+
- **Assembly hints:** Combine with compatible parent/child components listed in `Composition Patterns`.
|
|
118
|
+
- **Safety checks:** Validate required props and data bindings before manifest generation.
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
---
|
|
2
|
+
alias: fc.chart.line
|
|
3
|
+
aliases:
|
|
4
|
+
- fc.chart.line
|
|
5
|
+
category: content
|
|
6
|
+
module: Core
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# fc.chart.line
|
|
10
|
+
|
|
11
|
+
Recharts-based line chart for trend visualization over time.
|
|
12
|
+
|
|
13
|
+
## When to Use
|
|
14
|
+
- Time-series trends, continuous data visualization
|
|
15
|
+
|
|
16
|
+
## Key Props
|
|
17
|
+
| Prop | Type | Required | What it controls |
|
|
18
|
+
|------|------|----------|------------------|
|
|
19
|
+
| dataSource | string | Yes | Path to chart data |
|
|
20
|
+
| lines | ChartSeries[] | No | Series with dataKey and color |
|
|
21
|
+
| xAxis | AxisConfig | No | X-axis configuration |
|
|
22
|
+
| yAxis | AxisConfig | No | Y-axis configuration |
|
|
23
|
+
| legend | boolean | No | Show/hide legend |
|
|
24
|
+
| tooltip | boolean | No | Show/hide tooltip |
|
|
25
|
+
| title | string | No | Chart title |
|
|
26
|
+
| width | CardWidth | No | Card width |
|
|
27
|
+
|
|
28
|
+
## AI Parse Notes
|
|
29
|
+
- **Primary intent:** Declarative Mystique component definition for manifests.
|
|
30
|
+
- **Selection signals:** Match by `alias`, category, and required `Key Props`.
|
|
31
|
+
- **Assembly hints:** Combine with compatible parent/child components listed in `Composition Patterns`.
|
|
32
|
+
- **Safety checks:** Validate required props and data bindings before manifest generation.
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
---
|
|
2
|
+
alias: "fc.conditional"
|
|
3
|
+
aliases:
|
|
4
|
+
- fc.conditional
|
|
5
|
+
category: layout
|
|
6
|
+
module: Core
|
|
7
|
+
---
|
|
8
|
+
# fc.conditional
|
|
9
|
+
|
|
10
|
+
Show/hide content based on data value matching using template expressions.
|
|
11
|
+
|
|
12
|
+
## When to Use
|
|
13
|
+
- Different content for HD vs CC orders
|
|
14
|
+
- Status-specific warnings or alerts
|
|
15
|
+
- Role-based content visibility
|
|
16
|
+
- Show/hide sections based on entity attributes
|
|
17
|
+
|
|
18
|
+
## Key Props
|
|
19
|
+
| Prop | Type | Required | What it controls |
|
|
20
|
+
|------|------|----------|------------------|
|
|
21
|
+
| `value` | string | **Yes** | Template string to evaluate, e.g., `"{{status}}"`, `"{{type}}"` |
|
|
22
|
+
| `matches` | string / string[] | **Yes** | Value(s) to match against. Array = OR logic for most operations |
|
|
23
|
+
| `operation` | string | No | Comparison operator (default: `"="`). Supported: `"="`, `"!="`, `">"`, `"<"`, `">="`, `"<="`, `"contains"` |
|
|
24
|
+
|
|
25
|
+
## Data Binding
|
|
26
|
+
Evaluates `value` template against current data context.
|
|
27
|
+
|
|
28
|
+
## Descendants
|
|
29
|
+
Yes — rendered only when condition matches.
|
|
30
|
+
|
|
31
|
+
## Composition Patterns
|
|
32
|
+
- Multiple `fc.conditional` siblings for if/else-if patterns
|
|
33
|
+
- Wrap `fc.card.attribute` for type-specific detail cards
|
|
34
|
+
- Wrap `fc.list` for type-specific item views
|
|
35
|
+
|
|
36
|
+
## Gotchas
|
|
37
|
+
- Both `value` AND `matches` are required -- omitting either renders nothing
|
|
38
|
+
- No `else` construct -- use a second `fc.conditional` with opposite match
|
|
39
|
+
- Template string must be valid Handlebars: `{{fieldName}}`
|
|
40
|
+
- Default `operation` is `"="` (strict string equality) -- omitting it means equality check
|
|
41
|
+
- **`contains` operates on comma-separated strings**, not JavaScript arrays. The `value` template result is split by `,` into a list, and the condition is true only if ALL `matches` entries are found in that list. Example: `value: "{{tags}}"` where tags = `"urgent,priority"`, `matches: ["urgent"]` = true
|
|
42
|
+
- Numeric comparisons (`>`, `<`, `>=`, `<=`) coerce both sides to numbers via `+` operator -- non-numeric strings will produce NaN and fail
|
|
43
|
+
|
|
44
|
+
## Validation Rules
|
|
45
|
+
P06 (CRITICAL — must have both value and matches)
|
|
46
|
+
|
|
47
|
+
## Manifest Example
|
|
48
|
+
```json
|
|
49
|
+
{
|
|
50
|
+
"component": "fc.conditional",
|
|
51
|
+
"props": { "value": "{{type}}", "matches": "HD" },
|
|
52
|
+
"descendants": [
|
|
53
|
+
{ "component": "fc.card.attribute", "props": { "title": "HD Details", "attributes": [] } }
|
|
54
|
+
]
|
|
55
|
+
}
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## AI Parse Notes
|
|
59
|
+
- **Primary intent:** Declarative Mystique component definition for manifests.
|
|
60
|
+
- **Selection signals:** Match by `alias`, category, and required `Key Props`.
|
|
61
|
+
- **Assembly hints:** Combine with compatible parent/child components listed in `Composition Patterns`.
|
|
62
|
+
- **Safety checks:** Validate required props and data bindings before manifest generation.
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
---
|
|
2
|
+
alias: "fc.dashboard.threshold"
|
|
3
|
+
aliases:
|
|
4
|
+
- fc.dashboard.threshold
|
|
5
|
+
category: content
|
|
6
|
+
module: Core
|
|
7
|
+
---
|
|
8
|
+
# fc.dashboard.threshold
|
|
9
|
+
|
|
10
|
+
Dashboard metric card with color-coded status thresholds (green/amber/red).
|
|
11
|
+
|
|
12
|
+
## When to Use
|
|
13
|
+
- Operations dashboard showing order counts, failure rates
|
|
14
|
+
- KPI tiles with alert thresholds
|
|
15
|
+
- Any metric that needs visual status indication
|
|
16
|
+
|
|
17
|
+
## Key Props
|
|
18
|
+
| Prop | Type | Required | What it controls |
|
|
19
|
+
|------|------|----------|------------------|
|
|
20
|
+
| `label` | string | No | Metric label text (supports templates) |
|
|
21
|
+
| `value` | string/number | No | Metric value (supports templates). Alternative: use `template` |
|
|
22
|
+
| `template` | string | No | Alternative to `value` -- template string for metric display. Source uses `value || template` |
|
|
23
|
+
| `subTitle` | string | No | Secondary label text below the main label (supports templates). Rendered in smaller, grey text |
|
|
24
|
+
| `thresholdLow` | number | No | Value above this triggers orange (#EE6F10) color |
|
|
25
|
+
| `thresholdHigh` | number | No | Value above this triggers red (#D23B3B) color |
|
|
26
|
+
| `link` | string | No | Click navigation URL (supports templates). Also accepts `link_template` (deprecated alias) |
|
|
27
|
+
| `width` | CardWidth | No | Card width (default: `quarter` / 3 on a 12-column grid) |
|
|
28
|
+
|
|
29
|
+
## Data Binding
|
|
30
|
+
`value`, `label`, `subTitle`, and `link` all support template strings from the page data context.
|
|
31
|
+
|
|
32
|
+
## Descendants
|
|
33
|
+
No.
|
|
34
|
+
|
|
35
|
+
## Composition Patterns
|
|
36
|
+
- Three `fc.column(third)` > `fc.dashboard.threshold` each for a 3-metric row
|
|
37
|
+
- Inside `fc.provider.graphql` for data-driven dashboards
|
|
38
|
+
|
|
39
|
+
## Gotchas
|
|
40
|
+
- **Default width is `quarter` (3)** -- not `full`. Tiles are designed to sit side by side in a row
|
|
41
|
+
- **Color thresholds**: green (#4CAF50) by default, orange (#EE6F10) when value > `thresholdLow`, red (#D23B3B) when value > `thresholdHigh`. The value is parsed as integer for comparison
|
|
42
|
+
- **"+" suffix on paginated data**: When `data.pageInfo.hasNextPage` is true, a `+` is appended to the displayed value (e.g., "1000+") to indicate there are more records than shown
|
|
43
|
+
- `value` and `template` are interchangeable -- the component uses `props.value || props.template`
|
|
44
|
+
- `link` and `link_template` are interchangeable -- `link_template` is the deprecated form
|
|
45
|
+
|
|
46
|
+
## Manifest Example
|
|
47
|
+
```json
|
|
48
|
+
{
|
|
49
|
+
"component": "fc.dashboard.threshold",
|
|
50
|
+
"props": {
|
|
51
|
+
"label": "Failed Orders",
|
|
52
|
+
"subTitle": "Last 24 hours",
|
|
53
|
+
"value": "{{failedCount}}",
|
|
54
|
+
"thresholdLow": 5,
|
|
55
|
+
"thresholdHigh": 20,
|
|
56
|
+
"link": "/orders?status=FAILED"
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## AI Parse Notes
|
|
62
|
+
- **Primary intent:** Declarative Mystique component definition for manifests.
|
|
63
|
+
- **Selection signals:** Match by `alias`, category, and required `Key Props`.
|
|
64
|
+
- **Assembly hints:** Combine with compatible parent/child components listed in `Composition Patterns`.
|
|
65
|
+
- **Safety checks:** Validate required props and data bindings before manifest generation.
|
package/content/dev/skills/fluent-mystique-builder/components/fc.daterange.wrapper.forwarder.md
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
---
|
|
2
|
+
alias: fc.daterange.wrapper.forwarder
|
|
3
|
+
aliases:
|
|
4
|
+
- fc.daterange.wrapper.forwarder
|
|
5
|
+
category: filter
|
|
6
|
+
module: Core
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# fc.daterange.wrapper.forwarder
|
|
10
|
+
|
|
11
|
+
Wrapper that captures date range selections and forwards them as URL query parameters, enabling date-filtered navigation and data fetching.
|
|
12
|
+
|
|
13
|
+
## When to Use
|
|
14
|
+
- Forward user-selected date range values to URL parameters for downstream components
|
|
15
|
+
- Add date range filtering to dashboard pages where charts/lists read dates from URL
|
|
16
|
+
- Customize the URL parameter names used for from/to date values
|
|
17
|
+
|
|
18
|
+
## Key Props
|
|
19
|
+
| Prop | Type | Required | What it controls |
|
|
20
|
+
|------|------|----------|------------------|
|
|
21
|
+
| `keyConfig` | `{ from: string; to: string }` | No | Maps date range values to URL parameter names (default: `{ from: 'from', to: 'to' }`) |
|
|
22
|
+
|
|
23
|
+
## Data Binding
|
|
24
|
+
Forwards the selected date range values into URL query parameters. Child components and page queries that reference these URL parameters will automatically receive the filtered date range.
|
|
25
|
+
|
|
26
|
+
## Descendants
|
|
27
|
+
Yes -- wraps child components that should respond to the date range selection. Typically wraps chart and list wrapper components.
|
|
28
|
+
|
|
29
|
+
## Composition Patterns
|
|
30
|
+
- `fc.page` > `fc.daterange.wrapper.forwarder` > `fc.chart.bar.wrapper.source` for time-filtered charts
|
|
31
|
+
- `fc.page` > `fc.daterange.wrapper.forwarder` > `fc.list.wrapper.source` for time-filtered lists
|
|
32
|
+
- Combine with `fc.chart.gauge.wrapper.threshold` (which reads `timeFilterKey` from URL)
|
|
33
|
+
|
|
34
|
+
## Gotchas
|
|
35
|
+
- Default URL parameter names are `from` and `to` -- override with `keyConfig` if your page query uses different parameter names
|
|
36
|
+
- This component provides the date range picker UI and forwards values to the URL -- it does not directly filter data
|
|
37
|
+
- Child components must read from URL parameters (or use `timeFilterKey`) for the filtering to take effect
|
|
38
|
+
|
|
39
|
+
## Manifest Example
|
|
40
|
+
```json
|
|
41
|
+
{
|
|
42
|
+
"component": "fc.daterange.wrapper.forwarder",
|
|
43
|
+
"props": {
|
|
44
|
+
"keyConfig": {
|
|
45
|
+
"from": "startDate",
|
|
46
|
+
"to": "endDate"
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## AI Parse Notes
|
|
53
|
+
- **Primary intent:** Declarative Mystique component definition for manifests.
|
|
54
|
+
- **Selection signals:** Match by `alias`, category, and required `Key Props`.
|
|
55
|
+
- **Assembly hints:** Combine with compatible parent/child components listed in `Composition Patterns`.
|
|
56
|
+
- **Safety checks:** Validate required props and data bindings before manifest generation.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
alias: "fc.drawer.button"
|
|
3
|
+
aliases:
|
|
4
|
+
- fc.drawer.button
|
|
5
|
+
category: action
|
|
6
|
+
module: Core
|
|
7
|
+
---
|
|
8
|
+
# fc.drawer.button
|
|
9
|
+
|
|
10
|
+
Button that opens a side drawer panel. Slides in from the side. Similar to modal but preserves page context visually.
|
|
11
|
+
|
|
12
|
+
## When to Use
|
|
13
|
+
- Side panel detail views
|
|
14
|
+
- Configuration panels
|
|
15
|
+
- Order item detail overlay
|
|
16
|
+
|
|
17
|
+
## AI Parse Notes
|
|
18
|
+
- **Primary intent:** Declarative Mystique component definition for manifests.
|
|
19
|
+
- **Selection signals:** Match by `alias`, category, and required `Key Props`.
|
|
20
|
+
- **Assembly hints:** Combine with compatible parent/child components listed in `Composition Patterns`.
|
|
21
|
+
- **Safety checks:** Validate required props and data bindings before manifest generation.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
alias: "fc.event.detail"
|
|
3
|
+
aliases:
|
|
4
|
+
- fc.event.detail
|
|
5
|
+
category: content
|
|
6
|
+
module: OMS
|
|
7
|
+
---
|
|
8
|
+
# fc.event.detail
|
|
9
|
+
|
|
10
|
+
Expanded detail view for a single event — shows payload, attributes, timing, and processing status.
|
|
11
|
+
|
|
12
|
+
## When to Use
|
|
13
|
+
- Drill-down from event search
|
|
14
|
+
- Event forensics detail view
|
|
15
|
+
|
|
16
|
+
## AI Parse Notes
|
|
17
|
+
- **Primary intent:** Declarative Mystique component definition for manifests.
|
|
18
|
+
- **Selection signals:** Match by `alias`, category, and required `Key Props`.
|
|
19
|
+
- **Assembly hints:** Combine with compatible parent/child components listed in `Composition Patterns`.
|
|
20
|
+
- **Safety checks:** Validate required props and data bindings before manifest generation.
|